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
  • gascott/athena
  • yuhui/athena
  • lserkin/athena
  • ccaminch/athena
  • corentin/athena
  • shbansal/athena
  • berkeleylab/CharmPhysics/athena
  • cdiez/athena
  • miochoa/athena
  • cpollard/athena
  • madurano/athena_gittutorial
  • hfox/athena
  • msykora/athena
  • ckirfel/athena
  • calfayan/athena
  • kjohns/athena
  • jakoubek/athena
  • atlas/athena
  • toshi/athena
  • dguest/athena
  • aundrus/athena
  • akraszna/athena
  • karolos/athena
  • fwinkl/athena
  • jmontejo/athena
  • wlampl/athena
  • damazio/athena
  • okuprash/athena
  • rhauser/athena
  • smh/athena
  • turra/athena
  • tdado/athena
  • phwindis/athena
  • tadej/athena
  • abuckley/athena
  • arnaez/athena
  • jmasik/athena
  • pjacka/athena
  • baines/athena
  • tamartin/athena
  • tbold/athena
  • mmuskinj/athena
  • mhodgkin/athena
  • nstyles/athena
  • psommer/athena
  • mark/athena
  • gemmeren/athena
  • bwynne/athena
  • ssnyder/athena
  • wwalko/athena
  • tstreble/athena
  • ATLAS-EGamma/athena
  • emoyse/athena
  • pgadow/athena
  • yuxu/athena
  • solodkov/athena
  • rbielski/athena
  • toyamaza/athena
  • dcasper/athena
  • mrybar/athena
  • ychiu/athena
  • christos/athena
  • rbianchi/athena
  • yoyamagu/athena
  • graemes/athena
  • nikiforo/athena
  • sshaw/athena
  • fpastore/athena
  • harkusha/athena
  • shlomit/athena
  • mvozak/athena
  • leggett/athena
  • hartj/athena
  • martindl/athena
  • jcatmore/athena
  • almaloiz/athena
  • ebuschma/athena
  • gunal/athena
  • tlari/athena
  • ewelina/athena
  • susinha/athena
  • ligang/athena
  • filthaut/athena
  • cchan/athena
  • peter/athena
  • sroe/athena
  • cvarni/athena
  • lfiorini/athena
  • wleight/athena
  • longjon/athena
  • nwarrack/athena
  • jichen/athena
  • chays/athena
  • cshimmin/athena
  • dtovey/athena
  • mihuebne/athena
  • sgeorge/athena
  • yafu/athena
  • mgignac/athena
  • jsallen/athena-high-pt-ms-jets
  • alfroch/athena
  • dkar/athena
  • mstamenk/athena
  • tkohno/athena
  • okepka/athena
  • wiedenat/athena
  • janovak/athena
  • khoo/athena
  • maklein/athena
  • cohm/athena
  • tmkrtchy/athena
  • omajersk/athena
  • dbakshig/athena
  • gingrich/athena
  • fernando/athena
  • schaarsc/athena
  • ponyisi/athena
  • scheiric/athena
  • ravinab/athena
  • pleskot/athena
  • jobalz/athena
  • ekuwertz/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
  • astruebi/athena
  • hye/athena
  • clseitz/athena
  • efilmer/athena
  • jpanduro/athena
  • bmindur/athena
  • ssarikay/athena
  • hyamauch/athena
  • shanisch/athena
  • ppostola/athena
  • aad/athena
  • gpanizzo/athena
  • ncalace/athena
  • tupham/athena
  • rcoelhol/athena
  • nkrengel/athena
  • stelzer/athena
  • rkopelia/athena
  • ssottoco/athena
  • cmcginn/athena
  • turnerm/athena
  • sutt/athena
  • tsulaia/athena
  • bernius/athena
  • vcairo/athena
  • ldc/athena
  • stsuno/athena
  • yunju/athena
  • jmacdona/athena
  • mbandier/athena
  • jdandoy/athena
  • jufische/athena
  • mehlhase/athena
  • nasbah/athena
  • dzanzi/athena
  • kwhalen/athena
  • kzoch/athena
  • bmorgan/athena
  • msaimper/athena
  • amete/athena
  • rcarney/athena
  • williams/athena
  • hhibi/athena
  • shhirose/athena
  • cheidegg/athena
  • heng/athena
  • cdeutsch/athena
  • kkohler/athena
  • coccaro/athena
  • loch/athena
  • nova/athena
  • ynoguchi/athena
  • todorova/athena
  • campanel/athena
  • sjiggins/athena
  • bgokturk/athena
  • wbalunas/athena
  • aytul/athena
  • hoide/athena
  • hrussell/athena
  • xju/athena
  • yuchou/athena
  • lidiaz/athena
  • kegraham/athena
  • jbiswal/athena
  • kpachal/athena
  • bouhova/athena
  • guerrero/athena
  • alwang/athena
  • mverissi/athena
  • alopezso/athena
  • dhayden/athena
  • mvessell/athena
  • ssantpur/athena
  • kenelson/athena
  • mvanadia/athena
  • upatel/athena
  • fmeloni/athena
  • omeshkov/athena
  • tvarol/athena
  • soumya/athena
  • ruyuan/athena
  • mhank/athena
  • dshope/athena
  • korona/athena
  • anperrev/athena
  • cowagner/athena
  • eramakot/athena
  • tursom/athena
  • fsforza/athena
  • dbogavac/athena
  • tnobe/athena
  • fgiuli/athena
  • derue/athena
  • koffas/athena
  • angianni/athena
  • ballbroo/athena
  • diehl/athena
  • falonso/athena
  • chinderk/athena
  • myexley/athena
  • tphamleh/athena
  • davidek/athena
  • ekajomov/athena-general
  • hansenph/athena
  • sarbiolv/athena
  • salvator/athena
  • mfujimot/athena
  • hirose/athena
  • stapiaar/athena
  • masato/athena
  • jhaley/athena
  • jmendes/athena
  • nwenke/athena
  • ffabbri/athena
  • tpelzer/athena
  • stavrop/athena
  • gia/athena
  • agbet/athena
  • hmildner/athena
  • cdelitzs/athena
  • dbabal/athena
  • kkrizka/athena
  • juesseiv/athena
  • dwallace/athena
  • temoskal/athena
  • eschanet/athena
  • asonay/athena
  • ckitsaki/athena
  • iaizenbe/athena
  • czhou/athena
  • lferencz/athena
  • pmeiring/athena
  • jteoh/athena
  • jiawei/athena
  • liberato/athena
  • mromano/athena
  • rustem/athena
  • jbeirer/athena
  • sswatman/athena
  • nielsenj/athena
  • miqueits/athena
  • elmsheus/athena
  • wachan/athena
  • ranovotn/athena
  • markowen/athena
  • asquith/athena
  • nicholas/athena
  • esoldato/athena
  • eparrish/athena
  • fuhe/athena
  • mhance/athena
  • dakoch/athena
  • asoukhar/athena
  • aranzazu/athena
  • ndegroot/athena
  • jkempste/athena
  • lihan/athena
  • tjunkerm/athena
  • aporeba/athena
  • sschramm/athena
  • ginaciog/athena
  • mdelmast/athena
  • verducci/athena
  • mswiatlo/athena
  • martis/athena
  • anmrodri/athena
  • bcarlson/athena
  • pliu/athena
  • fastcalosim_test/athena
  • ssaha/athena
  • gabarone/athena
  • igrabows/athena
  • mxia/athena
  • amoussa/athena
  • scamarda/athena
  • lstocker/athena
  • guindon/athena
  • mdonasci/athena
  • conde/athena
  • rlongo/athena
  • gialas/athena
  • chelling/athena
  • mmittal/athena
  • ffollega/athena
  • fcostanz/athena
  • hmaguire/athena
  • shion/athena
  • cgutscho/athena
  • sberlend/athena
  • acts/athena
  • sschmitt/athena
  • dwilbern/athena
  • nifomin/athena
  • zsoumaim/athena
  • evarnes/athena
  • laforge/athena
  • guescini/athena
  • eriefel/athena
  • haozturk/athena
  • jkremer/athena
  • akotsoke/athena
  • kkoeneke/athena
  • istin/athena
  • fizisist/athena
  • acanesse/athena
  • rpoggi/athena
  • susy-hackers/athena
  • llorente/athena
  • fengyu/athena
  • rkarnam/athena
  • navarrjo/athena
  • cmerlass/athena
  • bulekov/athena
  • ivivarel/athena
  • chenlian/athena
  • ysmirnov/athena_old
  • amulski/athena
  • yanlin/athena
  • pkramer/athena
  • sanchevi/athena
  • restevam/athena
  • vcavalie/athena
  • smwang/athena
  • sefernan/athena
  • bauerpa/athena
  • jgonski/athena
  • thsjurse/athena
  • mmazza/athena
  • wobisch/athena
  • itrandaf/athena
  • almgadm/athena
  • mmlynars/athena
  • iyeletsk/athena
  • csebasti/athena
  • jhinds/athena
  • mtchijov/athena
  • mwielers/athena
  • emmat/athena
  • tiyang/athena
  • lapereir/athena
  • lucam/athena
  • lmiller/athena
  • kciesla/athena
  • aleopold/athena
  • zuysal/athena
  • somadutt/athena
  • pekman/athena
  • rbalasub/athena
  • masaito/athena
  • jstupak/athena
  • salderwe/athena
  • simmons/athena
  • wmccorma/athena
  • pinamont/athena
  • kkreul/athena
  • ycoadou/athena
  • ilongari/athena
  • ssahin/athena
  • kbelobor/athena
  • jzeng/athena
  • adye/athena
  • wtaylor/athena
  • aoneill/athena
  • dmaximov/athena
  • gcallea/athena
  • cschiavi/athena
  • fbartels/athena
  • kghorban/athena
  • ljeanty/athena
  • jraine/athena
  • kasai/athena
  • mcfayden/athena
  • brottler/athena
  • scarra/athena
  • khanov/athena
  • rozeny/athena
  • ecarlson/athena
  • joheinri/athena
  • aelmouss/athena
  • abandyop/athena
  • nbelyaev/athena
  • gotero/athena
  • bigliett/athena
  • rebeca/athena
  • doglioni/athena
  • alaperto/athena
  • aohatl/athena
  • bhonan/athena
  • amarzin/athena
  • dpudzha/athena
  • paulama/athena
  • rgarg/athena
  • pmoskvit/athena
  • mtesta/athena
  • begalli/athena
  • jajimene/athena
  • atlidali/athena
  • yajun/athena
  • vcroft/athena
  • lbozianu/athena
  • torrence/athena
  • mpokidov/athena
  • wprzygod/athena
  • sgalantz/athena
  • demelian/athena
  • barak/athena
  • roward/athena
  • csander/athena
  • hacooke/athena
  • atsirigo/athena
  • tofitsch/athena
  • ozaplati/athena
  • salnikov/athena
  • amoroso/athena
  • elrossi/athena
  • mmiralle/athena
  • pottgen/athena
  • alory/athena
  • jsabater/athena
  • jdevivi/athena
  • ymino/athena
  • pbokan/athena
  • xchen/athena
  • apetukho/athena
  • klin/athena
  • trinn/athena
  • xiaoning/athena
  • ruth/athena
  • cappelt/athena
  • nishu/athena
  • bleban/athena
  • paramon/athena
  • nelsonc/athena
  • ratkin/athena
  • dpizzi/athena
  • ztarem/athena
  • juhofer/athena
  • acassim/athena
  • enarayan/athena
  • exot-27/athena
  • bburghgr/athena
  • sampson/athena
  • qhu/athena
  • mmarjano/athena
  • ychow/athena
  • mkrivos/athena
  • pagessin/athena
  • nviauxma/athena
  • LichtenbergGroup/athena
  • hessey/athena
  • othielma/athena
  • watsona/athena
  • ibordule/athena
  • wfawcett/athena
  • jdegens/athena
  • jreich/athena
  • hasada/athena
  • perj/athena
  • wgeorge/athena
  • mleblanc/athena
  • ztao/athena
  • xiaohu/athena
  • pmendesa/athena
  • sridouan/athena
  • alainb/athena
  • ludovica/athena
  • bachacou/athena
  • kristin/athena
  • yama/athena
  • yake/athena
  • ssu/athena
  • angerami/athena
  • jlsmith/athena
  • rnayak/athena
  • musafdar/athena
  • ktsuri/athena
  • jezequel/athena
  • pebaron/athena-weights
  • hschwart/athena
  • mproffit/athena
  • amendesj/athena
  • lhelary/athena
  • gproto/athena
  • asalzbur/athena
  • csamoila/athena
  • lbeemste/athena
  • malgren/athena
  • rerrabai/athena
  • tiany/athena
  • spolacek/athena
  • grabanal/athena
  • bmondal/athena
  • mprincip/athena
  • jreidels/athena
  • aczirkos/athena
  • kyamaguc/athena
  • asantra/athena
  • tboeckh/athena
  • jroloff/athena
  • silvinha/athena
  • slawlor/athena
  • holau/athena
  • mdhlamin/athena
  • tdiasdov/athena
  • bozek/athena
  • lkrauth/athena
  • iramirez/athena
  • carlod/athena
  • emily/athena
  • idinu/athena
  • mtian/athena
  • mgrabois/athena
  • bbrueers/athena
  • bcole/athena
  • ecelebi/athena
  • dhirsch/athena
  • oducu/athena
  • roishi/athena
  • jjwilkin/athena
  • yuanchan/athena
  • hmoyanog/athena-4-mr
  • ygo/athena
  • ggustavi/athena
  • exochell/athena
  • diwillia/athena
  • cgarner/athena
  • sbiryuko/athena
  • skorn/athena
  • changqia/athena
  • scalvet/athena
  • honguyen/athena
  • adimitri/athena
  • jwspence/athena
  • calpigia/athena
  • yangx/athena
  • rysawada/athena
  • jizamora/athena
  • atsiamis/athena
  • iene/athena
  • dhangal/athena
  • cmarcon/athena
  • kpetukho/athena
  • atlidbs/athena
  • athaler/athena
  • tbisanz/athena
  • jspah/athena
  • tqiu/athena
  • jcardena/athena
  • jkretz/athena
  • maliev/athena
  • tzenis/athena
  • hzuchen/athena
  • dopasqua/athena
  • ryamaguc/athena
  • lveloce/athena
  • tsano/athena
  • fdelrio/athena
  • oshukrun/athena
  • mumohdso/athena2
  • sagara17/athena
  • iwang/athena
  • mbiros/athena
  • atate/athena
  • okumura/athena
  • mumohdso/athena
  • rhayes/athena
  • evguillo/athena
  • dossantn/athena
  • dmunozpe/athena
  • arennie/athena
  • valentem/athena
  • koshimiz/athena
  • caforio/athena
  • suyounas/athena
  • zearnsha/athena
  • maly/athena
  • zhijie/athena
  • bnachman/athena
  • rjoshi/athena
  • yuzhan/athena
  • hlin/athena
  • machitis/athena
  • lunedic/athena
  • thompson/athena
  • crougier/athena
  • mimarine/athena
  • mtost/athena
  • lvannoli/athena
  • ndebiase/athena
  • omezhens/athena
  • saclawso/athena
  • jonierma/athena
  • dounwuch/athena
  • cprat/athena
  • nkakati/athena
  • echeu/athena
  • martinpa/athena
  • hhanif/athena
  • jodamp/athena
  • csauer/athena
  • mischott/athena
  • sahinsoy/athena
  • inaryshk/athena
  • tiknight/athena
  • wendlanb/athena
  • lkeszegh/athena
  • knikolop/athena
  • fedin/athena
  • xchu/athena
  • adik/athena
  • angrigor/athena
  • jaoliver/athena
  • echeremu/athena
  • pbellos/athena
  • lbaltes/athena
  • ignesi/athena
  • idrivask/athena
  • aikoulou/athena
  • haweber/athena
  • ntamir/athena
  • sadykov/athena
  • eschopf/athena
  • sgurdasa/athena
  • algilber/athena
  • pamachad/athena
  • pbhattar/athena
  • pyanezca/athena
  • hiito/athena
  • tteixeir/athena
  • tavandaa/athena
  • bsaifudd/athena
  • veellajo/athena
  • mdrozdov/athena
  • wolter/athena
  • fsili/athena
  • nheatley/athena
  • minaenko/athena
  • hsimpson/athena
  • mrenda/athena
  • fdibello/athena
  • dparedes/athena
  • mzhai/athena
  • rkusters/athena
  • zyan/athena
  • emmarsha/athena
  • chchau/athena
  • zhangr/athena
  • jburzyns/athena
  • zmarshal/athena
  • edweik/athena
  • phkenned/athena
  • slai/athena
  • awilhahn/athena
  • agaa/athena
  • leevans/athena
  • javanden/athena
  • llaatu/athena
  • stsigari/athena
  • zfeng/athena
  • zifeng/athena
  • srdas/athena
  • kkrowpma/athena
  • atropina/athena
  • adonofri/athena
  • atlaspmb/athena
  • metsai/athena
  • cleonido/athena
  • seggebre/athena
  • drousso/athena
  • yuanda/athena
  • mnoury/athena
  • arombola/athena
  • ademaria/athena
  • eyamashi/athena
  • kchoi/athena
  • dgillber/athena
  • ijuarezr/athena
  • axiong/athena
  • saktas/athena
  • zang/athena
  • amdesai/athena
  • matakagi/athena
  • nlopezca/athena
  • acanbay/athena
  • qibin/athena
  • fbendebb/athena
  • berkeleylab/lowmutracking/athena
  • jferrand/athena
  • tbuanes/athena
  • bshresth/athena
  • hpotti/athena
  • klassen/athena
  • egodden/athena
  • cbuitrag/athena
  • otheiner/athena-official
  • vtudorac/athena
  • hawatson/athena
  • chonghao/athena
  • mfarring/athena
  • dzengerj/athena
  • parodi/athena
  • dcieri/athena
  • knakkali/athena
  • buboehm/athena
  • bballard/athena
  • lmontana/athena
  • zhuyi/athena
  • adaribay/athena
  • cimcp/athena
  • weixi/athena
  • cantel/athena
  • iliadis/athena
  • frenner/athena
  • kbenkend/athena
  • duperrin/athena
  • asansar/athena
  • jburr/athena
  • blumen/athena
  • isotarri/athena
  • bstanisl/athena
  • dkoeck/athena
  • mfewell/athena
  • eegidiop/athena
  • miholzbo/athena
  • czodrows/athena
  • yulei/athena
  • smitani/athena
  • alsala/athena
  • olangrek/athena
  • clantz/athena
  • amincer/athena
  • gshatri/athena
  • jmharris/athena
  • hpang/athena
  • jgargan/athena
  • gripelli/athena
  • otheiner/athena
  • ewatton/athena
  • preselection-hackathon/athena
  • mleigh/athena
  • smeriano/athena
  • deniso/athena
  • tizuo/athena
  • rushioda/athena
  • sfranche/athena
  • mfernoux/athena
  • chandler/athena
  • jnitschk/athena
  • bernardo/athena
  • viruelas/athena
  • hriani/athena
  • yusano/athena
  • davetisy/athena
  • pebaron/athena-td
  • ksugizak/athena
  • anghosh/ef-anindya
  • skaur/athena
  • rtagami/athena
  • jgombas/athena
  • vcepaiti/athena
  • wsherman/athena
  • pakontax/athena
  • yochi/athena
  • apsallid/athena
  • sroygara/athena
  • yuanj/athena
  • mcgensvc/athena
  • chji/athena
  • dmclaugh/athena
  • agavrily/athena
  • abunka/athena
  • giagu/athena
  • dmahon/athena
  • islazyk/athena
  • almay/athena
  • yuwen/athena
  • qberthet/athena
  • ekay/athena
  • cjmeyer/athena
  • mshapiro/athena
  • dkobylia/athena
  • mbarel/athena
  • baitbenc/athena
  • rdinardo/athena
  • dakiyama/athena
  • glamprin/athena
  • cgrefe/athena
  • osalin/athena
  • mlanzacb/athena
  • minlin/athena
  • kazhang/athena
  • szambito/athena
  • hwilkens/athena
  • wsfreund/athena
  • pebaron/athena
  • beringer/athena
  • enagy/athena
  • schaffer/athena
  • yyap/athena
  • menke/athena
  • mspalla/athena
  • fcalosim/athena
  • tkharlam/athena
  • mavogel/athena
  • smobius/athena
  • mduehrss/athena
  • spagan/athena
  • okiverny/athena
  • rateixei/athena
  • carquin/athena
  • jelena/athena
  • dportill/athena
  • osunnebo/athena
  • chhayes/athena
  • sanmay/athena
  • jwalder/athena
  • satom/athena
  • desilva/athena
  • lmijovic/athena
  • junpei/athena
  • tilebeam/athena
  • jstark/athena
  • jahreda/athena
  • kiabelin/athena
  • vtskhaya/athena
  • mcarnesa/athena
  • jedebevc/athena
  • krbjoerk/athena
  • cyoung/athena
  • delsart/athena
  • silu/athena
  • jtanaka/athena
  • mtogawa/athena
  • haoran/athena
  • luxin/athena
  • yifany/athena
  • danning/athena
  • faser/offline/athena
  • maslawin/athena
  • minghui/athena
  • dcasperfaser/athena
  • almeidvi/athena
  • beddall/athena
  • mmontell/athena
  • cfan/athena
  • kazheng/athena
  • srettie/athena
  • vmartin/athena
  • pajones/athena
  • beltran/athena-fork
  • kgupta/athena
  • sudha/athena
  • lhenkelm/athena
  • ssinha/athena
  • lgagnon/athena
  • anbaraja/athena
  • amorenos/athena
  • serodrig/athena
  • kkawade/athena
  • dpanchal/athena
  • joana/athena
  • jshahini/athena
  • mtanasin/athena
  • chiodini/athena
  • lfeligio/athena
  • apalazzo/athena
  • vbuxbaum/athena
  • jaofferm/athena
  • kburka/athena
  • ehaines/athena
  • gonzalri/athena
  • mdidenko/athena
  • desengup/athena
  • gottino/athena
  • rmazini/athena
  • sabidi/athena
  • qidong/athena
  • gavrilen/athena
  • bkerridg/athena
  • dwkim/athena
  • jingjing/athena
  • cdimitri/athena
  • ktackman/athena
  • hazeng/athena
  • mischott/athena-22
  • ktopolni/athena
  • dabattul/athena
  • attrtcal/athena
  • sgaid/athena
  • thmaurin/athena
  • yche/athena
  • yoyeh/athena
  • asciandr/athena
  • bochen/athena
  • chjiang/athena
  • meiqi/athena
  • pclark/athena
  • lbazzano/athena
  • rushioda/athena-3
  • krdona/athena
  • kvidalgu/athena
  • nlad/athena
  • dtorresa/athena
  • xinfei/athena
  • hmoyanog/athena
  • jcurran/athena
  • maboelel/athena
  • aaikot/athena
  • aackerma/athena
  • yingjun/athena
  • lesplend/athena
  • mschefer/athena
  • xinhui/athena
  • aivina/athena
  • rmakhman/athena
  • kazheng/athena-physics-val-2023
  • shhan/athena
  • zoduan/athena
  • zhiliang/athena
  • bdixit/athena
  • liuk/athena
  • alsidley/athena
  • sfrances/athena
  • jlue/athena
  • xingguo/athena
  • ragrabar/athena
  • kyjones/topoetcone-removal
  • niabicht/athena
  • asehrawa/athena
  • lcalic/athena-backup
  • mhoppesc/athena
  • keener/athena
  • llewitt/athena
  • yunagai/athena
  • shahzad/athena
  • greynold/athena
  • bschlag/athena
  • kazheng/athena-workingpoint
  • agentry/athena
  • yinmiao/athena
  • adohnalo/athena
  • bruckman/athena
  • asmaga/athena
  • drankin/athena
  • nkang/athena
  • kbhide/athena
  • hvanders/athena
  • ladamczy/test
  • losanti/athena
  • tbeumker/athenatest
  • tbeumker/athena
  • berkeleylab/acts/athena
  • weitao/athena
  • menu-hackathon/athena
  • jiturriz/athena
  • losanti/athena-23
  • vmaksimo/athena
  • wsong/athena
  • dmankad/athena-idle
  • kyjones/trigger-example
  • seggebre/athena-fluencemap-modification
  • toobauma/athena
  • fisopkov/athena
  • dawerner/athena
  • gtarna/athena
  • edreyer/athena
  • lprimomo/athena
  • SecVtx-Lancaster/Athena
  • smanzoni/athena
  • maparo/athena
  • pgraveli/athena
  • adimri/athena
  • shmukher/athena
  • aackerma/atlas-athena
  • lrambell/athena
  • jcrosby/athena
  • wstanek/athena
  • tovsiann/athena
  • rsnyder/athena
  • atlas-sa-uct/athena
  • skita/athena
  • eullmank/athena
  • ppotepa/athena
  • mhemmett/athena
  • zgao/athena
  • achakrav/athena
  • rashbypi/athena
  • kgoto/athena
  • thmaurin/athena-sim-flavour
  • lroos/athena
  • xmapekul/athena
  • evitale/athena
  • arej/athena
  • ivyas/athena
  • lkretsch/athena
  • npond/athena
  • epasqual/athena
  • jebohm/athena
  • aleksand/athena
  • mbiyabi/athena
  • hluk/athena
  • cvittori/athena
  • mihe/athena
  • aralves/athena
  • dkoeck/anniathenafork
  • dbiswas/athena
  • mkareem/athena
  • croland/athena
  • tslee/athena
  • rgupta/athena
  • cgarvey/athena
  • mhaacke/athena
  • kesedlac/athena
  • pkumari/athena
  • asoflau/athena
  • feickert/athena
  • ctosciri/athena-old
  • ctosciri/athena
  • agerwin/athena
  • ricunnin/athena
  • gwilliam/athena
  • gfrattar/athena
  • bdixit/masking-strip-modules
  • bscheuer/athena
  • gtolkach/athena
  • ksudo/athena
  • jfeng2/athena
  • svanstro/athena
  • gaofeng/athena
  • kosuzuki/athena
  • rmizuhik/athena
  • kkanke/athena
  • vaustrup/athena
  • hart/athena
  • rhiguchi/athena
  • tnakagaw/athena
  • amakita/athena
  • tpaschoa/athena
  • maoki/athena
  • etoyoda/athena
  • miyamada/athena
  • rishikaw/athena
  • whopkins/athena
  • anayaz/athena
  • dduda/athena
  • ferusso/athena
  • evalient/athena
  • smweber/athena
  • aagaard/athena
  • zyan/athena-muon-calib-stream
  • shudong/athena
  • smweber/athena-run-3
  • zyan/athena-muon-calib
  • evalient/athena-dnn-calculator
  • strom/athena-dms
  • strom/athena
  • dellacqu/athena
  • glagafon/project-nimber-1
  • jsallen/athena
  • sbellman/athena
  • leguo/athena
  • brosser/athena
  • macretar/athena
  • skadir/athena-sadaf
  • aowang/athena
  • ooncel/athena
  • jhoya/athena
  • osotosan/athena
  • tygeorge/athena
  • glagafon/handi-project
  • wuxi/athena
  • syan/athena-syan
  • hasun/athena
  • will/athena
  • mnorfolk/athena
  • glagafon/handi-project-1
  • aborbely/athena
  • axgallen/athena-qualification-task
  • seinfant/athena
  • schernau/athena
  • karakawa/athena
  • taogawa/athena
  • mmaroun/ravina-fork
  • axgallen/athena
  • dmankad/athena-gen
  • romar/athena
  • agarabag/athena
  • tmlinare/athena
  • ktariq/athena
  • zuzak/athena
  • vlysenko/athena
  • mahorstm/athena
  • dhagan/athena
  • ibamwidh/athena
  • tizhang/athena
  • ipolishc/athena
  • frfische/athena
  • atishelm/athena
  • jolamber/athena
  • jlue/athena-latest
  • ykhoulak/myathena
  • yil/athena
  • chuanye/athena
  • xilin/athena
  • dntounis/athena
  • huayu/athena
  • nkua-atlas/athena
  • tayoshid/athena
  • kifarman/athena
  • nischmit/athena
  • lderamo/athena
  • dtruncal/athena
  • steinber/athena-main
  • tdingley/athena
  • movincen/athena
  • dongyi/athena
  • hasegawa/athena
  • glagafon/dq-optimize
  • kazheng/athena-acts
  • openc/athena
  • malvesca/athena
  • mnowak/athena
  • ekajomov/athena-fork-fix
  • ladamczy/athena
  • mhufnage/athena
  • lcalic/athena
  • lsultana/obsolete_athena
  • yonoda/athena
  • lsultana/athena
  • rqian/athena
  • alveltma/athena
  • anfortma/athena
  • kfung/athena
  • alpleban/athena
  • pebaron/athena-leprem
  • mmaheshw/athena
  • jdavidso/athena
  • edcritel/athena
  • anstein/athena
  • anhodges/athena
  • gbird/athena
  • midandre/athena
  • bglik/athena
  • fcurcio/athena
  • mfurukaw/athena
  • sokkerma/athena
  • kyjones/athena
  • mveen/athena
  • mvivasal/athena
  • asbrooks/athena
  • mmlynars/athena-v-2
  • tburatov/athena
  • dmankad/athena
  • jmcgowan/athena
  • joroemer/athena
  • lboccard/athena
  • tayoshid/athena-test
  • ctaybi/athena
  • jodafons/athena
  • ivyoung/athena
  • drasslof/athena
  • sdemiran/athena
  • sanchezj/athena-2022
  • jiddon/athena
  • tmclachl/athena
  • anburger/athena
  • fwinkel/athena
  • apfleger/athena
  • sdahbi/athena
  • sidoti/athena
  • izahir/athena
  • mmoors/athena
  • goblirsc/athena
  • rvinasco/athena
  • sanchezj/athena
  • jwkraus/athena
  • esimpson/athena
  • obut/athena
  • rhaberle/athena
  • janders/athena
  • jhowarth/athena
  • klleras/athena
  • dta/athena_old
  • jchapman/athena
  • mungo/athena
  • jecouthu/athena
  • misantan/athena
  • dtrischu/athena
  • sfuenzal/athena
  • avallier/athena
  • fmontere/athena
  • fhenry/athena
  • zalegria/athena
  • awharton/Athena
  • zhaotong/athena
  • acordeir/athena-ed
  • gdigrego/athena
  • shaoguan/athena
  • pdougan/athena
  • amelo/athena
  • nbruscin/athena
  • peiyan/athena
  • caiy/athena
  • mkholoda/athena
  • fkirfel/athena
  • kchu/athena
  • backes/athena
  • tayoshid/athena-2024
  • gfacini/athena
  • esampson/athena-idart
  • bcervato/athena
  • fwinkl2/athena
  • shpeng/athena-2
  • costanzo/athena
  • gmercado/athena
  • rhowen/athena
  • esampson/athena-idart-2
  • nharriso/athena
  • esampson/athena-otp
  • gmascare/athena
  • yvolkotr/athena
  • djlewis/athena
  • pibutti/athena
  • yuematsu/athena
  • alpleban/athena-met
  • wcastigl/athena
  • astefl/athena
  • yilin/athena
  • esampson/athena-june-otp
  • bmoser/athena
  • thitchin/athena
  • zhanhang/athena
  • bdong/athena
  • ksahan/athena
  • sosarkar/athena-again
  • msasada/athena
  • lbarrade/athena
  • agheata/athena
  • okolay/athena
  • txu/athena
  • robouque/athena
  • seth/athena
  • zhangbo/athena
  • mlyukova/athena
  • dbaronmo/athena
  • esampson/june-2-otp
  • nsurijr/athena
  • damperia/athena-acts
  • wema/athena
  • bhuth/athena
  • martyniu/athena
  • acamplan/athena
  • vsasse/athena
  • boudreau/athena
  • eballabe/athena
  • bngair/met-significance-r-22
  • bngair/me-tsig-athena
  • ksakura/athena
  • vkost/athena
  • rhicks/athena
  • menadeem/athena
  • atymchys/athena
  • yanqiw/athena
  • linghua/athena
  • domatter/athena
  • skadir/athena
  • arelycg/athena
  • juscerri/athena
  • sgoswami/athena
  • biliu/athena
  • mwessels/athena
  • ddicroce/athena
  • sosarkar/athena
  • beltran/athena
  • dreikher/athena
  • cleong/athena
  • hshaddix/athena
  • lwinkler/athena
  • emoon/athena
  • mhabedan/athena
  • bdebjani/athena
  • fladias/athena
  • elham/athena
  • haren/athena
  • dwilson/athena
  • sdiefenb/athena-onnx-tutorial
  • nkrogh/athena
  • fivone/athena
  • echerepa/athena
  • mads/athena
  • lsanfili/athena
  • dahumphr/athena
  • thart/athena
  • scane/athena
  • lifoster/athena
  • baer/athena
  • kenakamu/athena
  • glagafon/aaaathena
  • alancast/athena
  • dcamarer/athena
  • haotianl/athena
  • eskorda/athena
  • salopez/athena
  • rshibata/athena
  • glagafon/glagafon-dq
  • glagafon/athena
  • ukhurshi/athena
  • lburke/athena
  • rvavrick/athena
  • therwig/athena
  • pizhang/athena
  • mwitkows/athena
  • delitez/athena
  • htsoi/athena
  • pachabri/athena
  • lcorazzi/athena
  • casadop/athena
  • jaburles/athena
  • mmantina/athena
  • ezaya/athena
  • achamber/athena
  • hzhuang/athena
  • lmonaco/athena
  • rmole/athena
  • jkrupa/athena
  • mfornasi/athena
  • mamirono/athena
  • gserenis/athena
  • rpozzi/athena
  • uepstein/athena
  • fdattola/athena
  • belderto/athena
  • semami/athena
  • jinglis/athena
  • abesir/athena
  • lechols/athena
  • ljerala/athena
  • cmavungu/athena
  • htorre/athena
  • lopezzot/athena
  • jlittle/athena
  • jajohnso/athena
  • tneep/athena
  • robouque/athena-20241115
  • fsiegert/athena
  • lbrown/athena
  • wenjingw/athena
  • wguerin/athena
  • rmole/athena-personal-fork
  • kfang/athena-fork-kyfang
  • epompapa/athena
  • jackersc/athena
  • ashirazi/athena
  • kgrimm/athena-kgrimm
  • prmitra/athena
  • wasu/athena
  • aslobodk/athena
  • amoreira/athena
  • nihartma/athena
  • kdipetri/athena
  • toheintz/athena
  • gfazzino/athena
  • yazhou/athena
  • muschmid/athena
  • goetz/athena-acts
  • alarnold/athena
  • djuarezg/athena
  • mdacunha/athena
  • wlai/athena
  • falves/athena
  • alecrhys/athena
  • mborodin/athena
  • novotnyp/athena
  • rohasan/athena
  • asickles/athena
  • adsalvad/athena
  • lvicenik/athena
  • christog/athena
  • ibenaoum/athena
  • kkazakov/athena
  • tflee/athena
  • frcastig/athena
  • zetao/athena
  • mfarzali/athena
  • llarson/athena
  • ehampshi/athena
  • tomoya/athena-low-pt-muon-rec
  • jusilva/athena
  • pusharma/athena
  • gpinheir/athena
  • mojeda/athena
  • jecifuen/athena
  • exochell/my-athena
  • hshaddix/athena-hshaddix
  • jlieberm/athena
  • vchabala/athena
  • chhultqu/athena
  • nshtokha/athena
  • nsur/athena-lund
  • jlai/athena
  • misavic/athena
  • pmourafr/athena
  • camccrac/athena
  • yuxuanz/local-athena
  • akraus/athena
  • sizumiya/athena
  • yukari/athena
  • zhubacek/athena
  • sawyer/athena
  • mnegrini/athena
  • yanqiw/athena-acts-for-run-3-silicon-tracking
  • mfilipig/athena
  • beyeo/athena
  • fdejean/athena
  • zrokavec/athena
  • gipoddar/athena
  • gsalvi/athena
  • mtancock/athena-2
  • rkavak/athena
  • ssuravar/athena
  • vpires/athena-vasco
  • sutuncay/athena
  • ywng/athena
  • fballi/athena
1575 results
Show changes
Commits on Source (8)
Showing
with 180 additions and 501 deletions
......@@ -237,7 +237,7 @@ class EventSelectionConfig(ConfigBlock):
if not self.currentDecoration:
self.currentDecoration = f'pass_{region}_%SYS%,as_char'
else:
self.currentDecoration = f'{self.currentDecoration}&&pass_{region}_%SYS%'
self.currentDecoration = f'{self.currentDecoration},as_char&&pass_{region}_%SYS%'
# for the cutflow, we need to retrieve all the cuts corresponding to this IMPORT
imported_cuts = [cut for cut in config.getSelectionCutFlow('EventInfo', '') if cut.startswith(region)]
self.cutflow += imported_cuts
......@@ -254,7 +254,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NEL_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.electrons)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -282,7 +282,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NMU_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.muons)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -311,7 +311,7 @@ class EventSelectionConfig(ConfigBlock):
alg = config.createAlgorithm('CP::SumNElNMuPtSelectorAlg', thisalg)
alg.electrons, alg.electronSelection = config.readNameAndSelection(self.electrons)
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPtEl = self.check_float(items[1])
alg.minPtMu = self.check_float(items[1])
......@@ -336,7 +336,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NJET_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.jets)
alg.eventPreselection = f'{self.currentDecoration},as_char,as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -391,7 +391,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NPH_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.photons)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -419,7 +419,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NTAU_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.taus)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -445,7 +445,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NLJET_{self.step}'
alg = config.createAlgorithm('CP::NObjectPtSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.largeRjets)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minPt = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -471,7 +471,7 @@ class EventSelectionConfig(ConfigBlock):
thisalg = f'{self.name}_NLJETMASS_{self.step}'
alg = config.createAlgorithm('CP::NObjectMassSelectorAlg', thisalg)
alg.particles, alg.objectSelection = config.readNameAndSelection(self.largeRjets)
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
if len(items) == 4:
alg.minMass = self.check_float(items[1])
alg.sign = self.check_sign(items[2])
......@@ -514,7 +514,7 @@ class EventSelectionConfig(ConfigBlock):
alg.sign = self.check_sign(items[4])
alg.count = self.check_int(items[5])
alg.vetoMode = (len(items) ==7 and self.check_string(items[6]) == "veto")
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -532,7 +532,7 @@ class EventSelectionConfig(ConfigBlock):
alg.metTerm = self.metTerm
alg.sign = self.check_sign(items[1])
alg.refMET = self.check_float(items[2])
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -552,7 +552,7 @@ class EventSelectionConfig(ConfigBlock):
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.sign = self.check_sign(items[1])
alg.refMWT = self.check_float(items[2])
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -574,7 +574,7 @@ class EventSelectionConfig(ConfigBlock):
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.sign = self.check_sign(items[1])
alg.refMETMWT = self.check_float(items[2])
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -594,7 +594,7 @@ class EventSelectionConfig(ConfigBlock):
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.sign = self.check_sign(items[1])
alg.refMLL = self.check_float(items[2])
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -615,7 +615,7 @@ class EventSelectionConfig(ConfigBlock):
alg.lowMLL = self.check_float(items[1])
alg.highMLL = self.check_float(items[2])
alg.vetoMode = (len(items) == 4 and self.check_string(items[3]) == "veto")
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -638,7 +638,7 @@ class EventSelectionConfig(ConfigBlock):
else:
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.OS = True
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -661,7 +661,7 @@ class EventSelectionConfig(ConfigBlock):
else:
alg.muons, alg.muonSelection = config.readNameAndSelection(self.muons)
alg.OS = False
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......@@ -688,7 +688,7 @@ class EventSelectionConfig(ConfigBlock):
alg.lowMll = self.check_float(items[1])
alg.highMll = self.check_float(items[2])
alg.vetoMode = (len(items) == 4 and self.check_string(items[3]) == "veto")
alg.eventPreselection = f'{self.currentDecoration},as_char'
alg.eventPreselection = f'{self.currentDecoration},as_char' if self.currentDecoration else ''
self.setDecorationName(alg, config, f'{thisalg}_%SYS%')
return
......
......@@ -72,7 +72,7 @@ namespace ST {
const static SG::AuxElement::Decorator<int> dec_wtagged("wtagged");
const static SG::AuxElement::Decorator<int> dec_ztagged("ztagged");
const static SG::AuxElement::Decorator<int> dec_toptagged("toptagged");
StatusCode SUSYObjDef_xAOD::GetJets(xAOD::JetContainer*& copy, xAOD::ShallowAuxContainer*& copyaux, bool recordSG, const std::string& jetkey, const xAOD::JetContainer* containerToBeCopied)
{
if (!m_tool_init) {
......@@ -300,7 +300,7 @@ namespace ST {
for (const auto& jet : *copy) {
ATH_CHECK( this->FillJet(*jet, true, true, doLargeRdecorations) );
//
// For OR, selected if it passed cuts
......@@ -405,9 +405,36 @@ namespace ST {
dec_ztagged(input) = -1;
dec_toptagged(input) = -1;
if (doLargeRdecorations) {
if (!m_WtagConfig.empty()) dec_wtagged(input) = m_WTaggerTool->tag(input).isSuccess();
if (!m_ZtagConfig.empty()) dec_ztagged(input) = m_ZTaggerTool->tag(input).isSuccess();
if (!m_ToptagConfig.empty()) dec_toptagged(input) = m_TopTaggerTool->tag(input).isSuccess();
ATH_CHECK(m_WTaggerTool->tag(input));
ATH_CHECK(m_ZTaggerTool->tag(input));
ATH_CHECK(m_TopTaggerTool->tag(input));
// Retreive large-R tagging results for W/Z/top
if (!m_WtagConfig.empty()) {
// Only tag jets if they are inside the kinematic range
if ( !input.auxdata<bool>(m_WDecorName+"_ValidKinRange") ) {
ATH_MSG_VERBOSE("Large-R W candidate jet outside of recommended tagging range. Will set score to 0.");
dec_wtagged(input) = 0;
}
else dec_wtagged(input) = input.auxdata<bool>(m_WDecorName+"_Tagged");
}
if (!m_ZtagConfig.empty()) {
// Only tag jets if they are inside the kinematic range
if ( !input.auxdata<bool>(m_ZDecorName+"_ValidKinRange") ) {
ATH_MSG_VERBOSE("Large-R Z candidate jet outside of recommended tagging range. Will set score to 0.");
dec_ztagged(input) = 0;
}
else dec_ztagged(input) = input.auxdata<bool>(m_ZDecorName+"_Tagged");
}
if (!m_ToptagConfig.empty()) {
// Only tag jets if they are inside the kinematic range
if ( !input.auxdata<bool>(m_TopDecorName+"_ValidKinRange") ) {
ATH_MSG_VERBOSE("Large-R Top candidate jet outside of recommended tagging range. Will set score to 0.");
dec_toptagged(input) = 0;
}
else dec_toptagged(input) = input.auxdata<bool>(m_TopDecorName+"_Tagged");
}
}
// If a user hasn't specified an uncertainty config, then this tool will be empty
......@@ -479,7 +506,7 @@ namespace ST {
} else {
ATH_MSG_DEBUG( "No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
}
ATH_MSG_VERBOSE( "Large-R jet (pt,eta,phi) after calibration " << input.pt() << " " << input.eta() << " " << input.phi() );
return StatusCode::SUCCESS;
}
......
......@@ -114,15 +114,18 @@ SUSYObjDef_xAOD::SUSYObjDef_xAOD( const std::string& name )
m_badJetCut(""),
m_fatJetUncConfig(""),
m_fatJetUncVars(""),
m_WDecorName(""),
m_ZDecorName(""),
m_TopDecorName(""),
m_WtagConfig(""),
m_ZtagConfig(""),
m_WZTaggerCalibArea(""),
m_ToptagConfig(""),
m_WZTaggerCalibArea(""),
m_TopTaggerCalibArea(""),
m_WTagUncConfig(""),
m_ZTagUncConfig(""),
m_TopTagUncConfig(""),
m_JetTruthLabelName(""),
m_TopTaggerCalibArea(""),
m_tool_init(false),
m_subtool_init(false),
// set dummies for configuration
......@@ -1521,16 +1524,16 @@ StatusCode SUSYObjDef_xAOD::readConfig()
configFromFile(m_fatJetUncVars, "Jet.LargeRuncVars", rEnv, "default"); // do all if not specified
configFromFile(m_WtagConfig, "Jet.WtaggerConfig", rEnv, "SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
configFromFile(m_ZtagConfig, "Jet.ZtaggerConfig", rEnv, "SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
configFromFile(m_WZTaggerCalibArea, "Jet.WZTaggerCalibArea", rEnv, "SmoothedWZTaggers/Rel21/February2022/");
configFromFile(m_WZTaggerCalibArea, "Jet.WZTaggerCalibArea", rEnv, "Winter2024_R22_PreRecs/SmoothedWZTaggers/");
configFromFile(m_ToptagConfig, "Jet.ToptaggerConfig", rEnv, "DNNTagger_AntiKt10UFOSD_TopInclusive80_Oct30.dat");
configFromFile(m_JetTruthLabelName, "Jet.JetTruthLabelName", rEnv, "R10TruthLabel_R21Precision_2022v1");
configFromFile(m_TopTaggerCalibArea, "Jet.TopTaggerCalibArea", rEnv, "JSSWTopTaggerDNN/Rel21/February2022/");
configFromFile(m_TopTaggerCalibArea, "Jet.TopTaggerCalibArea", rEnv, "Winter2024_R22_PreRecs/JSSWTopTaggerDNN/");
configFromFile(m_jesConfig, "Jet.JESConfig", rEnv, "PreRec_R22_PFlow_ResPU_EtaJES_GSC_February23_230215.config"); //https://twiki.cern.ch/twiki/bin/view/AtlasProtected/ApplyJetCalibrationR22
configFromFile(m_jesConfigAFII, "Jet.JESConfigAFII", rEnv, "JES_MC16Recommendation_AFII_EMTopo_Apr2019_Rel21.config");
configFromFile(m_jesConfigJMS, "Jet.JESConfigJMS", rEnv, "JES_JMS_MC16Recommendation_Consolidated_MC_only_EMTopo_July2019_Rel21.config");
configFromFile(m_jesConfigJMSData, "Jet.JESConfigJMSData", rEnv, "JES_JMS_MC16Recommendation_Consolidated_data_only_EMTopo_Sep2019_Rel21.config");
configFromFile(m_jesConfigFat, "Jet.JESConfigFat", rEnv, "JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config");
configFromFile(m_jesConfigFatData, "Jet.JESConfigFatData", rEnv, "JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config");
configFromFile(m_jesConfigFat, "Jet.JESConfigFat", rEnv, "JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config");
configFromFile(m_jesConfigFatData, "Jet.JESConfigFatData", rEnv, "JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config");
configFromFile(m_jesCalibSeq, "Jet.CalibSeq", rEnv, "JetArea_Residual_EtaJES_GSC_Insitu");
configFromFile(m_jesCalibSeqJMS, "Jet.CalibSeqJMS", rEnv, "JetArea_Residual_EtaJES_GSC");
configFromFile(m_jesCalibSeqFat, "Jet.CalibSeqFat", rEnv, "EtaJES_JMS");
......
......@@ -236,7 +236,8 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
std::string jesConfigFat = m_jesConfigFat;
std::string jesCalibSeqFat = m_jesCalibSeqFat;
// add Insitu if data (currently missing)
// add Insitu if data
if(isData()) jesCalibSeqFat += "_Insitu";
// now instantiate the tool
ATH_CHECK( m_jetFatCalibTool.setProperty("JetCollection", fatjetcoll) );
......@@ -265,6 +266,18 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
#endif
ATH_CHECK( m_WTaggerTool.setProperty("OutputLevel", this->msg().level()) );
ATH_CHECK( m_WTaggerTool.retrieve() );
// Retrieving DecorationName (needed to access tagging results downstream):
std::string WConfigPath = PathResolverFindCalibFile("BoostedJetTaggers/"+m_WZTaggerCalibArea+"/"+m_WtagConfig);
if ( m_WconfigReader.ReadFile( WConfigPath.c_str(), EEnvLevel(0) ) ) {
ATH_MSG_ERROR( "Error while reading large-R config file : " << WConfigPath );
return StatusCode::FAILURE;
}
else ATH_MSG_DEBUG( "Successfully read large-R config file : " << WConfigPath );
m_WDecorName = m_WconfigReader.GetValue("DecorationName" ,"");
ANA_MSG_DEBUG( "Found DecorationName in large-R config file : " << m_WDecorName );
} else if (m_WTaggerTool.isUserConfigured()) ATH_CHECK(m_WTaggerTool.retrieve());
if (!m_ZTaggerTool.isUserConfigured() && !m_ZtagConfig.empty()) {
......@@ -280,6 +293,18 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
#endif
ATH_CHECK( m_ZTaggerTool.setProperty("OutputLevel", this->msg().level()) );
ATH_CHECK( m_ZTaggerTool.retrieve() );
// Retrieving DecorationName (needed to access tagging results downstream):
std::string ZConfigPath = PathResolverFindCalibFile("BoostedJetTaggers/"+m_WZTaggerCalibArea+"/"+m_ZtagConfig);
if ( m_ZconfigReader.ReadFile( ZConfigPath.c_str(), EEnvLevel(0) ) ) {
ATH_MSG_ERROR( "Error while reading large-R config file : " << ZConfigPath );
return StatusCode::FAILURE;
}
else ATH_MSG_DEBUG( "Successfully read large-R config file : " << ZConfigPath );
m_ZDecorName = m_ZconfigReader.GetValue("DecorationName" ,"");
ANA_MSG_DEBUG( "Found DecorationName in large-R config file : " << m_ZDecorName );
} else if (m_ZTaggerTool.isUserConfigured()) ATH_CHECK(m_ZTaggerTool.retrieve());
if (!m_TopTaggerTool.isUserConfigured() && !m_ToptagConfig.empty()) {
......@@ -295,6 +320,18 @@ StatusCode SUSYObjDef_xAOD::SUSYToolsInit()
#endif
ATH_CHECK( m_TopTaggerTool.setProperty("OutputLevel", this->msg().level()) );
ATH_CHECK( m_TopTaggerTool.retrieve() );
// Retrieving DecorationName (needed to access tagging results downstream):
std::string TopConfigPath = PathResolverFindCalibFile("BoostedJetTaggers/"+m_TopTaggerCalibArea+"/"+m_ToptagConfig);
if ( m_TopconfigReader.ReadFile( TopConfigPath.c_str(), EEnvLevel(0) ) ) {
ATH_MSG_ERROR( "Error while reading large-R config file : " << TopConfigPath );
return StatusCode::FAILURE;
}
else ATH_MSG_DEBUG( "Successfully read large-R config file : " << TopConfigPath );
m_TopDecorName = m_TopconfigReader.GetValue("DecorationName" ,"");
ANA_MSG_DEBUG( "Found DecorationName in large-R config file : " << m_TopDecorName );
} else if (m_TopTaggerTool.isUserConfigured()) ATH_CHECK(m_TopTaggerTool.retrieve());
///////////////////////////////////////////////////////////////////////////////////////////
......
......@@ -538,16 +538,21 @@ namespace ST {
std::string m_fatJetUncConfig;
std::string m_fatJetUncVars;
TEnv m_WconfigReader;
TEnv m_ZconfigReader;
TEnv m_TopconfigReader;
std::string m_WDecorName;
std::string m_ZDecorName;
std::string m_TopDecorName;
std::string m_WtagConfig;
std::string m_ZtagConfig;
std::string m_WZTaggerCalibArea;
std::string m_ToptagConfig;
std::string m_WZTaggerCalibArea;
std::string m_TopTaggerCalibArea;
std::string m_WTagUncConfig;
std::string m_ZTagUncConfig;
std::string m_TopTagUncConfig;
std::string m_JetTruthLabelName;
std::string m_TopTaggerCalibArea;
bool m_tool_init;
bool m_subtool_init;
......
......@@ -87,8 +87,8 @@ FwdJet.JvtPtMax: 60.0e3
#
Jet.LargeRuncConfig: #rec are missing for UFO jets
Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets # set to None to turn this off
Jet.JESConfigFat: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFat: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
Jet.JESConfigFatData: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
#disable CaloMass# Jet.LargeRcollection: AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets
#disable CaloMass# Jet.JESConfigFat: JES_MC16recommendation_FatJet_Trimmed_JMS_calo_12Oct2018.config
#disable SoftDrop# Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10
......@@ -99,8 +99,10 @@ Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April20
#Jet.LargeRuncVars: pT,mass,D2Beta1 # W/Z Taggers
#Jet.LargeRuncVars: pT,Split23,Tau32WTA # Top taggers
#
Jet.WZTaggerCalibArea: Winter2024_R22_PreRecs/SmoothedWZTaggers/
Jet.WtaggerConfig: SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.ZtaggerConfig: SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.TopTaggerCalibArea: Winter2024_R22_PreRecs/JSSWTopTaggerDNN/
Jet.ToptaggerConfig: DNNTagger_AntiKt10UFOSD_TopContained80_Oct30.dat # set to None to turn this off
#
BadJet.Cut: LooseBad
......
......@@ -87,8 +87,8 @@ FwdJet.JvtPtMax: 60.0e3
#
Jet.LargeRuncConfig: #rec are missing for UFO jets
Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets # set to None to turn this off
Jet.JESConfigFat: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFat: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
Jet.JESConfigFatData: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
#disable CaloMass# Jet.LargeRcollection: AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets
#disable CaloMass# Jet.JESConfigFat: JES_MC16recommendation_FatJet_Trimmed_JMS_calo_12Oct2018.config
#disable SoftDrop# Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10
......@@ -99,8 +99,10 @@ Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April20
#Jet.LargeRuncVars: pT,mass,D2Beta1 # W/Z Taggers
#Jet.LargeRuncVars: pT,Split23,Tau32WTA # Top taggers
#
Jet.WZTaggerCalibArea: Winter2024_R22_PreRecs/SmoothedWZTaggers/
Jet.WtaggerConfig: SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.ZtaggerConfig: SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.TopTaggerCalibArea: Winter2024_R22_PreRecs/JSSWTopTaggerDNN/
Jet.ToptaggerConfig: DNNTagger_AntiKt10UFOSD_TopContained80_Oct30.dat # set to None to turn this off
#
BadJet.Cut: LooseBad
......
......@@ -88,8 +88,8 @@ FwdJet.JvtPtMax: 60.0e3
#
Jet.LargeRuncConfig: #rec are missing for UFO jets
Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets # set to None to turn this off
Jet.JESConfigFat: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFat: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
Jet.JESConfigFatData: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
#disable CaloMass# Jet.LargeRcollection: AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets
#disable CaloMass# Jet.JESConfigFat: JES_MC16recommendation_FatJet_Trimmed_JMS_calo_12Oct2018.config
#disable SoftDrop# Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10
......@@ -100,8 +100,10 @@ Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April20
#Jet.LargeRuncVars: pT,mass,D2Beta1 # W/Z Taggers
#Jet.LargeRuncVars: pT,Split23,Tau32WTA # Top taggers
#
Jet.WZTaggerCalibArea: Winter2024_R22_PreRecs/SmoothedWZTaggers/
Jet.WtaggerConfig: SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.ZtaggerConfig: SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.TopTaggerCalibArea: Winter2024_R22_PreRecs/JSSWTopTaggerDNN/
Jet.ToptaggerConfig: DNNTagger_AntiKt10UFOSD_TopContained80_Oct30.dat # set to None to turn this off
#
BadJet.Cut: LooseBad
......
......@@ -88,8 +88,8 @@ FwdJet.JvtPtMax: 60.0e3
#
Jet.LargeRuncConfig: #rec are missing for UFO jets
Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets # set to None to turn this off
Jet.JESConfigFat: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April2020.config
Jet.JESConfigFat: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
Jet.JESConfigFatData: JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config
#disable CaloMass# Jet.LargeRcollection: AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets
#disable CaloMass# Jet.JESConfigFat: JES_MC16recommendation_FatJet_Trimmed_JMS_calo_12Oct2018.config
#disable SoftDrop# Jet.LargeRcollection: AntiKt10UFOCSSKSoftDropBeta100Zcut10
......@@ -100,8 +100,10 @@ Jet.JESConfigFatData: JES_MC16recommendation_R10_UFO_CSSK_SoftDrop_JMS_01April20
#Jet.LargeRuncVars: pT,mass,D2Beta1 # W/Z Taggers
#Jet.LargeRuncVars: pT,Split23,Tau32WTA # Top taggers
#
Jet.WZTaggerCalibArea: Winter2024_R22_PreRecs/SmoothedWZTaggers/
Jet.WtaggerConfig: SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.ZtaggerConfig: SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat # set to None to turn this off
Jet.TopTaggerCalibArea: Winter2024_R22_PreRecs/JSSWTopTaggerDNN/
Jet.ToptaggerConfig: DNNTagger_AntiKt10UFOSD_TopContained80_Oct30.dat # set to None to turn this off
#
BadJet.Cut: LooseBad
......
......@@ -19,7 +19,6 @@ def PunchThroughClassifierCfg(flags, name="ISF_PunchThroughClassifier", **kwargs
def PunchThroughToolCfg(flags, name="ISF_PunchThroughTool", **kwargs):
from BarcodeServices.BarcodeServicesConfig import BarcodeSvcCfg
from SubDetectorEnvelopes.SubDetectorEnvelopesConfig import EnvelopeDefSvcCfg
acc = ComponentAccumulator()
if "PunchThroughClassifier" not in kwargs:
......@@ -39,7 +38,6 @@ def PunchThroughToolCfg(flags, name="ISF_PunchThroughTool", **kwargs):
kwargs.setdefault("FullCorrelationEnergy" , [ 100000., 100000., 100000., 100000., 0., 100000., 100000., 100000., 100000.] )
kwargs.setdefault("MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7, 939.6, 493.7, 497.6, 497.6 ] )
kwargs.setdefault("MaxNumParticles" , [ -1, -1, -1, -1, -1, -1, -1, -1, -1 ] )
kwargs.setdefault("BarcodeSvc", acc.getPrimaryAndMerge(BarcodeSvcCfg(flags)).name)
kwargs.setdefault("EnvelopeDefSvc", acc.getPrimaryAndMerge(EnvelopeDefSvcCfg(flags)).name)
kwargs.setdefault("BeamPipeRadius", 500.)
acc.setPrivateTools(CompFactory.ISF.PunchThroughTool(name, **kwargs))
......
# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
# Declare the package name:
atlas_subdir( ISF_PunchThroughTools )
......@@ -17,4 +17,4 @@ atlas_add_component( ISF_PunchThroughTools
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${LWTNN_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS}
LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${EIGEN_LIBRARIES} ${LWTNN_LIBRARIES} ${LIBXML2_LIBRARIES} AthenaBaseComps AthenaKernel BarcodeInterfacesLib GeoPrimitives ISF_FastCaloSimInterfaces ISF_FastCaloSimEvent AthContainers GaudiKernel ISF_Event ISF_InterfacesLib PathResolver SubDetectorEnvelopesLib TruthUtils )
LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${EIGEN_LIBRARIES} ${LWTNN_LIBRARIES} ${LIBXML2_LIBRARIES} AthenaBaseComps AthenaKernel GeoPrimitives ISF_FastCaloSimInterfaces ISF_FastCaloSimEvent AthContainers GaudiKernel ISF_Event ISF_InterfacesLib PathResolver SubDetectorEnvelopesLib TruthUtils )
......@@ -141,13 +141,6 @@ StatusCode ISF::PunchThroughTool::initialize()
return StatusCode::FAILURE;
}
//barcode service
if (m_barcodeSvc.retrieve().isFailure() )
{
ATH_MSG_ERROR( "[ punchthrough ] Could not retrieve " << m_barcodeSvc );
return StatusCode::FAILURE;
}
//envelope definition service
if (m_envDefSvc.retrieve().isFailure() )
{
......@@ -1346,12 +1339,11 @@ ISF::ISFParticle* ISF::PunchThroughTool::createExitPs( const ISF::ISFParticle &i
charge *= (pdg > 0.) ? 1. : -1.;
const double pTime = 0; /** @TODO: fix */
//assign barcodes to the produced particles
const int secBC = m_barcodeSvc->newSecondaryParticle( isfp.barcode() );
const int status = 1 + HepMC::SIM_STATUS_THRESHOLD;
const int id = HepMC::UNDEFINED_ID;
// NB we are not considering the possibility that the punch-through
// particle is the incoming particle having survived an interaction.
ISF::ISFParticle* finalPar = new ISF::ISFParticle (pos, mom, mass, charge, pdg, 1 + HepMC::SIM_STATUS_THRESHOLD, pTime, isfp, secBC);
ISF::ISFParticle* finalPar = new ISF::ISFParticle ( pos, mom, mass, charge, pdg, status, pTime, isfp, id);
finalPar->setNextGeoID( AtlasDetDescr::fAtlasMS);
// return the punch-through particle
......
......@@ -13,9 +13,6 @@
// Athena Base
#include "AthenaBaseComps/AthAlgTool.h"
//Barcode
#include "BarcodeInterfaces/IBarcodeSvc.h"
//Geometry
#include "SubDetectorEnvelopes/IEnvelopeDefSvc.h"
......@@ -200,7 +197,6 @@ namespace ISF {
*---------------------------------------------------------------------*/
ServiceHandle<IPartPropSvc> m_particlePropSvc{this, "PartPropSvc", "PartPropSvc", "particle properties svc"};
ServiceHandle<IGeoIDSvc> m_geoIDSvc{this, "GeoIDSvc", "ISF::GeoIDSvc"};
ServiceHandle<Barcode::IBarcodeSvc> m_barcodeSvc{this, "BarcodeSvc", "BarcodeSvc"};
ServiceHandle<IEnvelopeDefSvc> m_envDefSvc{this, "EnvelopeDefSvc", "AtlasGeometry_EnvelopeDefSvc"};
/** beam pipe radius */
......
/*
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
*/
///////////////////////////////////////////////////////////////////
// IProcessSamplingTool.h, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
#ifndef ISF_FATRASINTERFACES_IPROCESSSAMPLINGTOOL_H
#define ISF_FATRASINTERFACES_IPROCESSSAMPLINGTOOL_H
// Gaudi
#include "GaudiKernel/IAlgTool.h"
#include "CxxUtils/checker_macros.h"
#include "TrkExUtils/ExtrapolationCell.h"
#include "TrkExUtils/TargetSurfaces.h"
#include "ISF_Event/ISFParticleContainer.h"
#include "TrkEventPrimitives/ParticleHypothesis.h"
namespace Trk{
class Track;
struct PathLimit;
}
namespace ISF {
class ISFParticle;
namespace CLHEP {
class HepRandomEngine;
}
namespace iFatras {
/**
/**
@class IProcessSamplingTool
sampling the process/free path
@author Sarka.Todorova -at- cern.ch
*/
class ATLAS_NOT_THREAD_SAFE IProcessSamplingTool : virtual public IAlgTool { // deprecated: ATLASSIM-6020
class IProcessSamplingTool : virtual public IAlgTool {
public:
/** Virtual destructor */
virtual ~IProcessSamplingTool(){}
......@@ -46,20 +39,10 @@ namespace iFatras {
DeclareInterfaceID(IProcessSamplingTool, 1, 0);
/** Process, path limit */
virtual Trk::PathLimit sampleProcess(double momentum, double charge, Trk::ParticleHypothesis pHypothesis) const=0;
/** Process simulation */
virtual ISF::ISFParticleVector interact(const ISF::ISFParticle* isp,
Trk::ExCellCharged& eCell,
const Trk::Material* mat=0) const=0;
/** Process simulation */
virtual ISF::ISFParticleVector interact(const ISF::ISFParticle* isp,
Trk::ExCellNeutral& eCell,
const Trk::Material* mat=0) const=0;
virtual Trk::PathLimit sampleProcess(CLHEP::HepRandomEngine *randomEngine, double momentum, double charge, Trk::ParticleHypothesis pHypothesis) const=0;
};
} // end of namespace
#endif
#endif
......@@ -526,29 +526,7 @@ def fatrasParametricHadIntProcessorCfg(flags, name="ISF_FatrasParametricHadIntPr
def fatrasProcessSamplingToolCfg(flags, name="ISF_FatrasProcessSamplingTool", **kwargs):
mlog = logging.getLogger(name)
mlog.debug('Start configuration')
result = ComponentAccumulator()
kwargs.setdefault("RandomNumberService", result.getPrimaryAndMerge(FatrasRndSvcCfg(flags)).name)
# truth record
if "TruthRecordSvc" not in kwargs:
kwargs.setdefault("TruthRecordSvc", result.getPrimaryAndMerge(TruthServiceCfg(flags)).name)
# decays
kwargs.setdefault("ParticleDecayHelper", result.addPublicTool(result.popToolsAndMerge(fatrasParticleDecayHelperCfg(flags))))
# photon conversion
kwargs.setdefault("PhotonConversionTool", result.addPublicTool(result.popToolsAndMerge(fatrasConversionCreatorCfg(flags))))
# Hadronic interactions
kwargs.setdefault("HadronicInteractionProcessor", result.addPublicTool(result.popToolsAndMerge(fatrasG4HadIntProcessorCfg(flags))))
kwargs.setdefault("HadronicInteraction", True)
# Validation Tool
kwargs.setdefault("PhysicsValidationTool", result.addPublicTool(result.popToolsAndMerge(fatrasPhysicsValidationToolCfg(flags))))
kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode)
result.setPrivateTools(CompFactory.iFatras.ProcessSamplingTool(name=name, **kwargs))
return result
......
......@@ -656,7 +656,7 @@ iFatras::McMaterialEffectsUpdator::updateInLay(
Trk::ParticleHypothesis pHypothesis =
m_pdgToParticleHypothesis.convert(childs[ic]->pdgCode(), childs[ic]->charge());
auto cparm = std::make_unique<Trk::CurvilinearParameters>(childs[ic]->position(), childs[ic]->momentum(), childs[ic]->charge());
Trk::PathLimit pLim = m_samplingTool->sampleProcess(mom, childs[ic]->charge(), pHypothesis);
Trk::PathLimit pLim = m_samplingTool->sampleProcess(m_randomEngine, mom, childs[ic]->charge(), pHypothesis);
// TODO sample decays and save the material collection & path limits at the exit from the layer
// (ISFFatrasParticle ?)
......@@ -1464,7 +1464,7 @@ void iFatras::McMaterialEffectsUpdator::recordBremPhotonLay(const ISF::ISFPartic
// layer update : don't push into particle stack untill destiny resolved
Trk::PathLimit pLim = m_samplingTool->sampleProcess(bremPhoton->momentum().mag(),0.,Trk::photon);
Trk::PathLimit pLim = m_samplingTool->sampleProcess(m_randomEngine, bremPhoton->momentum().mag(),0.,Trk::photon);
// material fraction : flip if direction of propagation changed
double ci = m_layer->surfaceRepresentation().normal().dot(particleDir);
......
......@@ -7,23 +7,15 @@
// Tracking
#include "TrkParameters/TrackParameters.h"
// ISF includes
#include "ISF_Event/ISFParticle.h"
#include "ISF_Event/ISFTruthIncident.h"
#include "ISF_Interfaces/ITruthSvc.h"
#include "TrkExInterfaces/HelperStructs.h"
#include "TruthUtils/MagicNumbers.h"
// iFatras
#include "ISF_FatrasInterfaces/IHadronicInteractionProcessor.h"
#include "ISF_FatrasInterfaces/IPhysicsValidationTool.h"
#include "ISF_FatrasInterfaces/IPhotonConversionTool.h"
#include "ISF_FatrasInterfaces/IParticleDecayHelper.h"
// CLHEP
#include "CLHEP/Units/SystemOfUnits.h"
#include "CLHEP/Random/RandFlat.h"
#include "TrkEventPrimitives/ParticleHypothesis.h"
//
#include <iostream>
/*=========================================================================
......@@ -33,110 +25,12 @@
iFatras::ProcessSamplingTool::ProcessSamplingTool( const std::string& t,
const std::string& n,
const IInterface* p )
: base_class(t,n,p),
m_rndGenSvc("AtDSFMTGenSvc", n),
m_randomEngine(nullptr),
m_randomEngineName("FatrasRnd"),
m_truthRecordSvc("ISF_ValidationTruthService", n),
m_hadInt(true),
m_hadIntProcessor("iFatras::G4HadIntProcessor/FatrasG4HadIntProcessor"),
m_particleDecayer(),
m_conversionTool("iFatras::McConversionCreator/FatrasConversionCreator"),
m_validationMode(false),
m_validationTool("")
: base_class(t,n,p)
{
// service handles
declareProperty( "RandomNumberService" , m_rndGenSvc );
// hadronic interactions
declareProperty( "HadronicInteraction" , m_hadInt);
declareProperty( "HadronicInteractionProcessor" , m_hadIntProcessor);
declareProperty( "ParticleDecayHelper" , m_particleDecayer );
declareProperty( "PhotonConversionTool" , m_conversionTool);
// validation mode ------------------------------------------------------------
declareProperty("ValidationMode" , m_validationMode);
declareProperty("PhysicsValidationTool" , m_validationTool);
declareProperty("TruthRecordSvc" , m_truthRecordSvc , "ISF Particle Truth Svc");
}
/*=========================================================================
* DESCRIPTION OF FUNCTION:
* ==> see headerfile
*=======================================================================*/
iFatras::ProcessSamplingTool::~ProcessSamplingTool()
= default;
/*=========================================================================
* DESCRIPTION OF FUNCTION:
* ==> see headerfile
*=======================================================================*/
StatusCode
iFatras::ProcessSamplingTool::initialize()
{
ATH_MSG_INFO( "initialize()" );
if ( m_rndGenSvc.retrieve().isFailure() ){
ATH_MSG_FATAL( "Could not retrieve " << m_rndGenSvc );
return StatusCode::FAILURE;
}
//Get own engine with own seeds:
m_randomEngine = m_rndGenSvc->GetEngine(m_randomEngineName);
if (!m_randomEngine) {
ATH_MSG_FATAL( "Could not get random engine '" << m_randomEngineName << "'" );
return StatusCode::FAILURE;
}
if (m_truthRecordSvc.retrieve().isFailure()){
ATH_MSG_FATAL( "Could not retrieve " << m_truthRecordSvc );
return StatusCode::FAILURE;
}
// retrieve the photon conversion tool
if (m_conversionTool.retrieve().isFailure()){
ATH_MSG_FATAL( "Could not retrieve " << m_conversionTool );
return StatusCode::FAILURE;
} else
ATH_MSG_VERBOSE( "Successfully retrieved " << m_conversionTool );
// retrieve the hadronic interaction tool
if (m_hadInt) {
if (m_hadIntProcessor.retrieve().isFailure()){
ATH_MSG_FATAL( "Could not retrieve " << m_hadIntProcessor );
return StatusCode::FAILURE;
} else
ATH_MSG_VERBOSE( "Successfully retrieved " << m_hadIntProcessor );
}
// Particle decayer
if (m_particleDecayer.retrieve().isFailure()){
ATH_MSG_FATAL( "Could not retrieve " << m_particleDecayer );
return StatusCode::FAILURE;
} else
ATH_MSG_VERBOSE( "Successfully retrieved " << m_particleDecayer );
// retrieve the physics validation tool
if (m_validationMode) {
if (m_validationTool.retrieve().isFailure()){
ATH_MSG_FATAL( "Could not retrieve " << m_validationTool );
return StatusCode::FAILURE;
} else
ATH_MSG_VERBOSE( "Successfully retrieved " << m_validationTool );
}
return StatusCode::SUCCESS;
}
/*=========================================================================
* DESCRIPTION OF FUNCTION:
* ==> see headerfile
*=======================================================================*/
StatusCode iFatras::ProcessSamplingTool::finalize()
{
ATH_MSG_INFO( "finalize() successful" );
return StatusCode::SUCCESS;
}
Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,double charge,Trk::ParticleHypothesis particle) const
Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(CLHEP::HepRandomEngine *randomEngine, double momentum,double charge,Trk::ParticleHypothesis particle) const
{
int process=0;
double x0Max = -1.;
......@@ -145,7 +39,7 @@ Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,doubl
if ( particle == Trk::muon || particle == Trk::nonInteractingMuon ) return Trk::PathLimit(x0Max,process);
double rndx = CLHEP::RandFlat::shoot(m_randomEngine);
double rndx = CLHEP::RandFlat::shoot(randomEngine);
if ( particle == Trk::photon ) {
......@@ -163,7 +57,7 @@ Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,doubl
// comment additional interactions till properly implemented
/*
// first estimate : compton ~ 4% , use attenuation factor as for conversion (till parameterized )
double rndp = CLHEP::RandFlat::shoot(m_randomEngine);
double rndp = CLHEP::RandFlat::shoot(randomEngine);
if ( rndp > 0.96 ) { // do Compton scattering
process = 13;
......@@ -172,11 +66,11 @@ Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,doubl
attenuation = -0.378;
x0Max = log(rndx)/attenuation *momentum ;
} else {
process = 14;
process = 14;
//x0Max *= 0.5;
}
*/
process = 14;
return Trk::PathLimit(x0Max,process);
......@@ -185,15 +79,15 @@ Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,doubl
if ( particle == Trk::electron && charge>0. ) { // positron
double mass = Trk::ParticleMasses::mass[Trk::electron];
double gamma = momentum/mass;
double gamma = momentum/mass;
// annihilation
// energy dependent factor
double fpa = log(2*gamma)/gamma;
// energy dependent factor
double fpa = log(2*gamma)/gamma;
// material dependent factor - use Al(Z=13) for the moment
double fza = 13.;
double attenuation = -fpa*fza; // adjust
x0Max = log(rndx)/attenuation ;
process = 5;
......@@ -205,204 +99,26 @@ Trk::PathLimit iFatras::ProcessSamplingTool::sampleProcess(double momentum,doubl
if (m_hadInt) {
// sample free path in terms of nuclear interaction length
double al = 1.; // scaling here
double al = 1.; // scaling here
/*
if ( particle == Trk::pion || particle == Trk::kaon || particle == Trk::pi0 || particle == Trk::k0) {
al *= 1./(1.+ exp(-0.5*(momentum-270.)*(momentum-270.)/60./60.));
}
if ( particle == Trk::proton || particle == Trk::neutron ) al *=0.7;
if ( particle == Trk::pion || particle == Trk::pi0) al *=0.9;
*/
x0Max = -log(rndx)*al ;
process = 121;
//std::cout <<"hadronic path limit:"<<momentum<<","<<al<<","<< x0Max << std::endl;
return Trk::PathLimit(x0Max,process);
}
return Trk::PathLimit(x0Max,process);
// return Trk::PathLimit(x0Max,process);
}
ISF::ISFParticleVector iFatras::ProcessSamplingTool::interact(const ISF::ISFParticle* parent,
Trk::ExCellCharged& eCell,
const Trk::Material* mat) const
{
ISF::ISFParticleVector childVector(0);
int process = eCell.materialProcess;
if ( process==0 ) return childVector;
Trk::ParticleHypothesis particle = eCell.pHypothesis;
const Trk::TrackParameters* parm=eCell.leadParameters;
double mass = Trk::ParticleMasses::mass[particle];
double p = parm->momentum().mag();
//double E = sqrt( p*p + mass*mass);
const Amg::Vector3D& position=parm->position();
const Amg::Vector3D& momentum=parm->momentum();
if ( process == 5 ) { // positron annihilation
double fmin = mass/p;
double fr = 1.-pow(fmin,CLHEP::RandFlat::shoot(m_randomEngine));
// double cTh = 1.-fmin/(1.-fr)/fr;
// first implementation: ctH=1
ISF::ISFParticle* child1 = new ISF::ISFParticle( position,
fr*momentum,
0.,
0.,
22,
1 + HepMC::SIM_STATUS_THRESHOLD,
eCell.time,
*parent,
0 // FIXME hard-coded id
);
ISF::ISFParticle* child2 = new ISF::ISFParticle( position,
(1-fr)*momentum,
0.,
0.,
22,
1 + HepMC::SIM_STATUS_THRESHOLD,
eCell.time,
*parent,
0 // FIXME hard-coded id
);
childVector.push_back(child1);
childVector.push_back(child2);
} else if (process==121) { // hadronic interaction
//const Amg::Vector3D pDir = momentum.unit();
// const Trk::CurvilinearParameters parm(position,momentum,parent->charge());
childVector = m_hadIntProcessor->doHadIntOnLayer(parent, eCell.time, position, momentum, mat, particle);
} else if ( process == 201 ) { // decay
childVector = m_particleDecayer->decayParticle(*parent, position, momentum, eCell.time);
}
// validation mode
if (m_validationMode) {
// add process info for children
for (unsigned int i=0; i<childVector.size(); i++) {
ISF::ParticleUserInformation* validInfo = new ISF::ParticleUserInformation();
validInfo->setProcess(process);
if (parent->getUserInformation()) validInfo->setGeneration(parent->getUserInformation()->generation()+1);
else validInfo->setGeneration(1); // assume parent is a primary track
childVector[i]->setUserInformation(validInfo);
}
// save interaction info
if ( m_validationTool ) {
Amg::Vector3D* nMom = nullptr;
m_validationTool->saveISFVertexInfo(process, position,*parent,momentum,nMom,childVector);
delete nMom;
}
}
// register TruthIncident
ISF::ISFTruthIncident truth( const_cast<ISF::ISFParticle&>(*parent),
childVector,
process,
parent->nextGeoID(), // inherits from the parent
ISF::fKillsPrimary );
m_truthRecordSvc->registerTruthIncident( truth);
//Make sure the conversion products get a chance to have correct truth info before pushing into the particle broker
for (unsigned int i=0; i<childVector.size(); i++) {
if (!childVector[i]->getTruthBinding()) {
childVector[i]->setTruthBinding(new ISF::TruthBinding(*parent->getTruthBinding()));
}
}
return childVector;
}
ISF::ISFParticleVector iFatras::ProcessSamplingTool::interact(const ISF::ISFParticle* parent,
Trk::ExCellNeutral& eCell,
const Trk::Material* mat) const
{
ISF::ISFParticleVector childVector(0);
int process = eCell.materialProcess;
Trk::ParticleHypothesis particle = eCell.pHypothesis;
const Trk::NeutralParameters* parm=eCell.leadParameters;
if ( process==0 ) return childVector;
//double mass = Trk::ParticleMasses::mass[particle];
//double p = parm.momentum().mag();
/*double E = sqrt( p*p + mass*mass);*/
Amg::Vector3D position=parm->position();
Amg::Vector3D momentum=parm->momentum();
if (process==14) { // photon conversion
childVector = m_conversionTool->doConversionOnLayer(parent, eCell.time, *parm);
} else if (process==121) { // hadronic interaction
//const Amg::Vector3D pDir = momentum.unit();
//const Trk::CurvilinearParameters parm(position,momentum,parent->charge());
childVector = m_hadIntProcessor->doHadIntOnLayer(parent, eCell.time, position, momentum, mat, particle);
} else if ( process == 201 ) { // decay
childVector = m_particleDecayer->decayParticle(*parent, position, momentum, eCell.time);
}
// validation mode
if (m_validationMode) {
// add process info for children
for (unsigned int i=0; i<childVector.size(); i++) {
ISF::ParticleUserInformation* validInfo = new ISF::ParticleUserInformation();
validInfo->setProcess(process);
if (parent->getUserInformation()) validInfo->setGeneration(parent->getUserInformation()->generation()+1);
else validInfo->setGeneration(1); // assume parent is a primary track
childVector[i]->setUserInformation(validInfo);
}
// save interaction info
if ( m_validationTool ) {
Amg::Vector3D* nMom = nullptr;
m_validationTool->saveISFVertexInfo(process, position,*parent,momentum,nMom,childVector);
delete nMom;
}
}
// register TruthIncident
ISF::ISFTruthIncident truth( const_cast<ISF::ISFParticle&>(*parent),
childVector,
process,
parent->nextGeoID(), // inherits from the parent
ISF::fKillsPrimary );
m_truthRecordSvc->registerTruthIncident( truth);
//Make sure the conversion products get a chance to have correct truth info before pushing into the particle broker
for (unsigned int i=0; i<childVector.size(); i++) {
if (!childVector[i]->getTruthBinding()) {
childVector[i]->setTruthBinding(new ISF::TruthBinding(*parent->getTruthBinding()));
}
}
return Trk::PathLimit(x0Max,process);
return childVector;
}
/*
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
*/
///////////////////////////////////////////////////////////////////
// TransportTool.h, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
#ifndef ISF_FATRASTOOLS_PROCESSSAMPLINGTOOL_H
#define ISF_FATRASTOOLS_PROCESSSAMPLINGTOOL_H
// Athena Base
#include "AthenaBaseComps/AthAlgTool.h"
#include "GaudiKernel/ToolHandle.h"
#include "AthenaKernel/IAtRndmGenSvc.h"
#include "CxxUtils/checker_macros.h"
#include "TrkExInterfaces/ITimedExtrapolator.h"
// iFatras
#include "ISF_FatrasInterfaces/IProcessSamplingTool.h"
......@@ -23,91 +16,34 @@
#include "TrkEventPrimitives/PdgToParticleHypothesis.h"
#include "TrkParameters/TrackParameters.h"
namespace ISF {
class ITruthSvc;
}
namespace iFatras
namespace iFatras
{
class IHadronicInteractionProcessor;
class IPhotonConversionTool;
class IParticleDecayHelper;
class IPhysicsValidationTool;
/** @class ProcessSamplingTool
/** @class ProcessSamplingTool
Fatras AlgTool to sample process and free path
@author Sharka Todorova Sarka.Todorova -at- cern.ch
*/
class ATLAS_NOT_THREAD_SAFE ProcessSamplingTool : public extends<AthAlgTool, IProcessSamplingTool> // deprecated: ATLASSIM-6020
*/
class ProcessSamplingTool : public extends<AthAlgTool, IProcessSamplingTool>
{
public:
/** Constructor */
ProcessSamplingTool(const std::string&,const std::string&,const IInterface*);
/** Destructor */
virtual ~ProcessSamplingTool ();
/** AlgTool initialize method */
virtual StatusCode initialize();
/** AlgTool finalize method */
virtual StatusCode finalize();
/** Destructor */
virtual ~ProcessSamplingTool () = default;
/** Process pre-sampling : to be moved into material updators eventually */
Trk::PathLimit sampleProcess(double mom, double charge, Trk::ParticleHypothesis pHypothesis) const;
/** Process simulation */
ISF::ISFParticleVector interact(const ISF::ISFParticle* parent,
Trk::ExCellCharged& eCell,
const Trk::Material* mat) const;
ISF::ISFParticleVector interact(const ISF::ISFParticle* parent,
Trk::ExCellNeutral& eCell,
const Trk::Material* mat) const;
Trk::PathLimit sampleProcess(CLHEP::HepRandomEngine *randomEngine, double mom, double charge, Trk::ParticleHypothesis pHypothesis) const;
private:
/** templated Tool retrieval - gives unique handling & look and feel */
template <class T> StatusCode retrieveTool(ToolHandle<T>& thandle){
if (!thandle.empty() && thandle.retrieve().isFailure()){
ATH_MSG_FATAL( "[ fatras setup ] Cannot retrieve " << thandle << ". Abort.");
return StatusCode::FAILURE;
}
else {
ATH_MSG_DEBUG("[ fatras setup ] Successfully retrieved " << thandle);
}
return StatusCode::SUCCESS;
}
/*---------------------------------------------------------------------
* Private members
*---------------------------------------------------------------------*/
/** Random Generator service */
ServiceHandle<IAtRndmGenSvc> m_rndGenSvc;
CLHEP::HepRandomEngine* m_randomEngine;
std::string m_randomEngineName; //!< Name of the random number stream
/** Truth record */
ServiceHandle<ISF::ITruthSvc> m_truthRecordSvc;
/** hadronic interaction */
bool m_hadInt;
ToolHandle<IHadronicInteractionProcessor> m_hadIntProcessor;
/** decay */
ToolHandle<IParticleDecayHelper> m_particleDecayer;
/** IPhotonConversionTool */
ToolHandle<iFatras::IPhotonConversionTool> m_conversionTool;
/** validation */
bool m_validationMode;
ToolHandle<IPhysicsValidationTool> m_validationTool;
};
/** hadronic interaction */
BooleanProperty m_hadInt{this, "HadronicInteraction", true, ""};
};
}
#endif // FATRASTOOLS_PROCESSSSAMPLINGTOOL_H
......@@ -262,7 +262,7 @@ ISF::ISFParticle* iFatras::TransportTool::process( const ISF::ISFParticle& isp,
pathLim=Trk::PathLimit( matLimit->dMax,matLimit->process);
pathLim.updateMat(matLimit->dCollected,13.,0.); // arbitrary Z choice : update MaterialPathInfo
} else if (absPdg!=999 && pHypothesis<99) { // need to resample
pathLim = m_samplingTool->sampleProcess(isp.momentum().mag(),isp.charge(),pHypothesis);
pathLim = m_samplingTool->sampleProcess(m_randomEngine, isp.momentum().mag(),isp.charge(),pHypothesis);
}
// use extrapolation with path limit - automatic exit at subdetector boundary
......
......@@ -16,7 +16,7 @@ references_map = {
"s4006": "v13",
"s4007": "v12",
"s4008": "v1",
"a913": "v9",
"a913": "v10",
# Digi
"d1920": "v2",
# Overlay
......