ATLAS Offline Software
EFMuonMonConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 import ROOT
4 
5 def EFMuonMonConfig(helper):
6 
7  from AthenaConfiguration.ComponentFactory import CompFactory
8 
9  GroupName = 'EFMuon'
10 
11  from MuonSelectorTools.MuonSelectorToolsConfig import MuonSelectionToolCfg
12  from .MuonMatchingToolConfig import MuonMatchingToolConfig
13  monAlg = helper.addAlgorithm(CompFactory.EFMuonMon,'EFMuonMon',
14  MuonSelectionTool = helper.result().popToolsAndMerge(MuonSelectionToolCfg(helper.flags, MuQuality=1)),
15  MuonMatchingTool = helper.result().popToolsAndMerge(MuonMatchingToolConfig(helper.flags)))
16 
17 
18  from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
19  moniAccess = getHLTMonitoringAccess(helper.flags)
20  monAlg.MonitoredChains = moniAccess.monitoredChains(signatures="muonMon",monLevels=["shifter","t0","val"])
21 
22  # if mon groups not found fall back to hard-coded trigger monitoring list
23  if len(monAlg.MonitoredChains) == 0:
24  # HLT_mu6_L1MU6 is test chain for small statistics, so it will be removed.
25  monAlg.MonitoredChains = ['HLT_mu6_L1MU5VF', 'HLT_mu24_ivarmedium_L1MU14FCH', 'HLT_mu50_L1MU14FCH', 'HLT_mu60_0eta105_msonly_L1MU14FCH', 'HLT_2mu14_L12MU8F', 'HLT_mu22_mu8noL1_L1MU14FCH']
26 
27  monAlg.Group = GroupName
28 
29  # configuration of etaphi2D and Ratio plots for non-specific chain
30  histGroupNonSpecificChain = helper.addGroup(monAlg, GroupName, 'HLT/MuonMon/')
31 
32  histGroupNonSpecificChain.defineHistogram('EFSAEta,EFSAPhi;EFSA_Eta_vs_Phi',
33  title='EFSA Eta vs Phi ;#eta;#phi',
34  type='TH2F', path='etaphi2D',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
35 
36  histGroupNonSpecificChain.defineHistogram('EFCBEta,EFCBPhi;EFCB_Eta_vs_Phi',
37  title='EFCB Eta vs Phi ;#eta;#phi',
38  type='TH2F', path='etaphi2D',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
39 
40  histGroupNonSpecificChain.defineHistogram('EFSAAboveCut,LB;EFSA_Over_OfflineSA_4GeV_Cut',
41  title='EFSA Over OfflineSA 4GeV Cut;LB;Ratio',
42  type='TEfficiency', path='Ratio',xbins=400,xmin=1.,xmax=801.)
43 
44  histGroupNonSpecificChain.defineHistogram('EFCBAboveCut,LB;EFCB_Over_OfflineCB_4GeV_Cut',
45  title='EFCB Over OfflineCB 4GeV Cut;LB;Ratio',
46  type='TEfficiency', path='Ratio',xbins=400,xmin=1.,xmax=801.)
47 
48 
49  # configration for specific chain
50  for chain in monAlg.MonitoredChains:
51 
52  histGroup = helper.addGroup(monAlg, GroupName+'_'+chain, 'HLT/MuonMon/EFMuon/'+chain)
53 
54  # basic EDM variables
55  # EFSA
56  histGroup.defineHistogram(chain+'_EFSA_Pt;EFSA_Pt',
57  title='EFSA Pt '+chain+';p_{T} [GeV];Events',
58  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
59 
60  histGroup.defineHistogram(chain+'_EFSA_Eta;EFSA_Eta',
61  title='EFSA Eta '+chain+';#eta;Events',
62  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
63 
64  histGroup.defineHistogram(chain+'_EFSA_Phi;EFSA_Phi',
65  title='EFSA Phi '+chain+';#phi;Events',
66  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
67 
68  histGroup.defineHistogram(chain+'_EFSA_Eta,'+chain+'_EFSA_Phi;EFSA_Eta_vs_Phi',
69  title='EFSA Eta vs Phi '+chain+';#eta;#phi',
70  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
71 
72 
73  # EFCB
74  histGroup.defineHistogram(chain+'_EFCB_Pt;EFCB_Pt',
75  title='EFCB Pt '+chain+';p_{T} [GeV];Events',
76  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
77 
78  histGroup.defineHistogram(chain+'_EFCB_Eta;EFCB_Eta',
79  title='EFCB Eta '+chain+';#eta;Events',
80  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
81 
82  histGroup.defineHistogram(chain+'_EFCB_Phi;EFCB_Phi',
83  title='EFCB Phi '+chain+';#phi;Events',
84  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
85 
86  histGroup.defineHistogram(chain+'_EFCB_Eta,'+chain+'_EFCB_Phi;EFCB_Eta_vs_Phi',
87  title='EFCB Eta vs Phi '+chain+';#eta;#phi',
88  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
89 
90  # EFIso
91  histGroup.defineHistogram(chain+'_PtCone03;EFIso_PtCone03',
92  title='EFIso sum Pt in 0.3 cone '+chain+';Sum p_{T} [GeV];Events',
93  type='TH1F', path='',xbins=50, xmin=0., xmax=25.)
94 
95  histGroup.defineHistogram(chain+'_PtCone03overMuonPt;EFIso_PtCone03overMuonPt',
96  title='EFIso sum Pt in 0.3 cone / muon Pt '+chain+';Sum p_{T} in 0.3 cone / muon p_{T};Events',
97  type='TH1F', path='',xbins=100,xmin=0.,xmax=0.5)
98 
99 
100  # OfflineSA
101  histGroup.defineHistogram(chain+'_OfflineSA_Pt;OfflineSA_Pt',
102  title='OfflineSA Pt '+chain+';p_{T} [GeV];Events',
103  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
104 
105  histGroup.defineHistogram(chain+'_OfflineSA_Eta;OfflineSA_Eta',
106  title='OfflineSA Eta '+chain+';#eta;Events',
107  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
108 
109  histGroup.defineHistogram(chain+'_OfflineSA_Phi;OfflineSA_Phi',
110  title='OfflineSA Phi '+chain+';#phi;Events',
111  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
112 
113  histGroup.defineHistogram(chain+'_OfflineSA_Eta,'+chain+'_OfflineSA_Phi;OfflineSA_Eta_vs_Phi',
114  title='OfflineSA Eta vs Phi '+chain+';#eta;#phi',
115  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
116 
117 
118  # OfflineCB
119  histGroup.defineHistogram(chain+'_OfflineCB_Pt;OfflineCB_Pt',
120  title='OfflineCB Pt '+chain+';p_{T} [GeV];Events',
121  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
122 
123  histGroup.defineHistogram(chain+'_OfflineCB_Eta;OfflineCB_Eta',
124  title='OfflineCB Eta '+chain+';#eta;Events',
125  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
126 
127  histGroup.defineHistogram(chain+'_OfflineCB_Phi;OfflineCB_Phi',
128  title='OfflineCB Phi '+chain+';#phi;Events',
129  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
130 
131  histGroup.defineHistogram(chain+'_OfflineCB_Eta,'+chain+'_OfflineCB_Phi;OfflineCB_Eta_vs_Phi',
132  title='OfflineCB Eta vs Phi '+chain+';#eta;#phi',
133  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
134 
135 
136 
137  # correlation histograms
138  # EFSA vs. OfflineSA muons
139  histGroup.defineHistogram(chain+'_OfflineSA_Pt,'+chain+'_MatchedEFSA_Pt;EFSA_OfflineSA_PtCor',
140  title='PtCor EFSA OfflineSA '+chain+';OfflineSA p_{T} [GeV];EFSA p_{T} [GeV]',
141  cutmask=chain+'_matchedEFSA',
142  type='TH2F', path='',xbins=210,xmin=-105.,xmax=105., ybins=210,ymin=-105.,ymax=105.)
143 
144  histGroup.defineHistogram(chain+'_OfflineSA_Phi,'+chain+'_MatchedEFSA_Phi;EFSA_OfflineSA_PhiCor',
145  title='PhiCor EFSA OfflineSA '+chain+';OfflineSA #phi;EFSA #phi',
146  cutmask=chain+'_matchedEFSA',
147  type='TH2F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi(), ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
148 
149  histGroup.defineHistogram(chain+'_OfflineSA_Eta,'+chain+'_MatchedEFSA_Eta;EFSA_OfflineSA_EtaCor',
150  title='EtaCor EFSA OfflineSA '+chain+';OfflineSA #eta;EFSA #eta',
151  cutmask=chain+'_matchedEFSA',
152  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=108,ymin=-2.7,ymax=2.7)
153 
154  histGroup.defineHistogram(chain+'_SAdPt;EFSA_OfflineSA_dPt',
155  title='dPt EFSA OfflineSA '+chain+';dPt [GeV];Events',
156  cutmask=chain+'_matchedEFSA',
157  type='TH1F', path='',xbins=100,xmin=-10.,xmax=10.)
158 
159  histGroup.defineHistogram(chain+'_SAdEta;EFSA_OfflineSA_dEta',
160  title='dEta EFSA OfflineSA '+chain+';dEta;Events',
161  cutmask=chain+'_matchedEFSA',
162  type='TH1F', path='',xbins=200,xmin=-5.,xmax=5.)
163 
164  histGroup.defineHistogram(chain+'_SAdPhi;EFSA_OfflineSA_dPhi',
165  title='dPhi EFSA OfflineSA '+chain+';dPhi;Events',
166  cutmask=chain+'_matchedEFSA',
167  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
168 
169  histGroup.defineHistogram(chain+'_SAdR;EFSA_OfflineSA_dR',
170  title='dR EFSA OfflineSA '+chain+';dR;Events',
171  cutmask=chain+'_matchedEFSA',
172  type='TH1F', path='',xbins=110,xmin=0.,xmax=11.)
173 
174  histGroup.defineHistogram(chain+'_OfflineSA_Pt;OfflineSA_Pt_AwareEFSA',
175  title='OfflineSA Pt AwareEFSA '+chain+';OfflineSA p_{T} [GeV];Events',
176  cutmask=chain+'_matchedEFSA',
177  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
178 
179  histGroup.defineHistogram(chain+'_OfflineSA_Phi;OfflineSA_Phi_AwareEFSA',
180  title='OfflineSA Phi AwareEFSA '+chain+';OfflineSA #phi;Events',
181  cutmask=chain+'_matchedEFSA',
182  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
183 
184  histGroup.defineHistogram(chain+'_OfflineSA_Eta;OfflineSA_Eta_AwareEFSA',
185  title='OfflineSA Eta AwareEFSA '+chain+';OfflineSA #eta;Events',
186  cutmask=chain+'_matchedEFSA',
187  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
188 
189 
190  # OfflineSA (matched to EFSA) vs. OfflineSA (matched to L2SA)
191  histGroup.defineHistogram(chain+'_OfflineSA_Pt,'+chain+'_OfflineSAmatchedL2SA_Pt;OfflineSA_matchedEFSA_matchedL2SA_PtCor',
192  title='PtCor OfflineSA (matched to EFSA) vs. OfflineSA (matched to L2SA) '+chain+';OfflineSA matched to EFSA p_{T} [GeV];OfflineSA matched to L2SA p_{T} [GeV]',
193  cutmask=chain+'_matchedL2SA',
194  type='TH2F', path='',xbins=210,xmin=-105.,xmax=105., ybins=210,ymin=-105.,ymax=105.)
195 
196  histGroup.defineHistogram(chain+'_OfflineSA_Phi,'+chain+'_OfflineSAmatchedL2SA_Phi;OfflineSA_matchedEFSA_matchedL2SA_PhiCor',
197  title='PhiCor OfflineSA (matched to EFSA) vs. OfflineSA (matched to L2SA) '+chain+';OfflineSA matched to EFSA #phi;OfflineSA matched to L2SA #phi',
198  cutmask=chain+'_matchedL2SA',
199  type='TH2F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi(), ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
200 
201  histGroup.defineHistogram(chain+'_OfflineSA_Eta,'+chain+'_OfflineSAmatchedL2SA_Eta;OfflineSA_matchedEFSA_matchedL2SA_EtaCor',
202  title='EtaCor OfflineSA (matched to EFSA) vs. OfflineSA (matched to L2SA) '+chain+';OfflineSA matched to EFSA #eta;OfflineSA matched to L2SA #eta',
203  cutmask=chain+'_matchedL2SA',
204  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=108,ymin=-2.7,ymax=2.7)
205 
206 
207  # EFCB vs. OfflineCB muons
208  histGroup.defineHistogram(chain+'_OfflineCB_Pt,'+chain+'_MatchedEFCB_Pt;EFCB_OfflineCB_PtCor',
209  title='PtCor EFCB OfflineCB '+chain+';OfflineCB p_{T} [GeV];EFCB p_{T} [GeV];',
210  cutmask=chain+'_matchedEFCB',
211  type='TH2F', path='',xbins=210,xmin=-105.,xmax=105., ybins=210,ymin=-105.,ymax=105.)
212 
213  histGroup.defineHistogram(chain+'_OfflineCB_Phi,'+chain+'_MatchedEFCB_Phi;EFCB_OfflineCB_PhiCor',
214  title='PhiCor EFCB OfflineCB '+chain+';OfflineCB #phi;EFCB #phi;',
215  cutmask=chain+'_matchedEFCB',
216  type='TH2F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi(), ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
217 
218  histGroup.defineHistogram(chain+'_OfflineCB_Eta,'+chain+'_MatchedEFCB_Eta;EFCB_OfflineCB_EtaCor',
219  title='EtaCor EFCB OfflineCB '+chain+';OfflineCB #eta;EFCB #eta;',
220  cutmask=chain+'_matchedEFCB',
221  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=108,ymin=-2.7,ymax=2.7)
222 
223  histGroup.defineHistogram(chain+'_CBdPt;EFCB_OfflineCB_dPt',
224  title='dPt EFCB OfflineCB '+chain+';dPt [GeV];Events',
225  cutmask=chain+'_matchedEFCB',
226  type='TH1F', path='',xbins=100,xmin=-10.,xmax=10.)
227 
228  histGroup.defineHistogram(chain+'_CBdEta;EFCB_OfflineCB_dEta',
229  title='dEta EFCB OfflineCB '+chain+';dEta;Events',
230  cutmask=chain+'_matchedEFCB',
231  type='TH1F', path='',xbins=200,xmin=-5.,xmax=5.)
232 
233  histGroup.defineHistogram(chain+'_CBdPhi;EFCB_OfflineCB_dPhi',
234  title='dPhi EFCB OfflineCB '+chain+';dPhi;Events',
235  cutmask=chain+'_matchedEFCB',
236  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
237 
238  histGroup.defineHistogram(chain+'_CBdR;EFCB_OfflineCB_dR',
239  title='dR EFCB OfflineCB '+chain+';dR;Events',
240  cutmask=chain+'_matchedEFCB',
241  type='TH1F', path='',xbins=110,xmin=0.,xmax=11.)
242 
243  histGroup.defineHistogram(chain+'_OfflineCB_Pt;OfflineCB_Pt_AwareEFCB',
244  title='OfflineCB Pt AwareEFCB '+chain+';OfflineCB p_{T} [GeV];Events',
245  cutmask=chain+'_matchedEFCB',
246  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
247 
248  histGroup.defineHistogram(chain+'_OfflineCB_Phi;OfflineCB_Phi_AwareEFCB',
249  title='OfflineCB Phi AwareEFCB '+chain+';OfflineCB #phi;Events',
250  cutmask=chain+'_matchedEFCB',
251  type='TH1F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi())
252 
253  histGroup.defineHistogram(chain+'_OfflineCB_Eta;OfflineCB_Eta_AwareEFCB',
254  title='OfflineCB Eta AwareEFCB '+chain+';OfflineCB #eta;Events',
255  cutmask=chain+'_matchedEFCB',
256  type='TH1F', path='',xbins=108,xmin=-2.7,xmax=2.7)
257 
258 
259  # OfflineCB (matched to EFCB) vs. OfflineCB (matched to L2CB)
260  histGroup.defineHistogram(chain+'_OfflineCB_Pt,'+chain+'_OfflineCBmatchedL2CB_Pt;OfflineCB_matchedEFCB_matchedL2CB_PtCor',
261  title='PtCor OfflineCB (matched to EFCB) vs. OfflineCB (matched to L2CB) '+chain+';OfflineCB matched to EFCB p_{T} [GeV];OfflineCB matched to L2CB p_{T} [GeV]',
262  cutmask=chain+'_matchedL2CB',
263  type='TH2F', path='',xbins=210,xmin=-105.,xmax=105., ybins=210,ymin=-105.,ymax=105.)
264 
265  histGroup.defineHistogram(chain+'_OfflineCB_Phi,'+chain+'_OfflineCBmatchedL2CB_Phi;OfflineCB_matchedEFCB_matchedL2CB_PhiCor',
266  title='PhiCor OfflineCB (matched to EFCB) vs. OfflineCB (matched to L2CB) '+chain+';OfflineCB matched to EFCB #phi;OfflineCB matched to L2CB #phi',
267  cutmask=chain+'_matchedL2CB',
268  type='TH2F', path='',xbins=96,xmin=-ROOT.TMath.Pi(),xmax=ROOT.TMath.Pi(), ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
269 
270  histGroup.defineHistogram(chain+'_OfflineCB_Eta,'+chain+'_OfflineCBmatchedL2CB_Eta;OfflineCB_matchedEFCB_matchedL2CB_EtaCor',
271  title='EtaCor OfflineCB (matched to EFCB) vs. OfflineCB (matched to L2CB) '+chain+';OfflineCB matched to EFCB #eta;OfflineCB matched to L2CB #eta',
272  cutmask=chain+'_matchedL2CB',
273  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7, ybins=108,ymin=-2.7,ymax=2.7)
274 
275 
276  # EFIso vs. OfflineIso muons
277  histGroup.defineHistogram(chain+'_MatchedEFPIsotCone03,'+chain+'_OfflineIsoPtCone03;EFIso_OfflineIso_CorPtCone03',
278  title='sum Pt in 0.3 cone correlation EFIso vs. OfflineIso '+chain+';EFIso Sum p_{T} [GeV];OfflineIso Sum p_{T} [GeV];Events',
279  type='TH2F', path='',xbins=50, xmin=0., xmax=25., ybins=50, ymin=0., ymax=25.)
280 
281  histGroup.defineHistogram(chain+'_MatchedEFIsoPtCone03overMuonPt,'+chain+'_OfflineIsoPtCone03overMuonPt;EFIso_OfflineIso_CorPtCone03overMuonPt',
282  title='sum Pt in 0.3 cone / muon Pt correlation EFIso vs. OfflineIso '+chain+';EFIso Sum p_{T} in 0.3 cone / muon p_{T};OfflineIso Sum p_{T} in 0.3 cone / muon p_{T};Events',
283  type='TH2F', path='',xbins=100,xmin=0.,xmax=0.5, ybins=100,ymin=0.,ymax=0.5)
284 
285 
286  return
python.TriggerConfigAccess.getHLTMonitoringAccess
HLTMonitoringAccess getHLTMonitoringAccess(flags=None)
Definition: TriggerConfigAccess.py:256
python.EFMuonMonConfig.EFMuonMonConfig
def EFMuonMonConfig(helper)
Definition: EFMuonMonConfig.py:5
python.MuonSelectorToolsConfig.MuonSelectionToolCfg
def MuonSelectionToolCfg(flags, name="MuonSelectionTool", **kwargs)
Definition: MuonSelectorToolsConfig.py:13
python.MuonMatchingToolConfig.MuonMatchingToolConfig
def MuonMatchingToolConfig(flags)
Definition: MuonMatchingToolConfig.py:3