ATLAS Offline Software
L2OverlapRemoverMonConfig.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 
6 
7  from AthenaConfiguration.ComponentFactory import CompFactory
8 
9  GroupName = 'OR'
10 
11  from MuonSelectorTools.MuonSelectorToolsConfig import MuonSelectionToolCfg
12  monAlg = helper.addAlgorithm(CompFactory.L2OverlapRemoverMon,'L2OverlapRemoverMon',
13  MuonSelectionTool = helper.result().popToolsAndMerge(MuonSelectionToolCfg(helper.flags, MuQuality=1)))
14 
15 
16  from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
17  moniAccess = getHLTMonitoringAccess(helper.flags)
18  Chains = moniAccess.monitoredChains(signatures="muonMon",monLevels=["shifter","t0","val"])
19  monAlg.MonitoredChains = [c for c in Chains if '2mu14' in c]
20 
21  # if mon groups not found fall back to hard-coded trigger monitoring list
22  if len(monAlg.MonitoredChains) == 0:
23  # HLT_mu6_L1MU6 is test chain for small statistics, so it will be removed.
24  monAlg.MonitoredChains = ['HLT_2mu14_L12MU8F']
25 
26  monAlg.Group = GroupName
27 
28 
29  # configration for specific chain
30  for chain in monAlg.MonitoredChains:
31 
32  histGroup = helper.addGroup(monAlg, GroupName+'_'+chain, 'HLT/MuonMon/L2OverlapRemover/'+chain)
33  defineOverlapRemoverHistograms(histGroup, GroupName, chain, 'L2SA')
34  defineOverlapRemoverHistograms(histGroup, GroupName, chain, 'L2CB')
35 
36  return
37 
38 
39 def defineOverlapRemoverHistograms(histGroup, GroupName, chain, trigstep):
40 
41  histGroup.defineHistogram(trigstep+'_'+chain+'_NInMuon;'+trigstep+GroupName+'_NInMuon',
42  title=trigstep+' OverlapRemover number of input muons '+chain+';number of input muons;Events',
43  type='TH1I', path='',xbins=10,xmin=0,xmax=10)
44 
45  histGroup.defineHistogram(trigstep+'_'+chain+'_NOutMuon;'+trigstep+GroupName+'_NOutMuon',
46  title=trigstep+' OverlapRemover number of output muons '+chain+';number of output muons;Events',
47  type='TH1I', path='',xbins=10,xmin=0,xmax=10)
48 
49  histGroup.defineHistogram(trigstep+'_'+chain+'_NRemovedMuon;'+trigstep+GroupName+'_NRemovedMuon',
50  title=trigstep+' OverlapRemover number of removed muons '+chain+';number of removed muons;Events',
51  type='TH1I', path='',xbins=10,xmin=0,xmax=10)
52 
53  histGroup.defineHistogram(trigstep+'_'+chain+'_dR;'+trigstep+GroupName+'_dR',
54  title=trigstep+' OverlapRemover dR '+chain+';dR;Events',
55  type='TH1F', path='',xbins=105,xmin=0.,xmax=3.5)
56 
57  histGroup.defineHistogram(trigstep+'_'+chain+'_invMass;'+trigstep+GroupName+'_invMass',
58  title=trigstep+' OverlapRemover invariant mass '+chain+';invariant mass [GeV];Events',
59  type='TH1F', path='',xbins=200,xmin=0.,xmax=100.)
60 
61  histGroup.defineHistogram(trigstep+'_'+chain+'_invMass,'+trigstep+'_'+chain+'_dR;'+trigstep+GroupName+'_invMass_vs_dR',
62  title=trigstep+' OverlapRemover invariant mass vs dR '+chain+';invariant mass [GeV];dR',
63  type='TH2F', path='',xbins=200,xmin=0.,xmax=100.,ybins=105,ymin=0.,ymax=3.5)
64 
65  histGroup.defineHistogram(trigstep+'_'+chain+'_dRLog10;'+trigstep+GroupName+'_dRLog10',
66  title=trigstep+' OverlapRemover dR (Log10) '+chain+';dR (Log10);Events',
67  type='TH1F', path='',xbins=100,xmin=-4.,xmax=1.)
68 
69  histGroup.defineHistogram(trigstep+'_'+chain+'_invMassLog10;'+trigstep+GroupName+'_invMassLog10',
70  title=trigstep+' OverlapRemover invariant mass (Log10) '+chain+';invariant mass (Log10) [GeV];Events',
71  type='TH1F', path='',xbins=140,xmin=-4.,xmax=3.)
72 
73  histGroup.defineHistogram(trigstep+'_'+chain+'_RemovedEta,'+trigstep+'_'+chain+'_RemovedPhi;'+trigstep+GroupName+'_RemovedEta_vs_RemovedPhi',
74  title=trigstep+' OverlapRemover Eta vs Phi of removed muons '+chain+';Eta;Phi',
75  type='TH2F', path='',xbins=108,xmin=-2.7,xmax=2.7,ybins=96,ymin=-ROOT.TMath.Pi(),ymax=ROOT.TMath.Pi())
76 
77  histGroup.defineHistogram(trigstep+'_'+chain+'_RemovedPt;'+trigstep+GroupName+'_RemovedPt',
78  title=trigstep+' OverlapRemover Pt of removed muons '+chain+';p_{T} [GeV];Events',
79  type='TH1F', path='',xbins=210,xmin=-105.,xmax=105.)
80 
81  histGroup.defineHistogram(trigstep+'_'+chain+'_OverlapInsonsistent;'+trigstep+GroupName+'_OverlapInsonsistent',
82  title=trigstep+' Overlap Insonsistent '+chain+';;Events',
83  type='TH1I', path='',xbins=2,xmin=0,xmax=2)
python.TriggerConfigAccess.getHLTMonitoringAccess
HLTMonitoringAccess getHLTMonitoringAccess(flags=None)
Definition: TriggerConfigAccess.py:256
python.L2OverlapRemoverMonConfig.L2OverlapRemoverMonConfig
def L2OverlapRemoverMonConfig(helper)
Definition: L2OverlapRemoverMonConfig.py:5
python.L2OverlapRemoverMonConfig.defineOverlapRemoverHistograms
def defineOverlapRemoverHistograms(histGroup, GroupName, chain, trigstep)
Definition: L2OverlapRemoverMonConfig.py:39
python.MuonSelectorToolsConfig.MuonSelectionToolCfg
def MuonSelectionToolCfg(flags, name="MuonSelectionTool", **kwargs)
Standard configuration of the MuonSelectionTool used in reconstruction & validation jobs The snippet ...
Definition: MuonSelectorToolsConfig.py:16