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
  • 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
  • stefania/athena
  • britzger/athena
  • derendar/athena
  • hanl/athena
  • gipezzul/athena
  • epender/athena
  • robertma/athena
  • mmineev/athena
  • phkoenig/athena
  • gnn4itkteam/athena
  • pleier/athena
  • nguseyno/athena
  • avasyuko/athena
  • nekumari/athena
  • gtateno/athena
  • aburke/athena
  • pavel/athena
  • jiling/athena
  • jcordeir/athena
  • reznicek/athena
  • lmcelhin/athena
  • herrmant/athena
  • averbyts/athena
  • xuh/athena
  • ewallin/athena
  • tvazquez/athena
  • tnommens/athena
  • gascott/athena
  • shbansal/athena
  • ccaminch/athena
  • yuhui/athena
  • lserkin/athena
  • corentin/athena
  • berkeleylab/CharmPhysics/athena
  • cdiez/athena
  • miochoa/athena
  • cpollard/athena
  • hfox/athena
  • msykora/athena
  • madurano/athena_gittutorial
  • ckirfel/athena
  • calfayan/athena
  • jakoubek/athena
  • kjohns/athena
  • atlas/athena
  • toshi/athena
  • fwinkl/athena
  • wlampl/athena
  • aundrus/athena
  • akraszna/athena
  • dguest/athena
  • rhauser/athena
  • phwindis/athena
  • arnaez/athena
  • karolos/athena
  • baines/athena
  • mmuskinj/athena
  • jmontejo/athena
  • psommer/athena
  • bwynne/athena
  • damazio/athena
  • tstreble/athena
  • okuprash/athena
  • ATLAS-EGamma/athena
  • yuxu/athena
  • smh/athena
  • toyamaza/athena
  • gemmeren/athena
  • turra/athena
  • ssnyder/athena
  • tdado/athena
  • wwalko/athena
  • tadej/athena
  • emoyse/athena
  • abuckley/athena
  • pgadow/athena
  • jmasik/athena
  • solodkov/athena
  • pjacka/athena
  • rbielski/athena
  • tamartin/athena
  • tbold/athena
  • mhodgkin/athena
  • dcasper/athena
  • nstyles/athena
  • mrybar/athena
  • mark/athena
  • ychiu/athena
  • rbianchi/athena
  • graemes/athena
  • christos/athena
  • sshaw/athena
  • yoyamagu/athena
  • nikiforo/athena
  • shlomit/athena
  • hartj/athena
  • fpastore/athena
  • jcatmore/athena
  • ebuschma/athena
  • harkusha/athena
  • mvozak/athena
  • gunal/athena
  • leggett/athena
  • ewelina/athena
  • martindl/athena
  • ligang/athena
  • almaloiz/athena
  • sroe/athena
  • tlari/athena
  • lfiorini/athena
  • susinha/athena
  • longjon/athena
  • filthaut/athena
  • jichen/athena
  • peter/athena
  • cchan/athena
  • cvarni/athena
  • cshimmin/athena
  • mihuebne/athena
  • wleight/athena
  • jsallen/athena-high-pt-ms-jets
  • nwarrack/athena
  • dkar/athena
  • alfroch/athena
  • chays/athena
  • mstamenk/athena
  • dtovey/athena
  • okepka/athena
  • sgeorge/athena
  • tkohno/athena
  • janovak/athena
  • yafu/athena
  • wiedenat/athena
  • mgignac/athena
  • khoo/athena
  • maklein/athena
  • cohm/athena
  • tmkrtchy/athena
  • omajersk/athena
  • dbakshig/athena
  • gingrich/athena
  • schaarsc/athena
  • fernando/athena
  • ponyisi/athena
  • scheiric/athena
  • ravinab/athena
  • pleskot/athena
  • ekuwertz/athena
  • jobalz/athena
  • ebergeas/athena
  • xai/athena
  • ekasimi/athena
  • achishol/athena
  • afaulkne/athena
  • alaurier/athena
  • merrenst/athena
  • mtoscani/athena
  • goetz/athena
  • krumnack/athena
  • dpopov/athena
  • mdanning/athena
  • egramsta/athena
  • hye/athena
  • astruebi/athena
  • efilmer/athena
  • jpanduro/athena
  • clseitz/athena
  • ssarikay/athena
  • hyamauch/athena
  • bmindur/athena
  • shanisch/athena
  • ncalace/athena
  • ppostola/athena
  • rcoelhol/athena
  • stelzer/athena
  • aad/athena
  • gpanizzo/athena
  • ssottoco/athena
  • turnerm/athena
  • sutt/athena
  • nkrengel/athena
  • cmcginn/athena
  • rkopelia/athena
  • bernius/athena
  • stsuno/athena
  • tsulaia/athena
  • yunju/athena
  • vcairo/athena
  • ldc/athena
  • jmacdona/athena
  • jdandoy/athena
  • mbandier/athena
  • mehlhase/athena
  • jufische/athena
  • nasbah/athena
  • dzanzi/athena
  • kzoch/athena
  • amete/athena
  • kwhalen/athena
  • bmorgan/athena
  • rcarney/athena
  • msaimper/athena
  • hhibi/athena
  • williams/athena
  • shhirose/athena
  • kkohler/athena
  • cheidegg/athena
  • heng/athena
  • cdeutsch/athena
  • ynoguchi/athena
  • coccaro/athena
  • loch/athena
  • campanel/athena
  • wbalunas/athena
  • nova/athena
  • hoide/athena
  • todorova/athena
  • xju/athena
  • yuchou/athena
  • sjiggins/athena
  • hrussell/athena
  • bgokturk/athena
  • aytul/athena
  • jbiswal/athena
  • lidiaz/athena
  • kpachal/athena
  • kegraham/athena
  • guerrero/athena
  • mverissi/athena
  • bouhova/athena
  • dhayden/athena
  • alwang/athena
  • mvanadia/athena
  • alopezso/athena
  • mvessell/athena
  • omeshkov/athena
  • ssantpur/athena
  • kenelson/athena
  • soumya/athena
  • upatel/athena
  • ruyuan/athena
  • igrabows/athena
  • fmeloni/athena
  • tvarol/athena
  • korona/athena
  • dshope/athena
  • anperrev/athena
  • mhank/athena
  • eramakot/athena
  • cowagner/athena
  • dbogavac/athena
  • tursom/athena
  • tnobe/athena
  • derue/athena
  • fsforza/athena
  • koffas/athena
  • angianni/athena
  • fgiuli/athena
  • ballbroo/athena
  • diehl/athena
  • chinderk/athena
  • falonso/athena
  • myexley/athena
  • tphamleh/athena
  • davidek/athena
  • ekajomov/athena-general
  • hansenph/athena
  • sarbiolv/athena
  • salvator/athena
  • hirose/athena
  • mfujimot/athena
  • jhaley/athena
  • masato/athena
  • jmendes/athena
  • stapiaar/athena
  • tupham/athena
  • ffabbri/athena
  • tpelzer/athena
  • stavrop/athena
  • agbet/athena
  • nwenke/athena
  • dbabal/athena
  • gia/athena
  • hmildner/athena
  • juesseiv/athena
  • temoskal/athena
  • cdelitzs/athena
  • kkrizka/athena
  • ckitsaki/athena
  • dwallace/athena
  • iaizenbe/athena
  • eschanet/athena
  • asonay/athena
  • jiawei/athena
  • lferencz/athena
  • czhou/athena
  • pmeiring/athena
  • mromano/athena
  • jteoh/athena
  • rustem/athena
  • sswatman/athena
  • liberato/athena
  • jbeirer/athena
  • miqueits/athena
  • wachan/athena
  • nielsenj/athena
  • elmsheus/athena
  • ranovotn/athena
  • eparrish/athena
  • asquith/athena
  • esoldato/athena
  • nicholas/athena
  • fuhe/athena
  • markowen/athena
  • aranzazu/athena
  • dakoch/athena
  • ndegroot/athena
  • mhance/athena
  • lihan/athena
  • asoukhar/athena
  • aporeba/athena
  • jkempste/athena
  • sschramm/athena
  • ginaciog/athena
  • mdelmast/athena
  • mswiatlo/athena
  • verducci/athena
  • tjunkerm/athena
  • bcarlson/athena
  • anmrodri/athena
  • martis/athena
  • pliu/athena
  • fastcalosim_test/athena
  • ssaha/athena
  • lstocker/athena
  • gabarone/athena
  • scamarda/athena
  • mxia/athena
  • guindon/athena
  • rlongo/athena
  • mdonasci/athena
  • amoussa/athena
  • conde/athena
  • gialas/athena
  • mmittal/athena
  • chelling/athena
  • fcostanz/athena
  • shion/athena
  • hmaguire/athena
  • ffollega/athena
  • cgutscho/athena
  • sschmitt/athena
  • zsoumaim/athena
  • sberlend/athena
  • acts/athena
  • evarnes/athena
  • nifomin/athena
  • eriefel/athena
  • guescini/athena
  • akotsoke/athena
  • jkremer/athena
  • susy-hackers/athena
  • llorente/athena
  • dwilbern/athena
  • laforge/athena
  • rpoggi/athena
  • istin/athena
  • haozturk/athena
  • kkoeneke/athena
  • rkarnam/athena
  • fizisist/athena
  • chenlian/athena
  • acanesse/athena
  • fengyu/athena
  • cmerlass/athena
  • ysmirnov/athena_old
  • bulekov/athena
  • navarrjo/athena
  • sanchevi/athena
  • amulski/athena
  • ivivarel/athena
  • yanlin/athena
  • pkramer/athena
  • restevam/athena
  • smwang/athena
  • vcavalie/athena
  • bauerpa/athena
  • sefernan/athena
  • jgonski/athena
  • thsjurse/athena
  • mmazza/athena
  • itrandaf/athena
  • mmlynars/athena
  • almgadm/athena
  • iyeletsk/athena
  • wobisch/athena
  • csebasti/athena
  • jhinds/athena
  • emmat/athena
  • mtchijov/athena
  • mwielers/athena
  • tiyang/athena
  • lmiller/athena
  • lucam/athena
  • lapereir/athena
  • kciesla/athena
  • aleopold/athena
  • zuysal/athena
  • masaito/athena
  • rbalasub/athena
  • pekman/athena
  • somadutt/athena
  • jstupak/athena
  • wmccorma/athena
  • salderwe/athena
  • ycoadou/athena
  • kkreul/athena
  • simmons/athena
  • ilongari/athena
  • pinamont/athena
  • adye/athena
  • ssahin/athena
  • wtaylor/athena
  • kbelobor/athena
  • jzeng/athena
  • aoneill/athena
  • dmaximov/athena
  • gcallea/athena
  • kghorban/athena
  • ljeanty/athena
  • cschiavi/athena
  • kasai/athena
  • fbartels/athena
  • jraine/athena
  • brottler/athena
  • mcfayden/athena
  • ecarlson/athena
  • scarra/athena
  • khanov/athena
  • aelmouss/athena
  • gotero/athena
  • abandyop/athena
  • rozeny/athena
  • rebeca/athena
  • nbelyaev/athena
  • joheinri/athena
  • bigliett/athena
  • doglioni/athena
  • alaperto/athena
  • aohatl/athena
  • bhonan/athena
  • dpudzha/athena
  • amarzin/athena
  • rgarg/athena
  • pmoskvit/athena
  • paulama/athena
  • begalli/athena
  • mtesta/athena
  • yajun/athena
  • jajimene/athena
  • lbozianu/athena
  • atlidali/athena
  • mpokidov/athena
  • vcroft/athena
  • demelian/athena
  • torrence/athena
  • hacooke/athena
  • barak/athena
  • wprzygod/athena
  • csander/athena
  • sgalantz/athena
  • tofitsch/athena
  • roward/athena
  • atsirigo/athena
  • ozaplati/athena
  • amoroso/athena
  • elrossi/athena
  • salnikov/athena
  • mmiralle/athena
  • alory/athena
  • jsabater/athena
  • jdevivi/athena
  • pbokan/athena
  • pottgen/athena
  • ruth/athena
  • ymino/athena
  • cappelt/athena
  • xchen/athena
  • klin/athena
  • trinn/athena
  • xiaoning/athena
  • apetukho/athena
  • ratkin/athena
  • nishu/athena
  • bleban/athena
  • paramon/athena
  • nelsonc/athena
  • dpizzi/athena
  • ztarem/athena
  • enarayan/athena
  • qhu/athena
  • juhofer/athena
  • exot-27/athena
  • acassim/athena
  • mmarjano/athena
  • bburghgr/athena
  • sampson/athena
  • mkrivos/athena
  • pagessin/athena
  • ychow/athena
  • hessey/athena
  • nviauxma/athena
  • watsona/athena
  • wfawcett/athena
  • ibordule/athena
  • LichtenbergGroup/athena
  • perj/athena
  • mleblanc/athena
  • jreich/athena
  • othielma/athena
  • sridouan/athena
  • jdegens/athena
  • hasada/athena
  • ztao/athena
  • alainb/athena
  • xiaohu/athena
  • wgeorge/athena
  • bachacou/athena
  • pmendesa/athena
  • kristin/athena
  • yake/athena
  • ludovica/athena
  • ktsuri/athena
  • jlsmith/athena
  • musafdar/athena
  • yama/athena
  • ssu/athena
  • angerami/athena
  • rnayak/athena
  • mproffit/athena
  • pebaron/athena-weights
  • jezequel/athena
  • hschwart/athena
  • amendesj/athena
  • rerrabai/athena
  • gproto/athena
  • lhelary/athena
  • asalzbur/athena
  • csamoila/athena
  • lbeemste/athena
  • tiany/athena
  • mprincip/athena
  • malgren/athena
  • spolacek/athena
  • grabanal/athena
  • bmondal/athena
  • tboeckh/athena
  • asantra/athena
  • aczirkos/athena
  • kyamaguc/athena
  • jreidels/athena
  • silvinha/athena
  • emily/athena
  • holau/athena
  • mdhlamin/athena
  • slawlor/athena
  • tdiasdov/athena
  • jroloff/athena
  • bozek/athena
  • lkrauth/athena
  • bbrueers/athena
  • iramirez/athena
  • carlod/athena
  • mgrabois/athena
  • mtian/athena
  • bcole/athena
  • roishi/athena
  • ecelebi/athena
  • oducu/athena
  • idinu/athena
  • dhirsch/athena
  • exochell/athena
  • jjwilkin/athena
  • yuanchan/athena
  • hmoyanog/athena-4-mr
  • ygo/athena
  • sbiryuko/athena
  • skorn/athena
  • ggustavi/athena
  • diwillia/athena
  • cgarner/athena
  • scalvet/athena
  • changqia/athena
  • jizamora/athena
  • jwspence/athena
  • honguyen/athena
  • atsiamis/athena
  • calpigia/athena
  • rysawada/athena
  • yangx/athena
  • adimitri/athena
  • dhangal/athena
  • cmarcon/athena
  • atlidbs/athena
  • iene/athena
  • kpetukho/athena
  • jspah/athena
  • tbisanz/athena
  • jkretz/athena
  • athaler/athena
  • tqiu/athena
  • tzenis/athena
  • dopasqua/athena
  • hzuchen/athena
  • jcardena/athena
  • lveloce/athena
  • oshukrun/athena
  • ryamaguc/athena
  • maliev/athena
  • mumohdso/athena2
  • fdelrio/athena
  • iwang/athena
  • tsano/athena
  • okumura/athena
  • sagara17/athena
  • mbiros/athena
  • mumohdso/athena
  • dmunozpe/athena
  • rhayes/athena
  • arennie/athena
  • valentem/athena
  • evguillo/athena
  • atate/athena
  • koshimiz/athena
  • dossantn/athena
  • zhijie/athena
  • caforio/athena
  • zearnsha/athena
  • maly/athena
  • bnachman/athena
  • hlin/athena
  • suyounas/athena
  • rjoshi/athena
  • yuzhan/athena
  • machitis/athena
  • lunedic/athena
  • mimarine/athena
  • crougier/athena
  • mtost/athena
  • lvannoli/athena
  • omezhens/athena
  • thompson/athena
  • jonierma/athena
  • ndebiase/athena
  • dounwuch/athena
  • echeu/athena
  • nkakati/athena
  • saclawso/athena
  • martinpa/athena
  • cprat/athena
  • hhanif/athena
  • csauer/athena
  • mischott/athena
  • tiknight/athena
  • sahinsoy/athena
  • jodamp/athena
  • knikolop/athena
  • inaryshk/athena
  • angrigor/athena
  • wendlanb/athena
  • lkeszegh/athena
  • fedin/athena
  • xchu/athena
  • pbellos/athena
  • lbaltes/athena
  • adik/athena
  • jaoliver/athena
  • idrivask/athena
  • echeremu/athena
  • aikoulou/athena
  • ignesi/athena
  • algilber/athena
  • ntamir/athena
  • sadykov/athena
  • eschopf/athena
  • haweber/athena
  • tteixeir/athena
  • sgurdasa/athena
  • pamachad/athena
  • pbhattar/athena
  • pyanezca/athena
  • hiito/athena
  • tavandaa/athena
  • bsaifudd/athena
  • veellajo/athena
  • mdrozdov/athena
  • wolter/athena
  • nheatley/athena
  • hsimpson/athena
  • fdibello/athena
  • fsili/athena
  • mrenda/athena
  • mzhai/athena
  • dparedes/athena
  • chchau/athena
  • minaenko/athena
  • zyan/athena
  • zhangr/athena
  • emmarsha/athena
  • rkusters/athena
  • jburzyns/athena
  • zmarshal/athena
  • edweik/athena
  • phkenned/athena
  • slai/athena
  • awilhahn/athena
  • agaa/athena
  • javanden/athena
  • leevans/athena
  • kkrowpma/athena
  • llaatu/athena
  • zfeng/athena
  • zifeng/athena
  • srdas/athena
  • stsigari/athena
  • adonofri/athena
  • yuanda/athena
  • atropina/athena
  • atlaspmb/athena
  • metsai/athena
  • drousso/athena
  • cleonido/athena
  • arombola/athena
  • ademaria/athena
  • seggebre/athena
  • mnoury/athena
  • ijuarezr/athena
  • kchoi/athena
  • eyamashi/athena
  • dgillber/athena
  • saktas/athena
  • axiong/athena
  • zang/athena
  • amdesai/athena
  • matakagi/athena
  • nlopezca/athena
  • berkeleylab/lowmutracking/athena
  • qibin/athena
  • fbendebb/athena
  • bshresth/athena
  • acanbay/athena
  • klassen/athena
  • jferrand/athena
  • tbuanes/athena
  • egodden/athena
  • mfarring/athena
  • cbuitrag/athena
  • hpotti/athena
  • otheiner/athena-official
  • hawatson/athena
  • parodi/athena
  • vtudorac/athena
  • chonghao/athena
  • lmontana/athena
  • bballard/athena
  • dzengerj/athena
  • knakkali/athena
  • zhuyi/athena
  • dcieri/athena
  • buboehm/athena
  • cimcp/athena
  • weixi/athena
  • adaribay/athena
  • iliadis/athena
  • cantel/athena
  • jburr/athena
  • kbenkend/athena
  • duperrin/athena
  • asansar/athena
  • frenner/athena
  • bstanisl/athena
  • isotarri/athena
  • dkoeck/athena
  • mfewell/athena
  • miholzbo/athena
  • eegidiop/athena
  • czodrows/athena
  • yulei/athena
  • blumen/athena
  • smitani/athena
  • olangrek/athena
  • amincer/athena
  • alsala/athena
  • gshatri/athena
  • clantz/athena
  • gripelli/athena
  • hpang/athena
  • jmharris/athena
  • mleigh/athena
  • jgargan/athena
  • ewatton/athena
  • otheiner/athena
  • deniso/athena
  • tizuo/athena
  • rushioda/athena
  • preselection-hackathon/athena
  • sfranche/athena
  • bernardo/athena
  • smeriano/athena
  • mfernoux/athena
  • pebaron/athena-td
  • jnitschk/athena
  • chandler/athena
  • viruelas/athena
  • ksugizak/athena
  • yusano/athena
  • anghosh/ef-anindya
  • skaur/athena
  • hriani/athena
  • davetisy/athena
  • jgombas/athena
  • vcepaiti/athena
  • wsherman/athena
  • sroygara/athena
  • rtagami/athena
  • yochi/athena
  • yuanj/athena
  • apsallid/athena
  • pakontax/athena
  • abunka/athena
  • agavrily/athena
  • chji/athena
  • dmclaugh/athena
  • dmahon/athena
  • mcgensvc/athena
  • cjmeyer/athena
  • almay/athena
  • giagu/athena
  • ekay/athena
  • qberthet/athena
  • mshapiro/athena
  • yuwen/athena
  • islazyk/athena
  • dkobylia/athena
  • mbarel/athena
  • glamprin/athena
  • rdinardo/athena
  • cgrefe/athena
  • baitbenc/athena
  • dakiyama/athena
  • osalin/athena
  • mlanzacb/athena
  • minlin/athena
  • kazhang/athena
  • wsfreund/athena
  • szambito/athena
  • hwilkens/athena
  • beringer/athena
  • pebaron/athena
  • enagy/athena
  • schaffer/athena
  • yyap/athena
  • menke/athena
  • mspalla/athena
  • tkharlam/athena
  • fcalosim/athena
  • mduehrss/athena
  • smobius/athena
  • mavogel/athena
  • rateixei/athena
  • spagan/athena
  • carquin/athena
  • okiverny/athena
  • dportill/athena
  • jelena/athena
  • osunnebo/athena
  • lmijovic/athena
  • desilva/athena
  • chhayes/athena
  • junpei/athena
  • jwalder/athena
  • satom/athena
  • sanmay/athena
  • tilebeam/athena
  • jahreda/athena
  • kiabelin/athena
  • mcarnesa/athena
  • jstark/athena
  • jedebevc/athena
  • vtskhaya/athena
  • krbjoerk/athena
  • cyoung/athena
  • silu/athena
  • jtanaka/athena
  • delsart/athena
  • mtogawa/athena
  • haoran/athena
  • luxin/athena
  • yifany/athena
  • maslawin/athena
  • danning/athena
  • faser/offline/athena
  • beddall/athena
  • dcasperfaser/athena
  • minghui/athena
  • cfan/athena
  • almeidvi/athena
  • srettie/athena
  • kazheng/athena
  • beltran/athena-fork
  • vmartin/athena
  • mmontell/athena
  • pajones/athena
  • sudha/athena
  • kgupta/athena
  • ssinha/athena
  • lhenkelm/athena
  • lgagnon/athena
  • joana/athena
  • dpanchal/athena
  • anbaraja/athena
  • serodrig/athena
  • mtanasin/athena
  • kkawade/athena
  • amorenos/athena
  • vbuxbaum/athena
  • jshahini/athena
  • chiodini/athena
  • apalazzo/athena
  • kburka/athena
  • lfeligio/athena
  • ehaines/athena
  • jaofferm/athena
  • gonzalri/athena
  • mdidenko/athena
  • desengup/athena
  • gottino/athena
  • rmazini/athena
  • sabidi/athena
  • gavrilen/athena
  • qidong/athena
  • dwkim/athena
  • bkerridg/athena
  • cdimitri/athena
  • hazeng/athena
  • sgaid/athena
  • jingjing/athena
  • ktopolni/athena
  • dabattul/athena
  • attrtcal/athena
  • ktackman/athena
  • yche/athena
  • yoyeh/athena
  • thmaurin/athena
  • asciandr/athena
  • mischott/athena-22
  • meiqi/athena
  • lbazzano/athena
  • rushioda/athena-3
  • pclark/athena
  • chjiang/athena
  • bochen/athena
  • krdona/athena
  • nlad/athena
  • hmoyanog/athena
  • dtorresa/athena
  • kvidalgu/athena
  • jcurran/athena
  • aaikot/athena
  • aackerma/athena
  • maboelel/athena
  • yingjun/athena
  • xinfei/athena
  • kazheng/athena-physics-val-2023
  • aivina/athena
  • lesplend/athena
  • mschefer/athena
  • xinhui/athena
  • rmakhman/athena
  • shhan/athena
  • zhiliang/athena
  • liuk/athena
  • zoduan/athena
  • jlue/athena
  • bdixit/athena
  • sfrances/athena
  • ragrabar/athena
  • alsidley/athena
  • xingguo/athena
  • shahzad/athena
  • asehrawa/athena
  • kyjones/topoetcone-removal
  • niabicht/athena
  • mhoppesc/athena
  • yunagai/athena
  • lcalic/athena-backup
  • keener/athena
  • greynold/athena
  • llewitt/athena
  • adohnalo/athena
  • bschlag/athena
  • yinmiao/athena
  • kazheng/athena-workingpoint
  • nkang/athena
  • agentry/athena
  • drankin/athena
  • bruckman/athena
  • hvanders/athena
  • kbhide/athena
  • ladamczy/test
  • tbeumker/athenatest
  • asmaga/athena
  • tbeumker/athena
  • berkeleylab/acts/athena
  • losanti/athena
  • weitao/athena
  • jiturriz/athena
  • losanti/athena-23
  • dmankad/athena-idle
  • menu-hackathon/athena
  • wsong/athena
  • dawerner/athena
  • kyjones/trigger-example
  • vmaksimo/athena
  • toobauma/athena
  • seggebre/athena-fluencemap-modification
  • gtarna/athena
  • edreyer/athena
  • fisopkov/athena
  • SecVtx-Lancaster/Athena
  • lprimomo/athena
  • maparo/athena
  • smanzoni/athena
  • pgraveli/athena
  • shmukher/athena
  • adimri/athena
  • wstanek/athena
  • aackerma/atlas-athena
  • jcrosby/athena
  • atlas-sa-uct/athena
  • lrambell/athena
  • tovsiann/athena
  • ppotepa/athena
  • rsnyder/athena
  • zgao/athena
  • skita/athena
  • eullmank/athena
  • lroos/athena
  • achakrav/athena
  • mhemmett/athena
  • kgoto/athena
  • xmapekul/athena
  • rashbypi/athena
  • evitale/athena
  • ivyas/athena
  • arej/athena
  • thmaurin/athena-sim-flavour
  • aleksand/athena
  • lkretsch/athena
  • npond/athena
  • hluk/athena
  • epasqual/athena
  • jebohm/athena
  • dbiswas/athena
  • cvittori/athena
  • mbiyabi/athena
  • mkareem/athena
  • aralves/athena
  • dkoeck/anniathenafork
  • mihe/athena
  • tslee/athena
  • mhaacke/athena
  • rgupta/athena
  • cgarvey/athena
  • croland/athena
  • asoflau/athena
  • pkumari/athena
  • feickert/athena
  • kesedlac/athena
  • ctosciri/athena-old
  • ctosciri/athena
  • gwilliam/athena
  • ricunnin/athena
  • bdixit/masking-strip-modules
  • agerwin/athena
  • gfrattar/athena
  • jfeng2/athena
  • bscheuer/athena
  • gtolkach/athena
  • svanstro/athena
  • ksudo/athena
  • rhiguchi/athena
  • gaofeng/athena
  • kosuzuki/athena
  • etoyoda/athena
  • vaustrup/athena
  • hart/athena
  • rmizuhik/athena
  • tnakagaw/athena
  • kkanke/athena
  • amakita/athena
  • maoki/athena
  • whopkins/athena
  • tpaschoa/athena
  • miyamada/athena
  • rishikaw/athena
  • dduda/athena
  • anayaz/athena
  • aagaard/athena
  • evalient/athena
  • ferusso/athena
  • shudong/athena
  • zyan/athena-muon-calib-stream
  • smweber/athena
  • smweber/athena-run-3
  • dellacqu/athena
  • zyan/athena-muon-calib
  • evalient/athena-dnn-calculator
  • glagafon/project-nimber-1
  • strom/athena
  • strom/athena-dms
  • brosser/athena
  • jsallen/athena
  • sbellman/athena
  • macretar/athena
  • aowang/athena
  • skadir/athena-sadaf
  • ooncel/athena
  • jhoya/athena
  • leguo/athena
  • osotosan/athena
  • tygeorge/athena
  • glagafon/handi-project
  • wuxi/athena
  • syan/athena-syan
  • hasun/athena
  • will/athena
  • mnorfolk/athena
  • glagafon/handi-project-1
  • schernau/athena
  • axgallen/athena-qualification-task
  • karakawa/athena
  • aborbely/athena
  • seinfant/athena
  • taogawa/athena
  • dmankad/athena-gen
  • tmlinare/athena
  • mmaroun/ravina-fork
  • axgallen/athena
  • romar/athena
  • ktariq/athena
  • zuzak/athena
  • agarabag/athena
  • dhagan/athena
  • vlysenko/athena
  • mahorstm/athena
  • ibamwidh/athena
  • tizhang/athena
  • ipolishc/athena
  • atishelm/athena
  • ykhoulak/myathena
  • jolamber/athena
  • frfische/athena
  • yil/athena
  • jlue/athena-latest
  • xilin/athena
  • chuanye/athena
  • nkua-atlas/athena
  • huayu/athena
  • tayoshid/athena
  • kifarman/athena
  • dntounis/athena
  • movincen/athena
  • nischmit/athena
  • lderamo/athena
  • steinber/athena-main
  • dongyi/athena
  • tdingley/athena
  • hasegawa/athena
  • dtruncal/athena
  • kazheng/athena-acts
  • malvesca/athena
  • mnowak/athena
  • ladamczy/athena
  • glagafon/dq-optimize
  • openc/athena
  • lcalic/athena
  • mhufnage/athena
  • ekajomov/athena-fork-fix
  • lsultana/obsolete_athena
  • anfortma/athena
  • rqian/athena
  • lsultana/athena
  • yonoda/athena
  • pebaron/athena-leprem
  • alveltma/athena
  • alpleban/athena
  • mmaheshw/athena
  • jdavidso/athena
  • kfung/athena
  • anstein/athena
  • gbird/athena
  • edcritel/athena
  • mfurukaw/athena
  • anhodges/athena
  • mvivasal/athena
  • midandre/athena
  • bglik/athena
  • kyjones/athena
  • asbrooks/athena
  • fcurcio/athena
  • mveen/athena
  • sokkerma/athena
  • mmlynars/athena-v-2
  • joroemer/athena
  • jmcgowan/athena
  • lboccard/athena
  • tayoshid/athena-test
  • tburatov/athena
  • dmankad/athena
  • tmclachl/athena
  • ivyoung/athena
  • drasslof/athena
  • sanchezj/athena-2022
  • jodafons/athena
  • ctaybi/athena
  • sdemiran/athena
  • jiddon/athena
  • apfleger/athena
  • anburger/athena
  • sdahbi/athena
  • sidoti/athena
  • fwinkel/athena
  • goblirsc/athena
  • izahir/athena
  • mmoors/athena
  • rvinasco/athena
  • sanchezj/athena
  • jwkraus/athena
  • esimpson/athena
  • rhaberle/athena
  • obut/athena
  • dta/athena_old
  • klleras/athena
  • janders/athena
  • jhowarth/athena
  • mungo/athena
  • jecouthu/athena
  • dtrischu/athena
  • jchapman/athena
  • sfuenzal/athena
  • avallier/athena
  • fmontere/athena
  • awharton/Athena
  • fhenry/athena
  • misantan/athena
  • zalegria/athena
  • zhaotong/athena
  • amelo/athena
  • gdigrego/athena
  • shaoguan/athena
  • acordeir/athena-ed
  • peiyan/athena
  • pdougan/athena
  • nbruscin/athena
  • caiy/athena
  • mkholoda/athena
  • backes/athena
  • fkirfel/athena
  • tayoshid/athena-2024
  • kchu/athena
  • bcervato/athena
  • esampson/athena-idart
  • fwinkl2/athena
  • gfacini/athena
  • shpeng/athena-2
  • yvolkotr/athena
  • gmascare/athena
  • gmercado/athena
  • rhowen/athena
  • esampson/athena-idart-2
  • djlewis/athena
  • costanzo/athena
  • esampson/athena-otp
  • nharriso/athena
  • yuematsu/athena
  • pibutti/athena
  • alpleban/athena-met
  • esampson/athena-june-otp
  • wcastigl/athena
  • astefl/athena
  • bmoser/athena
  • yilin/athena
  • zhanhang/athena
  • bdong/athena
  • lbarrade/athena
  • ksahan/athena
  • msasada/athena
  • thitchin/athena
  • sosarkar/athena-again
  • seth/athena
  • agheata/athena
  • zhangbo/athena
  • txu/athena
  • okolay/athena
  • robouque/athena
  • mlyukova/athena
  • nsurijr/athena
  • damperia/athena-acts
  • esampson/june-2-otp
  • wema/athena
  • dbaronmo/athena
  • eballabe/athena
  • boudreau/athena
  • martyniu/athena
  • vsasse/athena
  • acamplan/athena
  • vkost/athena
  • bngair/met-significance-r-22
  • ksakura/athena
  • menadeem/athena
  • bhuth/athena
  • bngair/me-tsig-athena
  • domatter/athena
  • rhicks/athena
  • atymchys/athena
  • yanqiw/athena
  • linghua/athena
  • arelycg/athena
  • juscerri/athena
  • biliu/athena
  • skadir/athena
  • sgoswami/athena
  • sosarkar/athena
  • beltran/athena
  • mwessels/athena
  • fladias/athena
  • ddicroce/athena
  • bdebjani/athena
  • dreikher/athena
  • hshaddix/athena
  • lwinkler/athena
  • elham/athena
  • emoon/athena
  • mhabedan/athena
  • cleong/athena
  • nkrogh/athena
  • sdiefenb/athena-onnx-tutorial
  • dwilson/athena
  • haren/athena
  • thart/athena
  • mads/athena
  • lsanfili/athena
  • fivone/athena
  • kenakamu/athena
  • dahumphr/athena
  • lifoster/athena
  • scane/athena
  • echerepa/athena
  • baer/athena
  • dcamarer/athena
  • alancast/athena
  • haotianl/athena
  • eskorda/athena
  • glagafon/aaaathena
  • rshibata/athena
  • glagafon/athena
  • salopez/athena
  • ukhurshi/athena
  • lburke/athena
  • delitez/athena
  • glagafon/glagafon-dq
  • pizhang/athena
  • htsoi/athena
  • rvavrick/athena
  • therwig/athena
  • mwitkows/athena
  • casadop/athena
  • pachabri/athena
  • lcorazzi/athena
  • jaburles/athena
  • ezaya/athena
  • mmantina/athena
  • achamber/athena
  • lmonaco/athena
  • rmole/athena
  • hzhuang/athena
  • mamirono/athena
  • jkrupa/athena
  • rpozzi/athena
  • mfornasi/athena
  • gserenis/athena
  • semami/athena
  • jinglis/athena
  • uepstein/athena
  • fdattola/athena
  • belderto/athena
  • abesir/athena
  • ljerala/athena
  • cmavungu/athena
  • lechols/athena
  • htorre/athena
  • lopezzot/athena
  • jlittle/athena
  • robouque/athena-20241115
  • jajohnso/athena
  • fsiegert/athena
  • tneep/athena
  • wenjingw/athena
  • lbrown/athena
  • wguerin/athena
  • epompapa/athena
  • jackersc/athena
  • rmole/athena-personal-fork
  • kfang/athena-fork-kyfang
  • wasu/athena
  • prmitra/athena
  • ashirazi/athena
  • nihartma/athena
  • amoreira/athena
  • kgrimm/athena-kgrimm
  • toheintz/athena
  • gfazzino/athena
  • aslobodk/athena
  • muschmid/athena
  • goetz/athena-acts
  • kdipetri/athena
  • yazhou/athena
  • djuarezg/athena
  • falves/athena
  • alarnold/athena
  • mborodin/athena
  • wlai/athena
  • mdacunha/athena
  • alecrhys/athena
  • novotnyp/athena
  • rohasan/athena
  • asickles/athena
  • lvicenik/athena
  • adsalvad/athena
  • tflee/athena
  • christog/athena
  • ibenaoum/athena
  • zetao/athena
  • kkazakov/athena
  • frcastig/athena
  • mfarzali/athena
  • llarson/athena
  • tomoya/athena-low-pt-muon-rec
  • jusilva/athena
  • ehampshi/athena
  • pusharma/athena
  • mojeda/athena
  • gpinheir/athena
  • jecifuen/athena
  • exochell/my-athena
  • hshaddix/athena-hshaddix
  • jlieberm/athena
  • vchabala/athena
  • chhultqu/athena
  • jlai/athena
  • nsur/athena-lund
  • misavic/athena
  • nshtokha/athena
  • yukari/athena
  • yuxuanz/local-athena
  • camccrac/athena
  • pmourafr/athena
  • zhubacek/athena
  • sizumiya/athena
  • akraus/athena
  • mfilipig/athena
  • mnegrini/athena
  • fdejean/athena
  • sawyer/athena
  • zrokavec/athena
  • yanqiw/athena-acts-for-run-3-silicon-tracking
  • rkavak/athena
  • gipoddar/athena
  • ssuravar/athena
  • vpires/athena-vasco
  • gsalvi/athena
  • beyeo/athena
  • sutuncay/athena
  • ywng/athena
  • mtancock/athena-2
  • fballi/athena
  • ndiasper/athena
  • stlin/athena
  • hadavand/athena
1578 results
Show changes
Commits on Source (183)
Showing
with 248 additions and 407 deletions
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef LARHVMAPTOOL_H
#define LARHVMAPTOOL_H
#include "GaudiKernel/ToolHandle.h"
#include "StoreGate/DataHandle.h"
#include "AthenaBaseComps/AthAlgTool.h"
#include "LArCabling/LArHVCablingTool.h"
#include "CxxUtils/checker_macros.h"
class CaloDetDescrManager;
class Identifier;
class CaloIdManager;
class LArEM_ID;
class LArHEC_ID;
class LArFCAL_ID;
//class LArHVCablingTool;
static const InterfaceID IID_LArHVMapTool("LArHVMapTool", 1 ,0);
class ATLAS_NOT_THREAD_SAFE LArHVMapTool: public AthAlgTool
{
public:
LArHVMapTool(const std::string& type, const std::string& name,
const IInterface* parent);
virtual ~LArHVMapTool(){}
static const InterfaceID& interfaceID() { return IID_LArHVMapTool; }
virtual StatusCode initialize();
virtual StatusCode execute();
virtual StatusCode finalize(){return StatusCode::SUCCESS;}
std::vector<int> GetHVLines ATLAS_NOT_THREAD_SAFE(const Identifier& id);
private:
const DataHandle<CaloIdManager> m_caloIdMgr;
const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
const LArEM_ID* m_larem_id;
const LArHEC_ID* m_larhec_id;
const LArFCAL_ID* m_larfcal_id;
ToolHandle<LArHVCablingTool> m_hvCablingTool;
};
#endif
......@@ -107,10 +107,6 @@ theRescaler.HVvalues = [ 0.992, 0.992, 0.992, 0.992, 0.992, 0.992, 0.992, 0.992,
topSequence += theRescaler
from CaloCondPhysAlgs.CaloCondPhysAlgsConf import LArHVMapTool
theLArHV=LArHVMapTool("LArHVMapTool")
ToolSvc += theLArHV
#--------------------------------------------------------------
#--- Dummy event loop parameters
#--------------------------------------------------------------
......
......@@ -34,7 +34,34 @@
#include "CoolKernel/types.h"
#include "CoolKernel/Record.h"
#include "CoralBase/AttributeListSpecification.h"
#include "CaloCondPhysAlgs/LArHVMapTool.h"
#include "CxxUtils/checker_macros.h"
struct ATLAS_NOT_THREAD_SAFE CaloCellCalcEnergyCorr::HVData
{
HVData (const LArHVManager& manager);
EMBHVManager::EMBHVData m_hvdata_EMB;
EMBPresamplerHVManager::EMBPresamplerHVData m_hvdata_EMBPS;
EMECHVManager::EMECHVData m_hvdata_EMEC_IN;
EMECHVManager::EMECHVData m_hvdata_EMEC_OUT;
EMECPresamplerHVManager::EMECPresamplerHVData m_hvdata_EMECPS;
HECHVManager::HECHVData m_hvdata_HEC;
FCALHVManager::FCALHVData m_hvdata_FCAL;
};
CaloCellCalcEnergyCorr::HVData::HVData (const LArHVManager& manager)
: m_hvdata_EMB (manager.getEMBHVManager().getData()),
m_hvdata_EMBPS (manager.getEMBPresamplerHVManager().getData()),
m_hvdata_EMEC_IN (manager.getEMECHVManager(EMECHVModule::IOType::INNER).getData()),
m_hvdata_EMEC_OUT (manager.getEMECHVManager(EMECHVModule::IOType::OUTER).getData()),
m_hvdata_EMECPS (manager.getEMECPresamplerHVManager().getData()),
m_hvdata_HEC (manager.getHECHVManager().getData()),
m_hvdata_FCAL (manager.getFCALHVManager().getData())
{
}
CaloCellCalcEnergyCorr::CaloCellCalcEnergyCorr( const std::string& name,
ISvcLocator* pSvcLocator ) :
......@@ -95,7 +122,7 @@ StatusCode CaloCellCalcEnergyCorr::execute()
return StatusCode::SUCCESS;
}
StatusCode CaloCellCalcEnergyCorr::stop()
StatusCode CaloCellCalcEnergyCorr::stop ATLAS_NOT_THREAD_SAFE ()
{
const CaloCell_ID* calocell_id;
......@@ -145,6 +172,10 @@ StatusCode CaloCellCalcEnergyCorr::stop()
CHECK(detStore()->record(attrList,m_folder));
const LArHVManager* manager = nullptr;
CHECK( detStore()->retrieve (manager) );
HVData hvdata (*manager);
std::vector<float> setVec(1,1);
unsigned nSet=0;
unsigned nSetHV=0;
......@@ -159,8 +190,7 @@ StatusCode CaloCellCalcEnergyCorr::stop()
// check if we have also HVLine for this cell
if(!m_hvlines.empty() && m_hvlines[0]>0) {
Identifier offId=calocell_id->cell_id(h);
std::vector<int> hvlineId = GetHVLines(offId);
//std::cout<<offId.getString()<<" : ";
std::vector<int> hvlineId = GetHVLines(hvdata, offId);
int nfound=0;
float hvval=-1;
std::vector<int>::const_iterator poshv;
......@@ -176,7 +206,6 @@ StatusCode CaloCellCalcEnergyCorr::stop()
}
}
}
//std::cout << h << " " << value << std::endl;
setVec[0]=value;
flt->setData(h,0,setVec);
}//end loop over hash
......@@ -188,7 +217,8 @@ StatusCode CaloCellCalcEnergyCorr::stop()
}
std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const HVData& hvdata,
const Identifier& id) {
std::set<int> hv;
// LAr EMB
......@@ -200,7 +230,7 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
unsigned int nelec = cell->getNumElectrodes();
for (unsigned int i=0;i<nelec;i++) {
const EMBHVElectrode& electrode = cell->getElectrode(i);
for (unsigned int igap=0;igap<2;igap++) hv.insert(electrode.hvLineNo(igap));
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.m_hvdata_EMB.hvLineNo (electrode, igap));
}
} else { // LAr EMEC
const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id));
......@@ -209,7 +239,13 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
unsigned int nelec = cell->getNumElectrodes();
for (unsigned int i=0;i<nelec;i++) {
const EMECHVElectrode& electrode = cell->getElectrode(i);
for (unsigned int igap=0;igap<2;igap++) hv.insert(electrode.hvLineNo(igap));
const EMECHVManager::EMECHVData& hvdata_EMEC =
electrode.getModule().getWheelIndex() == EMECHVModule::INNER ?
hvdata.m_hvdata_EMEC_IN :
hvdata.m_hvdata_EMEC_OUT ;
for (unsigned int igap=0;igap<2;igap++) {
hv.insert(hvdata_EMEC.hvLineNo (electrode, igap));
}
}
}
} else if (m_larhec_id->is_lar_hec(id)) { // LAr HEC
......@@ -219,7 +255,7 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
unsigned int nsubgaps = cell->getNumSubgaps();
for (unsigned int igap=0;igap<nsubgaps;igap++) {
const HECHVSubgap& subgap = cell->getSubgap(igap);
hv.insert(subgap.hvLineNo());
hv.insert(hvdata.m_hvdata_HEC.hvLineNo (subgap));
}
} else if (m_larfcal_id->is_lar_fcal(id)) { // LAr FCAL
const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(m_calodetdescrmgr->get_element(id));
......@@ -228,7 +264,7 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
unsigned int nlines = tile->getNumHVLines();
for (unsigned int i=0;i<nlines;i++) {
const FCALHVLine* line = tile->getHVLine(i);
if(line) hv.insert(line->hvLineNo());
if(line) hv.insert(hvdata.m_hvdata_FCAL.hvLineNo (*line));
}
} else if (m_larem_id->is_lar_em(id) && m_larem_id->sampling(id)==0) { // Presamplers
if (abs(m_larem_id->barrel_ec(id))==1) {
......@@ -236,13 +272,13 @@ std::vector<int> CaloCellCalcEnergyCorr::GetHVLines(const Identifier& id) {
if (!embElement) std::abort();
const EMBCellConstLink cell = embElement->getEMBCell();
const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule();
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap));
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.m_hvdata_EMBPS.hvLineNo (hvmodule, igap));
} else {
const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (!emecElement) std::abort();
const EMECCellConstLink cell = emecElement->getEMECCell();
const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap));
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.m_hvdata_EMECPS.hvLineNo (hvmodule, igap));
}
}
......
///////////////////////// -*- C++ -*- /////////////////////////////
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#ifndef CALOCONDPHYSALGS_CALOCELLCALCENERGYCORR_H
......@@ -37,9 +37,11 @@ class CaloCellCalcEnergyCorr: public AthAlgorithm
virtual StatusCode initialize();
virtual StatusCode execute();
virtual StatusCode finalize();
virtual StatusCode stop ATLAS_NOT_THREAD_SAFE /* calls ctor of AthenaAttributeList*/();
virtual StatusCode stop ATLAS_NOT_THREAD_SAFE /* Calls getData() method of HV managers */();
private:
struct ATLAS_NOT_THREAD_SAFE HVData;
// Properties
std::string m_folder;
std::vector<int> m_calosample; // which CaloSamples to be filled (numbers from CaloSample enum in CaloCell_Base_ID
......@@ -53,7 +55,7 @@ private:
const LArHEC_ID* m_larhec_id;
const LArFCAL_ID* m_larfcal_id;
std::vector<int> GetHVLines(const Identifier& id) ;
std::vector<int> GetHVLines(const HVData& hvdata, const Identifier& id) ;
};
#endif //> !CALOCONDPHYSALGS_CALOCELLCALCENERGYCORR_H
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
*/
#include "CaloCondPhysAlgs/LArHVMapTool.h"
#include "CaloDetDescr/CaloDetDescrManager.h"
#include "CaloDetDescr/CaloDetectorElements.h"
#include "CaloIdentifier/LArEM_ID.h"
#include "CaloIdentifier/LArHEC_ID.h"
#include "CaloIdentifier/LArFCAL_ID.h"
#include "CaloIdentifier/CaloIdManager.h"
#include "LArHV/EMBHVElectrode.h"
#include "LArHV/EMBPresamplerHVModule.h"
#include "LArHV/EMECHVElectrode.h"
#include "LArHV/EMECPresamplerHVModule.h"
#include "LArHV/HECHVSubgap.h"
#include "LArHV/FCALHVLine.h"
#include "LArReadoutGeometry/EMECCell.h"
#include "LArReadoutGeometry/HECCell.h"
#include "LArReadoutGeometry/EMBCell.h"
#include "LArReadoutGeometry/FCALTile.h"
#include "LArReadoutGeometry/EMBCellConstLink.h"
#include "LArReadoutGeometry/EMECCellConstLink.h"
#include "LArReadoutGeometry/HECCellConstLink.h"
#include "LArReadoutGeometry/FCALTubeConstLink.h"
#include "LArHV/LArHVManager.h"
LArHVMapTool::LArHVMapTool(const std::string& type, const std::string& name, const IInterface* parent)
: AthAlgTool(type,name,parent)
{
declareInterface<LArHVMapTool>( this );
}
StatusCode LArHVMapTool::initialize(){
CHECK(detStore()->retrieve(m_caloIdMgr));
m_larem_id = m_caloIdMgr->getEM_ID();
m_larhec_id = m_caloIdMgr->getHEC_ID();
m_larfcal_id = m_caloIdMgr->getFCAL_ID();
CHECK(detStore()->retrieve(m_calodetdescrmgr));
return StatusCode::SUCCESS;
}
StatusCode LArHVMapTool::execute() {
CHECK(m_hvCablingTool.retrieve());
IdentifierHash h=0;
Identifier offId;
m_larem_id->get_id(h,offId);
std::vector<int> hvlineId = GetHVLines(offId);
//std::cout<<"LArHVMapTool::execute "<<offId.getString()<<" : "<<hvlineId.size()<<std::endl;
//if(hvlineId.size()>0) std::cout<<hvlineId[0]<<std::endl;
return StatusCode::SUCCESS;
}
std::vector<int> LArHVMapTool::GetHVLines(const Identifier& id) {
std::set<int> hv;
// LAr EMB
if (m_larem_id->is_lar_em(id) && m_larem_id->sampling(id)>0) {
if (abs(m_larem_id->barrel_ec(id))==1) {
const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (embElement) {
const EMBCellConstLink cell = embElement->getEMBCell();
unsigned int nelec = cell->getNumElectrodes();
for (unsigned int i=0;i<nelec;i++) {
const EMBHVElectrode& electrode = cell->getElectrode(i);
for (unsigned int igap=0;igap<2;igap++) {
hv.insert(electrode.hvLineNo(igap));
}
}
}
else {
ATH_MSG_ERROR( "Failed d'cast to EMBDetectorElement" );
}
} else { // LAr EMEC
const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (emecElement) {
const EMECCellConstLink cell = emecElement->getEMECCell();
unsigned int nelec = cell->getNumElectrodes();
for (unsigned int i=0;i<nelec;i++) {
const EMECHVElectrode& electrode = cell->getElectrode(i);
for (unsigned int igap=0;igap<2;igap++) hv.insert(electrode.hvLineNo(igap));
}
}
else {
ATH_MSG_ERROR( "Failed d'cast to EMECDetectorElement" );
}
}
} else if (m_larhec_id->is_lar_hec(id)) { // LAr HEC
const HECDetectorElement* hecElement = dynamic_cast<const HECDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (hecElement) {
const HECCellConstLink cell = hecElement->getHECCell();
unsigned int nsubgaps = cell->getNumSubgaps();
for (unsigned int igap=0;igap<nsubgaps;igap++) {
const HECHVSubgap& subgap = cell->getSubgap(igap);
hv.insert(subgap.hvLineNo());
}
}
else {
ATH_MSG_ERROR( "Failed d'cast to HECDetectorElement" );
}
} else if (m_larfcal_id->is_lar_fcal(id)) { // LAr FCAL
const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (fcalElement) {
const FCALTile* tile = fcalElement->getFCALTile();
unsigned int nlines = tile->getNumHVLines();
unsigned int nlines_found=0;
for (unsigned int i=0;i<nlines;i++) {
const FCALHVLine* line = tile->getHVLine(i);
if (line) nlines_found++;
}
if ( nlines_found>0 ) {
for (unsigned int i=0;i<nlines;i++) {
const FCALHVLine* line = tile->getHVLine(i);
if (!line) continue;
hv.insert(line->hvLineNo());
}
}
}
else {
ATH_MSG_ERROR( "Failed d'cast to FCALDetectorElement" );
}
} else if (m_larem_id->is_lar_em(id) && m_larem_id->sampling(id)==0) { // Presamplers
if (abs(m_larem_id->barrel_ec(id))==1) {
const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (embElement) {
const EMBCellConstLink cell = embElement->getEMBCell();
const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule();
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap));
}
else {
ATH_MSG_ERROR( "Failed d'cast to EMBDetectorElement (for presampler)" );
}
} else {
const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(m_calodetdescrmgr->get_element(id));
if (emecElement) {
const EMECCellConstLink cell = emecElement->getEMECCell();
const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
for (unsigned int igap=0;igap<2;igap++) hv.insert(hvmodule.hvLineNo(igap));
}
else {
ATH_MSG_ERROR( "Failed d'cast to EMECDetectorElement (for presampler)" );
}
}
}
std::vector<int> hvlines;
for (std::set<int>::iterator i=hv.begin();i!=hv.end();++i) hvlines.push_back(*i);
//std::cout<<"LArHVMapTool hvlines size: "<<hvlines.size()<<std::endl;
//if(hvlines.size()>0) std::cout<<hvlines[0]<<std::endl;
return hvlines;
}
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# @file: CaloCellFlags.py
# @purpose: a container of flags for CaloCell making configuring
......@@ -73,13 +73,6 @@ class doMinBiasAverage(JobProperty):
allowedTypes = ['bool']
StoredValue = False
class doLArRecalibration(JobProperty):
""" Flag to activate cell recalibration, undoing online energy computation and applying new calibration
"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class doLArNoiseMasking(JobProperty):
""" Flag to activate masking of high noise / dead cell for all events
"""
......@@ -183,7 +176,6 @@ list_jobproperties = [
doLArHVCorr,
doPedestalCorr,
doMinBiasAverage,
doLArRecalibration,
doLArNoiseMasking,
doLArSporadicMasking,
doLArBadFebMasking,
......
......@@ -492,67 +492,6 @@ class CaloCellGetter (Configured) :
#theCaloCellMaker += theHVCorrTool
theCaloCellMaker.CaloCellMakerToolNames += [theLArCellHVCorrTool]
#
# correction to undo online calibration and apply new LAr electronics calibration for ADC->MeV conversion
#
doLArRecalibration = False
if jobproperties.CaloCellFlags.doLArRecalibration.statusOn:
from AthenaCommon.GlobalFlags import globalflags
from LArConditionsCommon.LArCondFlags import larCondFlags
if jobproperties.CaloCellFlags.doLArRecalibration() and globalflags.DataSource() == 'data' and (not larCondFlags.SingleVersion()) :
doLArRecalibration = True
mlog.info("Redoing LAr electronics calibration for ADC->MeV")
if doLArRecalibration:
# get tool for cell recalibration
try:
from LArCellRec.LArCellRecConf import LArCellRecalibration
theLArCellRecalibration = LArCellRecalibration("LArCellRecalibration")
except Exception:
mlog.error("could not get handle to LArCellRecalibration Quit")
print(traceback.format_exc())
return False
# get new ADC2MeVTool
try:
from LArRecUtils.LArADC2MeVToolDefault import LArADC2MeVToolDefault
theLArADC2MeVToolDefault = LArADC2MeVToolDefault()
except Exception:
mlog.error("Could not get handle to LArADC2MeVToolDefault Quit")
print(traceback.format_exc())
return False
ToolSvc += theLArADC2MeVToolDefault
# get old ADC2MeVTool
try:
from LArRecUtils.LArADC2MeVToolOnline import LArADC2MeVToolOnline
theLArADC2MeVToolOnline = LArADC2MeVToolOnline()
except Exception:
mlog.error("Could not get handle to LArADC2MeVToolOnline Quit")
print(traceback.format_exc())
return False
ToolSvc += theLArADC2MeVToolOnline
theLArCellRecalibration.adc2MeVTool = theLArADC2MeVToolDefault
theLArCellRecalibration.adc2MeVToolOnline = theLArADC2MeVToolOnline
try:
from CaloRec.CaloRecConf import CaloCellContainerCorrectorTool
from CaloIdentifier import SUBCALO
theLArRecalibrationTool = CaloCellContainerCorrectorTool("LArRecalibrationTool",
CaloNums=[ SUBCALO.LAREM, SUBCALO.LARHEC, SUBCALO.LARFCAL ],
CellCorrectionToolNames=[ theLArCellRecalibration])
except Exception:
mlog.error("could not get handle to HVCorrTool Quit")
print(traceback.format_exc())
return False
theCaloCellMaker += theLArRecalibrationTool
theCaloCellMaker.CaloCellMakerToolNames += [theLArRecalibrationTool]
#
# Correction for MinBias energy shift for MC pileup reco
#
......
......@@ -8,12 +8,12 @@
#include "Identifier/Identifier.h"
#include "CaloTriggerTool/LArTTCell.h"
#include "CaloTriggerTool/LArTTCell_P.h"
#include "CaloIdentifier/LArID_Exception.h"
#include "CaloIdentifier/LArID_Exception.h"
#include "AthenaBaseComps/AthMessaging.h"
#include <vector>
#include <map>
class MsgStream ;
/**
@brief This is a StoreGate object holding the offline TT-cell map
......@@ -25,6 +25,7 @@ class MsgStream ;
*/
class LArTTCellMap
: public AthMessaging
{
public:
......@@ -70,8 +71,6 @@ private:
// std::map<HWIdentifier,Identifier> m_on2offIdMap;
LArTTCell_P m_persData;
MsgStream* m_msg ;
};
#include "AthenaKernel/CLASS_DEF.h"
......
......@@ -7,25 +7,17 @@
#include "CaloIdentifier/LArEM_ID.h"
#include "CaloIdentifier/LArHEC_ID.h"
#include "CaloIdentifier/LArFCAL_ID.h"
#include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/Bootstrap.h"
#include "AthenaKernel/getMessageSvc.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/IMessageSvc.h"
#include "GaudiKernel/ServiceHandle.h"
#include "StoreGate/StoreGateSvc.h"
#include <iostream>
LArTTCellMap::LArTTCellMap( ): m_msg(nullptr)
LArTTCellMap::LArTTCellMap( )
: AthMessaging (Athena::getMessageSvc(), "LArTTCellMap")
{
IMessageSvc *msgSvc;
StatusCode status =Gaudi::svcLocator()->service("MessageSvc",msgSvc);
if(status.isFailure()){
std::cout << "Cannot locate MessageSvc" << std::endl;
}
m_msg = new MsgStream ( msgSvc, "LArTTCellMap");
msgSvc->release() ;
}
......@@ -40,35 +32,30 @@ void LArTTCellMap::set( const LArTTCell& m )
convert_to_P(m);
if (m_msg->level() <= MSG::DEBUG) {
(*m_msg) <<MSG::DEBUG<<" LArTTCell size = "<<m.size() <<endmsg;
}
StoreGateSvc * detStore;
StatusCode status = Gaudi::svcLocator()->service("DetectorStore",detStore);
if(status.isFailure()){
(*m_msg) << MSG::ERROR << "Cannot locate DetectorStore" << endmsg;
}
ATH_MSG_DEBUG( " LArTTCell size = "<<m.size() );
ServiceHandle<StoreGateSvc> detStore ("DetectorStore", "LArTTCellMap");
const LArEM_ID* em_id;
const LArHEC_ID* hec_id;
const LArFCAL_ID* fcal_id;
const CaloLVL1_ID* lvl1_id;
status=detStore->retrieve(em_id);
StatusCode status=detStore->retrieve(em_id);
if(status.isFailure()){
(*m_msg) << MSG::ERROR << "Cannot retrieve em_id" << endmsg;
ATH_MSG_ERROR( "Cannot retrieve em_id" );
}
status=detStore->retrieve(hec_id);
if(status.isFailure()){
(*m_msg) << MSG::ERROR << "Cannot retrieve hec_id" << endmsg;
ATH_MSG_ERROR( "Cannot retrieve hec_id" );
}
status=detStore->retrieve(fcal_id);
if(status.isFailure()){
(*m_msg) << MSG::ERROR << "Cannot retrieve fcal_id" << endmsg;
ATH_MSG_ERROR( "Cannot retrieve fcal_id" );
}
status=detStore->retrieve(lvl1_id);
if(status.isFailure()){
(*m_msg) << MSG::ERROR << "Cannot retrieve lvl1_id" << endmsg;
ATH_MSG_ERROR( "Cannot retrieve lvl1_id" );
}
LArTTCell::const_iterator it = m.begin();
LArTTCell::const_iterator it_e = m.end();
......@@ -93,35 +80,29 @@ void LArTTCellMap::set( const LArTTCell& m )
id = fcal_id->channel_id(t.pn,t.region,t.eta,t.phi);
} else {
(*m_msg) <<MSG::ERROR <<" Wrong input Detector Number " << t.det << endmsg;
ATH_MSG_ERROR( " Wrong input Detector Number " << t.det );
}
Identifier sid = lvl1_id->layer_id(t.tpn,t.tsample,t.tregion,t.teta,t.tphi,t.layer);
if (m_msg->level() <= MSG::VERBOSE) {
(*m_msg) <<MSG::VERBOSE
<< " db struct= "
<<" det="<<t.det
<<" pn="<<t.pn
<<" region="<<t.region
<<" sample="<<t.sample
<<" eta="<<t.eta<<" phi="<<t.phi
<<" trig pn="<<t.tpn
<<" trig region="<<t.tregion
<<" trig sample="<<t.tsample
<<" trig eta="<<t.teta<<" trig phi="<<t.tphi
<<" layer="<<t.layer
<< endmsg;
(*m_msg) <<MSG::VERBOSE<< " lvl1 id = " << sid<<" offline id ="<<id<<endmsg;
}
ATH_MSG_VERBOSE( " db struct= "
<<" det="<<t.det
<<" pn="<<t.pn
<<" region="<<t.region
<<" sample="<<t.sample
<<" eta="<<t.eta<<" phi="<<t.phi
<<" trig pn="<<t.tpn
<<" trig region="<<t.tregion
<<" trig sample="<<t.tsample
<<" trig eta="<<t.teta<<" trig phi="<<t.tphi
<<" layer="<<t.layer );
ATH_MSG_VERBOSE( " lvl1 id = " << sid<<" offline id ="<<id );
if(!(cellIdSet.insert(id)).second) {
(*m_msg) <<MSG::ERROR<<" Duplicate cell id "
<< lvl1_id->show_to_string(id)
<< " in TT= "
<< lvl1_id->show_to_string(sid)
<< endmsg;
ATH_MSG_ERROR( " Duplicate cell id "
<< lvl1_id->show_to_string(id)
<< " in TT= "
<< lvl1_id->show_to_string(sid) );
}
m_cell2ttIdMap[id] = sid;
......@@ -167,13 +148,11 @@ void LArTTCellMap::set( const LArTTCell& m )
catch (LArID_Exception& except) {
(*m_msg) <<MSG::ERROR<<" Failed in LArTTCellMap::set " << endmsg;
(*m_msg) <<MSG::ERROR<< (std::string) except << endmsg ;
ATH_MSG_ERROR( " Failed in LArTTCellMap::set " );
ATH_MSG_ERROR( (std::string) except );
}
if (m_msg->level() <= MSG::DEBUG) {
(*m_msg) <<MSG::DEBUG<<" LArTTCellMap::set : number of cell Ids="<<m_cell2ttIdMap.size()<<std::endl;
}
ATH_MSG_DEBUG( " LArTTCellMap::set : number of cell Ids="<<m_cell2ttIdMap.size() );
detStore->release() ;
......@@ -190,7 +169,7 @@ Identifier LArTTCellMap::whichTTID(const Identifier& id) const
return (*it).second;
}
(*m_msg) <<MSG::ERROR<<" Offline TT ID not found for cell "<< id <<endmsg;
ATH_MSG_ERROR( " Offline TT ID not found for cell "<< id );
return Identifier();
......@@ -211,9 +190,7 @@ LArTTCellMap::createCellIDvec(const Identifier & sid) const
return (*it).second;
}
if (m_msg->level() <= MSG::VERBOSE) {
(*m_msg) <<MSG::VERBOSE<<" vector of offline cell ID not found, TT id = " <<sid.get_compact()<< endmsg;
}
ATH_MSG_VERBOSE( " vector of offline cell ID not found, TT id = " <<sid.get_compact() );
static const std::vector<Identifier> v;
return v ;
......
Commission/CommissionEvent
......@@ -44,7 +44,7 @@ AthHistogramAlgorithm::AthHistogramAlgorithm( const std::string& name,
"ROOT objects to ROOT files" );
// declareProperty("THistService", m_histSvc, "The THistSvc" );
declareProperty("RootStreamName", m_prefix = "/", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootStreamName", m_prefix = "/ANALYSIS", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootDirName", m_rootDir = "",
"Name of the ROOT directory inside the ROOT file where the histograms will go");
......
......@@ -43,7 +43,7 @@ AthHistogramFilterAlgorithm::AthHistogramFilterAlgorithm( const std::string& nam
"ROOT objects to ROOT files" );
//declareProperty("THistService", m_histSvc, "The THistSvc" );
declareProperty("RootStreamName", m_prefix = "/", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootStreamName", m_prefix = "/ANALYSIS", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootDirName", m_rootDir = "",
"Name of the ROOT directory inside the ROOT file where the histograms will go");
......
......@@ -41,7 +41,7 @@ AthHistogramTool::AthHistogramTool( const std::string& type,
"Handle to a THistSvc instance: it will be used to write "
"ROOT objects to ROOT files" );
declareProperty("RootStreamName", m_prefix = "/", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootStreamName", m_prefix = "/ANALYSIS", "Name of the output ROOT stream (file) that the THistSvc uses");
declareProperty("RootDirName", m_rootDir = "",
"Name of the ROOT directory inside the ROOT file where the histograms will go");
......
......@@ -939,6 +939,11 @@ def conf2toConfigurable( comp, indent="", suppressDupes=False ):
def __areSettingsSame( existingConfigurableInstance, newConf2Instance, indent="" ):
_log.debug( "%sChecking if settings are the same %s %s",
indent, existingConfigurableInstance.getFullName(), newConf2Instance.getFullJobOptName() )
if (existingConfigurableInstance.getType() != newConf2Instance.__cpp_type__):
raise ConfigurationError("Old/new ({} | {}) cpp types are not the same for ({} | {}) !".format(
existingConfigurableInstance.getType(),newConf2Instance.__cpp_type__,
existingConfigurableInstance.getFullName(), newConf2Instance.getFullJobOptName() ) )
alreadySetProperties = existingConfigurableInstance.getValuedProperties().copy()
_log.debug( "Existing properties: %s", alreadySetProperties )
_log.debug( "New properties: %s", newConf2Instance._properties )
......@@ -950,18 +955,35 @@ def conf2toConfigurable( comp, indent="", suppressDupes=False ):
indent, compName(newConf2Instance), pname, compName(pvalue) )
continue
propType = newConf2Instance._descriptors[pname].cpp_type
_log.debug( "%sComparing type: %s for: %s", indent, propType, pname )
_log.debug( "%sComparing type: %s for: %s in: %s", indent, propType, pname, existingConfigurableInstance.getFullJobOptName() )
if "PrivateToolHandleArray" in propType:
toolDict = {_.getName(): _ for _ in alreadySetProperties[pname]}
_log.debug('Private tool properties? %s', toolDict)
newCdict = {_.getName() : _ for _ in pvalue}
oldCset = set(toolDict); newCset = set(newCdict)
_log.debug('Private tool property names? %s %s', oldCset, newCset)
if ( not (oldCset == newCset) ):
_log.warning('%s PrivateToolHandleArray %s does not have the same named components',indent, pname )
_log.warning('%s Old (conf1) %s for %s',indent, oldCset, existingConfigurableInstance.getFullJobOptName())
_log.warning('%s New (conf2) %s for %s',indent, newCset, newConf2Instance.getFullJobOptName())
_log.warning('%s Will try to merge them, but this might go wrong!',indent)
for oldC in oldCset & newCset:
__areSettingsSame( toolDict[oldC], newCdict[oldC], __indent(indent))
# And now just the new properties in conf2 (the stuff just in conf1 is already in the objec)
for newC in newCset-oldCset:
# clone new config to old array
alreadySetProperties[pname].append(conf2toConfigurable(newCdict[newC]))
className = newCdict[newC].getFullJobOptName().split( "/" )[0]
_log.debug('%s %s not in oldconfig. Will try to create conf1 instance using this className: %s, and merge.',indent, newC, className)
configurableClass = __findConfigurableClass( className )
# Do not create with existing name, or it will try to get an existing public tool, if available
# (and public tools cannot be added to a PrivateToolHandleArray)
instance = configurableClass( newC + className + str(len(indent)) )
# Now give it the correct name
instance._name = newCdict[newC].name
__setProperties( instance, newCdict[newC], __indent( indent ) )
_log.debug('%s will now add %s to array.',indent, instance)
alreadySetProperties[pname].append(instance)
elif "PublicToolHandleArray" in propType:
toolSet = {_.getName() for _ in alreadySetProperties[pname]}
_log.debug('Public tool handle array properties? %s %s', toolSet, pvalue)
......@@ -982,6 +1004,9 @@ def conf2toConfigurable( comp, indent="", suppressDupes=False ):
"skipping deeper checks, configuration may be incorrect",
indent, propType, newConf2Instance.name, pname, pvalue)
else:
if pvalue is None:
_log.debug("%sThe property value for %s of %s is None. Skipping.", indent, pname, newConf2Instance.name )
continue
_log.debug( "%sSome kind of handle and, object type %s existing %s",
indent, type(pvalue), type(existingVal) )
__areSettingsSame( existingVal, pvalue, indent)
......@@ -991,22 +1016,36 @@ def conf2toConfigurable( comp, indent="", suppressDupes=False ):
if pname not in alreadySetProperties:
_log.info( "%sAdding property: %s for %s", indent, pname, newConf2Instance.getName() )
setattr(existingConfigurableInstance, pname, pvalue)
try:
setattr(existingConfigurableInstance, pname, pvalue)
except AttributeError:
_log.info("%s Could not set attribute. Type of existingConfigurableInstance %s.",indent, type(existingConfigurableInstance) )
raise
elif alreadySetProperties[pname] != pvalue:
_log.info( "%sMerging property: %s for %s", indent, pname, newConf2Instance.getName() )
# create surrogate
clone = newConf2Instance.getInstance("Clone")
setattr(clone, pname, alreadySetProperties[pname])
updatedPropValue = __listHelperToList(newConf2Instance._descriptors[pname].semantics.merge( getattr(newConf2Instance, pname), getattr(clone, pname)))
setattr(existingConfigurable, pname, updatedPropValue)
try:
updatedPropValue = __listHelperToList(newConf2Instance._descriptors[pname].semantics.merge( getattr(newConf2Instance, pname), getattr(clone, pname)))
except ValueError:
_log.warning( "Failed merging new config value (%s) and old config value (%s) for (%s) property of %s (%s) old (new). Will take value from NEW configuration, but this should be checked!",
getattr(newConf2Instance, pname),getattr(clone, pname),pname,existingConfigurableInstance.getFullJobOptName() ,newConf2Instance.getFullJobOptName() )
updatedPropValue=getattr(newConf2Instance, pname)
# Necessary because default value is returned for lists... see e.g.:
# https://gitlab.cern.ch/atlas/athena/-/blob/630b82d0540fff24c2a1da6716efc0adb53727c9/Control/AthenaCommon/python/PropertyProxy.py#L109
_log.debug("existingConfigurable.name: %s, pname: %s, updatedPropValue: %s", existingConfigurableInstance.name(), pname, updatedPropValue )
setattr(existingConfigurableInstance, pname, updatedPropValue)
del clone
_log.info("%s invoked GaudiConf2 semantics to merge the %s and the %s to %s "
"for property %s of %s",
indent, alreadySetProperties[pname], pvalue, pname,
updatedPropValue, existingConfigurable.getFullName())
_log.debug( "%s Conf2 Full name: %s ", indent, comp.getFullJobOptName() )
existingConfigurable = __alreadyConfigured( comp.name )
if existingConfigurable: # if configurable exists we try to merge with it
_log.debug( "%sPre-existing configurable %s was found, checking if has the same properties", indent, comp.getName() )
__areSettingsSame( existingConfigurable, comp )
......
......@@ -415,8 +415,6 @@ SharedHiveEvtQueueConsumer::bootstrap_func()
// ___________________ Fire UpdateAfterFork incident _________________
p_incidentSvc->fireIncident(AthenaInterprocess::UpdateAfterFork(m_rankId,getpid(),name()));
p_incidentSvc->fireIncident(Incident(name(),"ReloadProxies"));
// Declare success and return
*(int*)(outwork->data) = 0;
return outwork;
......
......@@ -63,7 +63,6 @@ IncidentSvc DEBUG Adding [BeginEvent] listener 'ConditionStore' with pri
IncidentSvc DEBUG Adding [BeginEvent] listener 'ToolSvc.IOVSvcTool' with priority 100
IncidentSvc DEBUG Adding [BeginRun] listener 'ToolSvc.IOVSvcTool' with priority 100
ToolSvc.IOVSvcTool INFO IOVRanges will be checked at every Event
IncidentSvc DEBUG Adding [ReloadProxies] listener 'ToolSvc.IOVSvcTool' with priority 100
ToolSvc.IOVSvcTool DEBUG Tool initialized
ClassIDSvc INFO getRegistryEntries: read 372 CLIDRegistry entries for module ALL
ToolSvc.IOVSvcTool DEBUG registering proxy [Dooo:6666/old] at 0x2309460
......
......@@ -24,6 +24,7 @@
#include "xAODEventInfo/EventInfo.h"
#include "AthenaKernel/BaseInfo.h"
#include "ICondSvcSetupDone.h"
#include "TClass.h"
......@@ -265,6 +266,12 @@ CondInputLoader::start()
return StatusCode::FAILURE;
}
// Let the conditions service know that we've finished creating
// conditions containers.
ServiceHandle<ICondSvcSetupDone> condSvcDone ("CondSvc", name());
ATH_CHECK( condSvcDone.retrieve() );
ATH_CHECK( condSvcDone->setupDone() );
return StatusCode::SUCCESS;
}
......
......@@ -130,6 +130,15 @@ CondSvc::finalize() {
}
StatusCode
CondSvc::start()
{
// Call this now, in case there's no CondInputLoader.
ATH_CHECK( setupDone() );
return StatusCode::SUCCESS;
}
StatusCode
CondSvc::stop() {
......@@ -342,7 +351,10 @@ CondSvc::getValidIDs(const EventContext& ctx, DataObjIDColl& validIDs) {
bool
CondSvc::isValidID(const EventContext& ctx, const DataObjID& id) const {
std::lock_guard<mutex_t> lock(m_lock);
// Don't take out the lock here.
// In many-thread jobs, a lock here becomes heavily contended.
// The only potential conflict is with startConditionSetup(),
// which should only be called during START.
EventIDBase now(ctx.eventID());
......@@ -352,13 +364,15 @@ CondSvc::isValidID(const EventContext& ctx, const DataObjID& id) const {
sk.erase(0,15);
}
if (m_sgs->contains<CondContBase>( sk ) ) {
CondContBase *cib;
if (m_sgs->retrieve(cib, sk).isSuccess()) {
ATH_MSG_VERBOSE("CondSvc::isValidID: now: " << ctx.eventID() << " id : "
<< id << (cib->valid(now) ? ": T" : ": F") );
return cib->valid(now);
}
auto it = m_condConts.find (sk);
if (it != m_condConts.end()) {
bool valid = it->second->valid (now);
ATH_MSG_VERBOSE("CondSvc::isValidID: now: " << ctx.eventID() << " id : "
<< id << (valid ? ": T" : ": F") );
return valid;
}
else {
ATH_MSG_ERROR( "Cannot find CondCont " << id );
}
ATH_MSG_DEBUG("CondSvc::isValidID: now: " << ctx.eventID() << " id: "
......@@ -396,3 +410,20 @@ CondSvc::conditionIDs() const {
}
//---------------------------------------------------------------------------
StatusCode CondSvc::setupDone()
{
std::lock_guard<mutex_t> lock(m_lock);
SG::ConstIterator<CondContBase> cib, cie;
if (m_sgs->retrieve(cib,cie).isSuccess()) {
while(cib != cie) {
m_condConts[cib.key()] = &*cib;
++cib;
}
}
return StatusCode::SUCCESS;
}
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IOVSVC_CONDSVC_H
......@@ -10,7 +10,9 @@
#include "AthenaBaseComps/AthService.h"
#include "StoreGate/StoreGateSvc.h"
#include "AthenaBaseComps/AthService.h"
#include "ICondSvcSetupDone.h"
#include <unordered_map>
#include <map>
#include <set>
#include <vector>
......@@ -19,38 +21,45 @@
class ConditionSlotFuture;
class ICondtionIOSvc;
class ATLAS_CHECK_THREAD_SAFETY CondSvc: public extends1<AthService, ICondSvc> {
class ATLAS_CHECK_THREAD_SAFETY CondSvc: public extends<AthService, ICondSvc, ICondSvcSetupDone> {
public:
CondSvc(const std::string& name, ISvcLocator* svc);
~CondSvc();
virtual StatusCode initialize();
virtual StatusCode finalize();
virtual StatusCode stop();
virtual StatusCode initialize() override;
virtual StatusCode finalize() override;
virtual StatusCode start() override;
virtual StatusCode stop() override;
// from ICondSvc
public:
virtual StatusCode regHandle(IAlgorithm* alg, const Gaudi::DataHandle& id);
virtual StatusCode regHandle(IAlgorithm* alg, const Gaudi::DataHandle& id) override;
virtual bool getInvalidIDs(const EventContext&, DataObjIDColl& ids);
virtual bool getValidIDs(const EventContext&, DataObjIDColl& ids);
virtual bool getIDValidity(const EventContext&, DataObjIDColl& validIDs,
DataObjIDColl& invalidIDs);
virtual bool isValidID(const EventContext&, const DataObjID&) const;
virtual bool isValidID(const EventContext&, const DataObjID&) const override;
virtual const std::set<IAlgorithm*>& condAlgs() const { return m_condAlgs; }
virtual const std::set<IAlgorithm*>& condAlgs() const override { return m_condAlgs; }
virtual bool isRegistered(const DataObjID&) const;
virtual bool isRegistered(IAlgorithm*) const;
virtual bool isRegistered(const DataObjID&) const override;
virtual bool isRegistered(IAlgorithm*) const override;
virtual const DataObjIDColl& conditionIDs() const;
virtual const DataObjIDColl& conditionIDs() const override;
virtual StatusCode validRanges( std::vector<EventIDRange>& ranges,
const DataObjID& id ) const;
const DataObjID& id ) const override;
// virtual void dump() const;
virtual void dump(std::ostream&) const;
virtual void dump(std::ostream&) const override;
/// To be called after changes to the set of conditions containers
/// in the conditions store.
/// May not be called concurrently with any other methods of this class.
virtual StatusCode setupDone() override;
public:
// unimplemented interfaces
......@@ -62,7 +71,7 @@ public:
/// register an IConditionIOSvc (alternative to Algorithm processing of
/// Conditions)
virtual StatusCode registerConditionIOSvc(IConditionIOSvc*) {
virtual StatusCode registerConditionIOSvc(IConditionIOSvc*) override {
return StatusCode::FAILURE;
}
......@@ -103,6 +112,11 @@ private:
DataObjIDColl m_condIDs;
// Map from keys to CondContBase instances.
// Populated by startConditionSetup().
typedef std::unordered_map<std::string, const CondContBase*> CondContMap_t;
CondContMap_t m_condConts;
typedef std::mutex mutex_t;
mutable mutex_t m_lock;
......
// This file's extension implies that it's C, but it's really -*- C++ -*-.
/*
* Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration.
*/
/**
* @file IOVSvc/src/ICondSvcSetupDone.h
* @author scott snyder <snyder@bnl.gov>
* @date Nov, 2020
* @brief Interface to tell CondSvc to cache conditions containers.
*/
#ifndef IOVSVC_ICONDSVCSETUPDONE_H
#define IOVSVC_ICONDSVCSETUPDONE_H
#include "GaudiKernel/IInterface.h"
class ICondSvcSetupDone
: virtual public IInterface
{
public:
DeclareInterfaceID( ICondSvcSetupDone, 1, 0 );
/// To be called after creating conditions containers
/// in the conditions store.
virtual StatusCode setupDone() = 0;
};
#endif // not IOVSVC_ICONDSVCSETUPDONE_H