Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • emsmith/athena
  • dzubov/athena
  • pscholer/athena
  • akvam/athena
  • flasagni/athena
  • hartman/athena
  • alux/athena
  • berenice/athena
  • mschott/athena
  • mgenest/athena
  • pbalek/athena
  • dsalvato/athena
  • korcyl/athena
  • tlyubush/athena
  • lyubushk/athena
  • gstark/athena
  • yharris/athena
  • lmonsoni/athena
  • nagano/athena
  • lcorpe/athena
  • lshi/athena
  • rrosten/athena
  • ytsujika/athena
  • tiledemo/athena
  • abagdato/athena
  • fparodi/athena
  • tmoxter/athena
  • lheinric/athena
  • milu/athena
  • pyin/athena
  • juesseiv/athena-celeritas
  • mmlynari/athena
  • matthier/athena
  • jsandesa/athena
  • borisov/athena
  • zchubini/athena
  • mpenzin/athena
  • mcorradi/athena
  • okovanda/athena
  • meevans/athena
  • isiral/athena
  • haa2mu2tau/athena
  • nkvu/athena
  • andre/athena
  • ebakos/athena
  • gwmyers/athena
  • lportale/athena
  • vasothil/athena
  • bwinter/athena
  • brle/athena
  • camacho/athena
  • icioara/athena
  • mcentonz/athena
  • quli/athena
  • mikhail/athena
  • begilber/athena
  • gartoni/athena
  • abkahn/athena
  • mbasso/athena
  • pagacova/athena
  • dgancarc/athena
  • stefania/athena
  • gmarchio/athena
  • jolsson/athena
  • atlasdqm/athena
  • chuanshu/athena
  • yygao/athena
  • shimoji/athena
  • zhenw/athena
  • jojamies/athena
  • keli/athena
  • cnass/athena
  • beckerov/athena
  • passaggi/athena
  • marvin/athena
  • hdf5-utils/athena
  • pberta/athena
  • aaboulho/athena
  • acrobert/athena
  • ranjitn/athena
  • cescobar/athena
  • ktodome/athena
  • kastanas/athena
  • huirun/athena
  • atrzupek/athena
  • tzorbas/athena
  • lfountas/athena
  • ccarrion/athena
  • aambler/athena
  • derendar/athena
  • britzger/athena
  • hanl/athena
  • epender/athena
  • gipezzul/athena
  • mmineev/athena
  • robertma/athena
  • gnn4itkteam/athena
  • phkoenig/athena
  • pleier/athena
  • nguseyno/athena
  • nekumari/athena
  • avasyuko/athena
  • gtateno/athena
  • pavel/athena
  • reznicek/athena
  • aburke/athena
  • jiling/athena
  • jcordeir/athena
  • herrmant/athena
  • lmcelhin/athena
  • xuh/athena
  • averbyts/athena
  • tnommens/athena
  • ewallin/athena
  • tvazquez/athena
  • shbansal/athena
  • gascott/athena
  • yuhui/athena
  • lserkin/athena
  • ccaminch/athena
  • corentin/athena
  • miochoa/athena
  • berkeleylab/CharmPhysics/athena
  • hfox/athena
  • madurano/athena_gittutorial
  • msykora/athena
  • ckirfel/athena
  • jakoubek/athena
  • calfayan/athena
  • kjohns/athena
  • atlas/athena
  • toshi/athena
  • dguest/athena
  • fwinkl/athena
  • wlampl/athena
  • aundrus/athena
  • akraszna/athena
  • karolos/athena
  • jmontejo/athena
  • damazio/athena
  • okuprash/athena
  • smh/athena
  • turra/athena
  • tdado/athena
  • tadej/athena
  • abuckley/athena
  • jmasik/athena
  • pjacka/athena
  • tamartin/athena
  • tbold/athena
  • mhodgkin/athena
  • nstyles/athena
  • mark/athena
  • rhauser/athena
  • phwindis/athena
  • arnaez/athena
  • baines/athena
  • mmuskinj/athena
  • psommer/athena
  • bwynne/athena
  • tstreble/athena
  • ATLAS-EGamma/athena
  • yuxu/athena
  • toyamaza/athena
  • gemmeren/athena
  • ssnyder/athena
  • wwalko/athena
  • emoyse/athena
  • pgadow/athena
  • solodkov/athena
  • rbielski/athena
  • dcasper/athena
  • mrybar/athena
  • ychiu/athena
  • christos/athena
  • yoyamagu/athena
  • rbianchi/athena
  • graemes/athena
  • sshaw/athena
  • shlomit/athena
  • hartj/athena
  • jcatmore/athena
  • ebuschma/athena
  • gunal/athena
  • ewelina/athena
  • ligang/athena
  • sroe/athena
  • lfiorini/athena
  • longjon/athena
  • jichen/athena
  • nikiforo/athena
  • fpastore/athena
  • harkusha/athena
  • mvozak/athena
  • leggett/athena
  • martindl/athena
  • almaloiz/athena
  • tlari/athena
  • susinha/athena
  • filthaut/athena
  • cchan/athena
  • peter/athena
  • cvarni/athena
  • wleight/athena
  • nwarrack/athena
  • cshimmin/athena
  • mihuebne/athena
  • jsallen/athena-high-pt-ms-jets
  • dkar/athena
  • chays/athena
  • dtovey/athena
  • sgeorge/athena
  • yafu/athena
  • mgignac/athena
  • alfroch/athena
  • mstamenk/athena
  • okepka/athena
  • tkohno/athena
  • janovak/athena
  • wiedenat/athena
  • khoo/athena
  • maklein/athena
  • cohm/athena
  • omajersk/athena
  • dbakshig/athena
  • fernando/athena
  • tmkrtchy/athena
  • gingrich/athena
  • schaarsc/athena
  • ponyisi/athena
  • ravinab/athena
  • scheiric/athena
  • pleskot/athena
  • jobalz/athena
  • ebergeas/athena
  • ekasimi/athena
  • afaulkne/athena
  • ekuwertz/athena
  • xai/athena
  • merrenst/athena
  • goetz/athena
  • dpopov/athena
  • achishol/athena
  • alaurier/athena
  • mtoscani/athena
  • krumnack/athena
  • astruebi/athena
  • mdanning/athena
  • egramsta/athena
  • hye/athena
  • clseitz/athena
  • cdiez/athena
  • bmindur/athena
  • efilmer/athena
  • jpanduro/athena
  • ssarikay/athena
  • hyamauch/athena
  • cpollard/athena
  • ppostola/athena
  • ncalace/athena
  • aad/athena
  • gpanizzo/athena
  • rcoelhol/athena
  • shanisch/athena
  • stelzer/athena
  • ssottoco/athena
  • turnerm/athena
  • sutt/athena
  • nkrengel/athena
  • rkopelia/athena
  • tupham/athena
  • bernius/athena
  • tsulaia/athena
  • vcairo/athena
  • stsuno/athena
  • cmcginn/athena
  • yunju/athena
  • mbandier/athena
  • mehlhase/athena
  • jdandoy/athena
  • ldc/athena
  • jufische/athena
  • jmacdona/athena
  • nasbah/athena
  • kwhalen/athena
  • bmorgan/athena
  • msaimper/athena
  • dzanzi/athena
  • amete/athena
  • rcarney/athena
  • williams/athena
  • shhirose/athena
  • kzoch/athena
  • cheidegg/athena
  • heng/athena
  • hhibi/athena
  • coccaro/athena
  • loch/athena
  • cdeutsch/athena
  • ynoguchi/athena
  • kkohler/athena
  • campanel/athena
  • wbalunas/athena
  • hoide/athena
  • xju/athena
  • yuchou/athena
  • hrussell/athena
  • nova/athena
  • lidiaz/athena
  • todorova/athena
  • jbiswal/athena
  • kegraham/athena
  • sjiggins/athena
  • guerrero/athena
  • bgokturk/athena
  • aytul/athena
  • bouhova/athena
  • alwang/athena
  • dhayden/athena
  • kpachal/athena
  • alopezso/athena
  • mverissi/athena
  • mvessell/athena
  • ssantpur/athena
  • kenelson/athena
  • upatel/athena
  • omeshkov/athena
  • mvanadia/athena
  • soumya/athena
  • ruyuan/athena
  • igrabows/athena
  • fmeloni/athena
  • tvarol/athena
  • korona/athena
  • mhank/athena
  • dshope/athena
  • cowagner/athena
  • tursom/athena
  • dbogavac/athena
  • tnobe/athena
  • anperrev/athena
  • fsforza/athena
  • derue/athena
  • eramakot/athena
  • koffas/athena
  • fgiuli/athena
  • angianni/athena
  • ballbroo/athena
  • diehl/athena
  • myexley/athena
  • chinderk/athena
  • davidek/athena
  • tphamleh/athena
  • ekajomov/athena-general
  • falonso/athena
  • sarbiolv/athena
  • salvator/athena
  • hansenph/athena
  • hirose/athena
  • masato/athena
  • mfujimot/athena
  • jhaley/athena
  • jmendes/athena
  • stapiaar/athena
  • stavrop/athena
  • tpelzer/athena
  • agbet/athena
  • nwenke/athena
  • dbabal/athena
  • juesseiv/athena
  • gia/athena
  • cdelitzs/athena
  • hmildner/athena
  • temoskal/athena
  • dwallace/athena
  • eschanet/athena
  • kkrizka/athena
  • ckitsaki/athena
  • iaizenbe/athena
  • asonay/athena
  • czhou/athena
  • pmeiring/athena
  • lferencz/athena
  • jteoh/athena
  • jiawei/athena
  • liberato/athena
  • mromano/athena
  • jbeirer/athena
  • rustem/athena
  • nielsenj/athena
  • wachan/athena
  • sswatman/athena
  • ranovotn/athena
  • miqueits/athena
  • asquith/athena
  • nicholas/athena
  • markowen/athena
  • elmsheus/athena
  • fuhe/athena
  • eparrish/athena
  • dakoch/athena
  • mhance/athena
  • aranzazu/athena
  • esoldato/athena
  • ndegroot/athena
  • lihan/athena
  • asoukhar/athena
  • jkempste/athena
  • tjunkerm/athena
  • ginaciog/athena
  • verducci/athena
  • aporeba/athena
  • martis/athena
  • mswiatlo/athena
  • anmrodri/athena
  • sschramm/athena
  • pliu/athena
  • mdelmast/athena
  • bcarlson/athena
  • fastcalosim_test/athena
  • ssaha/athena
  • scamarda/athena
  • gabarone/athena
  • mxia/athena
  • rlongo/athena
  • lstocker/athena
  • amoussa/athena
  • guindon/athena
  • mdonasci/athena
  • chelling/athena
  • conde/athena
  • gialas/athena
  • mmittal/athena
  • ffollega/athena
  • fcostanz/athena
  • shion/athena
  • sschmitt/athena
  • hmaguire/athena
  • cgutscho/athena
  • sberlend/athena
  • zsoumaim/athena
  • acts/athena
  • nifomin/athena
  • eriefel/athena
  • evarnes/athena
  • guescini/athena
  • jkremer/athena
  • dwilbern/athena
  • laforge/athena
  • susy-hackers/athena
  • llorente/athena
  • haozturk/athena
  • akotsoke/athena
  • kkoeneke/athena
  • rpoggi/athena
  • istin/athena
  • acanesse/athena
  • fizisist/athena
  • ffabbri/athena
  • fengyu/athena
  • navarrjo/athena
  • rkarnam/athena
  • ivivarel/athena
  • chenlian/athena
  • cmerlass/athena
  • amulski/athena
  • ysmirnov/athena_old
  • pkramer/athena
  • bulekov/athena
  • vcavalie/athena
  • sanchevi/athena
  • yanlin/athena
  • restevam/athena
  • smwang/athena
  • sefernan/athena
  • thsjurse/athena
  • bauerpa/athena
  • mmlynars/athena
  • iyeletsk/athena
  • jgonski/athena
  • wobisch/athena
  • mmazza/athena
  • itrandaf/athena
  • almgadm/athena
  • jhinds/athena
  • csebasti/athena
  • mwielers/athena
  • tiyang/athena
  • mtchijov/athena
  • lapereir/athena
  • lucam/athena
  • emmat/athena
  • kciesla/athena
  • aleopold/athena
  • lmiller/athena
  • rbalasub/athena
  • pekman/athena
  • masaito/athena
  • zuysal/athena
  • somadutt/athena
  • jstupak/athena
  • salderwe/athena
  • ycoadou/athena
  • wmccorma/athena
  • ilongari/athena
  • simmons/athena
  • adye/athena
  • kkreul/athena
  • wtaylor/athena
  • jzeng/athena
  • pinamont/athena
  • kghorban/athena
  • ssahin/athena
  • cschiavi/athena
  • gcallea/athena
  • fbartels/athena
  • kbelobor/athena
  • aoneill/athena
  • kasai/athena
  • dmaximov/athena
  • jraine/athena
  • ljeanty/athena
  • brottler/athena
  • mcfayden/athena
  • rozeny/athena
  • scarra/athena
  • ecarlson/athena
  • nbelyaev/athena
  • aelmouss/athena
  • gotero/athena
  • abandyop/athena
  • joheinri/athena
  • khanov/athena
  • bigliett/athena
  • aohatl/athena
  • rebeca/athena
  • doglioni/athena
  • pmoskvit/athena
  • alaperto/athena
  • bhonan/athena
  • begalli/athena
  • dpudzha/athena
  • amarzin/athena
  • yajun/athena
  • mpokidov/athena
  • rgarg/athena
  • paulama/athena
  • lbozianu/athena
  • mtesta/athena
  • wprzygod/athena
  • vcroft/athena
  • torrence/athena
  • jajimene/athena
  • atlidali/athena
  • barak/athena
  • sgalantz/athena
  • demelian/athena
  • tofitsch/athena
  • salnikov/athena
  • roward/athena
  • hacooke/athena
  • csander/athena
  • atsirigo/athena
  • ozaplati/athena
  • amoroso/athena
  • elrossi/athena
  • mmiralle/athena
  • pottgen/athena
  • alory/athena
  • jsabater/athena
  • pbokan/athena
  • jdevivi/athena
  • klin/athena
  • trinn/athena
  • ymino/athena
  • xiaoning/athena
  • xchen/athena
  • ruth/athena
  • apetukho/athena
  • nelsonc/athena
  • nishu/athena
  • cappelt/athena
  • ratkin/athena
  • juhofer/athena
  • paramon/athena
  • exot-27/athena
  • enarayan/athena
  • bleban/athena
  • dpizzi/athena
  • acassim/athena
  • ztarem/athena
  • bburghgr/athena
  • mmarjano/athena
  • qhu/athena
  • sampson/athena
  • pagessin/athena
  • mkrivos/athena
  • LichtenbergGroup/athena
  • hessey/athena
  • ychow/athena
  • nviauxma/athena
  • wfawcett/athena
  • ibordule/athena
  • watsona/athena
  • perj/athena
  • jreich/athena
  • othielma/athena
  • mleblanc/athena
  • jdegens/athena
  • ztao/athena
  • wgeorge/athena
  • hasada/athena
  • sridouan/athena
  • xiaohu/athena
  • alainb/athena
  • pmendesa/athena
  • ludovica/athena
  • kristin/athena
  • bachacou/athena
  • yama/athena
  • jlsmith/athena
  • yake/athena
  • ssu/athena
  • musafdar/athena
  • angerami/athena
  • mproffit/athena
  • rnayak/athena
  • pebaron/athena-weights
  • ktsuri/athena
  • jezequel/athena
  • hschwart/athena
  • amendesj/athena
  • lhelary/athena
  • gproto/athena
  • asalzbur/athena
  • malgren/athena
  • csamoila/athena
  • rerrabai/athena
  • lbeemste/athena
  • tiany/athena
  • spolacek/athena
  • grabanal/athena
  • mprincip/athena
  • asantra/athena
  • bmondal/athena
  • jreidels/athena
  • aczirkos/athena
  • silvinha/athena
  • kyamaguc/athena
  • tboeckh/athena
  • holau/athena
  • mdhlamin/athena
  • jroloff/athena
  • slawlor/athena
  • emily/athena
  • bozek/athena
  • lkrauth/athena
  • carlod/athena
  • tdiasdov/athena
  • bbrueers/athena
  • iramirez/athena
  • mtian/athena
  • bcole/athena
  • ecelebi/athena
  • oducu/athena
  • mgrabois/athena
  • idinu/athena
  • jjwilkin/athena
  • dhirsch/athena
  • roishi/athena
  • yuanchan/athena
  • hmoyanog/athena-4-mr
  • exochell/athena
  • ygo/athena
  • ggustavi/athena
  • diwillia/athena
  • cgarner/athena
  • sbiryuko/athena
  • changqia/athena
  • skorn/athena
  • jwspence/athena
  • scalvet/athena
  • honguyen/athena
  • calpigia/athena
  • yangx/athena
  • jizamora/athena
  • atsiamis/athena
  • iene/athena
  • rysawada/athena
  • adimitri/athena
  • dhangal/athena
  • cmarcon/athena
  • tqiu/athena
  • kpetukho/athena
  • atlidbs/athena
  • athaler/athena
  • tbisanz/athena
  • jcardena/athena
  • jspah/athena
  • dopasqua/athena
  • ryamaguc/athena
  • tzenis/athena
  • hzuchen/athena
  • jkretz/athena
  • oshukrun/athena
  • maliev/athena
  • lveloce/athena
  • tsano/athena
  • fdelrio/athena
  • iwang/athena
  • mumohdso/athena2
  • okumura/athena
  • sagara17/athena
  • mbiros/athena
  • koshimiz/athena
  • dmunozpe/athena
  • arennie/athena
  • mumohdso/athena
  • rhayes/athena
  • valentem/athena
  • evguillo/athena
  • dossantn/athena
  • atate/athena
  • zhijie/athena
  • caforio/athena
  • suyounas/athena
  • zearnsha/athena
  • bnachman/athena
  • hlin/athena
  • maly/athena
  • lunedic/athena
  • rjoshi/athena
  • yuzhan/athena
  • crougier/athena
  • mtost/athena
  • machitis/athena
  • lvannoli/athena
  • thompson/athena
  • mimarine/athena
  • dounwuch/athena
  • ndebiase/athena
  • nkakati/athena
  • omezhens/athena
  • echeu/athena
  • jonierma/athena
  • saclawso/athena
  • martinpa/athena
  • cprat/athena
  • hhanif/athena
  • csauer/athena
  • mischott/athena
  • tiknight/athena
  • sahinsoy/athena
  • jodamp/athena
  • knikolop/athena
  • inaryshk/athena
  • wendlanb/athena
  • angrigor/athena
  • lkeszegh/athena
  • fedin/athena
  • xchu/athena
  • pbellos/athena
  • adik/athena
  • jaoliver/athena
  • idrivask/athena
  • echeremu/athena
  • lbaltes/athena
  • aikoulou/athena
  • ignesi/athena
  • algilber/athena
  • eschopf/athena
  • pyanezca/athena
  • haweber/athena
  • ntamir/athena
  • sadykov/athena
  • sgurdasa/athena
  • hiito/athena
  • tavandaa/athena
  • pamachad/athena
  • tteixeir/athena
  • veellajo/athena
  • mdrozdov/athena
  • pbhattar/athena
  • nheatley/athena
  • bsaifudd/athena
  • wolter/athena
  • hsimpson/athena
  • fsili/athena
  • fdibello/athena
  • mzhai/athena
  • dparedes/athena
  • zyan/athena
  • emmarsha/athena
  • minaenko/athena
  • mrenda/athena
  • phkenned/athena
  • rkusters/athena
  • edweik/athena
  • chchau/athena
  • zhangr/athena
  • jburzyns/athena
  • slai/athena
  • awilhahn/athena
  • zmarshal/athena
  • agaa/athena
  • zfeng/athena
  • javanden/athena
  • kkrowpma/athena
  • leevans/athena
  • llaatu/athena
  • zifeng/athena
  • srdas/athena
  • stsigari/athena
  • metsai/athena
  • adonofri/athena
  • yuanda/athena
  • atropina/athena
  • atlaspmb/athena
  • ademaria/athena
  • cleonido/athena
  • drousso/athena
  • seggebre/athena
  • kchoi/athena
  • mnoury/athena
  • arombola/athena
  • dgillber/athena
  • saktas/athena
  • ijuarezr/athena
  • qibin/athena
  • eyamashi/athena
  • zang/athena
  • axiong/athena
  • amdesai/athena
  • nlopezca/athena
  • acanbay/athena
  • matakagi/athena
  • bshresth/athena
  • fbendebb/athena
  • berkeleylab/lowmutracking/athena
  • klassen/athena
  • tbuanes/athena
  • jferrand/athena
  • egodden/athena
  • hpotti/athena
  • cbuitrag/athena
  • mfarring/athena
  • otheiner/athena-official
  • hawatson/athena
  • parodi/athena
  • chonghao/athena
  • vtudorac/athena
  • bballard/athena
  • dzengerj/athena
  • buboehm/athena
  • knakkali/athena
  • lmontana/athena
  • dcieri/athena
  • zhuyi/athena
  • cimcp/athena
  • cantel/athena
  • weixi/athena
  • adaribay/athena
  • iliadis/athena
  • duperrin/athena
  • asansar/athena
  • kbenkend/athena
  • isotarri/athena
  • jburr/athena
  • frenner/athena
  • bstanisl/athena
  • dkoeck/athena
  • miholzbo/athena
  • blumen/athena
  • mfewell/athena
  • eegidiop/athena
  • czodrows/athena
  • yulei/athena
  • smitani/athena
  • amincer/athena
  • alsala/athena
  • olangrek/athena
  • hpang/athena
  • gshatri/athena
  • clantz/athena
  • otheiner/athena
  • jmharris/athena
  • gripelli/athena
  • jgargan/athena
  • mleigh/athena
  • ewatton/athena
  • deniso/athena
  • preselection-hackathon/athena
  • tizuo/athena
  • rushioda/athena
  • mfernoux/athena
  • sfranche/athena
  • bernardo/athena
  • pebaron/athena-td
  • smeriano/athena
  • chandler/athena
  • jnitschk/athena
  • ksugizak/athena
  • viruelas/athena
  • skaur/athena
  • yusano/athena
  • anghosh/ef-anindya
  • hriani/athena
  • davetisy/athena
  • jgombas/athena
  • vcepaiti/athena
  • wsherman/athena
  • sroygara/athena
  • apsallid/athena
  • rtagami/athena
  • yochi/athena
  • chji/athena
  • yuanj/athena
  • pakontax/athena
  • giagu/athena
  • agavrily/athena
  • dmclaugh/athena
  • abunka/athena
  • mcgensvc/athena
  • dmahon/athena
  • mshapiro/athena
  • yuwen/athena
  • qberthet/athena
  • almay/athena
  • cjmeyer/athena
  • dkobylia/athena
  • islazyk/athena
  • ekay/athena
  • rdinardo/athena
  • mbarel/athena
  • kazhang/athena
  • glamprin/athena
  • osalin/athena
  • mlanzacb/athena
  • cgrefe/athena
  • wsfreund/athena
  • baitbenc/athena
  • dakiyama/athena
  • minlin/athena
  • szambito/athena
  • hwilkens/athena
  • beringer/athena
  • pebaron/athena
  • schaffer/athena
  • yyap/athena
  • enagy/athena
  • tkharlam/athena
  • mspalla/athena
  • menke/athena
  • fcalosim/athena
  • mavogel/athena
  • mduehrss/athena
  • spagan/athena
  • smobius/athena
  • okiverny/athena
  • rateixei/athena
  • carquin/athena
  • jelena/athena
  • osunnebo/athena
  • dportill/athena
  • lmijovic/athena
  • desilva/athena
  • chhayes/athena
  • junpei/athena
  • tilebeam/athena
  • jwalder/athena
  • satom/athena
  • mcarnesa/athena
  • jahreda/athena
  • sanmay/athena
  • jstark/athena
  • jedebevc/athena
  • delsart/athena
  • kiabelin/athena
  • krbjoerk/athena
  • silu/athena
  • cyoung/athena
  • vtskhaya/athena
  • jtanaka/athena
  • mtogawa/athena
  • luxin/athena
  • yifany/athena
  • faser/offline/athena
  • maslawin/athena
  • haoran/athena
  • danning/athena
  • dcasperfaser/athena
  • minghui/athena
  • srettie/athena
  • almeidvi/athena
  • beddall/athena
  • vmartin/athena
  • cfan/athena
  • beltran/athena-fork
  • kazheng/athena
  • mmontell/athena
  • kgupta/athena
  • lhenkelm/athena
  • sudha/athena
  • anbaraja/athena
  • lgagnon/athena
  • pajones/athena
  • ssinha/athena
  • serodrig/athena
  • dpanchal/athena
  • kkawade/athena
  • chiodini/athena
  • amorenos/athena
  • jshahini/athena
  • joana/athena
  • vbuxbaum/athena
  • mtanasin/athena
  • apalazzo/athena
  • kburka/athena
  • ehaines/athena
  • gonzalri/athena
  • lfeligio/athena
  • rmazini/athena
  • jaofferm/athena
  • desengup/athena
  • gottino/athena
  • gavrilen/athena
  • mdidenko/athena
  • dwkim/athena
  • sabidi/athena
  • cdimitri/athena
  • bkerridg/athena
  • qidong/athena
  • ktackman/athena
  • hazeng/athena
  • yche/athena
  • jingjing/athena
  • yoyeh/athena
  • ktopolni/athena
  • mischott/athena-22
  • dabattul/athena
  • attrtcal/athena
  • sgaid/athena
  • krdona/athena
  • thmaurin/athena
  • lbazzano/athena
  • asciandr/athena
  • chjiang/athena
  • bochen/athena
  • pclark/athena
  • rushioda/athena-3
  • dtorresa/athena
  • meiqi/athena
  • hmoyanog/athena
  • kvidalgu/athena
  • nlad/athena
  • xinfei/athena
  • jcurran/athena
  • aaikot/athena
  • aackerma/athena
  • yingjun/athena
  • mschefer/athena
  • lesplend/athena
  • maboelel/athena
  • kazheng/athena-physics-val-2023
  • aivina/athena
  • xinhui/athena
  • rmakhman/athena
  • liuk/athena
  • zoduan/athena
  • zhiliang/athena
  • shhan/athena
  • jlue/athena
  • bdixit/athena
  • sfrances/athena
  • ragrabar/athena
  • alsidley/athena
  • asehrawa/athena
  • mhoppesc/athena
  • xingguo/athena
  • kyjones/topoetcone-removal
  • niabicht/athena
  • keener/athena
  • yunagai/athena
  • shahzad/athena
  • yinmiao/athena
  • llewitt/athena
  • lcalic/athena-backup
  • greynold/athena
  • bschlag/athena
  • kazheng/athena-workingpoint
  • bruckman/athena
  • agentry/athena
  • adohnalo/athena
  • asmaga/athena
  • drankin/athena
  • hvanders/athena
  • nkang/athena
  • kbhide/athena
  • berkeleylab/acts/athena
  • ladamczy/test
  • tbeumker/athenatest
  • weitao/athena
  • tbeumker/athena
  • jiturriz/athena
  • losanti/athena-23
  • losanti/athena
  • dmankad/athena-idle
  • kyjones/trigger-example
  • wsong/athena
  • menu-hackathon/athena
  • seggebre/athena-fluencemap-modification
  • vmaksimo/athena
  • toobauma/athena
  • dawerner/athena
  • fisopkov/athena
  • gtarna/athena
  • edreyer/athena
  • lprimomo/athena
  • maparo/athena
  • smanzoni/athena
  • adimri/athena
  • shmukher/athena
  • SecVtx-Lancaster/Athena
  • wstanek/athena
  • pgraveli/athena
  • aackerma/atlas-athena
  • jcrosby/athena
  • atlas-sa-uct/athena
  • lrambell/athena
  • rsnyder/athena
  • tovsiann/athena
  • skita/athena
  • zgao/athena
  • ppotepa/athena
  • eullmank/athena
  • lroos/athena
  • achakrav/athena
  • xmapekul/athena
  • mhemmett/athena
  • rashbypi/athena
  • evitale/athena
  • kgoto/athena
  • ivyas/athena
  • thmaurin/athena-sim-flavour
  • arej/athena
  • lkretsch/athena
  • jebohm/athena
  • npond/athena
  • aleksand/athena
  • cvittori/athena
  • hluk/athena
  • epasqual/athena
  • mbiyabi/athena
  • mihe/athena
  • aralves/athena
  • dbiswas/athena
  • dkoeck/anniathenafork
  • croland/athena
  • rgupta/athena
  • mkareem/athena
  • tslee/athena
  • mhaacke/athena
  • cgarvey/athena
  • feickert/athena
  • kesedlac/athena
  • ctosciri/athena-old
  • pkumari/athena
  • asoflau/athena
  • ricunnin/athena
  • ctosciri/athena
  • gwilliam/athena
  • bdixit/masking-strip-modules
  • agerwin/athena
  • gfrattar/athena
  • jfeng2/athena
  • bscheuer/athena
  • gtolkach/athena
  • svanstro/athena
  • gaofeng/athena
  • ksudo/athena
  • rhiguchi/athena
  • vaustrup/athena
  • etoyoda/athena
  • kosuzuki/athena
  • tnakagaw/athena
  • rmizuhik/athena
  • kkanke/athena
  • hart/athena
  • amakita/athena
  • maoki/athena
  • whopkins/athena
  • tpaschoa/athena
  • miyamada/athena
  • rishikaw/athena
  • dduda/athena
  • ferusso/athena
  • anayaz/athena
  • evalient/athena
  • smweber/athena-run-3
  • shudong/athena
  • aagaard/athena
  • smweber/athena
  • evalient/athena-dnn-calculator
  • zyan/athena-muon-calib
  • zyan/athena-muon-calib-stream
  • strom/athena
  • dellacqu/athena
  • sbellman/athena
  • glagafon/project-nimber-1
  • jsallen/athena
  • strom/athena-dms
  • aowang/athena
  • brosser/athena
  • ooncel/athena
  • jhoya/athena
  • macretar/athena
  • osotosan/athena
  • skadir/athena-sadaf
  • tygeorge/athena
  • leguo/athena
  • glagafon/handi-project
  • glagafon/handi-project-1
  • wuxi/athena
  • syan/athena-syan
  • hasun/athena
  • axgallen/athena-qualification-task
  • will/athena
  • mnorfolk/athena
  • seinfant/athena
  • aborbely/athena
  • schernau/athena
  • karakawa/athena
  • taogawa/athena
  • dmankad/athena-gen
  • mmaroun/ravina-fork
  • axgallen/athena
  • ktariq/athena
  • romar/athena
  • tmlinare/athena
  • zuzak/athena
  • vlysenko/athena
  • agarabag/athena
  • dhagan/athena
  • tizhang/athena
  • ibamwidh/athena
  • mahorstm/athena
  • frfische/athena
  • ipolishc/athena
  • atishelm/athena
  • jolamber/athena
  • jlue/athena-latest
  • xilin/athena
  • ykhoulak/myathena
  • nkua-atlas/athena
  • yil/athena
  • chuanye/athena
  • huayu/athena
  • kifarman/athena
  • dntounis/athena
  • tayoshid/athena
  • steinber/athena-main
  • nischmit/athena
  • lderamo/athena
  • movincen/athena
  • tdingley/athena
  • dtruncal/athena
  • hasegawa/athena
  • kazheng/athena-acts
  • dongyi/athena
  • openc/athena
  • malvesca/athena
  • mnowak/athena
  • lcalic/athena
  • glagafon/dq-optimize
  • rqian/athena
  • ladamczy/athena
  • mhufnage/athena
  • lsultana/obsolete_athena
  • lsultana/athena
  • ekajomov/athena-fork-fix
  • anfortma/athena
  • alveltma/athena
  • yonoda/athena
  • kfung/athena
  • alpleban/athena
  • mmaheshw/athena
  • jdavidso/athena
  • edcritel/athena
  • pebaron/athena-leprem
  • anstein/athena
  • anhodges/athena
  • gbird/athena
  • midandre/athena
  • bglik/athena
  • kyjones/athena
  • mfurukaw/athena
  • sokkerma/athena
  • mvivasal/athena
  • asbrooks/athena
  • mveen/athena
  • fcurcio/athena
  • tburatov/athena
  • mmlynars/athena-v-2
  • joroemer/athena
  • jmcgowan/athena
  • ivyoung/athena
  • dmankad/athena
  • lboccard/athena
  • tayoshid/athena-test
  • drasslof/athena
  • jodafons/athena
  • ctaybi/athena
  • sdemiran/athena
  • sanchezj/athena-2022
  • jiddon/athena
  • tmclachl/athena
  • fwinkel/athena
  • anburger/athena
  • sdahbi/athena
  • izahir/athena
  • sidoti/athena
  • apfleger/athena
  • mmoors/athena
  • goblirsc/athena
  • rvinasco/athena
  • jwkraus/athena
  • sanchezj/athena
  • esimpson/athena
  • obut/athena
  • dta/athena_old
  • klleras/athena
  • janders/athena
  • rhaberle/athena
  • jhowarth/athena
  • mungo/athena
  • jchapman/athena
  • jecouthu/athena
  • sfuenzal/athena
  • dtrischu/athena
  • avallier/athena
  • misantan/athena
  • fmontere/athena
  • fhenry/athena
  • zalegria/athena
  • zhaotong/athena
  • shaoguan/athena
  • gdigrego/athena
  • awharton/Athena
  • nbruscin/athena
  • acordeir/athena-ed
  • amelo/athena
  • caiy/athena
  • peiyan/athena
  • mkholoda/athena
  • fkirfel/athena
  • pdougan/athena
  • gfacini/athena
  • kchu/athena
  • esampson/athena-idart
  • backes/athena
  • tayoshid/athena-2024
  • bcervato/athena
  • gmascare/athena
  • shpeng/athena-2
  • gmercado/athena
  • fwinkl2/athena
  • costanzo/athena
  • yvolkotr/athena
  • rhowen/athena
  • esampson/athena-idart-2
  • nharriso/athena
  • djlewis/athena
  • esampson/athena-otp
  • alpleban/athena-met
  • yuematsu/athena
  • pibutti/athena
  • astefl/athena
  • esampson/athena-june-otp
  • wcastigl/athena
  • yilin/athena
  • bmoser/athena
  • thitchin/athena
  • bdong/athena
  • sosarkar/athena-again
  • zhanhang/athena
  • ksahan/athena
  • agheata/athena
  • msasada/athena
  • lbarrade/athena
  • seth/athena
  • txu/athena
  • robouque/athena
  • okolay/athena
  • zhangbo/athena
  • nsurijr/athena
  • mlyukova/athena
  • damperia/athena-acts
  • esampson/june-2-otp
  • boudreau/athena
  • wema/athena
  • dbaronmo/athena
  • acamplan/athena
  • martyniu/athena
  • eballabe/athena
  • bngair/met-significance-r-22
  • vsasse/athena
  • bhuth/athena
  • ksakura/athena
  • bngair/me-tsig-athena
  • domatter/athena
  • vkost/athena
  • rhicks/athena
  • menadeem/athena
  • atymchys/athena
  • yanqiw/athena
  • arelycg/athena
  • linghua/athena
  • mwessels/athena
  • skadir/athena
  • sgoswami/athena
  • beltran/athena
  • juscerri/athena
  • biliu/athena
  • ddicroce/athena
  • dreikher/athena
  • hshaddix/athena
  • bdebjani/athena
  • sosarkar/athena
  • lwinkler/athena
  • fladias/athena
  • cleong/athena
  • elham/athena
  • emoon/athena
  • sdiefenb/athena-onnx-tutorial
  • mhabedan/athena
  • nkrogh/athena
  • dwilson/athena
  • haren/athena
  • thart/athena
  • fivone/athena
  • dahumphr/athena
  • scane/athena
  • mads/athena
  • lsanfili/athena
  • lifoster/athena
  • echerepa/athena
  • alancast/athena
  • baer/athena
  • kenakamu/athena
  • eskorda/athena
  • glagafon/aaaathena
  • dcamarer/athena
  • haotianl/athena
  • glagafon/athena
  • salopez/athena
  • glagafon/glagafon-dq
  • lburke/athena
  • rshibata/athena
  • ukhurshi/athena
  • rvavrick/athena
  • pizhang/athena
  • therwig/athena
  • htsoi/athena
  • mwitkows/athena
  • delitez/athena
  • ezaya/athena
  • pachabri/athena
  • casadop/athena
  • jaburles/athena
  • mmantina/athena
  • lcorazzi/athena
  • achamber/athena
  • hzhuang/athena
  • lmonaco/athena
  • rmole/athena
  • mfornasi/athena
  • mamirono/athena
  • jkrupa/athena
  • gserenis/athena
  • fdattola/athena
  • semami/athena
  • rpozzi/athena
  • belderto/athena
  • uepstein/athena
  • jinglis/athena
  • lechols/athena
  • ljerala/athena
  • cmavungu/athena
  • htorre/athena
  • lopezzot/athena
  • jlittle/athena
  • abesir/athena
  • robouque/athena-20241115
  • jajohnso/athena
  • wguerin/athena
  • tneep/athena
  • rmole/athena-personal-fork
  • lbrown/athena
  • fsiegert/athena
  • wenjingw/athena
  • kfang/athena-fork-kyfang
  • jackersc/athena
  • prmitra/athena
  • epompapa/athena
  • ashirazi/athena
  • toheintz/athena
  • kgrimm/athena-kgrimm
  • wasu/athena
  • nihartma/athena
  • amoreira/athena
  • gfazzino/athena
  • kdipetri/athena
  • aslobodk/athena
  • muschmid/athena
  • goetz/athena-acts
  • yazhou/athena
  • falves/athena
  • alarnold/athena
  • djuarezg/athena
  • mborodin/athena
  • wlai/athena
  • mdacunha/athena
  • alecrhys/athena
  • rohasan/athena
  • asickles/athena
  • novotnyp/athena
  • lvicenik/athena
  • adsalvad/athena
  • zetao/athena
  • christog/athena
  • ibenaoum/athena
  • mfarzali/athena
  • tflee/athena
  • frcastig/athena
  • pusharma/athena
  • llarson/athena
  • kkazakov/athena
  • ehampshi/athena
  • tomoya/athena-low-pt-muon-rec
  • jusilva/athena
  • gpinheir/athena
  • exochell/my-athena
  • hshaddix/athena-hshaddix
  • jecifuen/athena
  • nsur/athena-lund
  • vchabala/athena
  • chhultqu/athena
  • mojeda/athena
  • jlieberm/athena
  • misavic/athena
  • camccrac/athena
  • nshtokha/athena
  • jlai/athena
  • yuxuanz/local-athena
  • sizumiya/athena
  • yukari/athena
  • pmourafr/athena
  • zhubacek/athena
  • akraus/athena
  • mfilipig/athena
  • mnegrini/athena
  • fdejean/athena
  • sawyer/athena
  • yanqiw/athena-acts-for-run-3-silicon-tracking
  • gipoddar/athena
  • zrokavec/athena
  • ssuravar/athena
  • rkavak/athena
  • ywng/athena
  • beyeo/athena
  • mtancock/athena-2
  • gsalvi/athena
  • vpires/athena-vasco
  • sutuncay/athena
  • ndiasper/athena
  • stlin/athena
  • fballi/athena
  • hadavand/athena
1578 results
Show changes
Commits on Source (148)
Showing
with 242 additions and 370 deletions
......@@ -126,17 +126,6 @@ if doTopoClusterAgain:
"TileExt0", "TileExt1", "TileExt2",
"TileGap1", "TileGap2", "TileGap3",
"FCAL0", "FCAL1"]
# simple noise tool
SimpleNoiseFile = "sigmas_all.dat"
from CaloTools.CaloToolsConf import SimpleNoiseToolFromTextFile
SimpleNoiseTool = SimpleNoiseToolFromTextFile("SimpleNoiseTool")
SimpleNoiseTool.CellNoiseFileName = SimpleNoiseFile
ToolSvc += SimpleNoiseTool
topSequence.CaloTopoCluster.TopoMaker.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.LocalCalib.LCWeight.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.DMCalib.LCDeadMaterial.CaloNoiseTool = SimpleNoiseTool
# remove annoying BadChannel tool
tlist=[]
for x in topSequence.CaloTopoCluster.ClusterCorrectionTools:
......
......@@ -142,16 +142,6 @@ if doTopoClusterAgain:
"TileExt0", "TileExt1", "TileExt2",
"TileGap1", "TileGap2", "TileGap3",
"FCAL0", "FCAL1"]
# simple noise tool
SimpleNoiseFile = "sigmas_ave.dat"
from CaloTools.CaloToolsConf import SimpleNoiseToolFromTextFile
SimpleNoiseTool = SimpleNoiseToolFromTextFile("SimpleNoiseTool")
SimpleNoiseTool.CellNoiseFileName = SimpleNoiseFile
ToolSvc += SimpleNoiseTool
topSequence.CaloTopoCluster.TopoMaker.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.LocalCalib.LCWeight.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.DMCalib.LCDeadMaterial.CaloNoiseTool = SimpleNoiseTool
# remove annoying BadChannel tool
tlist=[]
......
......@@ -137,16 +137,6 @@ if doTopoClusterAgain:
"TileExt0", "TileExt1", "TileExt2",
"TileGap1", "TileGap2", "TileGap3",
"FCAL0", "FCAL1"]
# simple noise tool
SimpleNoiseFile = "sigmas_ave.dat"
from CaloTools.CaloToolsConf import SimpleNoiseToolFromTextFile
SimpleNoiseTool = SimpleNoiseToolFromTextFile("SimpleNoiseTool")
SimpleNoiseTool.CellNoiseFileName = SimpleNoiseFile
ToolSvc += SimpleNoiseTool
topSequence.CaloTopoCluster.TopoMaker.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.LocalCalib.LCWeight.CaloNoiseTool = SimpleNoiseTool
topSequence.CaloTopoCluster.DMCalib.LCDeadMaterial.CaloNoiseTool = SimpleNoiseTool
# remove annoying BadChannel tool
tlist=[]
......
......@@ -654,7 +654,6 @@ TileCalibrationCellHitCnt
TileCalibHitActiveCell
TileCalibHitInactiveCell
TileCalibHitDeadMaterial
CellDetailsNoiseTool
DetStore
AuditInitialize
doLArHitToCellDirect
......@@ -908,12 +907,10 @@ const
CPUTimeRef
LArClusterCopier
larClusterCopier
CaloNoiseTool
TopoClusterMapperGetter
SRT
sizep
stl
useNoiseTool
AuditBeginRun
theCaloCellContainerCheckerTool
EMCellContainerName
......@@ -952,7 +949,6 @@ AuditFinalize
CopyCell
leakRSS
gapscin
UseCaloNoiseTool
MeVTool
PreSampE
TWOPI
......@@ -1018,7 +1014,6 @@ jetrec
makeinfo
jobProperty
CaloTopoSplitterClusterCell
theCaloNoiseTool
laplace
ThresholdGeVCells
thresholdGeVCells
......@@ -1036,7 +1031,6 @@ EvtMax
CaloTopoSplitterHashCluster
CaloClusterStoreHelper
DMCalib
LArNoiseTool
MinBias
AuditRestart
maxima
......@@ -1048,7 +1042,6 @@ CellContainers
maxEt
LArCmbTwrBldr
CaloTowerCmbGetter
ICalorimeterNoiseTool
LArCmbTwrBldrChronobuild
ClusterContainer
memexe
......@@ -1087,7 +1080,6 @@ AthenaKernel
CaloCellsName
MyPackage
TileCells
CaloNoiseToolDefault
lastEvForLeak
LArRawChannels
efcal
......@@ -1232,7 +1224,6 @@ ntileb
enums
CellCorrections
MonitorService
ICaloNoiseTool
iCalo
EMTopo
ntileg
......@@ -1259,7 +1250,6 @@ eng
Unal
enum
endif
noiseTool
MinLLongitudinal
endcap
EndCap
......
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
# specifies Tower/TopoCluster -> TopoTower
from AthenaCommon.JobProperties import jobproperties as jp
......@@ -111,8 +111,6 @@ class CaloTopoTowerGetter ( Configured ) :
theCaloTopoTowerAlgorithm.MinimumClusterEnergy = -1000000000.0
theCaloTopoTowerAlgorithm.CellEnergySignificance = -1.
# noise tool
theCaloTopoTowerAlgorithm.UseCaloNoiseTool = False
########################
......
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
#from AthenaCommon.AppMgr import ServiceMgr as svcMgr
......@@ -132,11 +132,6 @@ def MakeTowersFromClusters(towerMakerName = 'CaloTowerBuilderAlg', #
''' External tools for moment calculation
'''
##from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
#from AthenaCommon.AppMgr import ToolSvc
#caloNoiseTool = CaloNoiseToolDefault()
#ToolSvc += caloNoiseTool
from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg
CaloNoiseCondAlg ()
CaloNoiseCondAlg(noisetype="totalNoise") # "electronicNoise","pileupNoise","totalNoise"
......@@ -148,8 +143,6 @@ def MakeTowersFromClusters(towerMakerName = 'CaloTowerBuilderAlg', #
from CaloRec.CaloRecConf import CaloClusterMomentsMaker
clusterMoments = CaloClusterMomentsMaker (towerMakerName+'MomentMaker')
clusterMoments.MaxAxisAngle = 20*deg
#clusterMoments.CaloNoiseTool = caloNoiseTool
#clusterMoments.UsePileUpNoise = True
clusterMoments.TwoGaussianNoise = jobproperties.CaloTopoClusterFlags.doTwoGaussianNoise()
clusterMoments.MinBadLArQuality = 4000
clusterMoments.MomentsNames = [
......
......@@ -90,13 +90,9 @@ if rec.readESD and not rec.doESD:
## if rec.readESD() and DetFlags.detdescr.Calo_on():
## from CaloRec.CaloRecConf import CaloCellMaker
## theCaloCellMaker=CaloCellMaker(CaloCellsOutputName="AllCalo",CaloCellHack=True)
## # calo modifying tool to be inserted there
## from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
## theCaloNoiseTool = CaloNoiseToolDefault()
## ToolSvc+=theCaloNoiseTool
## from CaloCellCorrection.CaloCellCorrectionConf import CaloCellRandomizer
## theCaloCellRandomizer=CaloCellRandomizer(noiseTool=theCaloNoiseTool,DoGaussRandomization=True)
## theCaloCellRandomizer=CaloCellRandomizer(DoGaussRandomization=True)
## ToolSvc += theCaloCellRandomizer
## from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#include "GaudiKernel/MsgStream.h"
......@@ -18,7 +18,6 @@
#include "CaloEvent/CaloCellContainer.h"
#include "CaloEvent/CaloClusterContainer.h"
#include "CaloEvent/CaloTopoTowerContainer.h"
#include "CaloInterface/ICalorimeterNoiseTool.h"
#include "CaloTopoTowerAlgorithm.h"
#include <string>
......@@ -59,8 +58,6 @@ CaloTopoTowerAlgorithm::CaloTopoTowerAlgorithm(const std::string& name,
// Noise Tool stuff
declareProperty("DefaultNoiseSigma", m_noiseSigma = 10.0);
declareProperty("UseCaloNoiseTool", m_useNoiseTool = false);
declareProperty("UsePileUpNoise", m_usePileUpNoise = true);
declareProperty("CellEnergySignificance", m_cellESignificanceThreshold = -1);
// Calo from which to use cells
......@@ -97,13 +94,6 @@ StatusCode CaloTopoTowerAlgorithm::initialize()
ATH_CHECK(m_towerContainerKey.initialize());
ATH_CHECK(m_newTowerContainerKey.initialize());
// Report some information regarding the noise tool
if ( m_useNoiseTool && m_usePileUpNoise) {
ATH_MSG_DEBUG( "Pile-Up Noise from Noise Tool "
<< " is selected! The noise sigma will be the"
<< " quadratic sum of the electronics noise and the pile up!" );
}
m_caloIndices.clear();
for ( unsigned int iCalos=0; iCalos< m_includedCalos.size(); iCalos++ )
{
......@@ -268,8 +258,6 @@ StatusCode CaloTopoTowerAlgorithm::execute (const EventContext& ctx) const
theTowers->SetUseCellWeights(m_useCellWeights);
// Noise tool stuff
theTowers->SetUseNoiseTool(m_useNoiseTool);
theTowers->SetUsePileUpNoise(m_usePileUpNoise);
theTowers->SetNoiseSigma(m_noiseSigma);
theTowers->SetCellESignificanceThreshold(m_cellESignificanceThreshold);
......
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef CALOREC_CALOTOPOTOWERALGORITHM_H
......@@ -87,8 +87,6 @@ class CaloTopoTowerAlgorithm : public AthReentrantAlgorithm
bool m_useCellWeights;
// Noise tool stuff
bool m_useNoiseTool;
bool m_usePileUpNoise;
float m_noiseSigma;
float m_cellESignificanceThreshold;
......
......@@ -66,7 +66,7 @@ namespace Ath {
DataObjIDPtrColl m_inputHandles;
DataObjIDPtrColl m_outputHandles;
std::vector< std::pair<IDynamicDataConsumer *,Gaudi::Algorithm *> > m_dynDataConsumer;
std::unordered_map< IDynamicDataConsumer *,std::vector<Gaudi::Algorithm *> > m_dynDataConsumer;
};
}
......
......@@ -68,7 +68,10 @@ namespace Ath {
[this](Gaudi::Algorithm *an_alg) {
IDynamicDataConsumer *a_dyn_data_consumer=dynamic_cast<IDynamicDataConsumer *>(an_alg);
if (a_dyn_data_consumer) {
m_dynDataConsumer.push_back(std::make_pair(a_dyn_data_consumer, an_alg));
std::vector<Gaudi::Algorithm *> &alg_list = m_dynDataConsumer[a_dyn_data_consumer];
if (std::find(alg_list.begin(),alg_list.end(),an_alg)==alg_list.end()) {
alg_list.push_back(an_alg);
}
}
// have to collect input and output handles because the sequence will only collect them after initialize
insertHandles(m_inputHandles, an_alg->inputHandles());
......@@ -79,7 +82,10 @@ namespace Ath {
auto tool_visitor = [this, an_alg](IAlgTool *alg_tool) {
IDynamicDataConsumer *a_dyn_data_consumer=dynamic_cast<IDynamicDataConsumer *>(alg_tool);
if (a_dyn_data_consumer) {
m_dynDataConsumer.push_back(std::make_pair(a_dyn_data_consumer, an_alg));
std::vector<Gaudi::Algorithm *> &alg_list = m_dynDataConsumer[a_dyn_data_consumer];
if (std::find(alg_list.begin(),alg_list.end(),an_alg)==alg_list.end()) {
alg_list.push_back(an_alg);
}
}
if (auto* tool_impl = dynamic_cast<AlgTool*>( alg_tool ); tool_impl) {
insertHandles(m_inputHandles, tool_impl->inputHandles());
......@@ -130,29 +136,32 @@ namespace Ath {
}
out << endmsg;
}
for (std::pair<IDynamicDataConsumer *,Gaudi::Algorithm *> &dyn_data_consumer : m_dynDataConsumer ) {
for (std::pair<IDynamicDataConsumer * const,std::vector<Gaudi::Algorithm *> > &dyn_data_consumer : m_dynDataConsumer ) {
std::vector<Gaudi::DataHandle *> tmp_new_input_handles;
std::vector<Gaudi::DataHandle *> tmp_new_output_handles;
bool ret = dyn_data_consumer.first->updateDataNeeds(input_data_in, output_data_in, tmp_new_input_handles, tmp_new_output_handles);
if (msgLvl(out,MSG::VERBOSE)) {
out << MSG::VERBOSE << " new data from " << dyn_data_consumer.second->name()
<< " i:" << tmp_new_input_handles.size()
out << MSG::VERBOSE << " new data for";
for (const Gaudi::Algorithm *parent_alg : dyn_data_consumer.second) {
out << " " << parent_alg->name();
}
out << " i:" << tmp_new_input_handles.size()
<< " o:" << tmp_new_output_handles.size()
<< endmsg;
}
updated |= ret;
if (ret) {
if (msgLvl(out,MSG::DEBUG)) {
if (Gaudi::Algorithm *an_alg = dynamic_cast<Gaudi::Algorithm *>(dyn_data_consumer.first); an_alg) {
if (Gaudi::Algorithm * const an_alg = dynamic_cast<Gaudi::Algorithm * const>(dyn_data_consumer.first); an_alg) {
out << MSG::DEBUG << an_alg->name() << " updated its data needs." << endmsg;
// DEBUG:
out << MSG::DEBUG << an_alg->name() << " inputs:";
for (const Gaudi::DataHandle *handle : an_alg->inputHandles()) {
out << " " << handle->fullKey();
}
out << endmsg;
for (const Gaudi::DataHandle *handle : an_alg->inputHandles()) {
out << " " << handle->fullKey();
}
out << endmsg;
}
else if (AlgTool *alg_tool = dynamic_cast<AlgTool *>(dyn_data_consumer.first); alg_tool) {
else if (AlgTool *alg_tool = dynamic_cast<AlgTool * const>(dyn_data_consumer.first); alg_tool) {
out << MSG::DEBUG << alg_tool->name() << " updated its data needs." << endmsg;
// DEBUG:
out << MSG::DEBUG << alg_tool->name() << " inputs:";
......@@ -166,20 +175,21 @@ namespace Ath {
}
}
}
Gaudi::Algorithm *parent_alg = dyn_data_consumer.second;
input_data_out.reserve(input_data_out.size()+tmp_new_input_handles.size());
for (Gaudi::DataHandle *a_handle : tmp_new_input_handles) {
parent_alg->addDependency(a_handle->fullKey(), Gaudi::DataHandle::Reader);
input_data_out.push_back(&(a_handle->fullKey()));
if (msgLvl(out,MSG::DEBUG)) out << MSG::DEBUG << " addDependency new input for " << parent_alg->name() << " "
<< a_handle->fullKey().className() << " / " << a_handle->objKey() << endmsg;
}
output_data_out.reserve(output_data_out.size()+tmp_new_output_handles.size());
for (Gaudi::DataHandle *a_handle : tmp_new_output_handles) {
parent_alg->addDependency(a_handle->fullKey(), Gaudi::DataHandle::Writer);
output_data_out.push_back(&(a_handle->fullKey()));
if (msgLvl(out,MSG::DEBUG)) out << MSG::DEBUG << " addDependency new output for " << parent_alg->name() << " "
<< a_handle->fullKey().className() << " / " << a_handle->objKey() << endmsg;
for (Gaudi::Algorithm *parent_alg : dyn_data_consumer.second) {
input_data_out.reserve(input_data_out.size()+tmp_new_input_handles.size());
for (Gaudi::DataHandle *a_handle : tmp_new_input_handles) {
parent_alg->addDependency(a_handle->fullKey(), Gaudi::DataHandle::Reader);
input_data_out.push_back(&(a_handle->fullKey()));
if (msgLvl(out,MSG::DEBUG)) out << MSG::DEBUG << " addDependency new input for " << parent_alg->name() << " "
<< a_handle->fullKey().className() << " / " << a_handle->objKey() << endmsg;
}
output_data_out.reserve(output_data_out.size()+tmp_new_output_handles.size());
for (Gaudi::DataHandle *a_handle : tmp_new_output_handles) {
parent_alg->addDependency(a_handle->fullKey(), Gaudi::DataHandle::Writer);
output_data_out.push_back(&(a_handle->fullKey()));
if (msgLvl(out,MSG::DEBUG)) out << MSG::DEBUG << " addDependency new output for " << parent_alg->name() << " "
<< a_handle->fullKey().className() << " / " << a_handle->objKey() << endmsg;
}
}
}
return updated;
......
......@@ -48,15 +48,16 @@ def _setupAtlasThreadedJob():
topSequence += SGInputLoader (FailIfNoProxy = False)
AlgScheduler.setDataLoaderAlg ('SGInputLoader' )
if theApp._opts.mtes :
# Multi-threaded Event Service
if (theApp._opts.mtes or jps.ConcurrencyFlags.NumProcs()>0):
# Either multi-threaded Event Service or hybrid MP+MT
from AthenaServices.AthenaServicesConf import AthenaMtesEventLoopMgr
svcMgr += AthenaMtesEventLoopMgr()
svcMgr.AthenaMtesEventLoopMgr.WhiteboardSvc = "EventDataSvc"
svcMgr.AthenaMtesEventLoopMgr.SchedulerSvc = AlgScheduler.getScheduler().getName()
if theApp._opts.mtes:
svcMgr.AthenaMtesEventLoopMgr.EventRangeChannel = theApp._opts.mtes_channel
theApp.EventLoop = "AthenaMtesEventLoopMgr"
else:
from AthenaServices.AthenaServicesConf import AthenaHiveEventLoopMgr
......
Willing to acquire file bootstrap.pkl from
/afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/share/bootstrap.pkl
copy bootstrap.pkl
... Read 2 items from python pickle file: bootstrap.pkl
... Read 2 items from python pickle file: bootstrap_test.pkl
... Read defaultdict from bootstrap.pkl
... Read 27 items from python pickle file: bootstrap.pkl
... Read defaultdict from bootstrap_test.pkl
... Read 27 items from python pickle file: bootstrap_test.pkl
Step 1: reference file #components: 27
Step 2: file to check #components: 27
Willing to acquire file bootstrap_threaded.pkl from
/afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/share/bootstrap_threaded.pkl
copy bootstrap_threaded.pkl
... Read 2 items from python pickle file: bootstrap_threaded.pkl
... Read 2 items from python pickle file: bootstrap_threaded_test.pkl
... Read defaultdict from bootstrap_threaded.pkl
... Read 34 items from python pickle file: bootstrap_threaded.pkl
... Read defaultdict from bootstrap_threaded_test.pkl
... Read 34 items from python pickle file: bootstrap_threaded_test.pkl
Step 1: reference file #components: 34
Step 2: file to check #components: 34
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
import pickle
import logging
......@@ -85,6 +85,8 @@ def loadConfigFile(fname, args) -> Dict:
cfg, (collections.defaultdict, dict)
): # old configuration
conf.update(cfg)
conf.update(pickle.load(input_file)) # special services
# FIXME: there's a third pickle object with python components
elif isinstance(cfg, (collections.Sequence)):
for c in cfg:
conf.update(c)
......
/*
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef ATHENAKERNEL_IHYBRIDPROCESSORHELPER_H
#define ATHENAKERNEL_IHYBRIDPROCESSORHELPER_H
/**
* @file IHybridProcessorHelper.h
* @class IHybridProcessorHelper
* @brief Helper interface for implementing hybrid MP+MT.
Used by the Hybrid Shared Event Queue Consumer MP tool
**/
class IHybridProcessorHelper {
public:
virtual void resetAppReturnCode() = 0;
virtual void setCurrentEventNum(int num) = 0;
virtual bool terminateLoop() = 0;
virtual int drainScheduler(int& finishedEvts, bool report) = 0;
};
#endif
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
#-----Python imports---#
import os, sys, shutil
......@@ -118,12 +118,10 @@ class MpEvtLoopMgr(AthMpEvtLoopMgr):
ChunkSize=chunk_size) ]
if (self.nThreads >= 1):
if(pileup):
raise Exception('Running pileup digitization in mixed MP+MT currently not supported')
from AthenaMPTools.AthenaMPToolsConf import SharedHiveEvtQueueConsumer
self.Tools += [ SharedHiveEvtQueueConsumer(UseSharedReader=use_shared_reader,
UseSharedWriter=use_shared_writer,
IsPileup=pileup,
IsRoundRobin=(strategy=='RoundRobin'),
EventsBeforeFork=events_before_fork,
self.Tools += [ SharedHiveEvtQueueConsumer(EventsBeforeFork=events_before_fork,
Debug=debug_worker) ]
else:
from AthenaMPTools.AthenaMPToolsConf import SharedEvtQueueConsumer
......
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#include "SharedHiveEvtQueueConsumer.h"
......@@ -7,10 +7,8 @@
#include "AthenaInterprocess/ProcessGroup.h"
#include "AthenaInterprocess/Incidents.h"
#include "AthenaKernel/IEventSeek.h"
#include "AthenaKernel/IEvtSelectorSeek.h"
#include "AthenaKernel/IEventShare.h"
#include "AthenaKernel/IDataShare.h"
#include "AthenaKernel/IHybridProcessorHelper.h"
#include "GaudiKernel/IEvtSelector.h"
#include "GaudiKernel/IIoComponentMgr.h"
#include "GaudiKernel/IFileMgr.h"
......@@ -40,31 +38,20 @@ namespace SharedHiveEvtQueueConsumer_d {
}
SharedHiveEvtQueueConsumer::SharedHiveEvtQueueConsumer(const std::string& type
, const std::string& name
, const IInterface* parent)
, const std::string& name
, const IInterface* parent)
: AthenaMPToolBase(type,name,parent)
, m_useSharedReader(false)
, m_useSharedWriter(false)
, m_isPileup(false)
, m_isRoundRobin(false)
, m_nEventsBeforeFork(0)
, m_debug(false)
, m_rankId(-1)
, m_chronoStatSvc("ChronoStatSvc", name)
, m_evtSeek(0)
, m_evtSelSeek(0)
, m_evtContext(0)
, m_evtShare(0)
, m_dataShare(0)
, m_sharedEventQueue(0)
, m_sharedRankQueue(0)
{
declareInterface<IAthenaMPTool>(this);
declareProperty("UseSharedReader",m_useSharedReader);
declareProperty("UseSharedWriter",m_useSharedWriter);
declareProperty("IsPileup",m_isPileup);
declareProperty("IsRoundRobin",m_isRoundRobin);
declareProperty("EventsBeforeFork",m_nEventsBeforeFork);
declareProperty("Debug", m_debug);
......@@ -82,60 +69,19 @@ SharedHiveEvtQueueConsumer::~SharedHiveEvtQueueConsumer()
StatusCode SharedHiveEvtQueueConsumer::initialize()
{
ATH_MSG_DEBUG("In initialize");
if(m_isPileup) {
m_evtProcessor = ServiceHandle<IEventProcessor>("PileUpEventLoopMgr",name());
ATH_MSG_INFO("The job running in pileup mode");
}
else {
ATH_MSG_INFO("The job running in non-pileup mode");
}
StatusCode sc = AthenaMPToolBase::initialize();
if(!sc.isSuccess())
return sc;
// For pile-up jobs use event loop manager for seeking
// otherwise use event selector
if(m_isPileup) {
m_evtSeek = dynamic_cast<IEventSeek*>(m_evtProcessor.operator->());
if(!m_evtSeek) {
ATH_MSG_ERROR("Unable to dyn-cast PileUpEventLoopMgr to IEventSeek");
return StatusCode::FAILURE;
}
}
else {
sc = serviceLocator()->service(m_evtSelName,m_evtSelSeek);
if(sc.isFailure() || m_evtSelSeek==0) {
ATH_MSG_ERROR("Error retrieving IEvtSelectorSeek");
return StatusCode::FAILURE;
}
ATH_CHECK( evtSelector()->createContext (m_evtContext) );
}
sc = serviceLocator()->service(m_evtSelName,m_evtShare);
if(sc.isFailure() || m_evtShare==0) {
if(m_useSharedReader) {
ATH_MSG_ERROR("Error retrieving IEventShare");
return StatusCode::FAILURE;
}
msg(MSG::INFO) << "Could not retrieve IEventShare" << endmsg;
}
IConversionSvc* cnvSvc = 0;
sc = serviceLocator()->service("AthenaPoolCnvSvc",cnvSvc);
m_dataShare = dynamic_cast<IDataShare*>(cnvSvc);
if(sc.isFailure() || m_dataShare==0) {
if(m_useSharedWriter) {
msg(MSG::ERROR) << "Error retrieving AthenaPoolCnvSvc " << cnvSvc << endmsg;
return StatusCode::FAILURE;
}
}
sc = m_chronoStatSvc.retrieve();
if (!sc.isSuccess()) {
ATH_MSG_ERROR("Cannot get ChronoStatSvc.");
sc = serviceLocator()->service(m_evtSelName,m_evtSelSeek);
if(sc.isFailure() || m_evtSelSeek==0) {
ATH_MSG_ERROR("Error retrieving IEvtSelectorSeek");
return StatusCode::FAILURE;
}
ATH_CHECK( evtSelector()->createContext (m_evtContext) );
ATH_CHECK(m_chronoStatSvc.retrieve());
return StatusCode::SUCCESS;
}
......@@ -285,7 +231,6 @@ SharedHiveEvtQueueConsumer::subProcessLogs(std::vector<std::string>& filenames)
std::unique_ptr<AthenaInterprocess::ScheduledWork>
SharedHiveEvtQueueConsumer::bootstrap_func()
{
if (m_debug) {
ATH_MSG_INFO("Bootstrap worker PID " << getpid() << " - waiting for SIGUSR1");
sigset_t mask, oldmask;
......@@ -369,28 +314,7 @@ SharedHiveEvtQueueConsumer::bootstrap_func()
return outwork;
ATH_MSG_INFO("File descriptors re-opened in the AthenaMP event worker PID=" << getpid());
// ________________________ Make Shared Reader/Writer Client ________________________
if(m_useSharedReader && m_evtShare) {
if(!m_evtShare->makeClient(m_rankId).isSuccess()) {
ATH_MSG_ERROR("Failed to make the event selector a share client");
return outwork;
} else {
ATH_MSG_DEBUG("Successfully made the event selector a share client");
}
}
if(m_useSharedWriter && m_dataShare) {
IProperty* propertyServer = dynamic_cast<IProperty*>(m_dataShare);
if (propertyServer==0 || propertyServer->setProperty("MakeStreamingToolClient", m_rankId + 1).isFailure()) {
ATH_MSG_ERROR("Could not change AthenaPoolCnvSvc MakeClient Property");
return outwork;
} else {
ATH_MSG_DEBUG("Successfully made the conversion service a share client");
}
}
// ________________________ I/O reinit ________________________
if(!m_ioMgr->io_reinitialize().isSuccess()) {
ATH_MSG_ERROR("Failed to reinitialize I/O");
......@@ -412,24 +336,6 @@ SharedHiveEvtQueueConsumer::bootstrap_func()
ATH_MSG_DEBUG("Successfully restarted the event selector");
}
// ________________________ Restart background event selectors in pileup jobs ________________________
if(m_isPileup) {
const std::list<IService*>& service_list = serviceLocator()->getServices();
std::list<IService*>::const_iterator itSvc = service_list.begin(),
itSvcLast = service_list.end();
for(;itSvc!=itSvcLast;++itSvc) {
IEvtSelector* evtsel = dynamic_cast<IEvtSelector*>(*itSvc);
if(evtsel && (evtsel != m_evtSelector)) {
if((*itSvc)->start().isSuccess())
ATH_MSG_DEBUG("Restarted event selector " << (*itSvc)->name());
else {
ATH_MSG_ERROR("Failed to restart event selector " << (*itSvc)->name());
return outwork;
}
}
}
}
// ________________________ Worker dir: chdir ________________________
if(chdir(worker_rundir.string().c_str())==-1) {
ATH_MSG_ERROR("Failed to chdir to " << worker_rundir.string());
......@@ -446,14 +352,13 @@ SharedHiveEvtQueueConsumer::bootstrap_func()
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
std::unique_ptr<AthenaInterprocess::ScheduledWork>
SharedHiveEvtQueueConsumer::exec_func()
std::unique_ptr<AthenaInterprocess::ScheduledWork> SharedHiveEvtQueueConsumer::exec_func()
{
ATH_MSG_INFO("Exec function in the AthenaMP worker PID=" << getpid());
bool all_ok(true);
if (! initHive().isSuccess()) {
if (!initHive().isSuccess()) {
ATH_MSG_FATAL("unable to initialize Hive");
all_ok = false;
}
......@@ -476,141 +381,118 @@ SharedHiveEvtQueueConsumer::exec_func()
}
}
// ________________________ This is needed only for PileUp jobs __________________________________
// **
// If either EventsBeforeFork or SkipEvents is nonzero, first we need to advance the event selector
// by EventsBeforeFork+SkipEvents and only after that start seeking on the PileUpEventLoopMgr
// **
if(m_isPileup && all_ok) {
if (!m_evtSelSeek) {
StatusCode sc = serviceLocator()->service(m_evtSelName,m_evtSelSeek);
if(sc.isFailure() || m_evtSelSeek==0) {
ATH_MSG_ERROR("Error retrieving Event Selector with IEvtSelectorSeek interface for PileUp job");
all_ok = false;
}
if (evtSelector()->createContext (m_evtContext).isFailure()) {
ATH_MSG_ERROR("Error creating IEventSelector context.");
all_ok = false;
}
}
if (all_ok) {
if((m_nEventsBeforeFork+skipEvents)
&& m_evtSelSeek->seek(*m_evtContext, m_nEventsBeforeFork+skipEvents).isFailure()) {
ATH_MSG_ERROR("Unable to seek to " << m_nEventsBeforeFork+skipEvents);
all_ok = false;
}
}
IHybridProcessorHelper* hybridHelper = dynamic_cast<IHybridProcessorHelper*>(m_evtProcessor.get());
if(!hybridHelper) {
ATH_MSG_FATAL("Failed to acquire IHybridProcessorHelper interface");
all_ok = false;
}
// ________________________ This is needed only for PileUp jobs __________________________________
// Reset the application return code.
hybridHelper->resetAppReturnCode();
int finishedEvts =0;
int createdEvts =0;
long intmask = pow(0x100,sizeof(int))-1; // Mask for decoding event number from the value posted to the queue
int nEvt(m_nEventsBeforeFork);
int nEventsProcessed(0);
long evtnumAndChunk(0);
unsigned evtCounter(0);
// unsigned evtCounter(0);
int evtnum(0), chunkSize(1);
// For the round robin we need to know the maximum number of events for this job
if(m_isRoundRobin) {
evtnumAndChunk = 1;
while(evtnumAndChunk>0) {
if(!m_sharedEventQueue->try_receive_basic<long>(evtnumAndChunk)) {
usleep(1000);
}
}
evtnumAndChunk *= -1;
ATH_MSG_INFO("Starting loop on events");
StatusCode sc(StatusCode::SUCCESS,true);
while(!m_sharedEventQueue->try_receive_basic<long>(evtnumAndChunk)) {
ATH_MSG_DEBUG("Event queue is empty");
usleep(1000);
}
if(all_ok) {
while(true) {
if(m_isRoundRobin) {
evtnum = skipEvents + m_nprocs*evtCounter + m_rankId;
if(evtnum>=evtnumAndChunk+skipEvents) {
break;
}
evtCounter++;
bool loop_ended = (evtnumAndChunk<0);
if(!loop_ended) {
ATH_MSG_DEBUG("Received value from the queue 0x" << std::hex << evtnumAndChunk << std::dec);
chunkSize = evtnumAndChunk >> (sizeof(int)*8);
evtnum = evtnumAndChunk & intmask;
ATH_MSG_INFO("Received from the queue: event num=" << evtnum << " chunk size=" << chunkSize);
hybridHelper->setCurrentEventNum(++evtnum);
}
bool no_more_events = false;
while(!loop_ended) {
ATH_MSG_DEBUG(" -> createdEvts: " << createdEvts);
if(!hybridHelper->terminateLoop() // No scheduled loop termination
&& !no_more_events // We are not yet done getting events
&& m_schedulerSvc->freeSlots()>0) { // There are still free slots in the scheduler
ATH_MSG_DEBUG("createdEvts: " << createdEvts << ", freeslots: " << m_schedulerSvc->freeSlots());
auto ctx = m_evtProcessor->createEventContext();
if(!ctx.valid()) {
sc = StatusCode::FAILURE;
}
else {
if(!m_sharedEventQueue->try_receive_basic<long>(evtnumAndChunk)) {
// The event queue is empty, but we should check whether there are more events to come or not
ATH_MSG_DEBUG("Event queue is empty");
usleep(1000);
continue;
}
if(evtnumAndChunk<=0) {
evtnumAndChunk *= -1;
ATH_MSG_DEBUG("No more events are expected. The total number of events for this job = " << evtnumAndChunk);
break;
}
while (m_schedulerSvc->freeSlots() < 1) {
ATH_MSG_DEBUG("waiting for a free scheduler slot");
usleep(1000000);
}
sc = m_evtProcessor->executeEvent(std::move(ctx));
}
ATH_MSG_DEBUG("Received value from the queue 0x" << std::hex << evtnumAndChunk << std::dec);
chunkSize = evtnumAndChunk >> (sizeof(int)*8);
evtnum = evtnumAndChunk & intmask;
ATH_MSG_INFO("Received from the queue: event num=" << evtnum << " chunk size=" << chunkSize);
if (sc.isFailure()) {
ATH_MSG_ERROR("Terminating event processing loop due to errors");
loop_ended = true;
}
nEvt+=chunkSize;
StatusCode sc;
if(m_useSharedReader) {
sc = m_evtShare->share(evtnum);
if(sc.isFailure()){
ATH_MSG_ERROR("Unable to share " << evtnum);
all_ok=false;
break;
} else {
ATH_MSG_INFO("Share of " << evtnum << " succeeded");
else {
++createdEvts;
if(--chunkSize==0) {
// Fetch next chunk
while(!m_sharedEventQueue->try_receive_basic<long>(evtnumAndChunk)) {
ATH_MSG_DEBUG("Event queue is empty");
usleep(1000);
}
if(evtnumAndChunk<0) {
no_more_events = true;
evtnumAndChunk *= -1;
ATH_MSG_DEBUG("No more events are expected. The total number of events for this job = " << evtnumAndChunk);
}
else {
ATH_MSG_DEBUG("Received value from the queue 0x" << std::hex << evtnumAndChunk << std::dec);
chunkSize = evtnumAndChunk >> (sizeof(int)*8);
evtnum = evtnumAndChunk & intmask;
ATH_MSG_INFO("Received from the queue: event num=" << evtnum << " chunk size=" << chunkSize);
}
}
} else {
m_chronoStatSvc->chronoStart("AthenaMP_seek");
if (m_evtSeek) {
sc=m_evtSeek->seek(evtnum);
}
else {
sc=m_evtSelSeek->seek(*m_evtContext, evtnum);
}
if(sc.isFailure()){
ATH_MSG_ERROR("Unable to seek to " << evtnum);
all_ok=false;
break;
} else {
ATH_MSG_INFO("Seek to " << evtnum << " succeeded");
// Advance to the next event
if(!no_more_events) {
hybridHelper->setCurrentEventNum(++evtnum);
}
m_chronoStatSvc->chronoStop("AthenaMP_seek");
}
m_chronoStatSvc->chronoStart("AthenaMP_nextEvent");
sc = m_evtProcessor->nextEvent(chunkSize);
nEventsProcessed += chunkSize;
if(sc.isFailure()){
if(chunkSize==1)
ATH_MSG_ERROR("Unable to process event " << evtnum);
else
ATH_MSG_ERROR("Unable to process the chunk (" << evtnum << "," << evtnum+chunkSize-1 << ")");
all_ok=false;
break;
}
else {
// all the events were created but not all finished or the slots were
// all busy: the scheduler should finish its job
ATH_MSG_DEBUG("Draining the scheduler");
// Pull out of the scheduler the finished events
int ir = hybridHelper->drainScheduler(finishedEvts,true);
if(ir < 0) {
// some sort of error draining scheduler;
loop_ended = true;
sc = StatusCode::FAILURE;
}
else if(ir == 0) {
// no more events in scheduler
if(no_more_events) {
// We are done
loop_ended = true;
sc = StatusCode::SUCCESS;
}
}
else {
// keep going!
}
m_chronoStatSvc->chronoStop("AthenaMP_nextEvent");
}
}
} // end main loop on finished events
if(all_ok) {
if(m_evtProcessor->executeRun(0).isFailure()) {
ATH_MSG_ERROR("Could not finalize the Run");
all_ok=false;
} else {
StatusCode sc;
if (m_evtSeek) {
sc = m_evtSeek->seek(evtnumAndChunk+skipEvents);
}
else {
sc = m_evtSelSeek->seek(*m_evtContext, evtnumAndChunk+skipEvents);
}
if(sc.isFailure()) {
if(m_evtSelSeek->seek(*m_evtContext, evtnumAndChunk+skipEvents).isFailure()) {
ATH_MSG_DEBUG("Seek past maxevt to " << evtnumAndChunk+skipEvents << " returned failure. As expected...");
}
}
......@@ -624,7 +506,7 @@ SharedHiveEvtQueueConsumer::exec_func()
*(int*)(outdata) = (all_ok?0:1); // Error code: for now use 0 success, 1 failure
AthenaMPToolBase::Func_Flag func = AthenaMPToolBase::FUNC_EXEC;
memcpy((char*)outdata+sizeof(int),&func,sizeof(func));
memcpy((char*)outdata+sizeof(int)+sizeof(func),&nEventsProcessed,sizeof(int));
memcpy((char*)outdata+sizeof(int)+sizeof(func),&createdEvts,sizeof(int));
outwork->data = outdata;
outwork->size = outsize;
......@@ -753,7 +635,7 @@ SharedHiveEvtQueueConsumer::initHive() {
}
}
m_evtProcessor = ServiceHandle<IEventProcessor>("AthenaHiveEventLoopMgr",name());
m_evtProcessor = ServiceHandle<IEventProcessor>("AthenaMtesEventLoopMgr",name());
if (m_evtProcessor.retrieve().isFailure()) {
ATH_MSG_ERROR("could not setup " << m_evtProcessor.typeAndName());
......
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef ATHENAMPTOOLS_SHAREDHIVEEVTQUEUECONSUMER_H
......@@ -12,10 +12,7 @@
#include "GaudiKernel/IScheduler.h"
#include "GaudiKernel/IEvtSelector.h"
class IEventSeek;
class IEvtSelectorSeek;
class IEventShare;
class IDataShare;
class IChronoStatSvc;
class SharedHiveEvtQueueConsumer final : public AthenaMPToolBase
......@@ -56,21 +53,14 @@ class SharedHiveEvtQueueConsumer final : public AthenaMPToolBase
int decodeProcessResult(const AthenaInterprocess::ProcessResult* presult, bool doFinalize);
// Properties
bool m_useSharedReader; // Work in pair with a SharedReader
bool m_useSharedWriter; // Work in pair with a SharedWriter
bool m_isPileup; // Are we doing pile-up digitization?
bool m_isRoundRobin; // Are we running in the "reproducible mode"?
int m_nEventsBeforeFork;
bool m_debug;
int m_rankId; // Each worker has its own unique RankID from the range (0,...,m_nprocs-1)
ServiceHandle<IChronoStatSvc> m_chronoStatSvc;
IEventSeek* m_evtSeek;
IEvtSelectorSeek* m_evtSelSeek;
IEvtSelector::Context* m_evtContext;
IEventShare* m_evtShare;
IDataShare* m_dataShare;
AthenaInterprocess::SharedQueue* m_sharedEventQueue;
AthenaInterprocess::SharedQueue* m_sharedRankQueue;
......
......@@ -717,14 +717,16 @@ StatusCode AthenaMtesEventLoopMgr::stop()
}
StatusCode AthenaMtesEventLoopMgr::nextEvent(int /*maxevt*/)
StatusCode AthenaMtesEventLoopMgr::nextEvent(int maxevt)
{
if(maxevt==0) return StatusCode::SUCCESS;
yampl::ISocketFactory* socketFactory = new yampl::SocketFactory();
// Create a socket to communicate with the Pilot
yampl::ISocket* socket2Pilot = socketFactory->createClientSocket(yampl::Channel(m_eventRangeChannel.value(),yampl::LOCAL),yampl::MOVE_DATA);
m_socket = socketFactory->createClientSocket(yampl::Channel(m_eventRangeChannel.value(),yampl::LOCAL),yampl::MOVE_DATA);
// Reset the application return code.
Gaudi::setAppReturnCode(m_appMgrProperty, Gaudi::ReturnCode::Success, true).ignore();
resetAppReturnCode();
int finishedEvts =0;
int createdEvts =0;
......@@ -740,7 +742,7 @@ StatusCode AthenaMtesEventLoopMgr::nextEvent(int /*maxevt*/)
std::unique_ptr<RangeStruct> range;
while(!range) {
range = getNextRange(socket2Pilot);
range = getNextRange(m_socket);
usleep(1000);
}
......@@ -782,7 +784,7 @@ StatusCode AthenaMtesEventLoopMgr::nextEvent(int /*maxevt*/)
// Fetch next event range
range.reset();
while(!range) {
range = getNextRange(socket2Pilot);
range = getNextRange(m_socket);
usleep(1000);
}
if(range->eventRangeID.empty()) {
......@@ -803,7 +805,7 @@ StatusCode AthenaMtesEventLoopMgr::nextEvent(int /*maxevt*/)
debug() << "Draining the scheduler" << endmsg;
// Pull out of the scheduler the finished events
int ir = drainScheduler(finishedEvts,socket2Pilot);
int ir = drainScheduler(finishedEvts,true);
if(ir < 0) {
// some sort of error draining scheduler;
loop_ended = true;
......@@ -825,7 +827,8 @@ StatusCode AthenaMtesEventLoopMgr::nextEvent(int /*maxevt*/)
info() << "---> Loop Finished (seconds): " << secsFromStart() <<endmsg;
delete socket2Pilot;
delete m_socket;
m_socket=nullptr;
delete socketFactory;
return sc;
}
......@@ -1204,10 +1207,22 @@ EventContext AthenaMtesEventLoopMgr::createEventContext() {
return ctx;
}
void AthenaMtesEventLoopMgr::resetAppReturnCode()
{
Gaudi::setAppReturnCode(m_appMgrProperty, Gaudi::ReturnCode::Success, true).ignore();
}
void AthenaMtesEventLoopMgr::setCurrentEventNum(int num) {
m_currentEvntNum = num;
}
bool AthenaMtesEventLoopMgr::terminateLoop() {
return m_terminateLoop;
}
//---------------------------------------------------------------------------
int
AthenaMtesEventLoopMgr::drainScheduler(int& finishedEvts,yampl::ISocket* socket){
AthenaMtesEventLoopMgr::drainScheduler(int& finishedEvts,bool report){
StatusCode sc(StatusCode::SUCCESS);
......@@ -1273,20 +1288,23 @@ AthenaMtesEventLoopMgr::drainScheduler(int& finishedEvts,yampl::ISocket* socket)
// Some code still needs global context in addition to that passed in the incident
Gaudi::Hive::setCurrentContext( *thisFinishedEvtContext );
info() << "Firing EndProcessing" << endmsg;
m_incidentSvc->fireIncident(Incident(name(), IncidentType::EndProcessing, *thisFinishedEvtContext ));
// If we completed an event range, then report it to the pilot
OutputStreamSequencerSvc::RangeReport_ptr rangeReport = m_outSeqSvc->getRangeReport();
if(rangeReport) {
std::string outputFileReport = rangeReport->second + std::string(",ID:")
+ rangeReport->first + std::string(",CPU:N/A,WALL:N/A");
if( not m_inTestMode ) {
// In standalone test mode there is no pilot to talk to
void* message2pilot = malloc(outputFileReport.size());
memcpy(message2pilot,outputFileReport.data(),outputFileReport.size());
socket->send(message2pilot,outputFileReport.size());
if(report) {
// If we completed an event range, then report it to the pilot
OutputStreamSequencerSvc::RangeReport_ptr rangeReport = m_outSeqSvc->getRangeReport();
if(rangeReport) {
std::string outputFileReport = rangeReport->second + std::string(",ID:")
+ rangeReport->first + std::string(",CPU:N/A,WALL:N/A");
if( not m_inTestMode ) {
// In standalone test mode there is no pilot to talk to
void* message2pilot = malloc(outputFileReport.size());
memcpy(message2pilot,outputFileReport.data(),outputFileReport.size());
m_socket->send(message2pilot,outputFileReport.size());
}
info() << "Reported the output " << outputFileReport << endmsg;
}
info() << "Reported the output " << outputFileReport << endmsg;
}
debug() << "Clearing slot " << thisFinishedEvtContext->slot()
......
// -*- C++ -*-
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
#ifndef ATHENASERVICES_ATHENAMTESEVENTLOOPMGR_H
......@@ -23,6 +23,7 @@
#include "AthenaKernel/IEventSeek.h"
#include "AthenaKernel/ICollectionSize.h"
#include "AthenaKernel/IConditionsCleanerSvc.h"
#include "AthenaKernel/IHybridProcessorHelper.h"
#include "StoreGate/ActiveStoreSvc.h"
#include <memory>
......@@ -52,6 +53,7 @@ class AthenaMtesEventLoopMgr
: virtual public IEventSeek,
virtual public ICollectionSize,
virtual public IIncidentListener,
virtual public IHybridProcessorHelper,
public MinimalEventLoopMgr,
public Athena::TimeoutMaster
{
......@@ -167,10 +169,6 @@ protected:
StatusCode clearWBSlot(int evtSlot);
/// Declare the root address of the event
int declareEventRootAddress(EventContext&);
/// Create event context
virtual EventContext createEventContext() override;
/// Drain the scheduler from all actions that may be queued
int drainScheduler(int& finishedEvents,yampl::ISocket* socket);
/// Instance of the incident listener waiting for AbortEvent.
SmartIF< IIncidentListener > m_abortEventListener;
/// Name of the scheduler to be used
......@@ -201,6 +199,8 @@ public:
virtual StatusCode finalize() override;
/// implementation of IAppMgrUI::nextEvent. maxevt==0 returns immediately
virtual StatusCode nextEvent(int maxevt) override;
/// implementation of IEventProcessor::createEventContext()
virtual EventContext createEventContext() override;
/// implementation of IEventProcessor::executeEvent(void* par)
virtual StatusCode executeEvent( EventContext&& ctx ) override;
/// implementation of IEventProcessor::executeRun(int maxevt)
......@@ -220,6 +220,15 @@ public:
/// IIncidentListenet interfaces
virtual void handle(const Incident& inc) override;
/// Reset the application return code
virtual void resetAppReturnCode() override;
virtual void setCurrentEventNum(int num) override;
virtual bool terminateLoop() override;
/// Drain the scheduler from all actions that may be queued
virtual int drainScheduler(int& finishedEvents, bool report) override;
/// interface dispatcher
virtual StatusCode queryInterface( const InterfaceID& riid,
void** ppvInterface ) override;
......@@ -294,6 +303,9 @@ private:
// Hopefully a temporary measurement. For the time being we cannot
// support event ranges from different input files.
std::string m_pfn{""};
// For the event service running:
yampl::ISocket* m_socket{nullptr};
};
#endif // ATHENASERVICES_ATHENAHIVEEVENTLOOPMGR_H