Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
11 import sys
12 
13 from AthenaConfiguration.AllConfigFlags import initConfigFlags
14 flags = initConfigFlags()
15 
16 # Add custom options
17 parser = flags.getArgumentParser()
18 parser.add_argument('--LRT', default=False, help='Turn on LRT flag')
19 parser.add_argument('--doTIDATier0', default=False, help='Turn on Tier-0 Analysis')
20 parser.add_argument('--doNewTIDATier0', default=False, help='Turn on Tier-0 Analysis')
21 parser.add_argument('--parentpdgid', type=int, default=0, help='Set parentpdgid in TIDA')
22 parser.add_argument('--pdgid', type=int, default=0, help='Set pdgid in TIDA')
23 parser.add_argument('--ptmin', type=float, default=1000, help='Set min pT for tracks in TIDA')
24 
25 
26 args, _ = parser.parse_known_args()
27 args = flags.fillFromArgs(parser=parser)
28 
29 
30 if not (hasattr(args, "filesInput") and args.filesInput):
31  flags.Input.Files = ["AOD.pool.root"]
32 
33 flags.lock()
34 
35 from AthenaConfiguration.ComponentFactory import CompFactory
36 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
37 acc = MainServicesCfg(flags)
38 acc.EvtMax = -1 # Set to -1 for all events
39 
40 
41 # Setup to read xAOD
42 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
43 acc.merge(PoolReadCfg(flags))
44 
45 # Setup Trigger Decision Tool
46 from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
47 tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
48 
49 
50 
51 
52 
53 if 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 
66 if ( 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
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 
268 print ("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
273 acc.getService("MessageSvc").infoLimit = 100000000
274 
275 # Return a status code
276 sys.exit(not acc.run().isSuccess())
277 
278 
python.Helpers.release_metadata
def release_metadata()
Definition: Tools/PyUtils/python/Helpers.py:143
python.TIDAMonitoring.TrigInDetMonConfig
def TrigInDetMonConfig(flags, monlevels=None)
Definition: TIDAMonitoring.py:542
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:260
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69