ATLAS Offline Software
Loading...
Searching...
No Matches
HIEventSelectionRun3Config.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator, ConfigurationError
4from AthenaConfiguration.ComponentFactory import CompFactory
5import AthenaCommon.SystemOfUnits as Units
6from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_HILoose_Cfg
7
9 acc = ComponentAccumulator()
10
11 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
12 monTool = GenericMonitoringTool(flags, "MonTool")
13 monTool.defineHistogram( 'fcalEt,zdcE;fcalEt_vs_zdcE_all', path='EXPERT', type='TH2F', title=';FCal Et;ZDC E',
14 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=60)
15
16 monTool.defineHistogram( 'fcalEt,zdcE;fcalEt_vs_zdcE_passed', cutmask='PUFCalVsZDCAny_passed', path='EXPERT', type='TH2F', title=';FCal Et;ZDC E',
17 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=60)
18
19 monTool.defineHistogram( 'fcalEt,zdcE;fcalEt_vs_zdcE_failed', cutmask='PUFCalVsZDCAny_failed', path='EXPERT', type='TH2F', title=';FCal Et;ZDC E',
20 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=60)
21
22 monTool.defineHistogram( 'fcalEt,nTrk;fcalEt_vs_nTrk_all', path='EXPERT', type='TH2F', title=';FCal Et;nTrk',
23 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=600)
24
25 monTool.defineHistogram( 'fcalEt,nTrk;fcalEt_vs_nTrk_passed', cutmask='PUFCalVsNTrackAny_passed', path='EXPERT', type='TH2F', title=';FCal Et;nTrk',
26 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=600)
27
28 monTool.defineHistogram( 'fcalEt,nTrk;fcalEt_vs_nTrk_failed', cutmask='PUFCalVsNTrackAny_failed', path='EXPERT', type='TH2F', title=';FCal Et;nTrk',
29 xbins=160, xmin=0, xmax=1000, ybins=120, ymin=0, ymax=600)
30
31
32
33 monTool.defineHistogram( 'zdcPreSampleA;zdcPreSampleA_all', path='EXPERT', type='TH1F', title='all;ZDCPreampleAmp side A',
34 xbins=100, xmin=-400, xmax=1000)
35
36 monTool.defineHistogram( 'zdcPreSampleC;zdcPreSampleC_all', path='EXPERT', type='TH1F', title='all;ZDCPreampleAmp side C',
37 xbins=100, xmin=-400, xmax=1000)
38
39
40 monTool.defineHistogram( 'zdcPreSampleA,zdcPreSampleC', path='EXPERT', type='TH2F', title='correlation;ZDCPreampleAmp side A;ZDCPreampleAmp side C',
41 xbins=50, xmin=-400, xmax=1000, ybins=50, ymin=-400, ymax=1000)
42
43 monTool.defineHistogram( 'zdcPreSampleA;zdcPreSampleA_failed', cutmask="NoPUZDCPresampler_failed", path='EXPERT', type='TH1F', title='failed;ZDCPreampleAmp side A',
44 xbins=100, xmin=-400, xmax=1000)
45
46 monTool.defineHistogram( 'zdcPreSampleC;zdcPreSampleC_failed', cutmask="NoPUZDCPresampler_failed", path='EXPERT', type='TH1F', title='failed;ZDCPreampleAmp side C',
47 xbins=100, xmin=-400, xmax=1000)
48
49
50 prefix=flags.Input.Files[0].split("/")[-1]
51 histsvc = CompFactory.THistSvc(Output=[f"EXPERT DATAFILE='{prefix}HIEventSelectionRun3Validation.root' OPT='RECREATE'"])
52 acc.addService(histsvc)
53 acc.setPrivateTools(monTool)
54 return acc
55
56
57
58def HIEventSelectionRun3Cfg(flags, enableValidation=False):
59 acc = ComponentAccumulator()
60 # in future decide cut level for tracks depending on input dataset
61 # for now default to HILoose cuts set with 0.5 GeV
62 trackSelectionTool = acc.popToolsAndMerge(InDetTrackSelectionTool_HILoose_Cfg(flags,
63 minPt=0.5*Units.GeV))
64 filterTool = CompFactory.HI.HIEventSelectionToolRun3(TrackSelectionTool=trackSelectionTool)
65
66 # ZDC modules collection change its name
67 zdcKey=None
68 zdcNeeded=True # in the future add check if ZDC info is required in fact
69 if zdcNeeded and "ZdcModules" in flags.Input.Collections:
70 zdcKey="ZdcModules"
71 elif zdcNeeded and "ZDCModules" in flags.Input.Collections:
72 zdcKey="ZDCModules"
73 elif zdcNeeded and "ZdcSums" in flags.Input.Collections:
74 zdcKey="ZdcSums"
75
76 if zdcNeeded and not zdcKey:
77 raise ConfigurationError("The input file does not have any ZDCModules (any capitalisation) container and ZDC info is needed for selection")
78
79 monTool = acc.popToolsAndMerge(HIEventSelectionRun3MonToolCfg(flags)) if enableValidation else None
80
81 filterAlg = CompFactory.HI.HIEventFilterAlgRun3(name="HIEventFilterAlgRun3",
82 SelectionTool=filterTool,
83 ZDC=zdcKey,
84 MonTool=monTool )
85 acc.addEventAlgo(filterAlg)
86 return acc
87
88if __name__ == '__main__':
89 from AthenaConfiguration.AllConfigFlags import initConfigFlags
90
91 data_hi="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/data_hi/"
92 test_files = {"23PbPb":"data23_hi.00463364.physics_HardProbes.AOD.r16069_p6447_skim",
93 "24PbPb":"data24_hi.00490145.physics_HardProbes.AOD.f1550_m2267_skim",
94 "25OO": "data25_hi.00501859.physics_MinBias.AOD.f1606_m2272_skim",
95 "25NeNe": "data25_hi.00502008.physics_MinBias.AOD.f1606_m2272_skim",
96 "25pO": "data25_hip.00501607.physics_MinBias.AOD.f1604_m2272_skim" }
97
98 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
99
100 flags = initConfigFlags()
101 flags.addFlag("HIPeriodToTest", "23")
102 flags.Exec.MaxEvents=10
103 flags.Exec.MaxEvents=-1
104 flags.Input.Files=lambda fl: [data_hi+test_files[fl.HIPeriodToTest]]
105 flags.fillFromArgs()
106 flags.lock()
107
108 acc=MainServicesCfg(flags)
109 # if need to read POOL file
110 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
111 acc.merge(PoolReadCfg(flags))
112 from AthenaCommon.Constants import DEBUG
113
114 acc.merge(HIEventSelectionRun3Cfg(flags, enableValidation=True))
115 acc.foreach_component("**/AthAlgSeq/*Run3*").OutputLevel=DEBUG
116
117 filterAlg = acc.getEventAlgo("HIEventFilterAlgRun3")
118 # test if we can set custom selection (required python access to enums defined in C++)
119 # import ROOT
120 # filterAlg.SelectionMask=ROOT.HI.SelectionMask.NoEventError & ROOT.HI.SelectionMask.PUFCalVsZDCAny
121 filterAlg.UseIonDataTypeDefaultMask=True
122 acc.printConfig(withDetails=True)
123 # either
124 status = acc.run()
125 if status.isFailure():
126 import sys
127 sys.exit(-1)
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:179
HIEventSelectionRun3Cfg(flags, enableValidation=False)