ATLAS Offline Software
Loading...
Searching...
No Matches
L2OverlapRemoverMonConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2
3import ROOT
4
5def L2OverlapRemoverMonConfig(helper, isPhaseII=False, **kwargs):
6
7 from AthenaConfiguration.ComponentFactory import CompFactory
8
9 GroupName = 'OR'
10
11 from MuonSelectorTools.MuonSelectorToolsConfig import MuonLoosenedNonCalibratedSelectionToolCfg
12 from .MuonMatchingToolConfig import MuonMatchingToolConfig
13
14 # Set the offline muon container
15 kwargs.setdefault("MuonContainerName", "Muons")
16
17 monAlg = helper.addAlgorithm(CompFactory.L2OverlapRemoverMon,'L2OverlapRemoverMon',
18 MuonSelectionTool = helper.result().popToolsAndMerge(MuonLoosenedNonCalibratedSelectionToolCfg(helper.flags,
19 MuQuality=1)),
20 MuonMatchingTool = helper.result().popToolsAndMerge(MuonMatchingToolConfig(helper.flags,
21 isPhaseII=isPhaseII,
22 MuonContainerName=kwargs["MuonContainerName"])),
23 **kwargs)
24
25
26 from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
27 moniAccess = getHLTMonitoringAccess(helper.flags)
28 Chains = moniAccess.monitoredChains(signatures="muonMon",monLevels=["shifter","t0","val"])
29 monAlg.MonitoredChains = [c for c in Chains if ('2mu14' in c) or ('2mu4' in c) or ('3mu' in c)]
30
31 # if mon groups not found fall back to hard-coded trigger monitoring list
32 if len(monAlg.MonitoredChains) == 0:
33 # HLT_mu6_L1MU6 is test chain for small statistics, so it will be removed.
34 monAlg.MonitoredChains = ['HLT_2mu14_L12MU8F','HLT_2mu4_L12MU3V']
35
36 monAlg.Group = GroupName
37
38
39 # configration for specific chain
40 for chain in monAlg.MonitoredChains:
41
42 histGroup = helper.addGroup(monAlg, GroupName+'_'+chain, 'HLT/MuonMon/L2OverlapRemover/'+chain)
43 defineOverlapRemoverHistograms(histGroup, GroupName, chain, 'L2SA')
44 defineOverlapRemoverHistograms(histGroup, GroupName, chain, 'L2CB')
45
46 return
47
48
49def defineOverlapRemoverHistograms(histGroup, GroupName, chain, trigstep):
50
51 histGroup.defineHistogram(trigstep+'_'+chain+'_NInMuon;'+trigstep+GroupName+'_NInMuon',
52 title=trigstep+' OverlapRemover number of input muons '+chain+';number of input muons;Events',
53 type='TH1I', path='',xbins=10,xmin=0,xmax=10)
54
55 histGroup.defineHistogram(trigstep+'_'+chain+'_NOutMuon;'+trigstep+GroupName+'_NOutMuon',
56 title=trigstep+' OverlapRemover number of output muons '+chain+';number of output muons;Events',
57 type='TH1I', path='',xbins=10,xmin=0,xmax=10)
58
59 histGroup.defineHistogram(trigstep+'_'+chain+'_NRemovedMuon;'+trigstep+GroupName+'_NRemovedMuon',
60 title=trigstep+' OverlapRemover number of removed muons '+chain+';number of removed muons;Events',
61 type='TH1I', path='',xbins=10,xmin=0,xmax=10)
62
63 histGroup.defineHistogram(trigstep+'_'+chain+'_dR;'+trigstep+GroupName+'_dR',
64 title=trigstep+' OverlapRemover dR '+chain+';dR;Events',
65 type='TH1F', path='',xbins=105,xmin=0.,xmax=3.5)
66
67 histGroup.defineHistogram(trigstep+'_'+chain+'_invMass;'+trigstep+GroupName+'_invMass',
68 title=trigstep+' OverlapRemover invariant mass '+chain+';invariant mass [GeV];Events',
69 type='TH1F', path='',xbins=200,xmin=0.,xmax=100.)
70
71 histGroup.defineHistogram(trigstep+'_'+chain+'_invMass,'+trigstep+'_'+chain+'_dR;'+trigstep+GroupName+'_invMass_vs_dR',
72 title=trigstep+' OverlapRemover invariant mass vs dR '+chain+';invariant mass [GeV];dR',
73 type='TH2F', path='',xbins=200,xmin=0.,xmax=100.,ybins=105,ymin=0.,ymax=3.5)
74
75 histGroup.defineHistogram(trigstep+'_'+chain+'_dRLog10;'+trigstep+GroupName+'_dRLog10',
76 title=trigstep+' OverlapRemover dR (Log10) '+chain+';dR (Log10);Events',
77 type='TH1F', path='',xbins=100,xmin=-4.,xmax=1.)
78
79 histGroup.defineHistogram(trigstep+'_'+chain+'_invMassLog10;'+trigstep+GroupName+'_invMassLog10',
80 title=trigstep+' OverlapRemover invariant mass (Log10) '+chain+';invariant mass (Log10) [GeV];Events',
81 type='TH1F', path='',xbins=140,xmin=-4.,xmax=3.)
82
83 histGroup.defineHistogram(trigstep+'_'+chain+'_RemovedEta,'+trigstep+'_'+chain+'_RemovedPhi;'+trigstep+GroupName+'_RemovedEta_vs_RemovedPhi',
84 title=trigstep+' OverlapRemover Eta vs Phi of removed muons '+chain+';Eta;Phi',
85 type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7,ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
86
87 histGroup.defineHistogram(trigstep+'_'+chain+'_RemovedPt;'+trigstep+GroupName+'_RemovedPt',
88 title=trigstep+' OverlapRemover Pt of removed muons '+chain+';p_{T} [GeV];Events',
89 type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
90
91 histGroup.defineHistogram(trigstep+'_'+chain+'_OverlapInsonsistent;'+trigstep+GroupName+'_OverlapInsonsistent',
92 title=trigstep+' Overlap Insonsistent '+chain+';;Events',
93 type='TH1I', path='',xbins=2,xmin=0,xmax=2)
defineOverlapRemoverHistograms(histGroup, GroupName, chain, trigstep)