Skip to content
Snippets Groups Projects

Compare revisions

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

Source

Select target project
No results found

Target

Select target project
  • emsmith/athena
  • dzubov/athena
  • pscholer/athena
  • akvam/athena
  • flasagni/athena
  • hartman/athena
  • alux/athena
  • berenice/athena
  • mschott/athena
  • mgenest/athena
  • pbalek/athena
  • dsalvato/athena
  • korcyl/athena
  • tlyubush/athena
  • lyubushk/athena
  • gstark/athena
  • yharris/athena
  • lmonsoni/athena
  • nagano/athena
  • lcorpe/athena
  • lshi/athena
  • rrosten/athena
  • ytsujika/athena
  • tiledemo/athena
  • abagdato/athena
  • fparodi/athena
  • tmoxter/athena
  • lheinric/athena
  • milu/athena
  • pyin/athena
  • juesseiv/athena-celeritas
  • mmlynari/athena
  • matthier/athena
  • jsandesa/athena
  • borisov/athena
  • zchubini/athena
  • mpenzin/athena
  • mcorradi/athena
  • okovanda/athena
  • meevans/athena
  • isiral/athena
  • haa2mu2tau/athena
  • nkvu/athena
  • andre/athena
  • ebakos/athena
  • gwmyers/athena
  • lportale/athena
  • vasothil/athena
  • bwinter/athena
  • brle/athena
  • camacho/athena
  • icioara/athena
  • mcentonz/athena
  • quli/athena
  • mikhail/athena
  • begilber/athena
  • gartoni/athena
  • abkahn/athena
  • mbasso/athena
  • pagacova/athena
  • dgancarc/athena
  • stefania/athena
  • gmarchio/athena
  • jolsson/athena
  • atlasdqm/athena
  • chuanshu/athena
  • yygao/athena
  • shimoji/athena
  • zhenw/athena
  • jojamies/athena
  • keli/athena
  • cnass/athena
  • beckerov/athena
  • passaggi/athena
  • marvin/athena
  • hdf5-utils/athena
  • pberta/athena
  • aaboulho/athena
  • acrobert/athena
  • ranjitn/athena
  • cescobar/athena
  • ktodome/athena
  • kastanas/athena
  • huirun/athena
  • atrzupek/athena
  • tzorbas/athena
  • lfountas/athena
  • ccarrion/athena
  • aambler/athena
  • derendar/athena
  • britzger/athena
  • hanl/athena
  • epender/athena
  • gipezzul/athena
  • mmineev/athena
  • robertma/athena
  • gnn4itkteam/athena
  • phkoenig/athena
  • pleier/athena
  • nguseyno/athena
  • nekumari/athena
  • avasyuko/athena
  • gtateno/athena
  • pavel/athena
  • reznicek/athena
  • aburke/athena
  • jiling/athena
  • jcordeir/athena
  • herrmant/athena
  • lmcelhin/athena
  • xuh/athena
  • averbyts/athena
  • tnommens/athena
  • ewallin/athena
  • tvazquez/athena
  • shbansal/athena
  • gascott/athena
  • yuhui/athena
  • lserkin/athena
  • ccaminch/athena
  • corentin/athena
  • miochoa/athena
  • cdiez/athena
  • cpollard/athena
  • hfox/athena
  • madurano/athena_gittutorial
  • msykora/athena
  • ckirfel/athena
  • jakoubek/athena
  • calfayan/athena
  • kjohns/athena
  • atlas/athena
  • toshi/athena
  • dguest/athena
  • fwinkl/athena
  • wlampl/athena
  • aundrus/athena
  • akraszna/athena
  • karolos/athena
  • jmontejo/athena
  • damazio/athena
  • okuprash/athena
  • smh/athena
  • turra/athena
  • tdado/athena
  • tadej/athena
  • abuckley/athena
  • jmasik/athena
  • pjacka/athena
  • tamartin/athena
  • tbold/athena
  • mhodgkin/athena
  • nstyles/athena
  • mark/athena
  • rhauser/athena
  • phwindis/athena
  • arnaez/athena
  • baines/athena
  • mmuskinj/athena
  • psommer/athena
  • bwynne/athena
  • tstreble/athena
  • ATLAS-EGamma/athena
  • yuxu/athena
  • toyamaza/athena
  • gemmeren/athena
  • ssnyder/athena
  • wwalko/athena
  • emoyse/athena
  • pgadow/athena
  • solodkov/athena
  • rbielski/athena
  • dcasper/athena
  • mrybar/athena
  • ychiu/athena
  • christos/athena
  • yoyamagu/athena
  • rbianchi/athena
  • graemes/athena
  • sshaw/athena
  • shlomit/athena
  • hartj/athena
  • jcatmore/athena
  • ebuschma/athena
  • gunal/athena
  • ewelina/athena
  • ligang/athena
  • sroe/athena
  • lfiorini/athena
  • longjon/athena
  • jichen/athena
  • nikiforo/athena
  • fpastore/athena
  • harkusha/athena
  • mvozak/athena
  • leggett/athena
  • martindl/athena
  • almaloiz/athena
  • tlari/athena
  • susinha/athena
  • filthaut/athena
  • cchan/athena
  • peter/athena
  • cvarni/athena
  • wleight/athena
  • nwarrack/athena
  • cshimmin/athena
  • mihuebne/athena
  • jsallen/athena-high-pt-ms-jets
  • dkar/athena
  • chays/athena
  • dtovey/athena
  • sgeorge/athena
  • yafu/athena
  • mgignac/athena
  • alfroch/athena
  • mstamenk/athena
  • okepka/athena
  • tkohno/athena
  • janovak/athena
  • wiedenat/athena
  • khoo/athena
  • maklein/athena
  • cohm/athena
  • omajersk/athena
  • dbakshig/athena
  • fernando/athena
  • tmkrtchy/athena
  • gingrich/athena
  • schaarsc/athena
  • ponyisi/athena
  • ravinab/athena
  • scheiric/athena
  • pleskot/athena
  • berkeleylab/CharmPhysics/athena
  • jobalz/athena
  • ebergeas/athena
  • ekasimi/athena
  • afaulkne/athena
  • xai/athena
  • merrenst/athena
  • ekuwertz/athena
  • goetz/athena
  • dpopov/athena
  • astruebi/athena
  • mdanning/athena
  • achishol/athena
  • egramsta/athena
  • hye/athena
  • clseitz/athena
  • bmindur/athena
  • alaurier/athena
  • efilmer/athena
  • jpanduro/athena
  • mtoscani/athena
  • ssarikay/athena
  • hyamauch/athena
  • krumnack/athena
  • shanisch/athena
  • ncalace/athena
  • aad/athena
  • gpanizzo/athena
  • ppostola/athena
  • rcoelhol/athena
  • stelzer/athena
  • ssottoco/athena
  • turnerm/athena
  • sutt/athena
  • nkrengel/athena
  • tupham/athena
  • cmcginn/athena
  • bernius/athena
  • rkopelia/athena
  • stsuno/athena
  • yunju/athena
  • tsulaia/athena
  • ldc/athena
  • jmacdona/athena
  • vcairo/athena
  • mbandier/athena
  • jdandoy/athena
  • jufische/athena
  • mehlhase/athena
  • nasbah/athena
  • kwhalen/athena
  • dzanzi/athena
  • bmorgan/athena
  • msaimper/athena
  • amete/athena
  • kzoch/athena
  • rcarney/athena
  • hhibi/athena
  • williams/athena
  • kkohler/athena
  • coccaro/athena
  • shhirose/athena
  • loch/athena
  • cheidegg/athena
  • cdeutsch/athena
  • nova/athena
  • heng/athena
  • todorova/athena
  • sjiggins/athena
  • ynoguchi/athena
  • bgokturk/athena
  • aytul/athena
  • campanel/athena
  • hrussell/athena
  • wbalunas/athena
  • lidiaz/athena
  • hoide/athena
  • jbiswal/athena
  • xju/athena
  • kegraham/athena
  • yuchou/athena
  • kpachal/athena
  • bouhova/athena
  • alwang/athena
  • guerrero/athena
  • dhayden/athena
  • alopezso/athena
  • mverissi/athena
  • mvessell/athena
  • ssantpur/athena
  • kenelson/athena
  • upatel/athena
  • mvanadia/athena
  • fmeloni/athena
  • igrabows/athena
  • omeshkov/athena
  • tvarol/athena
  • soumya/athena
  • dshope/athena
  • korona/athena
  • ruyuan/athena
  • mhank/athena
  • cowagner/athena
  • tursom/athena
  • anperrev/athena
  • dbogavac/athena
  • eramakot/athena
  • fsforza/athena
  • derue/athena
  • tnobe/athena
  • koffas/athena
  • angianni/athena
  • fgiuli/athena
  • ballbroo/athena
  • diehl/athena
  • myexley/athena
  • chinderk/athena
  • davidek/athena
  • tphamleh/athena
  • falonso/athena
  • ekajomov/athena-general
  • sarbiolv/athena
  • hansenph/athena
  • salvator/athena
  • hirose/athena
  • mfujimot/athena
  • jhaley/athena
  • masato/athena
  • jmendes/athena
  • stapiaar/athena
  • stavrop/athena
  • ffabbri/athena
  • tpelzer/athena
  • nwenke/athena
  • gia/athena
  • hmildner/athena
  • agbet/athena
  • dbabal/athena
  • juesseiv/athena
  • kkrizka/athena
  • temoskal/athena
  • cdelitzs/athena
  • asonay/athena
  • ckitsaki/athena
  • dwallace/athena
  • iaizenbe/athena
  • lferencz/athena
  • eschanet/athena
  • pmeiring/athena
  • czhou/athena
  • jteoh/athena
  • liberato/athena
  • jiawei/athena
  • mromano/athena
  • jbeirer/athena
  • rustem/athena
  • nielsenj/athena
  • wachan/athena
  • sswatman/athena
  • miqueits/athena
  • ranovotn/athena
  • asquith/athena
  • elmsheus/athena
  • nicholas/athena
  • eparrish/athena
  • fuhe/athena
  • markowen/athena
  • dakoch/athena
  • mhance/athena
  • esoldato/athena
  • asoukhar/athena
  • aranzazu/athena
  • jkempste/athena
  • ndegroot/athena
  • aporeba/athena
  • lihan/athena
  • ginaciog/athena
  • verducci/athena
  • tjunkerm/athena
  • martis/athena
  • sschramm/athena
  • mdelmast/athena
  • anmrodri/athena
  • mswiatlo/athena
  • bcarlson/athena
  • pliu/athena
  • fastcalosim_test/athena
  • ssaha/athena
  • scamarda/athena
  • gabarone/athena
  • lstocker/athena
  • guindon/athena
  • rlongo/athena
  • mxia/athena
  • amoussa/athena
  • mdonasci/athena
  • conde/athena
  • mmittal/athena
  • ffollega/athena
  • chelling/athena
  • gialas/athena
  • fcostanz/athena
  • shion/athena
  • sschmitt/athena
  • hmaguire/athena
  • cgutscho/athena
  • sberlend/athena
  • zsoumaim/athena
  • acts/athena
  • evarnes/athena
  • nifomin/athena
  • eriefel/athena
  • guescini/athena
  • dwilbern/athena
  • akotsoke/athena
  • laforge/athena
  • jkremer/athena
  • haozturk/athena
  • susy-hackers/athena
  • llorente/athena
  • kkoeneke/athena
  • rpoggi/athena
  • istin/athena
  • rkarnam/athena
  • fizisist/athena
  • cmerlass/athena
  • acanesse/athena
  • chenlian/athena
  • fengyu/athena
  • ysmirnov/athena_old
  • ivivarel/athena
  • navarrjo/athena
  • amulski/athena
  • pkramer/athena
  • bulekov/athena
  • vcavalie/athena
  • yanlin/athena
  • sanchevi/athena
  • restevam/athena
  • bauerpa/athena
  • smwang/athena
  • sefernan/athena
  • mmazza/athena
  • thsjurse/athena
  • mmlynars/athena
  • iyeletsk/athena
  • mtchijov/athena
  • jgonski/athena
  • itrandaf/athena
  • almgadm/athena
  • csebasti/athena
  • wobisch/athena
  • jhinds/athena
  • mwielers/athena
  • tiyang/athena
  • lmiller/athena
  • lapereir/athena
  • aleopold/athena
  • emmat/athena
  • zuysal/athena
  • pekman/athena
  • lucam/athena
  • rbalasub/athena
  • kciesla/athena
  • masaito/athena
  • salderwe/athena
  • somadutt/athena
  • jstupak/athena
  • wmccorma/athena
  • ycoadou/athena
  • kkreul/athena
  • ilongari/athena
  • simmons/athena
  • pinamont/athena
  • ssahin/athena
  • jzeng/athena
  • adye/athena
  • wtaylor/athena
  • kbelobor/athena
  • aoneill/athena
  • dmaximov/athena
  • kghorban/athena
  • gcallea/athena
  • cschiavi/athena
  • fbartels/athena
  • kasai/athena
  • ljeanty/athena
  • jraine/athena
  • brottler/athena
  • mcfayden/athena
  • ecarlson/athena
  • scarra/athena
  • aelmouss/athena
  • khanov/athena
  • rozeny/athena
  • abandyop/athena
  • nbelyaev/athena
  • joheinri/athena
  • gotero/athena
  • aohatl/athena
  • bigliett/athena
  • rebeca/athena
  • doglioni/athena
  • alaperto/athena
  • amarzin/athena
  • bhonan/athena
  • rgarg/athena
  • dpudzha/athena
  • paulama/athena
  • pmoskvit/athena
  • mtesta/athena
  • jajimene/athena
  • begalli/athena
  • yajun/athena
  • atlidali/athena
  • lbozianu/athena
  • mpokidov/athena
  • demelian/athena
  • vcroft/athena
  • torrence/athena
  • barak/athena
  • wprzygod/athena
  • hacooke/athena
  • sgalantz/athena
  • tofitsch/athena
  • roward/athena
  • salnikov/athena
  • csander/athena
  • atsirigo/athena
  • elrossi/athena
  • amoroso/athena
  • ozaplati/athena
  • mmiralle/athena
  • jsabater/athena
  • alory/athena
  • jdevivi/athena
  • ymino/athena
  • pottgen/athena
  • pbokan/athena
  • xchen/athena
  • ruth/athena
  • klin/athena
  • apetukho/athena
  • trinn/athena
  • xiaoning/athena
  • nishu/athena
  • cappelt/athena
  • paramon/athena
  • nelsonc/athena
  • ratkin/athena
  • juhofer/athena
  • bleban/athena
  • enarayan/athena
  • acassim/athena
  • dpizzi/athena
  • ztarem/athena
  • exot-27/athena
  • bburghgr/athena
  • mkrivos/athena
  • qhu/athena
  • ychow/athena
  • mmarjano/athena
  • nviauxma/athena
  • pagessin/athena
  • hessey/athena
  • watsona/athena
  • LichtenbergGroup/athena
  • sampson/athena
  • jreich/athena
  • ibordule/athena
  • perj/athena
  • othielma/athena
  • mleblanc/athena
  • ztao/athena
  • jdegens/athena
  • hasada/athena
  • wfawcett/athena
  • wgeorge/athena
  • xiaohu/athena
  • sridouan/athena
  • alainb/athena
  • ludovica/athena
  • yama/athena
  • bachacou/athena
  • jlsmith/athena
  • yake/athena
  • ssu/athena
  • pmendesa/athena
  • kristin/athena
  • ktsuri/athena
  • pebaron/athena-weights
  • musafdar/athena
  • jezequel/athena
  • angerami/athena
  • hschwart/athena
  • asalzbur/athena
  • rnayak/athena
  • mproffit/athena
  • amendesj/athena
  • csamoila/athena
  • lhelary/athena
  • gproto/athena
  • spolacek/athena
  • malgren/athena
  • rerrabai/athena
  • tiany/athena
  • bmondal/athena
  • mprincip/athena
  • asantra/athena
  • tboeckh/athena
  • aczirkos/athena
  • lbeemste/athena
  • jreidels/athena
  • grabanal/athena
  • kyamaguc/athena
  • slawlor/athena
  • silvinha/athena
  • holau/athena
  • mdhlamin/athena
  • jroloff/athena
  • emily/athena
  • carlod/athena
  • bozek/athena
  • tdiasdov/athena
  • bbrueers/athena
  • iramirez/athena
  • lkrauth/athena
  • bcole/athena
  • mtian/athena
  • mgrabois/athena
  • ecelebi/athena
  • oducu/athena
  • idinu/athena
  • roishi/athena
  • dhirsch/athena
  • ygo/athena
  • yuanchan/athena
  • jjwilkin/athena
  • ggustavi/athena
  • exochell/athena
  • hmoyanog/athena-4-mr
  • diwillia/athena
  • cgarner/athena
  • changqia/athena
  • skorn/athena
  • honguyen/athena
  • scalvet/athena
  • sbiryuko/athena
  • atsiamis/athena
  • jwspence/athena
  • adimitri/athena
  • calpigia/athena
  • jizamora/athena
  • yangx/athena
  • iene/athena
  • tbisanz/athena
  • dhangal/athena
  • atlidbs/athena
  • rysawada/athena
  • athaler/athena
  • cmarcon/athena
  • jspah/athena
  • tqiu/athena
  • jkretz/athena
  • jcardena/athena
  • dopasqua/athena
  • kpetukho/athena
  • tzenis/athena
  • maliev/athena
  • hzuchen/athena
  • oshukrun/athena
  • lveloce/athena
  • ryamaguc/athena
  • mumohdso/athena2
  • fdelrio/athena
  • iwang/athena
  • sagara17/athena
  • mbiros/athena
  • tsano/athena
  • mumohdso/athena
  • okumura/athena
  • koshimiz/athena
  • arennie/athena
  • valentem/athena
  • dmunozpe/athena
  • evguillo/athena
  • rhayes/athena
  • atate/athena
  • dossantn/athena
  • caforio/athena
  • zhijie/athena
  • maly/athena
  • bnachman/athena
  • zearnsha/athena
  • hlin/athena
  • lunedic/athena
  • yuzhan/athena
  • suyounas/athena
  • rjoshi/athena
  • machitis/athena
  • crougier/athena
  • mimarine/athena
  • mtost/athena
  • ndebiase/athena
  • thompson/athena
  • lvannoli/athena
  • saclawso/athena
  • omezhens/athena
  • cprat/athena
  • jonierma/athena
  • dounwuch/athena
  • mischott/athena
  • nkakati/athena
  • echeu/athena
  • hhanif/athena
  • sahinsoy/athena
  • martinpa/athena
  • tiknight/athena
  • csauer/athena
  • knikolop/athena
  • inaryshk/athena
  • wendlanb/athena
  • jodamp/athena
  • angrigor/athena
  • fedin/athena
  • xchu/athena
  • lkeszegh/athena
  • adik/athena
  • pbellos/athena
  • jaoliver/athena
  • idrivask/athena
  • echeremu/athena
  • aikoulou/athena
  • lbaltes/athena
  • ignesi/athena
  • algilber/athena
  • ntamir/athena
  • pyanezca/athena
  • sadykov/athena
  • haweber/athena
  • eschopf/athena
  • hiito/athena
  • sgurdasa/athena
  • pamachad/athena
  • pbhattar/athena
  • tteixeir/athena
  • bsaifudd/athena
  • tavandaa/athena
  • wolter/athena
  • fdibello/athena
  • veellajo/athena
  • nheatley/athena
  • mdrozdov/athena
  • dparedes/athena
  • fsili/athena
  • mzhai/athena
  • hsimpson/athena
  • zyan/athena
  • emmarsha/athena
  • mrenda/athena
  • minaenko/athena
  • phkenned/athena
  • rkusters/athena
  • chchau/athena
  • zhangr/athena
  • jburzyns/athena
  • zmarshal/athena
  • edweik/athena
  • slai/athena
  • awilhahn/athena
  • agaa/athena
  • zfeng/athena
  • javanden/athena
  • leevans/athena
  • kkrowpma/athena
  • llaatu/athena
  • zifeng/athena
  • srdas/athena
  • drousso/athena
  • adonofri/athena
  • metsai/athena
  • yuanda/athena
  • stsigari/athena
  • atropina/athena
  • seggebre/athena
  • atlaspmb/athena
  • mnoury/athena
  • cleonido/athena
  • ademaria/athena
  • axiong/athena
  • arombola/athena
  • ijuarezr/athena
  • kchoi/athena
  • amdesai/athena
  • dgillber/athena
  • eyamashi/athena
  • nlopezca/athena
  • zang/athena
  • saktas/athena
  • qibin/athena
  • matakagi/athena
  • fbendebb/athena
  • acanbay/athena
  • jferrand/athena
  • berkeleylab/lowmutracking/athena
  • bshresth/athena
  • cbuitrag/athena
  • klassen/athena
  • egodden/athena
  • tbuanes/athena
  • otheiner/athena-official
  • mfarring/athena
  • hpotti/athena
  • hawatson/athena
  • parodi/athena
  • dzengerj/athena
  • vtudorac/athena
  • chonghao/athena
  • lmontana/athena
  • bballard/athena
  • knakkali/athena
  • zhuyi/athena
  • dcieri/athena
  • cimcp/athena
  • buboehm/athena
  • cantel/athena
  • adaribay/athena
  • iliadis/athena
  • kbenkend/athena
  • weixi/athena
  • jburr/athena
  • asansar/athena
  • duperrin/athena
  • isotarri/athena
  • frenner/athena
  • bstanisl/athena
  • blumen/athena
  • dkoeck/athena
  • smitani/athena
  • czodrows/athena
  • mfewell/athena
  • eegidiop/athena
  • alsala/athena
  • yulei/athena
  • clantz/athena
  • olangrek/athena
  • hpang/athena
  • mleigh/athena
  • gshatri/athena
  • jmharris/athena
  • gripelli/athena
  • jgargan/athena
  • ewatton/athena
  • miholzbo/athena
  • amincer/athena
  • otheiner/athena
  • deniso/athena
  • tizuo/athena
  • rushioda/athena
  • preselection-hackathon/athena
  • mfernoux/athena
  • sfranche/athena
  • bernardo/athena
  • skaur/athena
  • jnitschk/athena
  • pebaron/athena-td
  • ksugizak/athena
  • yusano/athena
  • smeriano/athena
  • chandler/athena
  • viruelas/athena
  • anghosh/ef-anindya
  • davetisy/athena
  • hriani/athena
  • jgombas/athena
  • vcepaiti/athena
  • wsherman/athena
  • yochi/athena
  • pakontax/athena
  • sroygara/athena
  • rtagami/athena
  • apsallid/athena
  • yuanj/athena
  • giagu/athena
  • agavrily/athena
  • dmclaugh/athena
  • mcgensvc/athena
  • dmahon/athena
  • chji/athena
  • abunka/athena
  • yuwen/athena
  • almay/athena
  • cjmeyer/athena
  • qberthet/athena
  • islazyk/athena
  • mshapiro/athena
  • glamprin/athena
  • ekay/athena
  • mbarel/athena
  • rdinardo/athena
  • dkobylia/athena
  • kazhang/athena
  • baitbenc/athena
  • dakiyama/athena
  • mlanzacb/athena
  • cgrefe/athena
  • szambito/athena
  • hwilkens/athena
  • osalin/athena
  • minlin/athena
  • wsfreund/athena
  • beringer/athena
  • pebaron/athena
  • yyap/athena
  • enagy/athena
  • mspalla/athena
  • fcalosim/athena
  • schaffer/athena
  • smobius/athena
  • menke/athena
  • tkharlam/athena
  • mduehrss/athena
  • mavogel/athena
  • rateixei/athena
  • spagan/athena
  • carquin/athena
  • dportill/athena
  • okiverny/athena
  • chhayes/athena
  • jelena/athena
  • osunnebo/athena
  • jwalder/athena
  • desilva/athena
  • lmijovic/athena
  • sanmay/athena
  • junpei/athena
  • mcarnesa/athena
  • tilebeam/athena
  • satom/athena
  • jedebevc/athena
  • jahreda/athena
  • jstark/athena
  • delsart/athena
  • silu/athena
  • krbjoerk/athena
  • cyoung/athena
  • kiabelin/athena
  • vtskhaya/athena
  • jtanaka/athena
  • luxin/athena
  • mtogawa/athena
  • yifany/athena
  • faser/offline/athena
  • haoran/athena
  • maslawin/athena
  • dcasperfaser/athena
  • almeidvi/athena
  • minghui/athena
  • danning/athena
  • beddall/athena
  • cfan/athena
  • vmartin/athena
  • kazheng/athena
  • srettie/athena
  • beltran/athena-fork
  • mmontell/athena
  • kgupta/athena
  • lhenkelm/athena
  • anbaraja/athena
  • pajones/athena
  • sudha/athena
  • serodrig/athena
  • lgagnon/athena
  • ssinha/athena
  • kkawade/athena
  • amorenos/athena
  • joana/athena
  • dpanchal/athena
  • jshahini/athena
  • lfeligio/athena
  • chiodini/athena
  • apalazzo/athena
  • mtanasin/athena
  • vbuxbaum/athena
  • kburka/athena
  • jaofferm/athena
  • ehaines/athena
  • gonzalri/athena
  • mdidenko/athena
  • desengup/athena
  • rmazini/athena
  • gottino/athena
  • sabidi/athena
  • bkerridg/athena
  • gavrilen/athena
  • qidong/athena
  • hazeng/athena
  • dwkim/athena
  • cdimitri/athena
  • ktopolni/athena
  • jingjing/athena
  • ktackman/athena
  • yche/athena
  • yoyeh/athena
  • dabattul/athena
  • attrtcal/athena
  • mischott/athena-22
  • sgaid/athena
  • bochen/athena
  • thmaurin/athena
  • asciandr/athena
  • chjiang/athena
  • krdona/athena
  • lbazzano/athena
  • rushioda/athena-3
  • nlad/athena
  • pclark/athena
  • meiqi/athena
  • aaikot/athena
  • kvidalgu/athena
  • dtorresa/athena
  • aackerma/athena
  • hmoyanog/athena
  • yingjun/athena
  • jcurran/athena
  • lesplend/athena
  • maboelel/athena
  • xinfei/athena
  • kazheng/athena-physics-val-2023
  • mschefer/athena
  • xinhui/athena
  • rmakhman/athena
  • aivina/athena
  • liuk/athena
  • zoduan/athena
  • zhiliang/athena
  • sfrances/athena
  • shhan/athena
  • xingguo/athena
  • jlue/athena
  • ragrabar/athena
  • bdixit/athena
  • alsidley/athena
  • kyjones/topoetcone-removal
  • shahzad/athena
  • niabicht/athena
  • yunagai/athena
  • asehrawa/athena
  • mhoppesc/athena
  • bschlag/athena
  • lcalic/athena-backup
  • greynold/athena
  • keener/athena
  • llewitt/athena
  • kazheng/athena-workingpoint
  • agentry/athena
  • yinmiao/athena
  • drankin/athena
  • bruckman/athena
  • adohnalo/athena
  • hvanders/athena
  • nkang/athena
  • kbhide/athena
  • ladamczy/test
  • berkeleylab/acts/athena
  • asmaga/athena
  • tbeumker/athenatest
  • weitao/athena
  • tbeumker/athena
  • losanti/athena
  • menu-hackathon/athena
  • losanti/athena-23
  • jiturriz/athena
  • vmaksimo/athena
  • dmankad/athena-idle
  • wsong/athena
  • fisopkov/athena
  • kyjones/trigger-example
  • toobauma/athena
  • seggebre/athena-fluencemap-modification
  • dawerner/athena
  • lprimomo/athena
  • edreyer/athena
  • gtarna/athena
  • SecVtx-Lancaster/Athena
  • maparo/athena
  • smanzoni/athena
  • pgraveli/athena
  • shmukher/athena
  • adimri/athena
  • jcrosby/athena
  • aackerma/atlas-athena
  • eullmank/athena
  • wstanek/athena
  • atlas-sa-uct/athena
  • ppotepa/athena
  • lrambell/athena
  • tovsiann/athena
  • rsnyder/athena
  • lroos/athena
  • skita/athena
  • zgao/athena
  • mhemmett/athena
  • achakrav/athena
  • evitale/athena
  • xmapekul/athena
  • kgoto/athena
  • thmaurin/athena-sim-flavour
  • arej/athena
  • lkretsch/athena
  • rashbypi/athena
  • epasqual/athena
  • ivyas/athena
  • aleksand/athena
  • npond/athena
  • jebohm/athena
  • mbiyabi/athena
  • cvittori/athena
  • hluk/athena
  • mihe/athena
  • dbiswas/athena
  • aralves/athena
  • croland/athena
  • dkoeck/anniathenafork
  • rgupta/athena
  • mkareem/athena
  • tslee/athena
  • pkumari/athena
  • cgarvey/athena
  • feickert/athena
  • kesedlac/athena
  • ctosciri/athena-old
  • mhaacke/athena
  • agerwin/athena
  • asoflau/athena
  • ctosciri/athena
  • ricunnin/athena
  • gfrattar/athena
  • gwilliam/athena
  • gtolkach/athena
  • bscheuer/athena
  • bdixit/masking-strip-modules
  • ksudo/athena
  • jfeng2/athena
  • rhiguchi/athena
  • gaofeng/athena
  • etoyoda/athena
  • kosuzuki/athena
  • svanstro/athena
  • hart/athena
  • vaustrup/athena
  • rmizuhik/athena
  • kkanke/athena
  • tnakagaw/athena
  • whopkins/athena
  • amakita/athena
  • maoki/athena
  • tpaschoa/athena
  • anayaz/athena
  • dduda/athena
  • miyamada/athena
  • rishikaw/athena
  • aagaard/athena
  • ferusso/athena
  • evalient/athena
  • smweber/athena-run-3
  • smweber/athena
  • shudong/athena
  • evalient/athena-dnn-calculator
  • strom/athena
  • zyan/athena-muon-calib
  • zyan/athena-muon-calib-stream
  • dellacqu/athena
  • glagafon/project-nimber-1
  • strom/athena-dms
  • aowang/athena
  • jsallen/athena
  • sbellman/athena
  • brosser/athena
  • macretar/athena
  • ooncel/athena
  • skadir/athena-sadaf
  • leguo/athena
  • glagafon/handi-project
  • tygeorge/athena
  • jhoya/athena
  • osotosan/athena
  • wuxi/athena
  • syan/athena-syan
  • hasun/athena
  • aborbely/athena
  • mnorfolk/athena
  • axgallen/athena-qualification-task
  • glagafon/handi-project-1
  • will/athena
  • karakawa/athena
  • taogawa/athena
  • schernau/athena
  • seinfant/athena
  • tmlinare/athena
  • dmankad/athena-gen
  • mmaroun/ravina-fork
  • axgallen/athena
  • romar/athena
  • ktariq/athena
  • dhagan/athena
  • vlysenko/athena
  • agarabag/athena
  • ipolishc/athena
  • zuzak/athena
  • ibamwidh/athena
  • mahorstm/athena
  • tizhang/athena
  • xilin/athena
  • atishelm/athena
  • jolamber/athena
  • ykhoulak/myathena
  • frfische/athena
  • jlue/athena-latest
  • yil/athena
  • kifarman/athena
  • chuanye/athena
  • nkua-atlas/athena
  • huayu/athena
  • dntounis/athena
  • tayoshid/athena
  • movincen/athena
  • lderamo/athena
  • steinber/athena-main
  • nischmit/athena
  • dongyi/athena
  • tdingley/athena
  • hasegawa/athena
  • dtruncal/athena
  • malvesca/athena
  • kazheng/athena-acts
  • glagafon/dq-optimize
  • ladamczy/athena
  • mnowak/athena
  • openc/athena
  • lcalic/athena
  • mhufnage/athena
  • lsultana/obsolete_athena
  • ekajomov/athena-fork-fix
  • lsultana/athena
  • yonoda/athena
  • rqian/athena
  • kfung/athena
  • anfortma/athena
  • anstein/athena
  • alveltma/athena
  • alpleban/athena
  • mmaheshw/athena
  • jdavidso/athena
  • pebaron/athena-leprem
  • gbird/athena
  • edcritel/athena
  • midandre/athena
  • anhodges/athena
  • bglik/athena
  • mvivasal/athena
  • mfurukaw/athena
  • asbrooks/athena
  • fcurcio/athena
  • sokkerma/athena
  • kyjones/athena
  • lboccard/athena
  • mveen/athena
  • tburatov/athena
  • mmlynars/athena-v-2
  • jmcgowan/athena
  • tayoshid/athena-test
  • dmankad/athena
  • joroemer/athena
  • ivyoung/athena
  • jodafons/athena
  • drasslof/athena
  • ctaybi/athena
  • tmclachl/athena
  • sdemiran/athena
  • sanchezj/athena-2022
  • jiddon/athena
  • anburger/athena
  • apfleger/athena
  • sdahbi/athena
  • sidoti/athena
  • fwinkel/athena
  • goblirsc/athena
  • izahir/athena
  • mmoors/athena
  • sanchezj/athena
  • jwkraus/athena
  • obut/athena
  • rvinasco/athena
  • esimpson/athena
  • rhaberle/athena
  • janders/athena
  • jhowarth/athena
  • klleras/athena
  • dta/athena_old
  • jchapman/athena
  • jecouthu/athena
  • fhenry/athena
  • dtrischu/athena
  • sfuenzal/athena
  • mungo/athena
  • avallier/athena
  • fmontere/athena
  • zhaotong/athena
  • misantan/athena
  • zalegria/athena
  • shaoguan/athena
  • gdigrego/athena
  • awharton/Athena
  • acordeir/athena-ed
  • pdougan/athena
  • nbruscin/athena
  • amelo/athena
  • caiy/athena
  • peiyan/athena
  • mkholoda/athena
  • kchu/athena
  • fkirfel/athena
  • backes/athena
  • esampson/athena-idart
  • tayoshid/athena-2024
  • shpeng/athena-2
  • gfacini/athena
  • bcervato/athena
  • gmercado/athena
  • fwinkl2/athena
  • rhowen/athena
  • gmascare/athena
  • esampson/athena-idart-2
  • costanzo/athena
  • yvolkotr/athena
  • nharriso/athena
  • yuematsu/athena
  • esampson/athena-otp
  • djlewis/athena
  • esampson/athena-june-otp
  • pibutti/athena
  • alpleban/athena-met
  • astefl/athena
  • bmoser/athena
  • bdong/athena
  • wcastigl/athena
  • yilin/athena
  • ksahan/athena
  • zhanhang/athena
  • thitchin/athena
  • msasada/athena
  • agheata/athena
  • sosarkar/athena-again
  • txu/athena
  • lbarrade/athena
  • seth/athena
  • robouque/athena
  • esampson/june-2-otp
  • zhangbo/athena
  • mlyukova/athena
  • dbaronmo/athena
  • okolay/athena
  • nsurijr/athena
  • damperia/athena-acts
  • wema/athena
  • vsasse/athena
  • martyniu/athena
  • acamplan/athena
  • boudreau/athena
  • eballabe/athena
  • bngair/me-tsig-athena
  • bhuth/athena
  • bngair/met-significance-r-22
  • menadeem/athena
  • vkost/athena
  • ksakura/athena
  • atymchys/athena
  • rhicks/athena
  • domatter/athena
  • yanqiw/athena
  • arelycg/athena
  • skadir/athena
  • linghua/athena
  • sgoswami/athena
  • juscerri/athena
  • biliu/athena
  • sosarkar/athena
  • beltran/athena
  • mwessels/athena
  • bdebjani/athena
  • ddicroce/athena
  • hshaddix/athena
  • dreikher/athena
  • mhabedan/athena
  • fladias/athena
  • elham/athena
  • lwinkler/athena
  • emoon/athena
  • cleong/athena
  • sdiefenb/athena-onnx-tutorial
  • haren/athena
  • mads/athena
  • nkrogh/athena
  • dwilson/athena
  • fivone/athena
  • lsanfili/athena
  • echerepa/athena
  • scane/athena
  • thart/athena
  • dahumphr/athena
  • baer/athena
  • lifoster/athena
  • dcamarer/athena
  • alancast/athena
  • kenakamu/athena
  • glagafon/aaaathena
  • glagafon/athena
  • haotianl/athena
  • eskorda/athena
  • ukhurshi/athena
  • salopez/athena
  • rshibata/athena
  • lburke/athena
  • glagafon/glagafon-dq
  • rvavrick/athena
  • delitez/athena
  • therwig/athena
  • mwitkows/athena
  • pizhang/athena
  • htsoi/athena
  • pachabri/athena
  • ezaya/athena
  • lcorazzi/athena
  • casadop/athena
  • achamber/athena
  • jaburles/athena
  • mmantina/athena
  • mamirono/athena
  • hzhuang/athena
  • rmole/athena
  • lmonaco/athena
  • jkrupa/athena
  • mfornasi/athena
  • fdattola/athena
  • gserenis/athena
  • semami/athena
  • rpozzi/athena
  • belderto/athena
  • lechols/athena
  • jinglis/athena
  • ljerala/athena
  • cmavungu/athena
  • uepstein/athena
  • abesir/athena
  • jajohnso/athena
  • jlittle/athena
  • lopezzot/athena
  • htorre/athena
  • wguerin/athena
  • tneep/athena
  • lbrown/athena
  • robouque/athena-20241115
  • fsiegert/athena
  • jackersc/athena
  • wenjingw/athena
  • rmole/athena-personal-fork
  • kfang/athena-fork-kyfang
  • ashirazi/athena
  • epompapa/athena
  • wasu/athena
  • prmitra/athena
  • toheintz/athena
  • kgrimm/athena-kgrimm
  • gfazzino/athena
  • aslobodk/athena
  • amoreira/athena
  • nihartma/athena
  • kdipetri/athena
  • goetz/athena-acts
  • muschmid/athena
  • yazhou/athena
  • djuarezg/athena
  • wlai/athena
  • falves/athena
  • alarnold/athena
  • rohasan/athena
  • mdacunha/athena
  • mborodin/athena
  • asickles/athena
  • novotnyp/athena
  • ibenaoum/athena
  • adsalvad/athena
  • alecrhys/athena
  • lvicenik/athena
  • tflee/athena
  • christog/athena
  • frcastig/athena
  • zetao/athena
  • mfarzali/athena
  • pusharma/athena
  • llarson/athena
  • kkazakov/athena
  • ehampshi/athena
  • tomoya/athena-low-pt-muon-rec
  • jusilva/athena
  • gpinheir/athena
  • exochell/my-athena
  • hshaddix/athena-hshaddix
  • jecifuen/athena
  • vchabala/athena
  • mojeda/athena
  • nsur/athena-lund
  • jlieberm/athena
  • chhultqu/athena
  • jlai/athena
  • misavic/athena
  • nshtokha/athena
  • pmourafr/athena
  • yuxuanz/local-athena
  • camccrac/athena
  • akraus/athena
  • yukari/athena
  • zhubacek/athena
  • sizumiya/athena
  • mnegrini/athena
  • rkavak/athena
  • mfilipig/athena
  • fdejean/athena
  • sawyer/athena
  • yanqiw/athena-acts-for-run-3-silicon-tracking
  • zrokavec/athena
  • gipoddar/athena
  • ssuravar/athena
  • beyeo/athena
  • sutuncay/athena
  • mtancock/athena-2
  • gsalvi/athena
  • vpires/athena-vasco
  • ywng/athena
  • fballi/athena
  • stlin/athena
1576 results
Show changes
Commits on Source (10)
/*
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
*/
#include <ZdcAnalysis/ZDCDataAnalyzer.h>
......@@ -8,7 +8,6 @@
#include <sstream>
#include <utility>
#include "CxxUtils/trapping_fp.h"
#include "CxxUtils/checker_macros.h"
ATLAS_NO_CHECK_FILE_THREAD_SAFETY;
......@@ -26,12 +25,6 @@ ZDCDataAnalyzer::ZDCDataAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, int nSamp
m_haveECalib(false),
m_haveT0Calib(false),
m_currentLB(-1),
// Default "calibrations"
m_currentECalibCoeff ({{{{1, 1, 1, 1}}, {{1, 1, 1, 1}}}}),
m_currentT0OffsetsHG ({{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}),
m_currentT0OffsetsLG ({{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}),
m_moduleMask(0),
m_moduleSum({{0, 0}}),
m_moduleSumErrSq({{0, 0}}),
......@@ -67,6 +60,12 @@ ZDCDataAnalyzer::ZDCDataAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, int nSamp
m_pedestals[0] = {{100, 100, 100, 100}};
m_pedestals[1] = {{100, 100, 100, 100}};
// Default "calibrations"
//
m_currentECalibCoeff = {{{{1, 1, 1, 1}}, {{1, 1, 1, 1}}}};
m_currentT0OffsetsHG = {{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}};
m_currentT0OffsetsLG = {{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}};
// Construct the per-module pulse analyzers
//
......@@ -75,7 +74,7 @@ ZDCDataAnalyzer::ZDCDataAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, int nSamp
std::ostringstream moduleTag;
moduleTag << "_s" << side << "_m" << module;
m_moduleAnalyzers[side][module].reset (new ZDCPulseAnalyzer(m_msgFunc_p, moduleTag.str(), m_nSample, m_deltaTSample, m_preSampleIdx,
m_moduleAnalyzers[side][module].reset (new ZDCPulseAnalyzer(m_msgFunc_p, moduleTag.str().c_str(), m_nSample, m_deltaTSample, m_preSampleIdx,
m_pedestals[side][module], m_HGGains[side][module], m_fitFunction,
peak2ndDerivMinSamples[side][module],
peak2ndDerivMinThresholdsHG[side][module],
......@@ -328,9 +327,29 @@ void ZDCDataAnalyzer::SetNonlinCorrParams(float refADC, float refScale,
}
}
void ZDCDataAnalyzer::enableFADCCorrections(bool correctPerSample,
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& corrHistHG,
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& corrHistLG)
{
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
m_moduleAnalyzers[side][module]->enableFADCCorrections(correctPerSample, corrHistHG[side][module], corrHistLG[side][module]);
}
}
}
void ZDCDataAnalyzer::disableFADCCorrections()
{
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
m_moduleAnalyzers[side][module]->disableFADCCorrections();
}
}
}
void ZDCDataAnalyzer::enableTimeSigCut(bool AND, float sigCut, std::string TF1String,
const std::array<std::array<std::vector<double>, 4>, 2>& parsHGArr,
const std::array<std::array<std::vector<double>, 4>, 2>& parsLGArr)
const std::array<std::array<std::vector<double>, 4>, 2>& parsHGArr,
const std::array<std::array<std::vector<double>, 4>, 2>& parsLGArr)
{
for (size_t side : {0, 1}) {
for (size_t module : {0, 1, 2, 3}) {
......@@ -569,12 +588,9 @@ bool ZDCDataAnalyzer::FinishEvent()
// subtract the fraction of LGOverflow events if we have fraction available (<0 means unavailable)
if (pulseAna_p->LGOverflow() && m_moduleAmpFractionLG[side][module] > 0) {tempFraction -= m_moduleAmpFractionLG[side][module];}
}
{
CXXUTILS_TRAPPING_FP;
if (m_moduleSum[side] > 0) m_moduleSumBkgdFrac[side] = sumAmpTimesBkgdFrac/m_moduleSum[side];
else m_moduleSumBkgdFrac[side] = 0;
}
if (m_moduleSum[side] > 0) m_moduleSumBkgdFrac[side] = sumAmpTimesBkgdFrac/m_moduleSum[side];
else m_moduleSumBkgdFrac[side] = 0;
if (m_calibModuleSum[side] > 1e-6) {
m_averageTime[side] /= m_calibModuleSum[side];
......
/*
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
*/
#include "ZdcAnalysis/ZDCPulseAnalyzer.h"
......@@ -7,16 +7,18 @@
#include "TFitResult.h"
#include "TFitResultPtr.h"
#include "TVirtualFitter.h"
#include "TFitter.h"
#include "TList.h"
#include "TMinuit.h"
#include <algorithm>
#include <sstream>
#include <cmath>
#include <memory>
#include <numeric>
#include <iomanip>
#include <stdexcept>
#include "CxxUtils/checker_macros.h"
ATLAS_NO_CHECK_FILE_THREAD_SAFETY;
extern int gErrorIgnoreLevel;
......@@ -87,7 +89,7 @@ void ZDCPulseAnalyzer::CombinedPulsesFCN(int& /*numParam*/, double*, double& f,
ZDCPulseAnalyzer::ZDCPulseAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, const std::string& tag, int Nsample, float deltaTSample, size_t preSampleIdx, int pedestal,
float gainHG, const std::string& fitFunction, int peak2ndDerivMinSample,
float peak2ndDerivMinThreshHG, float peak2ndDerivMinThreshLG) :
m_msgFunc_p(std::move(msgFunc_p)),
m_msgFunc_p(msgFunc_p),
m_tag(tag), m_Nsample(Nsample),
m_preSampleIdx(preSampleIdx),
m_deltaTSample(deltaTSample),
......@@ -208,6 +210,7 @@ void ZDCPulseAnalyzer::SetDefaults()
m_useDelayed = false;
m_enablePreExcl = false;
m_enablePostExcl = false;
m_haveUserFilter = false;
m_timingCorrMode = NoTimingCorr;
m_haveNonlinCorr = false;
......@@ -436,6 +439,31 @@ void ZDCPulseAnalyzer::enableTimeSigCut(bool AND, float sigCut, std::string TF1S
}
void ZDCPulseAnalyzer::enableFADCCorrections(bool correctPerSample, std::unique_ptr<const TH1>& correHistHG, std::unique_ptr<const TH1>& correHistLG)
{
m_haveFADCCorrections = true;
m_FADCCorrPerSample = correctPerSample;
// check for appropriate limits
//
if (std::abs(correHistHG->GetXaxis()->GetXmin()) > 1e-3 ||
std::abs(correHistHG->GetXaxis()->GetXmax() - 4096) > 1e-3) {
(*m_msgFunc_p)(ZDCMsg::Error, ("ZDCPulseAnalyzer::enableFADCCorrections:: invalid high gain correction histogram range: xmin, xmax = " +
std::to_string(correHistHG->GetXaxis()->GetXmin()) + ", " + std::to_string(correHistHG->GetXaxis()->GetXmax())) );
}
else {
m_FADCCorrHG = std::move(correHistHG);
}
if (std::abs(correHistLG->GetXaxis()->GetXmin()) > 1e-3 ||
std::abs(correHistLG->GetXaxis()->GetXmin() - 4096) > 1e-3) {
(*m_msgFunc_p)(ZDCMsg::Error, ("ZDCPulseAnalyzer::enableFADCCorrections:: invalid low gain correction histogram range: xmin, xmax = " +
std::to_string(correHistLG->GetXaxis()->GetXmin()) + ", " + std::to_string(correHistLG->GetXaxis()->GetXmax())) );
}
else {
m_FADCCorrLG = std::move(correHistLG);
}
}
std::vector<float> ZDCPulseAnalyzer::GetFitPulls(bool refitLG) const
{
......@@ -474,6 +502,46 @@ std::vector<float> ZDCPulseAnalyzer::GetFitPulls(bool refitLG) const
}
}
double ZDCPulseAnalyzer::getAmplitudeCorrection(bool highGain)
{
double amplCorrFactor = 1;
// If we have FADC correction and we aren't applying it per-sample, do so here
//
if (m_haveFADCCorrections && !m_FADCCorrPerSample) {
double fadcCorr = highGain ? m_FADCCorrHG->Interpolate(m_fitAmplitude) : m_FADCCorrLG->Interpolate(m_fitAmplitude);
amplCorrFactor *= fadcCorr;
}
double amplCorr = m_fitAmplitude * amplCorrFactor;
// If we have a non-linear correction, apply it here
// We apply it as an inverse correction - i.e. we divide by a correction
// term tha is a sum of coefficients times the ADC minus a reference
// to a power. The lowest power is 1, the highest is deteremined by
// the number of provided coefficients
if (m_haveNonlinCorr) {
float invNLCorr = 1.0;
float nlPolyArg = (amplCorr - m_nonLinCorrRefADC) / m_nonLinCorrRefScale;
if (m_useLowGain) {
for (size_t power = 1; power <= m_nonLinCorrParamsHG.size(); power++) {
invNLCorr += m_nonLinCorrParamsHG[power - 1]*pow(nlPolyArg, power);
}
}
else {
for (size_t power = 1; power <= m_nonLinCorrParamsLG.size(); power++) {
invNLCorr += m_nonLinCorrParamsLG[power - 1]*pow(nlPolyArg, power);
}
}
amplCorrFactor /= invNLCorr;
}
return amplCorrFactor;
}
void ZDCPulseAnalyzer::SetupFitFunctions()
{
float prePulseTMin = 0;
......@@ -850,34 +918,21 @@ bool ZDCPulseAnalyzer::DoAnalysis(bool repass)
//
// --BAC
//
// If we have a non-linear correction, apply it here
// We apply it as an inverse correction - i.e. we divide by a correction
// term tha is a sum of coefficients times the ADC minus a reference
// to a power. The lowest power is 1, the highest is deteremined by
// the number of provided coefficients
double invNLCorr = 1.0;
if (m_haveNonlinCorr) {
float ampCorrFact = (m_fitAmplitude - m_nonLinCorrRefADC) / m_nonLinCorrRefScale;
for (size_t power = 1; power <= m_nonLinCorrParamsLG.size(); power++) {
invNLCorr += m_nonLinCorrParamsLG[power - 1]*pow(ampCorrFact, power);
}
}
double amplCorrFactor = getAmplitudeCorrection(false);
//
// Multiply amplitude by gain factor
//
m_ampNoNonLin = m_fitAmplitude * m_gainFactorLG;
m_amplitude = m_fitAmplitude / invNLCorr * m_gainFactorLG;
m_ampError = m_fitAmpError / invNLCorr * m_gainFactorLG;
m_amplitude = m_fitAmplitude * amplCorrFactor * m_gainFactorLG;
m_ampError = m_fitAmpError * amplCorrFactor * m_gainFactorLG;
m_preSampleAmp = m_preSample * m_gainFactorLG;
m_preAmplitude = m_fitPreAmp * m_gainFactorLG;
m_postAmplitude = m_fitPostAmp * m_gainFactorLG;
m_expAmplitude = m_fitExpAmp * m_gainFactorLG;
// BAC: also scale up the 2nd derivative so low and high gain can be treated on the same footing
// BAC: also scale up the 2nd derivative by the gain factor so low and high gain can be treated on the same footing
//
m_minDeriv2nd *= m_gainFactorLG;
}
......@@ -916,17 +971,10 @@ bool ZDCPulseAnalyzer::DoAnalysis(bool repass)
// to a power. The lowest power is 1, the highest is deteremined by
// the number of provided coefficients
//
if (m_haveNonlinCorr) {
float ampCorrFact = (m_fitAmplitude - m_nonLinCorrRefADC) / m_nonLinCorrRefScale;
float invNLCorr = 1.0;
for (size_t power = 1; power <= m_nonLinCorrParamsHG.size(); power++) {
invNLCorr += m_nonLinCorrParamsHG[power - 1]*pow(ampCorrFact, power);
}
double amplCorrFactor = getAmplitudeCorrection(true);
m_amplitude /= invNLCorr;
m_ampError /= invNLCorr;
}
m_amplitude *= amplCorrFactor;
m_ampError *= amplCorrFactor;
}
// If LG refit has been requested, do it now
......@@ -935,16 +983,8 @@ bool ZDCPulseAnalyzer::DoAnalysis(bool repass)
prepareLGRefit(m_ADCSamplesLGSub, m_ADCSSampSigLG, m_useSampleLG);
DoFit(true);
if (m_haveNonlinCorr) {
float ampCorrFact = (m_refitLGAmpl - m_nonLinCorrRefADC) / m_nonLinCorrRefScale;
float invNLCorr = 1.0;
for (size_t power = 1; power <= m_nonLinCorrParamsHG.size(); power++) {
invNLCorr += m_nonLinCorrParamsHG[power - 1]*pow(ampCorrFact, power);
}
m_refitLGAmplCorr = m_refitLGAmpl/invNLCorr;
}
double amplCorrFactor = getAmplitudeCorrection(false);
m_refitLGAmplCorr = m_refitLGAmpl*amplCorrFactor;
}
return result;
......@@ -1143,10 +1183,15 @@ bool ZDCPulseAnalyzer::AnalyzeData(size_t nSamples, size_t preSampleIdx,
if (sampleSig > m_preExpSig) m_preExpSig = sampleSig;
}
}
// Now we search for maxima before the main pulse
//
int loopLimit = (m_havePulse ? m_minDeriv2ndIndex - 2 : m_peak2ndDerivMinSample - 2);
int loopStart = m_minSampleEvt == 0 ? 1 : m_minSampleEvt;
float maxPrepulseSig = 0;
unsigned int maxPrepulseSample = 0;
for (int isample = loopStart; isample <= loopLimit; isample++) {
if (!useSample[isample]) continue;
......@@ -1154,30 +1199,42 @@ bool ZDCPulseAnalyzer::AnalyzeData(size_t nSamples, size_t preSampleIdx,
// If any of the second derivatives prior to the peak are significantly negative, we have a an extra pulse
// prior to the main one -- as opposed to just an expnential tail
//
m_prePulseSig = -m_samplesDeriv2nd[isample]/(std::sqrt(6.0)*noiseSig);
float prePulseSig = -m_samplesDeriv2nd[isample]/(std::sqrt(6.0)*noiseSig);
// std::cout << m_tag << ", for sample " << isample << ", 2nd derivative = " << m_samplesDeriv2nd[isample]
// << " 0.05 * m_minDeriv2nd) = " << 0.05 * m_minDeriv2nd
// << ", prePulseSig = " << prePulseSig << std::endl;
if ((m_prePulseSig > 6 && m_samplesDeriv2nd[isample] < 0.05 * m_minDeriv2nd) ||
if ((prePulseSig > 6 && m_samplesDeriv2nd[isample] < 0.05 * m_minDeriv2nd) ||
m_samplesDeriv2nd[isample] < 0.5*m_minDeriv2nd)
{
if (m_preExpTail) {
//
// We have a prepulse. If we already indicated an negative exponential,
// if the prepulse has greater significance, we override the negative exponential
//
if (m_prePulseSig > m_preExpSig) {
m_prePulse = true;
m_preExpTail = false;
}
m_prePulse = true;
if (prePulseSig > maxPrepulseSig) {
maxPrepulseSig = prePulseSig;
maxPrepulseSample = isample;
}
else {
m_prePulse = true;
}
}
if (m_prePulse) {
// std::cout << m_tag << ": prepulse sigma = " << m_prePulseSig << ", pre exp sigma = " << m_preExpSig << std::endl;
m_prePulseSig = maxPrepulseSig;
if (m_preExpTail) {
//
// We have a prepulse. If we already indicated an negative exponential,
// if the prepulse has greater significance, we override the negative exponential
//
if (m_prePulseSig > m_preExpSig) {
m_preExpTail = false;
}
if (m_prePulse && m_samplesSub[isample] > m_initialPrePulseAmp) {
m_initialPrePulseAmp = m_samplesSub[isample];
m_initialPrePulseT0 = m_deltaTSample * (isample);
else {
m_prePulse = false;
}
}
m_initialPrePulseAmp = m_samplesSub[maxPrepulseSample];
m_initialPrePulseT0 = m_deltaTSample * (maxPrepulseSample);
}
// if (m_preExpTail) m_prePulse = true;
......@@ -1884,7 +1941,7 @@ void ZDCPulseAnalyzer::dump() const
void ZDCPulseAnalyzer::dumpTF1(const TF1* func) const
{
std::string message = "Dump of TF1: " + std::string(func->GetName());
bool continueDump = (*m_msgFunc_p)(ZDCMsg::Verbose, std::move(message));
bool continueDump = (*m_msgFunc_p)(ZDCMsg::Verbose, message);
if (!continueDump) return;
unsigned int npar = func->GetNpar();
......@@ -2072,7 +2129,7 @@ std::vector<float> ZDCPulseAnalyzer::Calculate2ndDerivative(const std::vector <f
//
float ZDCPulseAnalyzer::obtainDelayedBaselineCorr(const std::vector<float>& samples)
{
const unsigned int nsamples = samples.size();
unsigned int nsamples = samples.size();
std::vector<float> derivVec = CalculateDerivative(samples, 2);
std::vector<float> deriv2ndVec = Calculate2ndDerivative(samples, 2);
......@@ -2108,10 +2165,6 @@ float ZDCPulseAnalyzer::obtainDelayedBaselineCorr(const std::vector<float>& samp
// Because of the way the above analysis is done, we can always
// Go back one even and one odd sample and forward one odd sample.
//
//if minIndex is < 2 or >samples.size() the result is undefined; prevent this:
if (minIndex<2 or (minIndex+1) >=nsamples){
throw std::out_of_range("minIndex out of range in ZDCPulseAnalyzer::obtainDelayedBaselineCorr");
}
float sample0 = samples[minIndex - 2];
float sample1 = samples[minIndex - 1];
float sample2 = samples[minIndex];
......
......@@ -51,6 +51,9 @@ ZdcAnalysisTool::ZdcAnalysisTool(const std::string& name)
declareProperty("ForceCalibRun", m_forceCalibRun = -1); // last run of Pb+Pb 2015
declareProperty("ForceCalibLB", m_forceCalibLB = 814); // last LB of Pb+Pb 2015
declareProperty("DoFADCCorr", m_doFADCCorr = false);
declareProperty("DoFADCCorrPerSample", m_doFADCCorrPerSample = false);
// The following parameters are primarily used for the "default" configuration, but also may be
// use to modify/tailor other configurations
//
......@@ -2439,6 +2442,91 @@ void ZdcAnalysisTool::setTimeCalibrations(unsigned int runNumber)
}
}
void ZdcAnalysisTool::setFADCCorrections(unsigned int runNumber)
{
std::string filename;
if (m_LHCRun==3) {
std::string runString;
if (runNumber == 0) runString = "ZdcFADCCorr_" + m_configuration + "_default.root";
else runString = ("ZdcFADCCorr_Run"+TString::Itoa(runNumber,10)+".root").Data();
filename = PathResolverFindCalibFile("ZdcAnalysis/" + runString );
}
else {
ATH_MSG_WARNING("setFADCCorrections: FADC corrections not implemented for Run 2");
return;
}
ATH_MSG_INFO("Opening FADC corrections file " << filename);
std::unique_ptr<TFile> fFADCCorr(TFile::Open(filename.c_str(), "READ"));
if (!fFADCCorr->IsOpen()) {
ATH_MSG_INFO ("setFADCCorrections: failed to open file: " << filename);
throw std::runtime_error ("ZdcAnalysisTool failed to open FADCCorrections file " + filename);
}
// Attempt to read histograms with corrections from file
//
bool readSuccess = true;
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2> histogramsHG;
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2> histogramsLG;
for (size_t side : {0, 1}) {
for (int module : {0, 1, 2, 3}) {
std::string histNameHG = "ZDC_FADCCorr_s" + std::to_string(side) + "_m_HG" + std::to_string(module);
std::string histNameLG = "ZDC_FADCCorr_s" + std::to_string(side) + "_m_LG" + std::to_string(module);
ATH_MSG_DEBUG("setFADCCorrections: Searching for histograms HG and LG: " << histNameHG << ", " << histNameLG);
TH1* histHG_ptr = static_cast<TH1*>(fFADCCorr->GetObjectChecked(histNameHG.c_str(), "TH1"));
TH1* histLG_ptr = static_cast<TH1*>(fFADCCorr->GetObjectChecked(histNameLG.c_str(), "TH1"));
if (!histHG_ptr || !histLG_ptr) {
std::string errMsg = "setFADCCorrections: unable to read FADC correction histogram(s) ";
if (!histHG_ptr) errMsg += histNameHG + " ";
if (!histLG_ptr) errMsg += histNameLG;
ATH_MSG_ERROR(errMsg);
readSuccess = false;
break;
}
else {
//
// Check for valid range
//
if (std::abs(histHG_ptr->GetXaxis()->GetXmin()) > 1e-3 || std::abs(histHG_ptr->GetXaxis()->GetXmax() - 4096) > 1e-3) {
ATH_MSG_ERROR("setFADCCorrections: invalid axis range for HG FADC corrections in histogram with name " << histNameHG);
readSuccess = false;
break;
}
if (std::abs(histLG_ptr->GetXaxis()->GetXmin()) > 1e-3 || std::abs(histLG_ptr->GetXaxis()->GetXmax() - 4096) > 1e-3) {
ATH_MSG_ERROR("setFADCCorrections: invalid axis range for HG FADC corrections in histogram with name " << histNameLG);
readSuccess = false;
break;
}
histogramsHG[side][module].reset(histHG_ptr);
histogramsLG[side][module].reset(histLG_ptr);
}
}
}
fFADCCorr->Close();
if (readSuccess) {
m_zdcDataAnalyzer->enableFADCCorrections(m_doFADCCorrPerSample, histogramsHG, histogramsLG);
}
else {
ATH_MSG_ERROR("setFADCCorrections: due to at least one error, FADC corrections are not implemented");
m_doFADCCorr = false;
}
return;
}
StatusCode ZdcAnalysisTool::reprocessZdc()
{
if (!m_init)
......
......@@ -179,6 +179,12 @@ public:
const std::array<std::array<std::vector<double>, 4>, 2>& parsHGArr,
const std::array<std::array<std::vector<double>, 4>, 2>& parsLGArr);
void enableFADCCorrections(bool correctPerSample,
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistHG,
std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistLG);
void disableFADCCorrections();
void LoadEnergyCalibrations(std::array<std::array<std::unique_ptr<TSpline>, 4>, 2>& calibSplines)
{
(*m_msgFunc_p)(ZDCMsg::Verbose, "Loading energy calibrations");
......
/*
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
*/
#ifndef ZDCANALYSIS_ZDCPulseAnalyzer_h
......@@ -9,6 +9,7 @@
#include "ZdcAnalysis/ZDCMsg.h"
#include "TGraphErrors.h"
#include "TFitter.h"
#include "TList.h"
#include "TF1.h"
#include "TH1.h"
......@@ -162,6 +163,12 @@ private:
unsigned int m_postExclLGADCThresh{0};
unsigned int m_maxSamplesPostExcl{0};
// Enable of a user-provided filter on the FADC samples
//
bool m_haveUserFilter{false};
void (*m_userFilterHG)(std::vector<float>& FADCSamples, std::vector<bool> useSamples){};
void (*m_userFilterLG)(std::vector<float>& FADCSamples, std::vector<bool> useSamples){};
//
unsigned int m_timingCorrMode{NoTimingCorr};
float m_timingCorrRefADC{500};
......@@ -175,6 +182,11 @@ private:
std::vector<float> m_nonLinCorrParamsHG;
std::vector<float> m_nonLinCorrParamsLG;
bool m_haveFADCCorrections{false};
bool m_FADCCorrPerSample{false};
std::unique_ptr<const TH1> m_FADCCorrHG{};
std::unique_ptr<const TH1> m_FADCCorrLG{};
// Histogram used to perform the fits and function wrappers
//
mutable std::unique_ptr<TH1> m_fitHist;
......@@ -357,6 +369,8 @@ private:
);
double getAmplitudeCorrection(bool highGain);
static std::vector<float> Calculate2ndDerivative(const std::vector <float>& inputData, unsigned int step);
static std::vector<float> CalculateDerivative(const std::vector <float>& inputData, unsigned int step);
static float obtainDelayedBaselineCorr(const std::vector<float>& samples);
......@@ -518,6 +532,12 @@ public:
m_haveNonlinCorr = true;
}
// Provide a historam that provides per-ADC channel correction factors for integral and differential
// non-linearities
//
void enableFADCCorrections(bool correctPerSample, std::unique_ptr<const TH1>& correHistHG, std::unique_ptr<const TH1>& correHistLG);
void disableFADCCorrections() {m_haveFADCCorrections = false;}
bool LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG, const std::vector<float>& ADCSamplesLG);
bool LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG, const std::vector<float>& ADCSamplesLG,
......
......@@ -50,7 +50,8 @@ public:
void setEnergyCalibrations(unsigned int runNumber);
void setTimeCalibrations(unsigned int runNumber);
void setFADCCorrections(unsigned int runNumber = 0);
float getModuleSum(int side);
float getCalibModuleSum(int side);
......@@ -65,7 +66,6 @@ public:
double getTriggerEfficiency(int side);
double getTriggerEfficiencyUncertainty(int side);
bool m_doTimeCalib;
const ZDCDataAnalyzer* getDataAnalyzer() {return m_zdcDataAnalyzer.get();}
......@@ -151,9 +151,12 @@ private:
const xAOD::ZdcModuleContainer* m_zdcSums {nullptr};
bool m_flipEMDelay;
unsigned int m_lowGainMode;
bool m_combineDelay;
bool m_doCalib;
bool m_doTrigEff;
bool m_combineDelay{false};
bool m_doCalib{false};
bool m_doTrigEff{false};
bool m_doTimeCalib{false};
bool m_doFADCCorr{false};
bool m_doFADCCorrPerSample{false};
int m_forceCalibRun;
int m_forceCalibLB;
std::string m_calibVersion;
......