ATLAS Offline Software
TrigBjetMonitorAlgorithm.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 '''@file TrigBjetMonitorAlgorithm.py
6 @author E. Nagy
7 @author T. Bold
8 @date 2020-05-27
9 @brief Example trigger python configuration for the Run III AthenaMonitoring package, based on the example by C Burton and P Onyisi
10 '''
11 
12 def TrigBjetMonConfig(inputFlags):
13  '''Function to configures some algorithms in the monitoring system.'''
14 
15  from AthenaCommon.Logging import logging
16  log = logging.getLogger( 'TrigBjetMonitorAlgorithm.py' )
17 
18 
24 
25  # The following class will make a sequence, configure algorithms, and link
26  # them to GenericMonitoringTools
27  from AthenaMonitoring import AthMonitorCfgHelper
28  helper = AthMonitorCfgHelper(inputFlags,'TrigBjetAthMonitorCfg')
29 
30 
31 
38 
39  from AthenaConfiguration.ComponentFactory import CompFactory
40  trigBjetMonAlg = helper.addAlgorithm(CompFactory.TrigBjetMonitorAlgorithm,'TrigBjetMonAlg')
41 
42  # You can actually make multiple instances of the same algorithm and give
43  # them different configurations
44  #shifterTrigBjetMonAlg = helper.addAlgorithm(TrigBjetMonitorAlgorithm,'ShifterTrigBjetMonAlg')
45 
46  # # If for some really obscure reason you need to instantiate an algorithm
47  # # yourself, the AddAlgorithm method will still configure the base
48  # # properties and add the algorithm to the monitoring sequence.
49  # helper.AddAlgorithm(myExistingAlg)
50 
51 
52 
59  trigBjetMonAlg.TriggerChain = ''
60 
61 
63 
64  bjet_triglist = []
65  # Trigger list from monitoring groups
66  from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
67  moniAccess=getHLTMonitoringAccess(inputFlags)
68  BjetChainsE=moniAccess.monitoredChains(signatures="bJetMon",monLevels=["t0"])
69  log.info (" ==> bjet_chainlist t0: %s", BjetChainsE)
70  for chain in BjetChainsE:
71  chain = "E_"+chain
72  bjet_triglist.append(chain)
73  BjetChainsS=moniAccess.monitoredChains(signatures="bJetMon",monLevels=["shifter"])
74  log.info (" ==> bjet_chainlist shifter: %s", BjetChainsS)
75  for chain in BjetChainsS:
76  chain = "S_"+chain
77  bjet_triglist.append(chain)
78  log.info (" ==> bjet_triglist: %s", bjet_triglist)
79 
80  # Check if BeamType is 'collisions'
81  # P.Onyisi's suggestion
82  from AthenaConfiguration.Enums import BeamType
83  CollisionRun = (inputFlags.Beam.Type == BeamType.Collisions)
84  if CollisionRun:
85  log.info (" ==> BeamType is collision: %s", inputFlags.Beam.Type)
86  else:
87  log.info (" ==> BeamType is not collision: %s", inputFlags.Beam.Type)
88  trigBjetMonAlg.CollisionRun = CollisionRun
89 
90 
91  # Set Express Stream Flag
92  ExpressStreamFlag = inputFlags.Common.doExpressProcessing
93  trigBjetMonAlg.ExpressStreamFlag = ExpressStreamFlag
94 
95  # Add some tools. N.B. Do not use your own trigger decion tool. Use the
96  # standard one that is included with AthMonitorAlgorithm.
97 
98  # # Add a tool that doesn't have its own configuration function. In
99  # # this example, no accumulator is returned, so no merge is necessary.
100  # from MyDomainPackage.MyDomainPackageConf import MyDomainTool
101  # trigBjetMonAlg.MyDomainTool = MyDomainTool()
102 
103  # Add a generic monitoring tool (a "group" in old language). The returned
104  # object here is the standard GenericMonitoringTool.
105  BjetMonGroup = helper.addGroup(trigBjetMonAlg,'TrigBjetMonitor','HLT/BjetMon/')
106 
107  # Add a GMT for the other example monitor algorithm
108  #shifterGroup = helper.addGroup(shifterTrigBjetMonAlg,'TrigBjetMonitor','HLT/BjetMon/Shifter/')
109 
110 
111 
114 
115 
116  # Offline PV histograms - common for all trigger chains
117 
118  BjetMonGroup.defineHistogram('Off_NVtx', title='Number of Offline Vertices;NVtx;Events',
119  path='Shifter/Offline',xbins=100,xmin=0.0,xmax=100.)
120  BjetMonGroup.defineHistogram('Off_xVtx', title='Offline xVtx;xVtx;Events',
121  path='Shifter/Offline',xbins=200,xmin=-1.5,xmax=+1.5)
122  BjetMonGroup.defineHistogram('Off_yVtx', title='Offline yVtx;yVtx;Events',
123  path='Shifter/Offline',xbins=200,xmin=-1.5,xmax=+1.5)
124  BjetMonGroup.defineHistogram('Off_zVtx', title='Offline zVtx;zVtx;Events',
125  path='Shifter/Offline',xbins=500,xmin=-250.0,xmax=+250.0)
126 
127  # Histograms which depend on the trigger chain
128 
129  # mu-jet histograms
130 
131  AllChains = []
132  for chain in bjet_triglist :
133  AllChains.append(chain[2:])
134 
135  if "a10sd_cssk" in chain: # GN2Xv01 chains
136 
137  HistName = 'LargeR_nJet_' + chain[2:]
138  if chain[0:1] == "E" :
139  BjetMonGroup.defineHistogram(HistName, title='Number of LargeR jets;nJet;Events',
140  path='Expert/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
141 
142  if chain[0:1] == "S" :
143  BjetMonGroup.defineHistogram(HistName, title='Number of LargeR jets;nJet;Events',
144  path='Shifter/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
145 
146  HistName = 'GN2Xv01_phbb_tr_' + chain[2:]
147  if chain[0:1] == "E" :
148  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_phbb probability;GN2Xv01_phbb;Events',
149  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
150  if chain[0:1] == "S" :
151  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_phbb probability;GN2Xv01_phbb;Events',
152  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
153 
154  HistName = 'GN2Xv01_ptop_tr_' + chain[2:]
155  if chain[0:1] == "E" :
156  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_ptop probability;GN2Xv01_ptop;Events',
157  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
158  if chain[0:1] == "S" :
159  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_ptop probability;GN2Xv01_ptop;Events',
160  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
161 
162  HistName = 'GN2Xv01_pqcd_tr_' + chain[2:]
163  if chain[0:1] == "E" :
164  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_pqcd probability;GN2Xv01_pqcd;Events',
165  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
166  if chain[0:1] == "S" :
167  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_pqcd probability;GN2Xv01_pqcd;Events',
168  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
169 
170  HistName = 'GN2Xv01_mv_tr_' + chain[2:]
171  if chain[0:1] == "E" :
172  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_mv LLR;GN2Xv01_mv;Events',
173  path='Expert/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
174  if chain[0:1] == "S" :
175  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2Xv01_mv LLR;GN2Xv01_mv;Events',
176  path='Shifter/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
177 
178  HistName = 'GN2XTrig_phbb_tr_' + chain[2:]
179  if chain[0:1] == "E" :
180  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_phbb probability;GN2XTrig_phbb;Events',
181  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
182  if chain[0:1] == "S" :
183  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_phbb probability;GN2XTrig_phbb;Events',
184  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
185 
186  HistName = 'GN2XTrig_ptop_tr_' + chain[2:]
187  if chain[0:1] == "E" :
188  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_ptop probability;GN2XTrig_ptop;Events',
189  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
190  if chain[0:1] == "S" :
191  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_ptop probability;GN2XTrig_ptop;Events',
192  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
193 
194  HistName = 'GN2XTrig_pqcd_tr_' + chain[2:]
195  if chain[0:1] == "E" :
196  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_pqcd probability;GN2XTrig_pqcd;Events',
197  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
198  if chain[0:1] == "S" :
199  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_pqcd probability;GN2XTrig_pqcd;Events',
200  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
201 
202  HistName = 'GN2XTrig_mv_tr_' + chain[2:]
203  if chain[0:1] == "E" :
204  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_mv LLR;GN2XTrig_mv;Events',
205  path='Expert/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
206  if chain[0:1] == "S" :
207  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2XTrig_mv LLR;GN2XTrig_mv;Events',
208  path='Shifter/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
209 
210  HistName = 'LargeR_jetPt_' + chain[2:]
211  if chain[0:1] == "E" :
212  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Pt;Pt_jet;Events',
213  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
214 
215  if chain[0:1] == "S" :
216  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Pt;Pt_jet;Events',
217  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
218 
219  HistName = 'LargeR_jetMass_' + chain[2:]
220  if chain[0:1] == "E" :
221  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Mass;Mass;Events',
222  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
223 
224  if chain[0:1] == "S" :
225  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Mass;Mass;Events',
226  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
227 
228  HistName = 'LargeR_jetEta_' + chain[2:]
229  if chain[0:1] == "E" :
230  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Eta;Eta_jet;Events',
231  path='Expert/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
232 
233  if chain[0:1] == "S" :
234  BjetMonGroup.defineHistogram(HistName, title='Distribution of LargeR jet Eta;Eta_jet;Events',
235  path='Shifter/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
236 
237  HistName = 'LargeR_jetEta_' + chain[2:] + ',LargeR_jetPhi_' + chain[2:]
238  if chain[0:1] == "E" :
239  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='LargeR jet Phi vs LargeR jet Eta;Eta_jet;Phi_jet',
240  path='Expert/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
241 
242  if chain[0:1] == "S" :
243  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='LargeR jet Phi vs LargeR jet Eta;Eta_jet;Phi_jet',
244  path='Shifter/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
245 
246 
247  elif chain[2:8] == 'HLT_mu' : # mu-jets
248 
249  HistName = 'nMuon_' + chain[2:]
250  if chain[0:1] == "E" :
251  BjetMonGroup.defineHistogram(HistName, title='Distribution of N_muon;N_muon;Events',
252  path='Expert/'+chain[2:],xbins=10,xmin=0.,xmax=10.)
253 
254  if chain[0:1] == "S" :
255  BjetMonGroup.defineHistogram(HistName, title='Distribution of N_muon;N_muon;Events',
256  path='Shifter/'+chain[2:],xbins=10,xmin=0.,xmax=10.)
257 
258  HistName = 'muonPt_' + chain[2:]
259  if chain[0:1] == "E" :
260  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon;Pt_muon;Events',
261  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
262 
263  if chain[0:1] == "S" :
264  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon;Pt_muon;Events',
265  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
266 
267  HistName = 'muonEta_' + chain[2:]
268  if chain[0:1] == "E" :
269  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_muon;Eta_muon;Events',
270  path='Expert/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
271 
272  if chain[0:1] == "S" :
273  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_muon;Eta_muon;Events',
274  path='Shifter/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
275 
276  HistName = 'nJet_' + chain[2:]
277  if chain[0:1] == "E" :
278  BjetMonGroup.defineHistogram(HistName, title='Number of jets;nJet;Events',
279  path='Expert/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
280 
281  if chain[0:1] == "S" :
282  BjetMonGroup.defineHistogram(HistName, title='Number of jets;nJet;Events',
283  path='Shifter/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
284 
285  HistName = 'jetPt_' + chain[2:]
286  if chain[0:1] == "E" :
287  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_jet;Pt_jet;Events',
288  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
289 
290  if chain[0:1] == "S" :
291  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_jet;Pt_jet;Events',
292  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
293 
294  HistName = 'jetEta_' + chain[2:]
295  if chain[0:1] == "E" :
296  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_jet;Eta_jet;Events',
297  path='Expert/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
298 
299  if chain[0:1] == "S" :
300  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_jet;Eta_jet;Events',
301  path='Shifter/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
302 
303  HistName = 'RatioPt_' + chain[2:]
304  if chain[0:1] == "E" :
305  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon/Pt_jet;Pt_muon/Pt_jet;Events',
306  path='Expert/'+chain[2:],xbins=100,xmin=0.,xmax=2.0)
307 
308  if chain[0:1] == "S" :
309  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon/Pt_jet;Pt_muon/Pt_jet;Events',
310  path='Shifter/'+chain[2:],xbins=100,xmin=0.,xmax=2.0)
311 
312  HistName = 'RelPt_' + chain[2:]
313  if chain[0:1] == "E" :
314  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon wrt jet direction;RelPt_muon;Events',
315  path='Expert/'+chain[2:],xbins=100,xmin=0.,xmax=20.0)
316 
317  if chain[0:1] == "S" :
318  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_muon wrt jet direction;RelPt_muon;Events',
319  path='Shifter/'+chain[2:],xbins=100,xmin=0.,xmax=20.0)
320 
321 
322  HistName = 'wGN1_' + chain[2:] + ',RelPt_' + chain[2:]
323  if chain[0:1] == "E" :
324  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='RelPt vs GN1 weight;GN1 weight;RelPt',
325  path='Expert/'+chain[2:],xbins=20,xmin=-20.0,xmax=+20.0,ybins=20,ymin=0.,ymax=20.)
326 
327  if chain[0:1] == "S" :
328  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='RelPt vs GN1 weight;GN1 weight;RelPt',
329  path='Shifter/'+chain[2:],xbins=20,xmin=-20.0,xmax=+20.0,ybins=20,ymin=0.,ymax=20.)
330 
331  HistName = 'wGN2_' + chain[2:] + ',RelPt_' + chain[2:]
332  if chain[0:1] == "E" :
333  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='RelPt vs GN2 weight;GN2 weight;RelPt',
334  path='Expert/'+chain[2:],xbins=20,xmin=-20.0,xmax=+20.0,ybins=20,ymin=0.,ymax=20.)
335 
336  if chain[0:1] == "S" :
337  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='RelPt vs GN2 weight;GN2 weight;RelPt',
338  path='Shifter/'+chain[2:],xbins=20,xmin=-20.0,xmax=+20.0,ybins=20,ymin=0.,ymax=20.)
339 
340 
341  HistName = 'DeltaR_' + chain[2:]
342  if chain[0:1] == "E" :
343  BjetMonGroup.defineHistogram(HistName, title='Distribution of DeltaR(muon,jet);Delta R;Events',
344  path='Expert/'+chain[2:],xbins=100,xmin=0.,xmax=6.0)
345 
346  if chain[0:1] == "S" :
347  BjetMonGroup.defineHistogram(HistName, title='Distribution of DeltaR(muon,jet);Delta R;Events',
348  path='Shifter/'+chain[2:],xbins=100,xmin=0.,xmax=6.0)
349 
350  HistName = 'DeltaZ_' + chain[2:]
351  if chain[0:1] == "E" :
352  BjetMonGroup.defineHistogram(HistName, title='Distribution of DeltaZ(muon,jet);Delta Z;Events',
353  path='Expert/'+chain[2:],xbins=100,xmin=0.,xmax=10.0)
354 
355  if chain[0:1] == "S" :
356  BjetMonGroup.defineHistogram(HistName, title='Distribution of DeltaZ(muon,jet);Delta Z;Events',
357  path='Shifter/'+chain[2:],xbins=100,xmin=0.,xmax=10.0)
358 
359 
360 
361  continue
362  else : # b-jets
363 
364  # b-jet histograms
365 
366  # Primary vertex histograms
367 
368  # PV associated to jets
369 
370  HistName = 'PVz_jet_' + chain[2:]
371  if chain[0:1] == "E" :
372  BjetMonGroup.defineHistogram(HistName, title='Distribution of online zPV from jets;zPV from jets;Events',
373  path='Expert/'+chain[2:],xbins=500,xmin=-250.0,xmax=250.0)
374 
375  if chain[0:1] == "S" :
376  BjetMonGroup.defineHistogram(HistName, title='Distribution of online zPV from jets;zPV from jets;Events',
377  path='Shifter/'+chain[2:],xbins=500,xmin=-250.0,xmax=250.0)
378 
379  HistName = 'PVx_jet_' + chain[2:]
380  if chain[0:1] == "E" :
381  BjetMonGroup.defineHistogram(HistName, title='Distribution of online xPV from jets;xPV from jets;Events',
382  path='Expert/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
383 
384  if chain[0:1] == "S" :
385  BjetMonGroup.defineHistogram(HistName, title='Distribution of online xPV from jets;xPV from jets;Events',
386  path='Shifter/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
387 
388  HistName = 'PVy_jet_' + chain[2:]
389  if chain[0:1] == "E" :
390  BjetMonGroup.defineHistogram(HistName, title='Distribution of online yPV from jets;yPV from jets;Events',
391  path='Expert/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
392 
393  if chain[0:1] == "S" :
394  BjetMonGroup.defineHistogram(HistName, title='Distribution of online yPV from jets;yPV from jets;Events',
395  path='Shifter/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
396 
397  # PV directly from SG
398 
399  HistName = 'nPV_tr_' + chain[2:]
400  if chain[0:1] == "E" :
401  BjetMonGroup.defineHistogram(HistName, title='Number of online PV per event;nPV;Events',
402  path='Expert/'+chain[2:],xbins=101,xmin=-1.0,xmax=100.0)
403 
404  if chain[0:1] == "S" :
405  BjetMonGroup.defineHistogram(HistName, title='Number of online PV per event;nPV;Events',
406  path='Shifter/'+chain[2:],xbins=101,xmin=-1.0,xmax=100.0)
407 
408  HistName = 'PVz_tr_' + chain[2:]
409  if chain[0:1] == "E" :
410  BjetMonGroup.defineHistogram(HistName, title='Distribution of online zPV;zPV;Events',
411  path='Expert/'+chain[2:],xbins=500,xmin=-250.0,xmax=250.0)
412 
413  if chain[0:1] == "S" :
414  BjetMonGroup.defineHistogram(HistName, title='Distribution of online zPV;zPV;Events',
415  path='Shifter/'+chain[2:],xbins=500,xmin=-250.0,xmax=250.0)
416 
417  HistName = 'PVx_tr_' + chain[2:]
418  if chain[0:1] == "E" :
419  BjetMonGroup.defineHistogram(HistName, title='Distribution of online xPV;xPV;Events',
420  path='Expert/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
421 
422  if chain[0:1] == "S" :
423  BjetMonGroup.defineHistogram(HistName, title='Distribution of online xPV;xPV;Events',
424  path='Shifter/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
425 
426  HistName = 'PVy_tr_' + chain[2:]
427  if chain[0:1] == "E" :
428  BjetMonGroup.defineHistogram(HistName, title='Distribution of online yPV;yPV;Events',
429  path='Expert/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
430 
431  if chain[0:1] == "S" :
432  BjetMonGroup.defineHistogram(HistName, title='Distribution of online yPV;yPV;Events',
433  path='Shifter/'+chain[2:],xbins=200,xmin=-1.5,xmax=+1.5)
434 
435 
436 
437  # Difference of the online and offline PV coordinates
438 
439  HistName = 'DiffOnOffPVz_tr_' + chain[2:]
440  if chain[0:1] == "E" :
441  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline zPV;zPVonline-zPVoffline;Events',
442  path='Expert/'+chain[2:],xbins=400,xmin=-2.0,xmax=2.0)
443 
444  if chain[0:1] == "S" :
445  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline zPV;zPVonline-zPVoffline;Events',
446  path='Shifter/'+chain[2:],xbins=400,xmin=-2.0,xmax=2.0)
447 
448  HistName = 'DiffOnOffPVx_tr_' + chain[2:]
449  if chain[0:1] == "E" :
450  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline xPV;xPVonline-xPVoffline;Events',
451  path='Expert/'+chain[2:],xbins=200,xmin=-0.1,xmax=0.1)
452 
453  if chain[0:1] == "S" :
454  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline xPV;xPVonline-xPVoffline;Events',
455  path='Shifter/'+chain[2:],xbins=200,xmin=-0.1,xmax=0.1)
456 
457  HistName = 'DiffOnOffPVy_tr_' + chain[2:]
458  if chain[0:1] == "E" :
459  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline yPV;yPVonline-yPVoffline;Events',
460  path='Expert/'+chain[2:],xbins=200,xmin=-0.1,xmax=0.1)
461 
462  if chain[0:1] == "S" :
463  BjetMonGroup.defineHistogram(HistName, title='Difference of online and offline yPV;yPVonline-yPVoffline;Events',
464  path='Shifter/'+chain[2:],xbins=200,xmin=-0.1,xmax=0.1)
465 
466 
467 
468  # track histograms
469 
470  HistName = 'nTrack_' + chain[2:]
471  if chain[0:1] == "E" :
472  BjetMonGroup.defineHistogram(HistName, title='Number of tracks;nTrack;Events',
473  path='Expert/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
474 
475  if chain[0:1] == "S" :
476  BjetMonGroup.defineHistogram(HistName, title='Number of tracks;nTrack;Events',
477  path='Shifter/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
478 
479  HistName = 'trkPt_' + chain[2:]
480  if chain[0:1] == "E" :
481  BjetMonGroup.defineHistogram(HistName, title='Pt of tracks;Pt;Events',
482  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=50.0)
483 
484  if chain[0:1] == "S" :
485  BjetMonGroup.defineHistogram(HistName, title='Pt of tracks;Pt;Events',
486  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=50.0)
487 
488  HistName = 'trkEta_' + chain[2:] + ',trkPhi_' + chain[2:]
489  if chain[0:1] == "E" :
490  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='Phi vs Eta of tracks;Eta;Phi',
491  path='Expert/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
492 
493  if chain[0:1] == "S" :
494  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='Phi vs Eta of tracks;Eta;Phi',
495  path='Shifter/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
496 
497  HistName = 'd0_' + chain[2:]
498  if chain[0:1] == "E" :
499  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0;d0;Events',
500  path='Expert/'+chain[2:],xbins=200,xmin=-2.0,xmax=2.0)
501 
502  if chain[0:1] == "S" :
503  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0;d0;Events',
504  path='Shifter/'+chain[2:],xbins=200,xmin=-2.0,xmax=2.0)
505 
506  HistName = 'ed0_' + chain[2:]
507  if chain[0:1] == "E" :
508  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0 uncertainty;sigma(d0);Events',
509  path='Expert/'+chain[2:],xbins=200,xmin=0.,xmax=1.0)
510 
511  if chain[0:1] == "S" :
512  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0 uncertainty;sigma(d0);Events',
513  path='Shifter/'+chain[2:],xbins=200,xmin=0.,xmax=1.0)
514 
515  HistName = 'sd0_' + chain[2:]
516  if chain[0:1] == "E" :
517  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0 significance;significance(d0);Events',
518  path='Expert/'+chain[2:],xbins=200,xmin=0.,xmax=20.0)
519 
520  if chain[0:1] == "S" :
521  BjetMonGroup.defineHistogram(HistName, title='Distribution of d0 significance;significance(d0);Events',
522  path='Shifter/'+chain[2:],xbins=200,xmin=0.,xmax=20.0)
523 
524  HistName = 'z0_' + chain[2:]
525  if chain[0:1] == "E" :
526  BjetMonGroup.defineHistogram(HistName, title='Distribution of z0;z0;Events',
527  path='Expert/'+chain[2:],xbins=200,xmin=-250.0,xmax=250.0)
528 
529  if chain[0:1] == "S" :
530  BjetMonGroup.defineHistogram(HistName, title='Distribution of z0;z0;Events',
531  path='Shifter/'+chain[2:],xbins=200,xmin=-250.0,xmax=250.0)
532 
533  HistName = 'ez0_' + chain[2:]
534  if chain[0:1] == "E" :
535  BjetMonGroup.defineHistogram(HistName, title='Distribution of z0 uncertainty;sigma(z0);Events',
536  path='Expert/'+chain[2:],xbins=200,xmin=0.,xmax=5.0)
537 
538  if chain[0:1] == "S" :
539  BjetMonGroup.defineHistogram(HistName, title='Distribution of z0 uncertainty;sigma(z0);Events',
540  path='Shifter/'+chain[2:],xbins=200,xmin=0.,xmax=5.0)
541 
542  # jet histograms
543 
544  HistName = 'nJet_' + chain[2:]
545  if chain[0:1] == "E" :
546  BjetMonGroup.defineHistogram(HistName, title='Number of jets;nJet;Events',
547  path='Expert/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
548 
549  if chain[0:1] == "S" :
550  BjetMonGroup.defineHistogram(HistName, title='Number of jets;nJet;Events',
551  path='Shifter/'+chain[2:],xbins=40,xmin=0.0,xmax=40.0)
552  HistName = 'jetPt_' + chain[2:]
553  if chain[0:1] == "E" :
554  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_jet;Pt_jet;Events',
555  path='Expert/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
556 
557  if chain[0:1] == "S" :
558  BjetMonGroup.defineHistogram(HistName, title='Distribution of Pt_jet;Pt_jet;Events',
559  path='Shifter/'+chain[2:],xbins=100,xmin=0.0,xmax=750.0)
560 
561  HistName = 'jetEta_' + chain[2:]
562  if chain[0:1] == "E" :
563  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_jet;Eta_jet;Events',
564  path='Expert/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
565 
566  if chain[0:1] == "S" :
567  BjetMonGroup.defineHistogram(HistName, title='Distribution of Eta_jet;Eta_jet;Events',
568  path='Shifter/'+chain[2:],xbins=100,xmin=-7.5,xmax=7.5)
569 
570  HistName = 'jetEta_' + chain[2:] + ',jetPhi_' + chain[2:]
571  if chain[0:1] == "E" :
572  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='Phi vs Eta of jets;Eta_jet;Phi_jet',
573  path='Expert/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
574 
575  if chain[0:1] == "S" :
576  BjetMonGroup.defineHistogram(HistName,type='TH2F',title='Phi vs Eta of jets;Eta_jet;Phi_jet',
577  path='Shifter/'+chain[2:],xbins=20,xmin=-5.0,xmax=+5.0,ybins=20,ymin=-3.1416,ymax=+3.1416)
578 
579  # b-tagging quantities
580 
581 
582  HistName = 'GN1_pu_tr_' + chain[2:]
583  if chain[0:1] == "E" :
584  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pu probability;GN1_pu;Events',
585  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
586  if chain[0:1] == "S" :
587  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pu probability;GN1_pu;Events',
588  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
589 
590  HistName = 'GN1_pc_tr_' + chain[2:]
591  if chain[0:1] == "E" :
592  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pc probability;GN1_pc;Events',
593  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
594  if chain[0:1] == "S" :
595  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pc probability;GN1_pc;Events',
596  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
597 
598  HistName = 'GN1_pb_tr_' + chain[2:]
599  if chain[0:1] == "E" :
600  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pb probability;GN1_pb;Events',
601  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
602  if chain[0:1] == "S" :
603  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_pb probability;GN1_pb;Events',
604  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
605 
606  HistName = 'GN1_mv_tr_' + chain[2:]
607  if chain[0:1] == "E" :
608  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_mv LLR;GN1_mv;Events',
609  path='Expert/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
610  if chain[0:1] == "S" :
611  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN1_mv LLR;GN1_mv;Events',
612  path='Shifter/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
613 
614 
615  HistName = 'GN2_pu_tr_' + chain[2:]
616  if chain[0:1] == "E" :
617  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pu probability;GN2_pu;Events',
618  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
619  if chain[0:1] == "S" :
620  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pu probability;GN2_pu;Events',
621  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
622 
623  HistName = 'GN2_pc_tr_' + chain[2:]
624  if chain[0:1] == "E" :
625  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pc probability;GN2_pc;Events',
626  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
627  if chain[0:1] == "S" :
628  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pc probability;GN2_pc;Events',
629  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
630 
631  HistName = 'GN2_pb_tr_' + chain[2:]
632  if chain[0:1] == "E" :
633  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pb probability;GN2_pb;Events',
634  path='Expert/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
635  if chain[0:1] == "S" :
636  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_pb probability;GN2_pb;Events',
637  path='Shifter/'+chain[2:],xbins=200,xmin=0.0,xmax=1.0)
638 
639  HistName = 'GN2_mv_tr_' + chain[2:]
640  if chain[0:1] == "E" :
641  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_mv LLR;GN2_mv;Events',
642  path='Expert/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
643  if chain[0:1] == "S" :
644  BjetMonGroup.defineHistogram(HistName, title='Distribution of GN2_mv LLR;GN2_mv;Events',
645  path='Shifter/'+chain[2:],xbins=200,xmin=-50.,xmax=50.)
646 
647 
648 
649  continue
650 
651 
652  log.info (" ==> In TrigBjetMonitorAlgorithm.py: AllChains list: %s", AllChains)
653  trigBjetMonAlg.AllChains = AllChains
654 
655 
656 
661  return helper.result()
662 
663  # # Otherwise, merge with result object and return
664  # acc = helper.result()
665  # result.merge(acc)
666  # return result
667 
668 if __name__=='__main__':
669  # Setup logs
670  from AthenaCommon.Logging import log
671  from AthenaCommon.Constants import DEBUG
672  log.setLevel(DEBUG)
673 
674  # Set the Athena configuration flags
675  from AthenaConfiguration.AllConfigFlags import initConfigFlags
676  flags = initConfigFlags()
677 
678  # Input files
679  # AOD file to be run w/ MT access and Mon Groups implemented
680  file = '/eos/user/e/enagy/ARTfiles/MCtest271022.AOD.pool.root'
681 
682  flags.Input.Files = [file]
683  flags.Input.isMC = True
684 
685  # Output file (root)
686 
687  flags.Output.HISTFileName = 'TrigBjetMonitorOutput.root'
688 
689  # flags.Trigger.triggerMenuSetup="Physics_pp_v7_primaries"
690 
691  flags.lock()
692 
693  # Initialize configuration object, add accumulator, merge, and run.
694  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
695  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
696  cfg = MainServicesCfg(flags)
697  cfg.merge(PoolReadCfg(flags))
698 
699  trigBjetMonitorAcc = TrigBjetMonConfig(flags)
700  cfg.merge(trigBjetMonitorAcc)
701 
702  # If you want to turn on more detailed messages ...
703  #trigBjetMonitorAcc.getEventAlgo('TrigBjetMonAlg').OutputLevel = 2 # DEBUG
704  cfg.printConfig(withDetails=True) # set True for exhaustive info
705 
706  Nevents = 200
707  cfg.run(Nevents)
708  #cfg.run() #for all events. Use cfg.run(20) to only run on first 20 events
709 
710 
python.TriggerConfigAccess.getHLTMonitoringAccess
HLTMonitoringAccess getHLTMonitoringAccess(flags=None)
Definition: TriggerConfigAccess.py:256
python.TrigBjetMonitorAlgorithm.TrigBjetMonConfig
def TrigBjetMonConfig(inputFlags)
Definition: TrigBjetMonitorAlgorithm.py:12
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
Constants
some useful constants -------------------------------------------------—
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71