ATLAS Offline Software
Loading...
Searching...
No Matches
TrigInDetValidation_AODtoTrkNtuple_CA.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3
4# Run over AOD or TRIG8 to produce the TIDA track ntuple
5# Note, to run using the python file in your current directory you need to drop 'TrigInDetValidation.'
6# Local example:
7# python -m TrigInDetValidation.TrigInDetValidation_AODtoTrkNtuple_CA --filesInput AOD.root
8# Grid example:
9# prun --exec="python -m TrigInDetValidation.TrigInDetValidation_AODtoTrkNtuple_CA --LRT=True --filesInput=%IN" --inDS=DATASETNAME --outDS=OUTPUTNAME --useAthenaPackage --outputs="TrkNtuple-0000.root"
10
11import sys
12
13from AthenaConfiguration.AllConfigFlags import initConfigFlags
14flags = initConfigFlags()
15
16# Add custom options
17parser = flags.getArgumentParser()
18parser.add_argument('--LRT', default=False, help='Turn on LRT flag')
19parser.add_argument('--doTIDATier0', default=False, help='Turn on Tier-0 Analysis')
20parser.add_argument('--doNewTIDATier0', default=False, help='Turn on Tier-0 Analysis')
21parser.add_argument('--parentpdgid', type=int, default=0, help='Set parentpdgid in TIDA')
22parser.add_argument('--pdgid', type=int, default=0, help='Set pdgid in TIDA')
23parser.add_argument('--ptmin', type=float, default=1000, help='Set min pT for tracks in TIDA')
24
25
26args, _ = parser.parse_known_args()
27args = flags.fillFromArgs(parser=parser)
28
29
30if not (hasattr(args, "filesInput") and args.filesInput):
31 flags.Input.Files = ["AOD.pool.root"]
32
33flags.lock()
34
35from AthenaConfiguration.ComponentFactory import CompFactory
36from AthenaConfiguration.MainServicesConfig import MainServicesCfg
37acc = MainServicesCfg(flags)
38acc.EvtMax = -1 # Set to -1 for all events
39
40
41# Setup to read xAOD
42from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
43acc.merge(PoolReadCfg(flags))
44
45# Setup Trigger Decision Tool
46from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
47tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
48
49
50
51
52
53if args.doTIDATier0 or args.doNewTIDATier0:
54
55 histsvc=CompFactory.THistSvc()
56 histsvc.Output = ["CombinedMonitoring DATAFILE='data-hists-tier0.root' OPT='RECREATE'"]
57 acc.addService(histsvc)
58
59 # this is the new location ...
60 from TrigInDetMonitoring.TIDAMonitoring import TrigInDetMonConfig
61 acc.merge( TrigInDetMonConfig( flags ) )
62
63
64
65
66if ( True ) :
67 TestMonTool = CompFactory.TrigR3Mon('TrigR3Mon')
68 TestMonTool.buildNtuple = True
69 TestMonTool.AnalysisConfig = "nTuple" #Change to Tier0 for T0 Analysis
70 TestMonTool.EnableLumi = False
71# TestMonTool.RequireDecision = False
72 TestMonTool.mcTruth = True
73 TestMonTool.pTCutOffline = args.ptmin
74 TestMonTool.ntupleChainNames = []
75 TestMonTool.SelectTruthPdgId=args.pdgid
76 TestMonTool.SelectParentTruthPdgId=args.parentpdgid
77
78 if args.LRT:
79 TestMonTool.FiducialRadius = 500.
80
81 TestMonTool.ntupleChainNames += [
82 ":InDetLargeD0TrackParticles",
83 "Muons::LRT",
84 "Muons",
85 "Electrons::LRT"
86 ]
87
88
89 TestMonTool.KeepAllEvents = False
90 # TestMonTool.TrigConfigTool = "TrigConf::xAODConfigTool"
91 TestMonTool.ntupleChainNames += [
92 "Offline",
93 "Truth",
94 "Vertex",
95 "Vertex:BTagging_AntiKt4EMPFlowSecVtx",
96
97 "Electrons",
98
99 "Electrons:MediumCB",
100 "Electrons:TightCB",
101 "Electrons:MediumLH",
102 "Electrons:TightLH",
103
104 # "Muons",
105 "Muons:Tight",
106 "Muons:Medium",
107
108
109 # "Taus",
110
111 "Taus:Medium:1Prong",
112 "Taus:Tight:1Prong",
113
114 # ":HLT_IDTrack_FS_FTF",
115 # ":HLT_IDTrack_FS_FTF:roi=HLT_FSRoI:vtx=HLT_IDVertex_FS",
116
117
118 "HLT_j.*:key=HLT_IDTrack_FS_FTF:roi=HLT_FSRoI:vtx=HLT_IDVertex_FS",
119
120 "HLT_.*_presel.*:key=HLT_IDTrack_JetSuper_FTF:roi=HLT_Roi_JetSuper",
121 "HLT_.*_presel.*:key=HLT_IDTrack_JetSuper_FTF:roi=HLT_Roi_JetSuper:vtx=HLT_IDVertex_JetSuper",
122
123
124 # the FSLRT runs at global scope
125 "HLT_fslrt.*:key=HLT_IDTrack_FS_FTF:roi=HLT_FSRoI",
126 "HLT_fslrt.*:key=HLT_IDTrack_FSLRT_FTF:roi=HLT_FSRoI",
127 "HLT_fslrt.*:key=HLT_IDTrack_FSLRT_IDTrig:roi=HLT_FSRoI",
128
129 "HLT_mu.*_idperf.*:HLT_IDTrack_Muon_FTF",
130 "HLT_mu.*_idperf.*:HLT_IDTrack_Muon_FTF:roi=HLT_Roi_L2SAMuon",
131 "HLT_mu.*_idperf.*:HLT_IDTrack_Muon_IDTrig",
132 "HLT_mu.*_idperf.*:HLT_IDTrack_Muon_IDTrig:roi=HLT_Roi_L2SAMuon",
133 "HLT_mu.*iv.*:HLT_IDTrack_MuonIso_FTF:roi=HLT_Roi_MuonIso",
134 "HLT_mu.*iv.*:HLT_IDTrack_MuonIso_IDTrig:roi=HLT_Roi_MuonIso",
135
136 "HLT_mu.*_LRT_idperf_.*:HLT_IDTrack_MuonLRT_FTF:HLT_Roi_L2SAMuon_LRT",
137 "HLT_mu.*_LRT_idperf_.*:HLT_IDTrack_MuonLRT_IDTrig:HLT_Roi_L2SAMuon_LRT",
138
139 "HLT_b.*perf.*:HLT_IDTrack_Bjet_FTF:HLT_Roi_Bjet",
140 "HLT_b.*perf.*:HLT_IDTrack_Bjet_IDTrig:HLT_Roi_Bjet",
141 "HLT_j.*perf.*:HLT_IDTrack_Bjet_FTF:HLT_Roi_Bjet",
142 "HLT_j.*perf.*:HLT_IDTrack_Bjet_IDTrig:HLT_Roi_Bjet",
143
144
145# "HLT_e.*_etcut.*:HLT_IDTrack_Electron_FTF",
146# "HLT_e.*_etcut.*:HLT_IDTrack_Electron_IDTrig",
147 "HLT_e.*_idperf.*:HLT_IDTrack_Electron_FTF:roi=HLT_Roi_FastElectron",
148 "HLT_e.*_idperf.*:HLT_IDTrack_Electron_IDTrig",
149 "HLT_e.*_idperf.*:HLT_IDTrack_Electron_GSF",
150
151
152 # LRT electron idperf
153 "HLT_e.*idperf.*lrt.*:HLT_IDTrack_ElecLRT_FTF:HLT_Roi_FastElectron_LRT",
154 "HLT_e.*idperf.*lrt.*:HLT_IDTrack_ElecLRT_IDTrig:HLT_Roi_FastElectron_LRT",
155 "HLT_e.*idperf.*lrt.*:HLT_IDTrack_Electron_LRTGSF:HLT_Roi_FastElectron_LRT",
156
157 # electron lrt e tag
158 "HLT_e.*_e.*_lrt.*:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=1",
159 "HLT_e.*_e.*_lrt.*:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=1",
160
161 # electron lrt photon tag
162 "HLT_e.*_idperf_.*_lrt.*g.*:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=0",
163 "HLT_e.*_idperf_.*_lrt.*g.*:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=0",
164
165 # double electron chains for tag and probe analysis
166 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_FTF:extra=el_tag:roi=HLT_Roi_FastElectron:te=0",
167 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_FTF:extra=el_probe:roi=HLT_Roi_FastElectron:te=1",
168
169 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_FTF:roi=HLT_Roi_FastElectron:te=0",
170 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_FTF:roi=HLT_Roi_FastElectron:te=1",
171
172 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
173 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
174
175 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_IDTrig:te=0",
176 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_IDTrig:te=1",
177
178 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
179 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
180
181 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_GSF:te=0",
182 "HLT_e.*_e.*_idperf.*_tight.*:key=HLT_IDTrack_Electron_GSF:te=1",
183
184
185 # "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
186 # "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
187 # "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_IDTrig:te=1",
188
189 # "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
190 # "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
191 # "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M:key=HLT_IDTrack_Electron_GSF:te=1",
192
193 "HLT_mu14_mu14_idtp_idZmumu_.*:key=HLT_IDTrack_Muon_FTF:roi=HLT_Roi_L2SAMuon:extra=mu_probe:te=1",
194 "HLT_mu14_mu14_idtp_idZmumu_.*:key=HLT_IDTrack_Muon_FTF:roi=HLT_Roi_L2SAMuon:extra=mu_tag:te=0",
195 "HLT_mu14_mu14_idtp_idZmumu_.*:key=HLT_IDTrack_Muon_FTF::roi=HLT_Roi_L2SAMuon:te=1",
196
197 # "HLT_mu14_mu14_idtp_idZmumu_L12MU8F:key=HLT_IDTrack_Muon_IDTrig:roi=HLT_Roi_L2SAMuon:extra=mu_probe:te=1",
198 # "HLT_mu14_mu14_idtp_idZmumu_L12MU8F:key=HLT_IDTrack_Muon_IDTrig:roi=HLT_Roi_L2SAMuon:extra=mu_tag:te=0",
199 # "HLT_mu14_mu14_idtp_idZmumu_L12MU8F:key=HLT_IDTrack_Muon_IDTrig:roi=HLT_Roi_L2SAMuon:te=1",
200
201 # two stage tau FTF
202 "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_TauCore_FTF:roi=HLT_Roi_TauCore",
203 "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_TauIso_FTF:roi=HLT_Roi_TauIso",
204 "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_TauIso_FTF:roi=HLT_Roi_TauIsoBDT",
205
206 # two stage tau precision tracking - empty ???
207 "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_Tau_IDTrig:roi=HLT_Roi_TauIso",
208 "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_Tau_IDTrig:roi=HLT_Roi_TauIso:vtx=HLT_IDVertex_Tau",
209
210
211 # should get single stage tau
212 # "HLT_tau.*_idperf.*_track_.*:HLT_IDTrack_Tau_FTF:roi=HLT_Roi_Tau",
213 # "HLT_tau.*_idperf.*_track_.*:HLT_IDTrack_Tau_IDTrig:roi=HLT_Roi_Tau",
214
215 # LRT tau
216 "HLT_tau.*trackLRT.*:HLT_IDTrack_TauLRT_FTF:roi=HLT_Roi_TauLRT",
217 "HLT_tau.*trackLRT.*:HLT_IDTrack_TauLRT_IDTrig:roi=HLT_Roi_TauLRT",
218
219 # none of these will work
220 "HLT_tau.*_idperf.*:HLT_IDTrack_Tau_IDTrig",
221
222
223 # only need one instance for the tag of the tag and probe, because we
224 # don't actually use the trigger collections at all, only the Roi and
225 # offline objects in the roi
226 # "HLT_mu.*tau.*_idperf.*:HLT_IDTrack_Muon_FTF:HLT_Roi_L2SAMuon:te=0",
227 "HLT_mu.*_tau.*_idperf.*:HLT_IDTrack_Muon_IDTrig:HLT_Roi_L2SAMuon:te=0",
228
229 "HLT_mu.*_tau.*_idperf.*:HLT_IDTrack_TauCore_FTF:roi=HLT_Roi_TauCore:te=1",
230 "HLT_mu.*_tau.*_idperf.*:HLT_IDTrack_TauIso_FTF:roi=HLT_Roi_TauIso:te=1",
231 "HLT_mu.*_tau.*_idperf.*:HLT_IDTrack_Tau_IDTrig:roi=HLT_Roi_TauIso:te=1",
232
233 # should work for single stage tau ???
234 # "HLT_tau.*_idperf.*:HLT_IDTrack_Tau_FTF",
235
236 # should work for a two stage tau ??
237 # "HLT_tau.*_idperf.*:HLT_IDTrack_TauIso_FTF",
238
239 "HLT_mu4.*_cosmic.*:HLT_IDTrack_Cosmic_FTF",
240 "HLT_mu4.*_cosmic.*:HLT_IDTrack_Cosmic_IDTrig",
241 "HLT_mu4.*_cosmic.*:HLT_IDTrack_Cosmic_EFID",
242
243 #"HLT_mb.*:HLT_IDTrack_Cosmic_EFID",
244 #"HLT_mb.*:HLT_IDTrack_MinBias_FTF", #There are no tracks here
245 "HLT_mb.*:HLT_IDTrack_MinBias_IDTrig",
246 "HLT_mb.*:HLT_IDTrack_MinBiasPixel_IDTrig",
247 #"HLT_mb.*:HLT_IDTrack_MinBias_EFID" #There are no tracks here
248
249 "HLT_2mu4_bBmumux_BsmumuPhi_.*:HLT_IDTrack_Bmumux_FTF",
250 "HLT_2mu4_bBmumux_BsmumuPhi_.*:HLT_IDTrack_Bmumux_IDTrig",
251 "HLT_mu11_mu6_bBmumux_Bidperf_.*:HLT_IDTrack_Bmumux_FTF",
252 "HLT_mu11_mu6_bBmumux_Bidperf_.*:HLT_IDTrack_Bmumux_IDTrig",
253
254 #displaced jet lrt
255 "HLT_j180_.*dispjet.*_L1J100:key=HLT_IDTrack_DJLRT_FTF:roi=HLT_Roi_DJ",
256 "HLT_j180_.*dispjet.*_L1jJ160:key=HLT_IDTrack_DJLRT_FTF:roi=HLT_Roi_DJ"
257
258 ]
259
260 from PyUtils.Helpers import release_metadata
261 d = release_metadata()
262 TestMonTool.releaseMetaData = d['nightly name'] + " " + d['nightly release'] + " " + d['date'] + " " + d['platform'] + " " + d['release']
263 TestMonTool.outputFileName="TrkNtuple.root"
264 acc.addEventAlgo(TestMonTool)
265 print (TestMonTool)
266
267
268print ("configured everything")
269
270# include("AthAnalysisBaseComps/SuppressLogging.py") #Optional include to suppress as much athena output as possible. Keep at bottom of joboptions so that it doesn't suppress the logging of the things you have configured above
271
272# Adjust message limits
273acc.getService("MessageSvc").infoLimit = 100000000
274
275# Return a status code
276sys.exit(not acc.run().isSuccess())
277
278