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