ATLAS Offline Software
TgcRawDataMonitorAlgorithm.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 '''
6 @file TgcRawDataMonitorAlgorithm.py
7 @author M.Aoki
8 @date 2019-10-03
9 @brief Python configuration for the Run III AthenaMonitoring package for TGC
10 '''
11 
13  from AthenaConfiguration.ComponentFactory import CompFactory
14  from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
15  from AthenaConfiguration.Enums import Format
16  result = ComponentAccumulator()
17 
18  from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
19  result.merge(AtlasFieldCacheCondAlgCfg(inputFlags))
20 
21  from AthenaMonitoring import AthMonitorCfgHelper
22  helper = AthMonitorCfgHelper(inputFlags,'TgcRawDataMonitorCfg')
23 
24  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
25  extrapolator = result.popToolsAndMerge(AtlasExtrapolatorCfg(inputFlags))
26 
27  tgcRawDataMonitorTool = CompFactory.TgcRawDataMonitorTool("TgcRawDataMonitorTool")
28 
29  from MuonSelectorTools.MuonSelectorToolsConfig import MuonSelectionToolCfg
30  tgcRawDataMonAlg = helper.addAlgorithm(CompFactory.TgcRawDataMonitorAlgorithm,'TgcRawDataMonAlg',
31  TrackExtrapolator = extrapolator,
32  TgcRawDataMonitorTool = tgcRawDataMonitorTool,
33  MuonSelectionTool = result.popToolsAndMerge(MuonSelectionToolCfg(inputFlags,
34  MuQuality=1,
35  MaxEta=2.7)),
36  doExpressProcessing = inputFlags.Common.doExpressProcessing )
37 
38  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
39  result.merge( TrackingGeometryCondAlgCfg(inputFlags ) )
40 
41  doGapByGapHitOcc = True
42  doGapByGapEffMap = False
43  doHitResiduals = True
44 
45  tgcRawDataMonAlg.FillGapByGapHistograms = (doGapByGapHitOcc or doGapByGapEffMap or doHitResiduals)
46 
47  tgcRawDataMonAlg.GRLTool = ""
48 
49  tgcRawDataMonAlg.UseOnlyCombinedMuons = True
50  tgcRawDataMonAlg.UseOnlyMuidCoStacoMuons = True
51  tgcRawDataMonAlg.UseMuonSelectorTool = True
52 
53  tgcRawDataMonAlg.MonitorThresholdPatterns = True
54  tgcRawDataMonAlg.ThrPatternList = "MU3V,MU3VF,MU3VC,MU5VF,MU8F,MU8FC,MU9VF,MU9VFC,MU8VF,MU8VFC,MU14FCH,MU14FCHR,MU15VFCH,MU15VFCHR,MU18VFCH,MU10BOM,MU12BOM,MU8FH,MU20VFC,MU12FCH,MU4BOM,MU4BO,MU10BO,MU14EOF,MU8EOF,MU3EOF,"
55 
56  tgcRawDataMonAlg.TagAndProbe = True
57  tgcRawDataMonAlg.TagAndProbeZmumu = False
58 
59  if not inputFlags.DQ.triggerDataAvailable:
60  tgcRawDataMonAlg.MuonRoIContainerName = ''
61  tgcRawDataMonAlg.MuonRoIContainerBCm2Name = ''
62  tgcRawDataMonAlg.MuonRoIContainerBCm1Name = ''
63  tgcRawDataMonAlg.MuonRoIContainerBCp1Name = ''
64  tgcRawDataMonAlg.MuonRoIContainerBCp2Name = ''
65  tgcRawDataMonAlg.TagAndProbe = False
66  tgcRawDataMonAlg.MonitorThresholdPatterns = False
67  tgcRawDataMonAlg.ThrPatternList = ''
68  tgcRawDataMonAlg.MonitorTriggerMultiplicity = False
69  tgcRawDataMonAlg.CtpDecisionMoniorList = ''
70  tgcRawDataMonAlg.UseMuonSelectorTool = False
71 
72  if inputFlags.Trigger.EDMVersion < 3: # Run2 and before
73  tgcRawDataMonAlg.MuonRoIContainerBCm2Name = ''
74  tgcRawDataMonAlg.MuonRoIContainerBCm1Name = ''
75  tgcRawDataMonAlg.MuonRoIContainerBCp1Name = ''
76  tgcRawDataMonAlg.MuonRoIContainerBCp2Name = ''
77  tgcRawDataMonAlg.MuRoIThresholdPatternsKey = ''
78  tgcRawDataMonAlg.TgcCoinDataContainerNextNextBCName = ''
79  tgcRawDataMonAlg.MonitorThresholdPatterns = False
80 
81  if inputFlags.Input.Format is Format.BS or 'TGC_MeasurementsAllBCs' in inputFlags.Input.Collections:
82  tgcRawDataMonAlg.AnaTgcPrd=True
83  if inputFlags.Input.Format is Format.BS or ('TrigT1CoinDataCollection' in inputFlags.Input.Collections and
84  'TrigT1CoinDataCollectionNextBC' in inputFlags.Input.Collections and
85  'TrigT1CoinDataCollectionPriorBC' in inputFlags.Input.Collections ):
86  tgcRawDataMonAlg.AnaTgcCoin=True
87 
88  mainDir = 'Muon/MuonRawDataMonitoring/TGC/'
89  import math
90 
91  myGroup = helper.addGroup(tgcRawDataMonAlg,'TgcRawDataMonitor',mainDir)
92 
93 
94  commonPath = 'EventInfo/'
95  myGroupCommon = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor_Common', mainDir)
96  myGroupCommon.defineHistogram('mon_lb;TgcMon_LuminosityBlock',title='Luminosity Block;Luminosity Block;Number of events',
97  path=commonPath,type='TH1F',xbins=10,xmin=0,xmax=10,opt='kAddBinsDynamically', merge='merge')
98  myGroupCommon.defineHistogram('mon_bcid;TgcMon_BCID',title='BCID;BCID;Number of events',
99  path=commonPath,type='TH1F',xbins=4096,xmin=-0.5,xmax=4095.5)
100  myGroupCommon.defineHistogram('mon_pileup;TgcMon_Pileup',title='Pileup;Pileup;Number of events',
101  path=commonPath,type='TH1F',xbins=101,xmin=-0.5,xmax=100.5)
102  myGroupCommon.defineHistogram('mon_primvtx_z;TgcMon_PrimaryVertexZ',title='Primary Vertex Z;Primary Vertex Z [mm];Number of events',
103  path=commonPath,type='TH1F',xbins=100,xmin=-200.,xmax=200.)
104 
105  muonPath = 'Muon/'
106  myGroupMuon = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor_Muon', mainDir)
107  myGroupMuon.defineHistogram('oflmuon_num;TgcMon_OfflineMuon_num',title='OfflineMuon_num;OfflineMuon num per event;Number of events',
108  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
109  myGroupMuon.defineHistogram('oflmuon_muonType;TgcMon_OfflineMuon_muonType',title='OfflineMuon_muonType;OfflineMuon muonType;Number of events',
110  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
111  myGroupMuon.defineHistogram('oflmuon_author;TgcMon_OfflineMuon_author',title='OfflineMuon_author;OfflineMuon author;Number of events',
112  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
113  myGroupMuon.defineHistogram('oflmuon_quality;TgcMon_OfflineMuon_quality',title='OfflineMuon_quality;OfflineMuon quality;Number of events',
114  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
115  myGroupMuon.defineHistogram('oflmuon_pt;TgcMon_OfflineMuon_Pt',title='OfflineMuon_Pt;OfflineMuon pT [GeV];Number of events',
116  path=muonPath,type='TH1F',xbins=100,xmin=0,xmax=100)
117  myGroupMuon.defineHistogram('oflmuon_eta,oflmuon_phi;TgcMon_OfflineMuon_EtaVsPhi',title='OfflineMuon_EtaVsPhi;OfflineMuon Eta;OfflineMuon Phi',
118  path=muonPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
119  myGroupMuon.defineHistogram('oflmuon_pvdz;TgcMon_OfflineMuon_pvdz',title='OfflineMuon_PVDZ;Delta Z [mm];Number of events',
120  path=muonPath,type='TH1F',xbins=100,xmin=-100,xmax=100)
121  myGroupMuon.defineHistogram('oflmuon_pvdca;TgcMon_OfflineMuon_pvdca',title='OfflineMuon_PVDCA;DCA [mm];Number of events',
122  path=muonPath,type='TH1F',xbins=100,xmin=-5,xmax=5)
123 
124  myGroupMuon.defineHistogram('oflmuon_probe_num;TgcMon_OfflineMuon_Probe_num',title='OfflineMuon_Probe_num;OfflineMuon num per event;Number of events',
125  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
126  myGroupMuon.defineHistogram('oflmuon_probe_muonType;TgcMon_OfflineMuon_Probe_muonType',title='OfflineMuon_Probe_muonType;OfflineMuon muonType;Number of events',
127  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
128  myGroupMuon.defineHistogram('oflmuon_probe_author;TgcMon_OfflineMuon_Probe_author',title='OfflineMuon_Probe_author;OfflineMuon author;Number of events',
129  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
130  myGroupMuon.defineHistogram('oflmuon_probe_quality;TgcMon_OfflineMuon_Probe_quality',title='OfflineMuon_Probe_quality;OfflineMuon quality;Number of events',
131  path=muonPath,type='TH1F',xbins=21,xmin=-0.5,xmax=20.5)
132  myGroupMuon.defineHistogram('oflmuon_probe_pt;TgcMon_OfflineMuon_Probe_Pt',title='OfflineMuon_Probe_Pt;OfflineMuon pT [GeV];Number of events',
133  path=muonPath,type='TH1F',xbins=100,xmin=0,xmax=100)
134  myGroupMuon.defineHistogram('oflmuon_probe_eta,oflmuon_probe_phi;TgcMon_OfflineMuon_Probe_EtaVsPhi',title='OfflineMuon_Probe_EtaVsPhi;OfflineMuon Eta;OfflineMuon Phi',
135  path=muonPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
136  myGroupMuon.defineHistogram('oflmuon_probe_pvdz;TgcMon_OfflineMuon_Probe_pvdz',title='OfflineMuon_Probe_PVDZ;Delta Z [mm];Number of events',
137  path=muonPath,type='TH1F',xbins=100,xmin=-100,xmax=100)
138  myGroupMuon.defineHistogram('oflmuon_probe_pvdca;TgcMon_OfflineMuon_Probe_pvdca',title='OfflineMuon_Probe_PVDCA;DCA [mm];Number of events',
139  path=muonPath,type='TH1F',xbins=100,xmin=-5,xmax=5)
140 
141  myGroupMuon.defineHistogram('oflmuon_deltaR;TgcMon_OfflineMuon_DeltaR',title='OfflineMuon_DeltaR;OfflineMuon DeltaR;Number of events',
142  path=muonPath,type='TH1F',xbins=100,xmin=0,xmax=5)
143  myGroupMuon.defineHistogram('oflmuon_deltaR_roi;TgcMon_OfflineMuon_DeltaR_to_RoIs',title='OfflineMuon_DeltaR_to_RoIs;OfflineMuon DeltaR to RoIs;Number of events',
144  path=muonPath,type='TH1F',xbins=100,xmin=0,xmax=5)
145  myGroupMuon.defineHistogram('oflmuon_deltaR_hlt;TgcMon_OfflineMuon_DeltaR_to_HLTs',title='OfflineMuon_DeltaR_to_HLTs;OfflineMuon DeltaR to HLTs;Number of events',
146  path=muonPath,type='TH1F',xbins=100,xmin=0,xmax=5)
147 
148 
149 
150  trigThrPatternsPath = 'TrigPatterns/'
151  for monTrig in tgcRawDataMonAlg.ThrPatternList.split(','):
152  if monTrig == "":continue
153  monTrigGroup = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor'+monTrig, mainDir)
154 
155  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+';L1Item_MuonRoI_Evt_Eta_'+monTrig,title='L1Item_MuonRoI_Evt_Eta_'+monTrig+';MuonRoI Eta;Entries',
156  path=trigThrPatternsPath,type='TH1F',xbins=100,xmin=-2.5,xmax=2.5)
157  monTrigGroup.defineHistogram('l1item_roi_phi_rpc_'+monTrig+';L1Item_MuonRoI_Evt_Phi_RPC_'+monTrig,title='L1Item_MuonRoI_Evt_Phi_RPC_'+monTrig+';MuonRoI Phi;Entries',
158  path=trigThrPatternsPath,type='TH1F',xbins=32,xmin=-math.pi,xmax=math.pi)
159  monTrigGroup.defineHistogram('l1item_roi_phi_tgc_'+monTrig+';L1Item_MuonRoI_Evt_Phi_TGC_'+monTrig,title='L1Item_MuonRoI_Evt_Phi_TGC_'+monTrig+';MuonRoI Phi;Entries',
160  path=trigThrPatternsPath,type='TH1F',xbins=48,xmin=-math.pi,xmax=math.pi)
161 
162  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_phi_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsPhi_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsPhi_'+monTrig+';MuonRoI Eta;MuonRoI Phi',
163  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
164  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_thrNumber_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsThrNumber_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsThrNumber_'+monTrig+';MuonRoI Eta;MuonRoI Threshold Number',
165  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=15,ymin=0.5,ymax=15.5)
166  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_ismorecand_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsIsMoreCand_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsIsMoreCand_'+monTrig+';MuonRoI Eta;MuonRoI IsMoreCand Flag',
167  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=3,ymin=-1.5,ymax=1.5)
168  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_bw3coin_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsBW3Coin_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsBW3Coin_'+monTrig+';MuonRoI Eta;MuonRoI BW3Coin Flag',
169  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=3,ymin=-1.5,ymax=1.5)
170  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_innercoin_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsInnerCoin_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsInnerCoin_'+monTrig+';MuonRoI Eta;MuonRoI InnerCoin Flag',
171  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=3,ymin=-1.5,ymax=1.5)
172  monTrigGroup.defineHistogram('l1item_roi_eta_'+monTrig+',l1item_roi_goodmf_'+monTrig+';L1Item_MuonRoI_Evt_EtaVsGoodMF_'+monTrig,title='L1Item_MuonRoI_Evt_EtaVsGoodMF_'+monTrig+';MuonRoI Eta;MuonRoI GoodMF Flag',
173  path=trigThrPatternsPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=3,ymin=-1.5,ymax=1.5)
174 
175  monTrigGroup.defineHistogram('l1item_roi_roiNumber_'+monTrig+',l1item_roi_sector_'+monTrig+';L1Item_MuonRoI_Evt_SectorVsRoINumber_Barrel_'+monTrig,title='L1Item_MuonRoI SectorVsRoINumber Barrel '+monTrig+';RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
176  type='TH2F',cutmask='l1item_roi_barrel_'+monTrig,path=trigThrPatternsPath,xbins=29,xmin=-0.5,xmax=28.5,ybins=65,ymin=-32.5,ymax=32.5)
177  monTrigGroup.defineHistogram('l1item_roi_roiNumber_'+monTrig+',l1item_roi_sector_'+monTrig+';L1Item_MuonRoI_Evt_SectorVsRoINumber_Endcap_'+monTrig,title='L1Item_MuonRoI SectorVsRoINumber Endcap '+monTrig+';RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
178  type='TH2F',cutmask='l1item_roi_endcap_'+monTrig,path=trigThrPatternsPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
179  monTrigGroup.defineHistogram('l1item_roi_roiNumber_'+monTrig+',l1item_roi_sector_'+monTrig+';L1Item_MuonRoI_Evt_SectorVsRoINumber_Forward_'+monTrig,title='L1Item_MuonRoI SectorVsRoINumber Forward '+monTrig+';RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
180  type='TH2F',cutmask='l1item_roi_forward_'+monTrig,path=trigThrPatternsPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
181 
182  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_barrel_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Barrel_sideA_'+monTrig,title='L1Item_MuonRoI PhiVsLB Barrel sideA '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
183  cutmask='l1item_roi_sideA_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=32,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
184  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_barrel_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Barrel_sideC_'+monTrig,title='L1Item_MuonRoI PhiVsLB Barrel sideC '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
185  cutmask='l1item_roi_sideC_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=32,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
186 
187  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_endcap_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Endcap_sideA_'+monTrig,title='L1Item_MuonRoI PhiVsLB Endcap sideA '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
188  cutmask='l1item_roi_sideA_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
189  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_endcap_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Endcap_sideC_'+monTrig,title='L1Item_MuonRoI PhiVsLB Endcap sideC '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
190  cutmask='l1item_roi_sideC_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
191 
192  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_forward_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Forward_sideA_'+monTrig,title='L1Item_MuonRoI PhiVsLB Forward sideA '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
193  cutmask='l1item_roi_sideA_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
194  monTrigGroup.defineHistogram('lumiBlock_l1item_'+monTrig+',l1item_roi_phi_forward_'+monTrig+';L1Item_MuonRoI_Evt_PhiVsLB_Forward_sideC_'+monTrig,title='L1Item_MuonRoI PhiVsLB Forward sideC '+monTrig+';Luminosity block;MuonRoI Phi',type='TH2F',
195  cutmask='l1item_roi_sideC_'+monTrig,path=trigThrPatternsPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
196 
197  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_pt_rpc_l1item_'+monTrig+';L1Item_MuonRoI_Eff_Pt_RPC_'+monTrig,title='L1Item_MuonRoI_Eff_Pt_RPC_'+monTrig+';Offline muon pT [GeV];Efficiency',
198  type='TEfficiency',path=trigThrPatternsPath,xbins=50,xmin=0,xmax=50)
199  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_pt_tgc_l1item_'+monTrig+';L1Item_MuonRoI_Eff_Pt_TGC_'+monTrig,title='L1Item_MuonRoI_Eff_Pt_TGC_'+monTrig+';Offline muon pT [GeV];Efficiency',
200  type='TEfficiency',path=trigThrPatternsPath,xbins=50,xmin=0,xmax=50)
201  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_phi_rpc_l1item_'+monTrig+';L1Item_MuonRoI_Eff_Phi_RPC_'+monTrig,title='L1Item_MuonRoI_Eff_Phi_RPC_'+monTrig+';Offline muon phi [rad.];Efficiency',
202  type='TEfficiency',path=trigThrPatternsPath,xbins=32,xmin=-math.pi,xmax=math.pi)
203  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_phi_tgc_l1item_'+monTrig+';L1Item_MuonRoI_Eff_Phi_TGC_'+monTrig,title='L1Item_MuonRoI_Eff_Phi_TGC_'+monTrig+';Offline muon phi [rad.];Efficiency',
204  type='TEfficiency',path=trigThrPatternsPath,xbins=48,xmin=-math.pi,xmax=math.pi)
205  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_eta_l1item_'+monTrig+';L1Item_MuonRoI_Eff_Eta_'+monTrig,title='L1Item_MuonRoI_Eff_Eta_'+monTrig+';Offline muon eta;Efficiency',
206  type='TEfficiency',path=trigThrPatternsPath,xbins=100,xmin=-2.5,xmax=2.5)
207  monTrigGroup.defineHistogram('muon_passed_l1item_'+monTrig+',muon_eta_l1item_'+monTrig+',muon_phi_l1item_'+monTrig+';L1Item_MuonRoI_Eff_EtaVsPhi_'+monTrig,title='L1Item_MuonRoI_Eff_EtaVsPhi_'+monTrig+';Offline muon eta; Offline muon phi',
208  type='TEfficiency',path=trigThrPatternsPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
209 
210 
211 
212  trigMultiPath = 'TrigMultiplicity/'
213  for monTrig in tgcRawDataMonAlg.CtpDecisionMoniorList.split(';'):
214  tmp = monTrig.split(',')[0]
215  objname = tmp.replace('Tit:','')
216  if objname == "":continue
217  monTrigGroup = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor'+objname, mainDir)
218 
219  monTrigGroup.defineHistogram('ctpMultiplicity;'+objname+'_ctpMultiplicity',title=objname+' ctpMultiplicity;Ctp Output Multiplicity;Number of events',
220  path=trigMultiPath,xbins=11,xmin=-0.5,xmax=10.5)
221  monTrigGroup.defineHistogram('rawMultiplicity;'+objname+'_rawMultiplicity',title=objname+' rawMultiplicity;Raw Input Multiplicity;Number of events',
222  path=trigMultiPath,xbins=11,xmin=-0.5,xmax=10.5)
223  monTrigGroup.defineHistogram('countDiff;'+objname+'_L1CountDiff',title=objname+' L1CountDiff;Event-by-event N(CTP out)-N(CTP in);Number of events',
224  path=trigMultiPath,xbins=11,xmin=-5.5,xmax=5.5)
225 
226  monTrigGroup.defineHistogram('roiMatching_CTPin,roiMatching_CTPout;'+objname+'_RoiMatching',title=objname+'_RoiMatching;Input;Output',
227  path=trigMultiPath,type='TH2F',xbins=2,xmin=-0.5,xmax=1.5,ybins=2,ymin=-0.5,ymax=1.5,xlabels=['NotExist','Exist'],ylabels=['NotExist','Exist'])
228 
229  monTrigGroup.defineHistogram('Eta,Phi;'+objname+'_L1Count_EtaVsPhi_inOk_outOk',title=objname+'_L1Count_EtaVsPhi_inOk_outOk;MuonRoI Eta;MuonRoI Phi',
230  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
231  monTrigGroup.defineHistogram('Eta,dRmin;'+objname+'_L1Count_EtaVsdRmin_inOk_outOk',title=objname+'_L1Count_EtaVsdRmin_inOk_outOk;MuonRoI Eta;Closest dR between Muon RoIs',
232  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=11,ymin=-0.1,ymax=1.0)
233  monTrigGroup.defineHistogram('dRmin;'+objname+'_roi_dRmin_inOk_outOk',title=objname+'_roi_dRmin_inOk_outOk;Closest dR between Muon RoIs;Number of events',
234  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=11,xmin=-0.1,xmax=1.0)
235  monTrigGroup.defineHistogram('ThrNum;'+objname+'_roi_ThrNum_inOk_outOk',title=objname+'_roi_ThrNum_inOk_outOk;Threshold number (positive for barrel, negative for endcap);Number of events',
236  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=22,xmin=-15.5,xmax=6.5)
237  monTrigGroup.defineHistogram('Charge;'+objname+'_roi_Charge_inOk_outOk',title=objname+'_roi_Charge_inOk_outOk;Muon charge;Number of events',
238  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
239  monTrigGroup.defineHistogram('BW3Coin;'+objname+'_roi_BW3Coin_inOk_outOk',title=objname+'_roi_BW3Coin_inOk_outOk;TGC BW3Coin flag;Number of events',
240  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
241  monTrigGroup.defineHistogram('InnerCoin;'+objname+'_roi_InnerCoin_inOk_outOk',title=objname+'_roi_InnerCoin_inOk_outOk;TGC InnerCoin flag;Number of events',
242  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
243  monTrigGroup.defineHistogram('GoodMF;'+objname+'_roi_GoodMF_inOk_outOk',title=objname+'_roi_GoodMF_inOk_outOk;TGC GoodMF flag;Number of events',
244  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
245  monTrigGroup.defineHistogram('IsMoreCandInRoI;'+objname+'_roi_IsMoreCandInRoI_inOk_outOk',title=objname+'_roi_IsMoreCandInRoI_inOk_outOk;RPC IsMoreCandInRoI flag;Number of events',
246  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
247  monTrigGroup.defineHistogram('PhiOverlap;'+objname+'_roi_PhiOverlap_inOk_outOk',title=objname+'_roi_PhiOverlap_inOk_outOk;PhiOverlap flag;Number of events',
248  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
249  monTrigGroup.defineHistogram('EtaOverlap;'+objname+'_roi_EtaOverlap_inOk_outOk',title=objname+'_roi_EtaOverlap_inOk_outOk;EtaOverlap flag;Number of events',
250  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
251  monTrigGroup.defineHistogram('dRmin,PhiOverlap;'+objname+'_roi_dRminVsPhiOverlap_inOk_outOk',
252  title=objname+'_roi_dRminVsPhiOverlap_inOk_outOk;Closest dR between Muon RoIs;PhiOverlap flag',
253  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=3,ymin=-1.5,ymax=1.5)
254  monTrigGroup.defineHistogram('isVetoed;'+objname+'_roi_isVetoed_inOk_outOk',title=objname+'_roi_isVetoed_inOk_outOk;isVetoed flag;Number of events',
255  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
256  monTrigGroup.defineHistogram('dRmin,isVetoed;'+objname+'_roi_dRminVsisVetoed_inOk_outOk',
257  title=objname+'_roi_dRminVsisVetoed_inOk_outOk;Closest dR between Muon RoIs;isVetoed flag',
258  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=2,ymin=-0.5,ymax=1.5)
259  monTrigGroup.defineHistogram('Eta,isVetoed;'+objname+'_roi_EtaVsisVetoed_inOk_outOk',
260  title=objname+'_roi_EtaVsisVetoed_inOk_outOk;MuonRoI Eta;isVetoed flag',
261  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=2,ymin=-0.5,ymax=1.5)
262  monTrigGroup.defineHistogram('Eta,pTdiff;'+objname+'_L1Count_EtaVspTdiff_inOk_outOk',title=objname+'_L1Count_EtaVspTdiff_inOk_outOk;MuonRoI Eta;pT difference',
263  cutmask='inOk_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=31,ymin=-15.5,ymax=15.5)
264  monTrigGroup.defineHistogram('pTdiff;'+objname+'_roi_pTdiff_inOk_outOk',title=objname+'_roi_pTdiff_inOk_outOk;pT difference;Number of events',
265  cutmask='inOk_outOk',path=trigMultiPath,type='TH1F',xbins=31,xmin=-15.5,xmax=15.5)
266 
267 
268  monTrigGroup.defineHistogram('Eta,Phi;'+objname+'_L1Count_EtaVsPhi_inOk_outNg',title=objname+'_L1Count_EtaVsPhi_inOk_outNg;MuonRoI Eta;MuonRoI Phi',
269  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
270  monTrigGroup.defineHistogram('Eta,dRmin;'+objname+'_L1Count_EtaVsdRmin_inOk_outNg',title=objname+'_L1Count_EtaVsdRmin_inOk_outNg;MuonRoI Eta;Closest dR between Muon RoIs',
271  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=11,ymin=-0.1,ymax=1.0)
272  monTrigGroup.defineHistogram('dRmin;'+objname+'_roi_dRmin_inOk_outNg',title=objname+'_roi_dRmin_inOk_outNg;Closest dR between Muon RoIs;Number of events',
273  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=11,xmin=-0.1,xmax=1.0)
274  monTrigGroup.defineHistogram('ThrNum;'+objname+'_roi_ThrNum_inOk_outNg',title=objname+'_roi_ThrNum_inOk_outNg;Threshold number (positive for barrel, negative for endcap);Number of events',
275  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=22,xmin=-15.5,xmax=6.5)
276  monTrigGroup.defineHistogram('Charge;'+objname+'_roi_Charge_inOk_outNg',title=objname+'_roi_Charge_inOk_outNg;Muon charge;Number of events',
277  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
278  monTrigGroup.defineHistogram('BW3Coin;'+objname+'_roi_BW3Coin_inOk_outNg',title=objname+'_roi_BW3Coin_inOk_outNg;TGC BW3Coin flag;Number of events',
279  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
280  monTrigGroup.defineHistogram('InnerCoin;'+objname+'_roi_InnerCoin_inOk_outNg',title=objname+'_roi_InnerCoin_inOk_outNg;TGC InnerCoin flag;Number of events',
281  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
282  monTrigGroup.defineHistogram('GoodMF;'+objname+'_roi_GoodMF_inOk_outNg',title=objname+'_roi_GoodMF_inOk_outNg;TGC GoodMF flag;Number of events',
283  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
284  monTrigGroup.defineHistogram('IsMoreCandInRoI;'+objname+'_roi_IsMoreCandInRoI_inOk_outNg',title=objname+'_roi_IsMoreCandInRoI_inOk_outNg;RPC IsMoreCandInRoI flag;Number of events',
285  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
286  monTrigGroup.defineHistogram('PhiOverlap;'+objname+'_roi_PhiOverlap_inOk_outNg',title=objname+'_roi_PhiOverlap_inOk_outNg;PhiOverlap flag;Number of events',
287  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
288  monTrigGroup.defineHistogram('EtaOverlap;'+objname+'_roi_EtaOverlap_inOk_outNg',title=objname+'_roi_EtaOverlap_inOk_outNg;EtaOverlap flag;Number of events',
289  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
290  monTrigGroup.defineHistogram('dRmin,PhiOverlap;'+objname+'_roi_dRminVsPhiOverlap_inOk_outNg',
291  title=objname+'_roi_dRminVsPhiOverlap_inOk_outNg;Closest dR between Muon RoIs;PhiOverlap flag',
292  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=3,ymin=-1.5,ymax=1.5)
293  monTrigGroup.defineHistogram('isVetoed;'+objname+'_roi_isVetoed_inOk_outNg',title=objname+'_roi_isVetoed_inOk_outNg;isVetoed flag;Number of events',
294  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
295  monTrigGroup.defineHistogram('dRmin,isVetoed;'+objname+'_roi_dRminVsisVetoed_inOk_outNg',
296  title=objname+'_roi_dRminVsisVetoed_inOk_outNg;Closest dR between Muon RoIs;isVetoed flag',
297  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=2,ymin=-0.5,ymax=1.5)
298  monTrigGroup.defineHistogram('Eta,isVetoed;'+objname+'_roi_EtaVsisVetoed_inOk_outNg',
299  title=objname+'_roi_EtaVsisVetoed_inOk_outNg;MuonRoI Eta;isVetoed flag',
300  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=2,ymin=-0.5,ymax=1.5)
301  monTrigGroup.defineHistogram('Eta,pTdiff;'+objname+'_L1Count_EtaVspTdiff_inOk_outNg',title=objname+'_L1Count_EtaVspTdiff_inOk_outNg;MuonRoI Eta;pT difference',
302  cutmask='inOk_outNg',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=31,ymin=-15.5,ymax=15.5)
303  monTrigGroup.defineHistogram('pTdiff;'+objname+'_roi_pTdiff_inOk_outNg',title=objname+'_roi_pTdiff_inOk_outNg;pT difference;Number of events',
304  cutmask='inOk_outNg',path=trigMultiPath,type='TH1F',xbins=31,xmin=-15.5,xmax=15.5)
305 
306 
307  monTrigGroup.defineHistogram('Eta,Phi;'+objname+'_L1Count_EtaVsPhi_inNg_outOk',title=objname+'_L1Count_EtaVsPhi_inNg_outOk;MuonRoI Eta;MuonRoI Phi',
308  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
309  monTrigGroup.defineHistogram('Eta,dRmin;'+objname+'_L1Count_EtaVsdRmin_inNg_outOk',title=objname+'_L1Count_EtaVsdRmin_inNg_outOk;MuonRoI Eta;Closest dR between Muon RoIs',
310  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=11,ymin=-0.1,ymax=1.0)
311  monTrigGroup.defineHistogram('dRmin;'+objname+'_roi_dRmin_inNg_outOk',title=objname+'_roi_dRmin_inNg_outOk;Closest dR between Muon RoIs;Number of events',
312  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=11,xmin=-0.1,xmax=1.0)
313  monTrigGroup.defineHistogram('ThrNum;'+objname+'_roi_ThrNum_inNg_outOk',title=objname+'_roi_ThrNum_inNg_outOk;Threshold number (positive for barrel, negative for endcap);Number of events',
314  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=22,xmin=-15.5,xmax=6.5)
315  monTrigGroup.defineHistogram('Charge;'+objname+'_roi_Charge_inNg_outOk',title=objname+'_roi_Charge_inNg_outOk;Muon charge;Number of events',
316  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
317  monTrigGroup.defineHistogram('BW3Coin;'+objname+'_roi_BW3Coin_inNg_outOk',title=objname+'_roi_BW3Coin_inNg_outOk;TGC BW3Coin flag;Number of events',
318  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
319  monTrigGroup.defineHistogram('InnerCoin;'+objname+'_roi_InnerCoin_inNg_outOk',title=objname+'_roi_InnerCoin_inNg_outOk;TGC InnerCoin flag;Number of events',
320  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
321  monTrigGroup.defineHistogram('GoodMF;'+objname+'_roi_GoodMF_inNg_outOk',title=objname+'_roi_GoodMF_inNg_outOk;TGC GoodMF flag;Number of events',
322  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
323  monTrigGroup.defineHistogram('IsMoreCandInRoI;'+objname+'_roi_IsMoreCandInRoI_inNg_outOk',title=objname+'_roi_IsMoreCandInRoI_inNg_outOk;RPC IsMoreCandInRoI flag;Number of events',
324  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
325  monTrigGroup.defineHistogram('PhiOverlap;'+objname+'_roi_PhiOverlap_inNg_outOk',title=objname+'_roi_PhiOverlap_inNg_outOk;PhiOverlap flag;Number of events',
326  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=3,xmin=-1.5,xmax=1.5)
327  monTrigGroup.defineHistogram('EtaOverlap;'+objname+'_roi_EtaOverlap_inNg_outOk',title=objname+'_roi_EtaOverlap_inNg_outOk;EtaOverlap flag;Number of events',
328  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
329  monTrigGroup.defineHistogram('dRmin,PhiOverlap;'+objname+'_roi_dRminVsPhiOverlap_inNg_outOk',
330  title=objname+'_roi_dRminVsPhiOverlap_inNg_outOk;Closest dR between Muon RoIs;PhiOverlap flag',
331  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=3,ymin=-1.5,ymax=1.5)
332  monTrigGroup.defineHistogram('isVetoed;'+objname+'_roi_isVetoed_inNg_outOk',title=objname+'_roi_isVetoed_inNg_outOk;isVetoed flag;Number of events',
333  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=2,xmin=-0.5,xmax=1.5)
334  monTrigGroup.defineHistogram('dRmin,isVetoed;'+objname+'_roi_dRminVsisVetoed_inNg_outOk',
335  title=objname+'_roi_dRminVsisVetoed_inNg_outOk;Closest dR between Muon RoIs;isVetoed flag',
336  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=11,xmin=-0.1,xmax=1.0,ybins=2,ymin=-0.5,ymax=1.5)
337  monTrigGroup.defineHistogram('Eta,isVetoed;'+objname+'_roi_EtaVsisVetoed_inNg_outOk',
338  title=objname+'_roi_EtaVsisVetoed_inNg_outOk;MuonRoI Eta;isVetoed flag',
339  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=2,ymin=-0.5,ymax=1.5)
340  monTrigGroup.defineHistogram('Eta,pTdiff;'+objname+'_L1Count_EtaVspTdiff_inNg_outOk',title=objname+'_L1Count_EtaVspTdiff_inNg_outOk;MuonRoI Eta;pT difference',
341  cutmask='inNg_outOk',path=trigMultiPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=31,ymin=-15.5,ymax=15.5)
342  monTrigGroup.defineHistogram('pTdiff;'+objname+'_roi_pTdiff_inNg_outOk',title=objname+'_roi_pTdiff_inNg_outOk;pT difference;Number of events',
343  cutmask='inNg_outOk',path=trigMultiPath,type='TH1F',xbins=31,xmin=-15.5,xmax=15.5)
344 
345 
346 
347 
348  trigPath = 'Trig/'
349 
350  myGroup.defineHistogram('roi_sector,roi_timing;MuonRoI_Evt_SectorVsTiming_Barrel',type='TH2F',
351  title='MuonRoI Sector vs Timing Barrel;MuonRoI Trigger Sector +1 (>0 for A, <0 for C);Timing',cutmask='roi_barrel',path=trigPath,
352  xbins=65,xmin=-32.5,xmax=32.5,ybins=5,ymin=-2.5,ymax=2.5,ylabels=['-2BC','-1BC','CurrBC','+1BC','+2BC'])
353  myGroup.defineHistogram('roi_sector,roi_timing;MuonRoI_Evt_SectorVsTiming_Endcap',type='TH2F',
354  title='MuonRoI Sector vs Timing Endcap;MuonRoI Trigger Sector +1 (>0 for A, <0 for C);Timing',cutmask='roi_endcap',path=trigPath,
355  xbins=97,xmin=-48.5,xmax=48.5,ybins=5,ymin=-2.5,ymax=2.5,ylabels=['-2BC','-1BC','CurrBC','+1BC','+2BC'])
356  myGroup.defineHistogram('roi_sector,roi_timing;MuonRoI_Evt_SectorVsTiming_Forward',type='TH2F',
357  title='MuonRoI Sector vs Timing Forward;MuonRoI Trigger Sector +1 (>0 for A, <0 for C);Timing',cutmask='roi_forward',path=trigPath,
358  xbins=49,xmin=-24.5,xmax=24.5,ybins=5,ymin=-2.5,ymax=2.5,ylabels=['-2BC','-1BC','CurrBC','+1BC','+2BC'])
359 
360  myGroup.defineHistogram('roi_thr,roi_sector;MuonRoI_Evt_SectorVsThreshold_Barrel',title='MuonRoI SectorVsThreshold Barrel;Threshold;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
361  type='TH2F',cutmask='roi_barrel',path=trigPath,xbins=7,xmin=-0.5,xmax=6.5,ybins=65,ymin=-32.5,ymax=32.5)
362  myGroup.defineHistogram('roi_thr,roi_sector;MuonRoI_Evt_SectorVsThreshold_Endcap',title='MuonRoI SectorVsThreshold Endcap;Threshold;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
363  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=16,xmin=-0.5,xmax=15.5,ybins=97,ymin=-48.5,ymax=48.5)
364  myGroup.defineHistogram('roi_thr,roi_sector;MuonRoI_Evt_SectorVsThreshold_Forward',title='MuonRoI SectorVsThreshold Forward;Threshold;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
365  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=16,xmin=-0.5,xmax=15.5,ybins=49,ymin=-24.5,ymax=24.5)
366 
367  myGroup.defineHistogram('roi_roiNumber,roi_sector;MuonRoI_Evt_SectorVsRoINumber_Barrel',title='MuonRoI SectorVsRoINumber Barrel;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
368  type='TH2F',cutmask='roi_barrel',path=trigPath,xbins=29,xmin=-0.5,xmax=28.5,ybins=65,ymin=-32.5,ymax=32.5)
369  myGroup.defineHistogram('roi_roiNumber,roi_sector;MuonRoI_Evt_SectorVsRoINumber_Endcap',title='MuonRoI SectorVsRoINumber Endcap;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
370  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
371  myGroup.defineHistogram('roi_roiNumber,roi_sector;MuonRoI_Evt_SectorVsRoINumber_Forward',title='MuonRoI SectorVsRoINumber Forward;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
372  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
373 
374  myGroup.defineHistogram('roi_roiNumber,roi_sector_wBW3Coin;MuonRoI_Evt_SectorVsRoINumber_wBW3Coin_Endcap',title='MuonRoI SectorVsRoINumber wBW3Coin Endcap;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
375  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
376  myGroup.defineHistogram('roi_roiNumber,roi_sector_wBW3Coin;MuonRoI_Evt_SectorVsRoINumber_wBW3Coin_Forward',title='MuonRoI SectorVsRoINumber wBW3Coin Forward;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
377  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
378 
379  myGroup.defineHistogram('roi_roiNumber,roi_sector_wInnerCoin;MuonRoI_Evt_SectorVsRoINumber_wInnerCoin_Endcap',title='MuonRoI SectorVsRoINumber wInnerCoin Endcap;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
380  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
381  myGroup.defineHistogram('roi_roiNumber,roi_sector_wInnerCoin;MuonRoI_Evt_SectorVsRoINumber_wInnerCoin_Forward',title='MuonRoI SectorVsRoINumber wInnerCoin Forward;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
382  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
383 
384  myGroup.defineHistogram('roi_charge;MuonRoI_Evt_Charge',title='MuonRoI Charge;Charge;Number of events',
385  cutmask='roi_tgc',path=trigPath,xbins=3,xmin=-1.5,xmax=1.5)
386  myGroup.defineHistogram('muon_l1passCharge,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_Charge',title='MuonRoI_Eff_EtaVsPhi_Charge;Offline muon eta; Offline muon phi',
387  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
388  myGroup.defineHistogram('muon_l1passCharge,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_Charge',title='MuonRoI_Eff_Pt_TGC_Charge;Offline muon pT [GeV];Efficiency',
389  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
390  myGroup.defineHistogram('muon_l1passCharge,muon_eta4gev;MuonRoI_Eff_Eta_Charge',title='MuonRoI_Eff_Eta_Charge;Offline muon eta; Efficiency',
391  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
392  myGroup.defineHistogram('muon_l1passCharge,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_Charge',title='MuonRoI_Eff_Phi_TGC_Charge;Offline muon phi; Efficiency',
393  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
394  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_Charge_Positive',type='TH2F',
395  title='MuonRoI Eta vs Phi Charge Positive;MuonRoI Eta;MuonRoI Phi',cutmask='roi_posCharge',path=trigPath,
396  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
397  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_Charge_Negative',type='TH2F',
398  title='MuonRoI Eta vs Phi Charge Negative;MuonRoI Eta;MuonRoI Phi',cutmask='roi_negCharge',path=trigPath,
399  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
400  myGroup.defineHistogram('roi_thr,roi_charge;MuonRoI_Evt_ChargeVsThr',type='TH2F',
401  title='MuonRoI Charge vs Thr;MuonRoI Thresholds;MuonRoI Charge',cutmask='roi_tgc',path=trigPath,
402  xbins=20,xmin=-0.5,xmax=19.5,ybins=3,ymin=-1.5,ymax=1.5)
403 
404 
405  myGroup.defineHistogram('roi_innercoin,roi_eta_tgc;MuonRoI_Eff_Eta_wInnerCoin_ThrAll',title='MuonRoI Eff Eta wInnerCoin ThrAll;MuonRoI Eta;Efficiency',
406  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
407  myGroup.defineHistogram('roi_innercoin,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wInnerCoin_ThrAll',title='MuonRoI Eff Phi TGC wInnerCoin ThrAll;MuonRoI Phi;Efficiency',
408  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
409  myGroup.defineHistogram('roi_innercoin,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wInnerCoin_ThrAll',title='MuonRoI Eff Eta vs Phi wInnerCoin ThrAll;MuonRoI Eta;MuonRoI Phi',
410  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
411  myGroup.defineHistogram('roi_innercoin,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wInnerCoin_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wInnerCoin Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
412  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
413  myGroup.defineHistogram('roi_innercoin,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wInnerCoin_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wInnerCoin Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
414  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
415 
416  myGroup.defineHistogram('roi_innveto,roi_eta_tgc;MuonRoI_Eff_Eta_wInnerCoinVeto_ThrAll',title='MuonRoI Eff Eta wInnerCoinVeto ThrAll;MuonRoI Eta;Efficiency',
417  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
418  myGroup.defineHistogram('roi_innveto,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wInnerCoinVeto_ThrAll',title='MuonRoI Eff Phi TGC wInnerCoinVeto ThrAll;MuonRoI Phi;Efficiency',
419  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
420  myGroup.defineHistogram('roi_innveto,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wInnerCoinVeto_ThrAll',title='MuonRoI Eff Eta vs Phi wInnerCoinVeto ThrAll;MuonRoI Eta;MuonRoI Phi',
421  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
422  myGroup.defineHistogram('roi_innveto,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wInnerCoinVeto_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wInnerCoinVeto Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
423  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
424  myGroup.defineHistogram('roi_innveto,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wInnerCoinVeto_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wInnerCoinVeto Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
425  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
426 
427  myGroup.defineHistogram('roi_bw3coin,roi_eta_tgc;MuonRoI_Eff_Eta_wBW3Coin_ThrAll',title='MuonRoI Eff Eta wBW3Coin ThrAll;MuonRoI Eta;Efficiency',
428  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
429  myGroup.defineHistogram('roi_bw3coin,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wBW3Coin_ThrAll',title='MuonRoI Eff Phi TGC wBW3Coin ThrAll;MuonRoI Phi;Efficiency',
430  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
431  myGroup.defineHistogram('roi_bw3coin,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wBW3Coin_ThrAll',title='MuonRoI Eff Eta vs Phi wBW3Coin ThrAll;MuonRoI Eta;MuonRoI Phi',
432  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
433  myGroup.defineHistogram('roi_bw3coin,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBW3Coin_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBW3Coin Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
434  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
435  myGroup.defineHistogram('roi_bw3coin,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBW3Coin_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBW3Coin Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
436  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
437 
438  myGroup.defineHistogram('roi_bw3coinveto,roi_eta_tgc;MuonRoI_Eff_Eta_wBW3CoinVeto_ThrAll',title='MuonRoI Eff Eta wBW3CoinVeto ThrAll;MuonRoI Eta;Efficiency',
439  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
440  myGroup.defineHistogram('roi_bw3coinveto,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wBW3CoinVeto_ThrAll',title='MuonRoI Eff Phi TGC wBW3CoinVeto ThrAll;MuonRoI Phi;Efficiency',
441  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
442  myGroup.defineHistogram('roi_bw3coinveto,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wBW3CoinVeto_ThrAll',title='MuonRoI Eff Eta vs Phi wBW3CoinVeto ThrAll;MuonRoI Eta;MuonRoI Phi',
443  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
444  myGroup.defineHistogram('roi_bw3coinveto,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBW3CoinVeto_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBW3CoinVeto Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
445  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
446  myGroup.defineHistogram('roi_bw3coinveto,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBW3CoinVeto_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBW3CoinVeto Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
447  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
448 
449  myGroup.defineHistogram('roi_goodmf,roi_eta_tgc;MuonRoI_Eff_Eta_wGoodMF_ThrAll',title='MuonRoI Eff Eta wGoodMF ThrAll;MuonRoI Eta;Efficiency',
450  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
451  myGroup.defineHistogram('roi_goodmf,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wGoodMF_ThrAll',title='MuonRoI Eff Phi TGC wGoodMF ThrAll;MuonRoI Phi;Efficiency',
452  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
453  myGroup.defineHistogram('roi_goodmf,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wGoodMF_ThrAll',title='MuonRoI Eff Eta vs Phi wGoodMF ThrAll;MuonRoI Eta;MuonRoI Phi',
454  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
455  myGroup.defineHistogram('roi_goodmf,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wGoodMF_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wGoodMF Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
456  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
457  myGroup.defineHistogram('roi_goodmf,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wGoodMF_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wGoodMF Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
458  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
459 
460  myGroup.defineHistogram('roi_badmf,roi_eta_tgc;MuonRoI_Eff_Eta_wBadMF_ThrAll',title='MuonRoI Eff Eta wBadMF ThrAll;MuonRoI Eta;Efficiency',
461  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
462  myGroup.defineHistogram('roi_badmf,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wBadMF_ThrAll',title='MuonRoI Eff Phi TGC wBadMF ThrAll;MuonRoI Phi;Efficiency',
463  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
464  myGroup.defineHistogram('roi_badmf,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wBadMF_ThrAll',title='MuonRoI Eff Eta vs Phi wBadMF ThrAll;MuonRoI Eta;MuonRoI Phi',
465  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
466  myGroup.defineHistogram('roi_badmf,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBadMF_Endcap_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBadMF Endcap ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
467  type='TEfficiency',cutmask='roi_endcap',path=trigPath,xbins=149,xmin=-0.5,xmax=148.5,ybins=97,ymin=-48.5,ymax=48.5)
468  myGroup.defineHistogram('roi_badmf,roi_roiNumber,roi_sector;MuonRoI_Eff_SectorVsRoINumber_wBadMF_Forward_ThrAll',title='MuonRoI Eff SectorVsRoINumber wBadMF Forward ThrAll;RoI Number;MuonRoI Trigger Sector +1 (>0 for A, <0 for C)',
469  type='TEfficiency',cutmask='roi_forward',path=trigPath,xbins=65,xmin=-0.5,xmax=64.5,ybins=49,ymin=-24.5,ymax=24.5)
470 
471 
472 
473  myGroup.defineHistogram('roi_bw3coin;MuonRoI_Evt_BW3Coin',title='MuonRoI BW3Coin Flag;BW3Coin Flag;Number of events',
474  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
475  myGroup.defineHistogram('muon_l1passBW3Coin,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_BW3Coin',title='MuonRoI_Eff_EtaVsPhi_BW3Coin;Offline muon eta; Offline muon phi',
476  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
477  myGroup.defineHistogram('muon_l1passBW3Coin,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_BW3Coin',title='MuonRoI_Eff_Pt_TGC_BW3Coin;Offline muon pT [GeV];Efficiency',
478  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
479  myGroup.defineHistogram('muon_l1passBW3Coin,muon_eta4gev;MuonRoI_Eff_Eta_BW3Coin',title='MuonRoI_Eff_Eta_BW3Coin;Offline muon eta; Efficiency',
480  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
481  myGroup.defineHistogram('muon_l1passBW3Coin,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_BW3Coin',title='MuonRoI_Eff_Phi_TGC_BW3Coin;Offline muon phi; Efficiency',
482  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,ymax=math.pi)
483  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_BW3Coin',type='TH2F',
484  title='MuonRoI Eta vs Phi BW3Coin;MuonRoI Eta;MuonRoI Phi',cutmask='roi_bw3coin',path=trigPath,
485  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
486  myGroup.defineHistogram('roi_thr,roi_bw3coin;MuonRoI_Evt_ThrVsBW3Coin',type='TH2F',
487  title='MuonRoI Thr vs BW3Coin;MuonRoI Thresholds;MuonRoI BW3Coin',cutmask='roi_tgc',path=trigPath,
488  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
489 
490  myGroup.defineHistogram('roi_bw3coinveto;MuonRoI_Evt_BW3CoinVeto',title='MuonRoI BW3CoinVeto Flag;BW3CoinVeto Flag;Number of events',
491  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
492  myGroup.defineHistogram('muon_l1passBW3CoinVeto,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_BW3CoinVeto',title='MuonRoI_Eff_EtaVsPhi_BW3CoinVeto;Offline muon eta; Offline muon phi',
493  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
494  myGroup.defineHistogram('muon_l1passBW3CoinVeto,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_BW3CoinVeto',title='MuonRoI_Eff_Pt_TGC_BW3CoinVeto;Offline muon pT [GeV];Efficiency',
495  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
496  myGroup.defineHistogram('muon_l1passBW3CoinVeto,muon_eta4gev;MuonRoI_Eff_Eta_BW3CoinVeto',title='MuonRoI_Eff_Eta_BW3CoinVeto;Offline muon eta; Efficiency',
497  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
498  myGroup.defineHistogram('muon_l1passBW3CoinVeto,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_BW3CoinVeto',title='MuonRoI_Eff_Phi_TGC_BW3CoinVeto;Offline muon phi; Efficiency',
499  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
500  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_BW3CoinVeto',type='TH2F',
501  title='MuonRoI Eta vs Phi BW3CoinVeto;MuonRoI Eta;MuonRoI Phi',cutmask='roi_bw3coinveto',path=trigPath,
502  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
503  myGroup.defineHistogram('roi_thr,roi_bw3coinveto;MuonRoI_Evt_ThrVsBW3CoinVeto',type='TH2F',
504  title='MuonRoI Thr vs BW3CoinVeto;MuonRoI Thresholds;MuonRoI BW3CoinVeto',cutmask='roi_tgc',path=trigPath,
505  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
506 
507  myGroup.defineHistogram('roi_innercoin;MuonRoI_Evt_InnerCoin',title='MuonRoI InnerCoin Flag;InnerCoin Flag;Number of events',
508  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
509  myGroup.defineHistogram('muon_l1passInnerCoin,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_InnerCoin',title='MuonRoI_Eff_EtaVsPhi_InnerCoin;Offline muon eta; Offline muon phi',
510  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
511  myGroup.defineHistogram('muon_l1passInnerCoin,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_InnerCoin',title='MuonRoI_Eff_Pt_TGC_InnerCoin;Offline muon pT [GeV];Efficiency',
512  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
513  myGroup.defineHistogram('muon_l1passInnerCoin,muon_eta4gev;MuonRoI_Eff_Eta_InnerCoin',title='MuonRoI_Eff_Eta_InnerCoin;Offline muon Eta;Efficiency',
514  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
515  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_InnerCoin',title='MuonRoI_Eff_Phi_TGC_InnerCoin;Offline muon Phi;Efficiency',
516  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
517  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p05eta1p3;MuonRoI_Eff_Phi_TGC_1p05eta1p3_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3_InnerCoin;Offline muon Phi;Efficiency',
518  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
519  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p05eta1p3A;MuonRoI_Eff_Phi_TGC_1p05eta1p3A_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3A_InnerCoin;Offline muon Phi;Efficiency',
520  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
521  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p05eta1p3C;MuonRoI_Eff_Phi_TGC_1p05eta1p3C_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3C_InnerCoin;Offline muon Phi;Efficiency',
522  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
523  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p3eta2p4;MuonRoI_Eff_Phi_TGC_1p3eta2p4_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4_InnerCoin;Offline muon Phi;Efficiency',
524  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
525  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p3eta2p4A;MuonRoI_Eff_Phi_TGC_1p3eta2p4A_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4A_InnerCoin;Offline muon Phi;Efficiency',
526  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
527  myGroup.defineHistogram('muon_l1passInnerCoin,muon_phi4gev_1p3eta2p4C;MuonRoI_Eff_Phi_TGC_1p3eta2p4C_InnerCoin',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4C_InnerCoin;Offline muon Phi;Efficiency',
528  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
529  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_InnerCoin',type='TH2F',
530  title='MuonRoI Eta vs Phi InnerCoin;MuonRoI Eta;MuonRoI Phi',cutmask='roi_innercoin',path=trigPath,
531  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
532  myGroup.defineHistogram('roi_thr,roi_innercoin;MuonRoI_Evt_ThrVsInnerCoin',type='TH2F',
533  title='MuonRoI Thr vs InnerCoin;MuonRoI Thresholds;MuonRoI InnerCoin',cutmask='roi_tgc',path=trigPath,
534  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
535 
536  myGroup.defineHistogram('roi_lumiBlock,roi_phi_sideA;MuonRoI_Evt_PhiVsLB_wInnerCoinEtaUpTo1p3_sideA',title='MuonRoI PhiVsLB wInnerCoinEtaUpTo1p3 sideA;Luminosity block;MuonRoI Phi',
537  type='TH2F',cutmask='roi_wInnerCoinEtaUpTo1p3',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
538  myGroup.defineHistogram('roi_lumiBlock,roi_phi_sideA;MuonRoI_Evt_PhiVsLB_wInnerCoinEtaBeyond1p3_sideA',title='MuonRoI PhiVsLB wInnerCoinEtaBeyond1p3 sideA;Luminosity block;MuonRoI Phi',
539  type='TH2F',cutmask='roi_wInnerCoinEtaBeyond1p3',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
540  myGroup.defineHistogram('roi_lumiBlock,roi_phi_sideC;MuonRoI_Evt_PhiVsLB_wInnerCoinEtaUpTo1p3_sideC',title='MuonRoI PhiVsLB wInnerCoinEtaUpTo1p3 sideC;Luminosity block;MuonRoI Phi',
541  type='TH2F',cutmask='roi_wInnerCoinEtaUpTo1p3',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
542  myGroup.defineHistogram('roi_lumiBlock,roi_phi_sideC;MuonRoI_Evt_PhiVsLB_wInnerCoinEtaBeyond1p3_sideC',title='MuonRoI PhiVsLB wInnerCoinEtaBeyond1p3 sideC;Luminosity block;MuonRoI Phi',
543  type='TH2F',cutmask='roi_wInnerCoinEtaBeyond1p3',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
544 
545  myGroup.defineHistogram('roi_lumiBlock,roi_phi_wBW3Coin_sideA;MuonRoI_Evt_PhiVsLB_wBW3Coin_Endcap_sideA',title='MuonRoI PhiVsLB wBW3Coin Endcap sideA;Luminosity block;MuonRoI Phi',
546  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
547  myGroup.defineHistogram('roi_lumiBlock,roi_phi_wBW3Coin_sideA;MuonRoI_Evt_PhiVsLB_wBW3Coin_Forward_sideA',title='MuonRoI PhiVsLB wBW3Coin Forward sideA;Luminosity block;MuonRoI Phi',
548  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
549  myGroup.defineHistogram('roi_lumiBlock,roi_phi_wBW3Coin_sideC;MuonRoI_Evt_PhiVsLB_wBW3Coin_Endcap_sideC',title='MuonRoI PhiVsLB wBW3Coin Endcap sideC;Luminosity block;MuonRoI Phi',
550  type='TH2F',cutmask='roi_endcap',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
551  myGroup.defineHistogram('roi_lumiBlock,roi_phi_wBW3Coin_sideC;MuonRoI_Evt_PhiVsLB_wBW3Coin_Forward_sideC',title='MuonRoI PhiVsLB wBW3Coin Forward sideC;Luminosity block;MuonRoI Phi',
552  type='TH2F',cutmask='roi_forward',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
553 
554  myGroup.defineHistogram('roi_innveto;MuonRoI_Evt_InnerCoinVeto',title='MuonRoI InnerCoinVeto Flag;InnerCoinVeto Flag;Number of events',
555  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
556  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_InnerCoinVeto',title='MuonRoI_Eff_EtaVsPhi_InnerCoinVeto;Offline muon eta; Offline muon phi',
557  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
558  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_InnerCoinVeto',title='MuonRoI_Eff_Pt_TGC_InnerCoinVeto;Offline muon pT [GeV];Efficiency',
559  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
560  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_eta4gev;MuonRoI_Eff_Eta_InnerCoinVeto',title='MuonRoI_Eff_Eta_InnerCoinVeto;Offline muon Eta;Efficiency',
561  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
562  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_InnerCoinVeto;Offline muon Phi;Efficiency',
563  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
564  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p05eta1p3;MuonRoI_Eff_Phi_TGC_1p05eta1p3_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3_InnerCoinVeto;Offline muon Phi;Efficiency',
565  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
566  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p05eta1p3A;MuonRoI_Eff_Phi_TGC_1p05eta1p3A_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3A_InnerCoinVeto;Offline muon Phi;Efficiency',
567  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
568  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p05eta1p3C;MuonRoI_Eff_Phi_TGC_1p05eta1p3C_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p05eta1p3C_InnerCoinVeto;Offline muon Phi;Efficiency',
569  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
570  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p3eta2p4;MuonRoI_Eff_Phi_TGC_1p3eta2p4_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4_InnerCoinVeto;Offline muon Phi;Efficiency',
571  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
572  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p3eta2p4A;MuonRoI_Eff_Phi_TGC_1p3eta2p4A_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4A_InnerCoinVeto;Offline muon Phi;Efficiency',
573  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
574  myGroup.defineHistogram('muon_l1passInnerCoinVeto,muon_phi4gev_1p3eta2p4C;MuonRoI_Eff_Phi_TGC_1p3eta2p4C_InnerCoinVeto',title='MuonRoI_Eff_Phi_TGC_1p3eta2p4C_InnerCoinVeto;Offline muon Phi;Efficiency',
575  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
576  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_InnerCoinVeto',type='TH2F',
577  title='MuonRoI Eta vs Phi InnerCoinVeto;MuonRoI Eta;MuonRoI Phi',cutmask='roi_innveto',path=trigPath,
578  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
579  myGroup.defineHistogram('roi_thr,roi_innveto;MuonRoI_Evt_ThrVsInnerCoinVeto',type='TH2F',
580  title='MuonRoI Thr vs InnerCoinVeto;MuonRoI Thresholds;MuonRoI InnerCoinVeto',cutmask='roi_tgc',path=trigPath,
581  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
582 
583  myGroup.defineHistogram('roi_goodmf;MuonRoI_Evt_GoodMF',title='MuonRoI GoodMF Flag;GoodMF Flag;Number of events',
584  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
585  myGroup.defineHistogram('muon_l1passGoodMF,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_GoodMF',title='MuonRoI_Eff_EtaVsPhi_GoodMF;Offline muon eta; Offline muon phi',
586  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
587  myGroup.defineHistogram('muon_l1passGoodMF,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_GoodMF',title='MuonRoI_Eff_Pt_TGC_GoodMF;Offline muon pT [GeV];Efficiency',
588  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
589  myGroup.defineHistogram('muon_l1passGoodMF,muon_eta4gev;MuonRoI_Eff_Eta_GoodMF',title='MuonRoI_Eff_Eta_GoodMF;Offline muon eta; Efficiency',
590  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
591  myGroup.defineHistogram('muon_l1passGoodMF,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_GoodMF',title='MuonRoI_Eff_Phi_TGC_GoodMF;Offline muon phi; Efficiency',
592  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
593  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_GoodMF',type='TH2F',
594  title='MuonRoI Eta vs Phi GoodMF;MuonRoI Eta;MuonRoI Phi',cutmask='roi_goodmf',path=trigPath,
595  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
596  myGroup.defineHistogram('roi_thr,roi_goodmf;MuonRoI_Evt_ThrVsGoodMF',type='TH2F',
597  title='MuonRoI Thr vs GoodMF;MuonRoI Thresholds;MuonRoI GoodMF',cutmask='roi_tgc',path=trigPath,
598  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
599 
600  myGroup.defineHistogram('roi_badmf;MuonRoI_Evt_BadMF',title='MuonRoI BadMF Flag;BadMF Flag;Number of events',
601  cutmask='roi_tgc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
602  myGroup.defineHistogram('muon_l1passBadMF,muon_eta4gev,muon_phi4gev;MuonRoI_Eff_EtaVsPhi_BadMF',title='MuonRoI_Eff_EtaVsPhi_BadMF;Offline muon eta; Offline muon phi',
603  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
604  myGroup.defineHistogram('muon_l1passBadMF,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_BadMF',title='MuonRoI_Eff_Pt_TGC_BadMF;Offline muon pT [GeV];Efficiency',
605  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
606  myGroup.defineHistogram('muon_l1passBadMF,muon_eta4gev;MuonRoI_Eff_Eta_BadMF',title='MuonRoI_Eff_Eta_BadMF;Offline muon eta; Efficiency',
607  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
608  myGroup.defineHistogram('muon_l1passBadMF,muon_phi4gev_tgc;MuonRoI_Eff_Phi_TGC_BadMF',title='MuonRoI_Eff_Phi_TGC_BadMF;Offline muon phi; Efficiency',
609  cutmask='muon_l1passThr1TGC',type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
610  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_BadMF',type='TH2F',
611  title='MuonRoI Eta vs Phi BadMF;MuonRoI Eta;MuonRoI Phi',cutmask='roi_badmf',path=trigPath,
612  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
613  myGroup.defineHistogram('roi_thr,roi_badmf;MuonRoI_Evt_ThrVsBadMF',type='TH2F',
614  title='MuonRoI Thr vs BadMF;MuonRoI Thresholds;MuonRoI BadMF',cutmask='roi_tgc',path=trigPath,
615  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
616 
617  myGroup.defineHistogram('roi_ismorecand;MuonRoI_Evt_RpcIsMoreCandInRoI',title='MuonRoI RpcIsMoreCandInRoI Flag;RpcIsMoreCandInRoI Flag;Number of events',
618  cutmask='roi_rpc',path=trigPath,xbins=2,xmin=-0.5,xmax=1.5)
619  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_RpcIsMoreCandInRoI',type='TH2F',
620  title='MuonRoI Eta vs Phi RpcIsMoreCandInRoI;MuonRoI Eta;MuonRoI Phi',cutmask='roi_ismorecand',path=trigPath,
621  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
622  myGroup.defineHistogram('roi_thr,roi_ismorecand;MuonRoI_Evt_ThrVsRpcIsMoreCandInRoI',type='TH2F',
623  title='MuonRoI Thr vs RpcIsMoreCandInRoI;MuonRoI Thresholds;MuonRoI RpcIsMoreCandInRoI',cutmask='roi_rpc',path=trigPath,
624  xbins=20,xmin=-0.5,xmax=19.5,ybins=2,ymin=-0.5,ymax=1.5)
625 
626  myGroup.defineHistogram('roi_thr;MuonRoI_Evt_Thresholds_RPC',title='MuonRoI Thresholds RPC;MuonRoI Threshold number;Number of events',
627  cutmask='roi_rpc',path=trigPath,xbins=20,xmin=-0.5,xmax=19.5)
628  myGroup.defineHistogram('roi_thr;MuonRoI_Evt_Thresholds_TGC',title='MuonRoI Thresholds TGC;MuonRoI Threshold number;Number of events',
629  cutmask='roi_tgc',path=trigPath,xbins=20,xmin=-0.5,xmax=19.5)
630 
631  myGroup.defineHistogram('roi_lumiBlock,roi_phi_barrel;MuonRoI_Evt_PhiVsLB_Barrel_sideA',title='MuonRoI PhiVsLB Barrel sideA;Luminosity block;MuonRoI Phi',type='TH2F',
632  cutmask='roi_sideA',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=32,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
633  myGroup.defineHistogram('roi_lumiBlock,roi_phi_barrel;MuonRoI_Evt_PhiVsLB_Barrel_sideC',title='MuonRoI PhiVsLB Barrel sideC;Luminosity block;MuonRoI Phi',type='TH2F',
634  cutmask='roi_sideC',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=32,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
635 
636  myGroup.defineHistogram('roi_lumiBlock,roi_phi_endcap;MuonRoI_Evt_PhiVsLB_Endcap_sideA',title='MuonRoI PhiVsLB Endcap sideA;Luminosity block;MuonRoI Phi',type='TH2F',
637  cutmask='roi_sideA',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
638  myGroup.defineHistogram('roi_lumiBlock,roi_phi_endcap;MuonRoI_Evt_PhiVsLB_Endcap_sideC',title='MuonRoI PhiVsLB Endcap sideC;Luminosity block;MuonRoI Phi',type='TH2F',
639  cutmask='roi_sideC',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=48,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
640 
641  myGroup.defineHistogram('roi_lumiBlock,roi_phi_forward;MuonRoI_Evt_PhiVsLB_Forward_sideA',title='MuonRoI PhiVsLB Forward sideA;Luminosity block;MuonRoI Phi',type='TH2F',
642  cutmask='roi_sideA',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
643  myGroup.defineHistogram('roi_lumiBlock,roi_phi_forward;MuonRoI_Evt_PhiVsLB_Forward_sideC',title='MuonRoI PhiVsLB Forward sideC;Luminosity block;MuonRoI Phi',type='TH2F',
644  cutmask='roi_sideC',path=trigPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=24,ymin=-math.pi,ymax=math.pi,opt='kAddBinsDynamically', merge='merge')
645 
646 
647  for n in range(1,16):
648 
649  myGroup.defineHistogram('roi_eta_wInnerCoin;MuonRoI_Evt_Eta_wInnerCoin_Thr%02d' % n,title='MuonRoI Eta wInnerCoin Thr%02d;MuonRoI Eta;Number of events' % n,
650  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
651  myGroup.defineHistogram('roi_eta_wBW3Coin;MuonRoI_Evt_Eta_wBW3Coin_Thr%02d' % n,title='MuonRoI Eta wBW3Coin Thr%02d;MuonRoI Eta;Number of events' % n,
652  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
653 
654  myGroup.defineHistogram('roi_eta_wInnerCoinVeto;MuonRoI_Evt_Eta_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Eta wInnerCoinVeto Thr%02d;MuonRoI Eta;Number of events' % n,
655  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
656  myGroup.defineHistogram('roi_eta_wBW3CoinVeto;MuonRoI_Evt_Eta_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Eta wBW3CoinVeto Thr%02d;MuonRoI Eta;Number of events' % n,
657  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
658 
659  myGroup.defineHistogram('roi_phi_wInnerCoin;MuonRoI_Evt_Phi_TGC_wInnerCoin_Thr%02d' % n,title='MuonRoI Phi TGC wInnerCoin Thr%02d;MuonRoI Phi;Number of events' % n,
660  cutmask='thrmask'+str(n),path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
661  myGroup.defineHistogram('roi_phi_wBW3Coin;MuonRoI_Evt_Phi_TGC_wBW3Coin_Thr%02d' % n,title='MuonRoI Phi TGC wBW3Coin Thr%02d;MuonRoI Phi;Number of events' % n,
662  cutmask='thrmask'+str(n),path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
663 
664  myGroup.defineHistogram('roi_phi_wInnerCoinVeto;MuonRoI_Evt_Phi_TGC_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Phi TGC wInnerCoinVeto Thr%02d;MuonRoI Phi;Number of events' % n,
665  cutmask='thrmask'+str(n),path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
666  myGroup.defineHistogram('roi_phi_wBW3CoinVeto;MuonRoI_Evt_Phi_TGC_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Phi TGC wBW3CoinVeto Thr%02d;MuonRoI Phi;Number of events' % n,
667  cutmask='thrmask'+str(n),path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
668 
669  myGroup.defineHistogram('roi_eta_wInnerCoin,roi_phi_wInnerCoin;MuonRoI_Evt_EtaVsPhi_wInnerCoin_Thr%02d' % n,title='MuonRoI Eta vs Phi wInnerCoin Thr%02d;MuonRoI Eta;Number of events' % n,
670  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi,type='TH2F')
671  myGroup.defineHistogram('roi_eta_wBW3Coin,roi_phi_wBW3Coin;MuonRoI_Evt_EtaVsPhi_wBW3Coin_Thr%02d' % n,title='MuonRoI Eta vs Phi wBW3Coin Thr%02d;MuonRoI Eta;Number of events' % n,
672  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi,type='TH2F')
673 
674  myGroup.defineHistogram('roi_eta_wInnerCoinVeto,roi_phi_wInnerCoinVeto;MuonRoI_Evt_EtaVsPhi_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Eta vs Phi wInnerCoinVeto Thr%02d;MuonRoI Eta;Number of events' % n,
675  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi,type='TH2F')
676  myGroup.defineHistogram('roi_eta_wBW3CoinVeto,roi_phi_wBW3CoinVeto;MuonRoI_Evt_EtaVsPhi_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Eta vs Phi wBW3CoinVeto Thr%02d;MuonRoI Eta;Number of events' % n,
677  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi,type='TH2F')
678 
679  myGroup.defineHistogram('roi_eta;MuonRoI_Evt_Eta_Thr%02d' % n,title='MuonRoI Eta Thr%02d;MuonRoI Eta;Number of events' % n,
680  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
681  myGroup.defineHistogram('roi_eta_rpc;MuonRoI_Evt_Eta_RPC_Thr%02d' % n,title='MuonRoI Eta RPC Thr%02d;MuonRoI Eta;Number of events' % n,
682  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
683  myGroup.defineHistogram('roi_eta_tgc;MuonRoI_Evt_Eta_TGC_Thr%02d' % n,title='MuonRoI Eta TGC Thr%02d;MuonRoI Eta;Number of events' % n,
684  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
685  myGroup.defineHistogram('roi_phi_rpc;MuonRoI_Evt_Phi_RPC_Thr%02d' % n,title='MuonRoI Phi RPC Thr%02d;MuonRoI Phi;Number of events' % n,
686  cutmask='thrmask'+str(n),path=trigPath,xbins=32,xmin=-math.pi,xmax=math.pi)
687  myGroup.defineHistogram('roi_phi_tgc;MuonRoI_Evt_Phi_TGC_Thr%02d' % n,title='MuonRoI Phi TGC Thr%02d;MuonRoI Phi;Number of events' % n,
688  cutmask='thrmask'+str(n),path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
689  myGroup.defineHistogram('roi_eta,roi_phi;MuonRoI_Evt_EtaVsPhi_Thr%02d' % n,type='TH2F',title='MuonRoI Eta vs Phi Thr%02d;MuonRoI Eta;MuonRoI Phi' % n,
690  cutmask='thrmask'+str(n),path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
691 
692  myGroup.defineHistogram('roi_innercoin,roi_eta_tgc;MuonRoI_Eff_Eta_wInnerCoin_Thr%02d' % n,title='MuonRoI Eff Eta wInnerCoin Thr%02d;MuonRoI Eta;Efficiency' % n,
693  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
694  myGroup.defineHistogram('roi_innercoin,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wInnerCoin_Thr%02d' % n,title='MuonRoI Eff Phi TGC wInnerCoin Thr%02d;MuonRoI Phi;Efficiency' % n,
695  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
696  myGroup.defineHistogram('roi_innercoin,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wInnerCoin_Thr%02d' % n,title='MuonRoI Eff Eta vs Phi wInnerCoin Thr%02d;MuonRoI Eta;MuonRoI Phi' % n,
697  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
698 
699  myGroup.defineHistogram('roi_innveto,roi_eta_tgc;MuonRoI_Eff_Eta_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Eff Eta wInnerCoinVeto Thr%02d;MuonRoI Eta;Efficiency' % n,
700  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
701  myGroup.defineHistogram('roi_innveto,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Eff Phi TGC wInnerCoinVeto Thr%02d;MuonRoI Phi;Efficiency' % n,
702  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
703  myGroup.defineHistogram('roi_innveto,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wInnerCoinVeto_Thr%02d' % n,title='MuonRoI Eff Eta vs Phi wInnerCoinVeto Thr%02d;MuonRoI Eta;MuonRoI Phi' % n,
704  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
705 
706  myGroup.defineHistogram('roi_bw3coin,roi_eta_tgc;MuonRoI_Eff_Eta_wBW3Coin_Thr%02d' % n,title='MuonRoI Eff Eta wBW3Coin Thr%02d;MuonRoI Eta;Efficiency' % n,
707  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
708  myGroup.defineHistogram('roi_bw3coin,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wBW3Coin_Thr%02d' % n,title='MuonRoI Eff Phi TGC wBW3Coin Thr%02d;MuonRoI Phi;Efficiency' % n,
709  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
710  myGroup.defineHistogram('roi_bw3coin,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wBW3Coin_Thr%02d' % n,title='MuonRoI Eff Eta vs Phi wBW3Coin Thr%02d;MuonRoI Eta;MuonRoI Phi' % n,
711  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
712 
713  myGroup.defineHistogram('roi_bw3coinveto,roi_eta_tgc;MuonRoI_Eff_Eta_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Eff Eta wBW3CoinVeto Thr%02d;MuonRoI Eta;Efficiency' % n,
714  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
715  myGroup.defineHistogram('roi_bw3coinveto,roi_phi_tgc;MuonRoI_Eff_Phi_TGC_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Eff Phi TGC wBW3CoinVeto Thr%02d;MuonRoI Phi;Efficiency' % n,
716  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
717  myGroup.defineHistogram('roi_bw3coinveto,roi_eta_tgc,roi_phi_tgc;MuonRoI_Eff_EtaVsPhi_wBW3CoinVeto_Thr%02d' % n,title='MuonRoI Eff Eta vs Phi wBW3CoinVeto Thr%02d;MuonRoI Eta;MuonRoI Phi' % n,
718  cutmask='thrmask'+str(n),type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
719 
720 
721  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_rpc;MuonRoI_Eff_Pt_RPC_Thr%02d' % (n,n),title='MuonRoI_Eff_Pt_RPC_Thr%02d;Offline muon pT [GeV];Efficiency' % n,
722  type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
723  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_Thr%02d' % (n,n),title='MuonRoI_Eff_Pt_TGC_Thr%02d;Offline muon pT [GeV];Efficiency' % n,
724  type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
725  myGroup.defineHistogram('muon_l1passThr%d,muon_phi_rpc;MuonRoI_Eff_Phi_RPC_Thr%02d' % (n,n),title='MuonRoI_Eff_Phi_RPC_Thr%02d;Offline muon phi [rad.];Efficiency' % n,
726  type='TEfficiency',path=trigPath,xbins=32,xmin=-math.pi,xmax=math.pi)
727  myGroup.defineHistogram('muon_l1passThr%d,muon_phi_tgc;MuonRoI_Eff_Phi_TGC_Thr%02d' % (n,n),title='MuonRoI_Eff_Phi_TGC_Thr%02d;Offline muon phi [rad.];Efficiency' % n,
728  type='TEfficiency',path=trigPath,xbins=48,xmin=-math.pi,xmax=math.pi)
729  myGroup.defineHistogram('muon_l1passThr%d,muon_eta;MuonRoI_Eff_Eta_Thr%02d' % (n,n),title='MuonRoI_Eff_Eta_Thr%02d;Offline muon eta;Efficiency' % n,
730  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5)
731  myGroup.defineHistogram('muon_l1passThr%d,muon_eta,muon_phi;MuonRoI_Eff_EtaVsPhi_Thr%02d' % (n,n),title='MuonRoI_Eff_EtaVsPhi_Thr%02d;Offline muon eta; Offline muon phi' % n,
732  type='TEfficiency',path=trigPath,xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
733 
734  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcA;MuonRoI_Eff_PtVsPhi_TGC_Endcap_sideA_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_Endcap_sideA_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
735  cutmask='muon_endcap',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
736  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcA;MuonRoI_Eff_PtVsPhi_TGC_Forward_sideA_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_Forward_sideA_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
737  cutmask='muon_forward',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=24,ymin=-math.pi,ymax=math.pi)
738  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcC;MuonRoI_Eff_PtVsPhi_TGC_Endcap_sideC_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_Endcap_sideC_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
739  cutmask='muon_endcap',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
740  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcC;MuonRoI_Eff_PtVsPhi_TGC_Forward_sideC_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_Forward_sideC_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
741  cutmask='muon_forward',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=24,ymin=-math.pi,ymax=math.pi)
742 
743  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_ChargePos_Thr%02d' % (n,n),title='MuonRoI_Eff_Pt_TGC_ChargePos_Thr%02d;Offline muon pT [GeV];Efficiency' % n,
744  cutmask='muon_chargePos',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
745  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc;MuonRoI_Eff_Pt_TGC_ChargeNeg_Thr%02d' % (n,n),title='MuonRoI_Eff_Pt_TGC_ChargeNeg_Thr%02d;Offline muon pT [GeV];Efficiency' % n,
746  cutmask='muon_chargeNeg',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50)
747 
748  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcA;MuonRoI_Eff_PtVsPhi_TGC_ChargePos_sideA_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_ChargePos_sideA_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
749  cutmask='muon_chargePos',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
750  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcA;MuonRoI_Eff_PtVsPhi_TGC_ChargeNeg_sideA_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_ChargeNeg_sideA_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
751  cutmask='muon_chargeNeg',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
752 
753  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcC;MuonRoI_Eff_PtVsPhi_TGC_ChargePos_sideC_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_ChargePos_sideC_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
754  cutmask='muon_chargePos',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
755  myGroup.defineHistogram('muon_l1passThr%d,muon_pt_tgc,muon_phi0gev_tgcC;MuonRoI_Eff_PtVsPhi_TGC_ChargeNeg_sideC_Thr%02d' % (n,n),title='MuonRoI_Eff_PtVsPhi_TGC_ChargeNeg_sideC_Thr%02d;Offline muon pT [GeV];Offline muon phi;Efficiency' % n,
756  cutmask='muon_chargeNeg',type='TEfficiency',path=trigPath,xbins=50,xmin=0,xmax=50,ybins=48,ymin=-math.pi,ymax=math.pi)
757 
758 
759 
760 
761 
762  label_ieta_sw = []
763  label_iphi_sw = []
764  label_glbl_index_sw = []
765  for i in range(4) : label_ieta_sw.append('')
766  for i in range(24) : label_iphi_sw.append('')
767  for i in range(96) : label_glbl_index_sw.append('')
768  for eta in range(2):
769  for sector in range(0,16):
770  for phi in range(0,25):
771  for lay in range(1,3):
772  if eta==0 and sector!=0:continue
773  if eta==1 and phi>2:continue
774  if eta==1 and sector==7 and phi==0:continue
775  if eta==1 and sector==11 and phi==0:continue
776  if eta==1 and sector==15 and phi==0:continue
777  if eta==1 and sector%2!=1:continue
778  eta_index = eta * 2 + lay
779  if eta==0:
780  phi_index = phi
781  else:
782  phi_index = phi + int(sector / 2) + sector
783  glbl_index = eta * 24*2 + (phi_index - 1) * 2 + lay
784  if eta==0:
785  label_ieta_sw[eta_index-1] = '%s%dL%d' % ('F' if eta==0 else 'E',eta,lay)
786  label_iphi_sw[phi_index-1] = 'F%df%d' % (sector,phi)
787  label_glbl_index_sw[glbl_index-1] = 'F%df%d%s%dL%d' % (sector,phi,'F' if eta==0 else 'E',eta,lay)
788  else:
789  label_ieta_sw[eta_index-1] = '%s%dL%d' % ('F' if eta==0 else 'E',eta,lay)
790  if lay==1:
791  label_iphi_sw[phi_index-1] = 'E%df%d(%s)' % (sector,phi,label_iphi_sw[phi_index-1])
792  label_glbl_index_sw[glbl_index-1] = 'E%df%d%s%dL%d' % (sector,phi,'F' if eta==0 else 'E',eta,lay)
793 
794  label_ieta_bw1 = []
795  label_iphi_bw1 = []
796  label_glbl_index_bw1 = []
797  label_ieta_bw23 = []
798  label_iphi_bw23 = []
799  label_glbl_index_bw23 = []
800  for i in range(15) : label_ieta_bw1.append('')
801  for i in range(48) : label_iphi_bw1.append('')
802  for i in range(720) : label_glbl_index_bw1.append('')
803  for i in range(12) : label_ieta_bw23.append('')
804  for i in range(48) : label_iphi_bw23.append('')
805  for i in range(576) : label_glbl_index_bw23.append('')
806  for eta in range(6):
807  for sector in range(1,13):
808  for phi in range(4):
809  for lay in range(1,4):
810  for station in range(1,3):
811  if station==1 and eta==5: continue
812  if station!=1 and lay==3: continue
813  nlay = 3 if station==1 else 2
814  eta_index = eta * nlay + lay
815  phi_index = (sector - 1) * 4 + phi + 1
816  glbl_index = eta * 48*nlay + (phi_index - 1) * nlay + lay
817  if station==1:
818  label_ieta_bw1[eta_index-1] = '%s%dL%d' % ('F' if eta==0 else 'E',eta,lay)
819  label_iphi_bw1[phi_index-1] = '%df%d' % (sector,phi)
820  label_glbl_index_bw1[glbl_index-1] = '%df%d%s%dL%d' % (sector,phi,'F' if eta==0 else 'E',eta,lay)
821  else:
822  label_ieta_bw23[eta_index-1] = '%s%dL%d' % ('F' if eta==0 else 'E',eta,lay)
823  label_iphi_bw23[phi_index-1] = '%df%d' % (sector,phi)
824  label_glbl_index_bw23[glbl_index-1] = '%df%d%s%dL%d' % (sector,phi,'F' if eta==0 else 'E',eta,lay)
825 
826  label_bw24sectors = []
827  for i in range(25) : label_bw24sectors.append('')
828  for side in ['A','C']:
829  for sector in range(1,13):
830  index = 13 + sector if side=='A' else 13 - sector
831  label_bw24sectors[index-1] = '%s%02d' % (side,sector)
832 
833 
834  myGroupHit = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor_TgcHit', mainDir)
835  hitPath = 'Hit/'
836  hitEffPath = 'HitEff/'
837  myGroupHit.defineHistogram('hit_n;TgcPrd_nHits',title='TgcPrd_nHits;Number of hits;Number of events',
838  path=hitPath,xbins=100,xmin=0,xmax=1000,opt='kAddBinsDynamically', merge='merge')
839  myGroupHit.defineHistogram('hit_bcmask;TgcPrd_Timing',title='TgcPrd_Timing;Timing (BC bit mask);Number of events',
840  path=hitPath,xbins=8,xmin=-0.5,xmax=7.5,xlabels=['Undef','Next-only','Curr-only','Curr&Next','Prev-only','Prev&Next','Prev&Curr','Prev&Curr&Next'])
841 
842  for opt in ['', '_wTrack']:
843  titlesuffix=opt
844  if opt=='':titlesuffix='_All'
845  myGroupHit.defineHistogram('mon_lb,hit_bw24sectors'+opt+';TgcPrd_BWSectorsVsLB'+titlesuffix,
846  title='BWSectorsVsLB'+titlesuffix+';Luminosity block;',type='TH2F',
847  path=hitPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors,opt='kAddBinsDynamically', merge='merge')
848  myGroupHit.defineHistogram('mon_lb,hit_bw24sectors_strip'+opt+';TgcPrd_BWSectorsVsLB_Strip'+titlesuffix,
849  title='BWSectorsVsLB_Strip'+titlesuffix+';Luminosity block;',type='TH2F',
850  path=hitPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors,opt='kAddBinsDynamically', merge='merge')
851  myGroupHit.defineHistogram('mon_lb,hit_bw24sectors_wire'+opt+';TgcPrd_BWSectorsVsLB_Wire'+titlesuffix,
852  title='BWSectorsVsLB_Wire'+titlesuffix+';Luminosity block;',type='TH2F',
853  path=hitPath,xbins=100,xmin=-0.5,xmax=99.5,ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors,opt='kAddBinsDynamically', merge='merge')
854  myGroupHit.defineHistogram('hit_bw24sectors'+opt+',hit_bwtiming'+opt+';TgcPrd_BWSectorsVsTiming'+titlesuffix,
855  title='BWSectorsVsTiming'+titlesuffix+';;Timing',type='TH2F',
856  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
857  myGroupHit.defineHistogram('hit_bw24sectors_strip'+opt+',hit_bwtiming_strip'+opt+';TgcPrd_BWSectorsVsTiming_Strip'+titlesuffix,
858  title='BWSectorsVsTiming_Strip'+titlesuffix+';;Timing',type='TH2F',
859  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
860  myGroupHit.defineHistogram('hit_bw24sectors_wire'+opt+',hit_bwtiming_wire'+opt+';TgcPrd_BWSectorsVsTiming_Wire'+titlesuffix,
861  title='BWSectorsVsTiming_Wire'+titlesuffix+';;Timing',type='TH2F',
862  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
863  myGroupHit.defineHistogram('hit_bwfulleta'+opt+',hit_bw24sectors'+opt+';TgcPrd_BWSectorsVsEta'+titlesuffix,
864  title='BWSectorsVsEta'+titlesuffix+';;',type='TH2F',
865  path=hitPath,xbins=6,xmin=-0.5,xmax=5.5,xlabels=['F','E1','E2','E3','E4','E5'],ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors)
866  myGroupHit.defineHistogram('hit_bwfulleta_strip'+opt+',hit_bw24sectors_strip'+opt+';TgcPrd_BWSectorsVsEta_Strip'+titlesuffix,
867  title='BWSectorsVsEta_Strip'+titlesuffix+';;',type='TH2F',
868  path=hitPath,xbins=6,xmin=-0.5,xmax=5.5,xlabels=['F','E1','E2','E3','E4','E5'],ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors)
869  myGroupHit.defineHistogram('hit_bwfulleta_wire'+opt+',hit_bw24sectors_wire'+opt+';TgcPrd_BWSectorsVsEta_Wire'+titlesuffix,
870  title='BWSectorsVsEta_Wire'+titlesuffix+';;',type='TH2F',
871  path=hitPath,xbins=6,xmin=-0.5,xmax=5.5,xlabels=['F','E1','E2','E3','E4','E5'],ybins=25,ymin=-12.5,ymax=12.5,ylabels=label_bw24sectors)
872 
873 
874 
875  myGroupHit.defineHistogram('hit_bcmask_bw24sectors_All,hit_bcmask_for_bw24sectors_All;TgcPrd_BWSectorsVsBCMask_All',
876  title='BWSectorsVsBCMask_All;;',type='TH2F',
877  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=8,ymin=-0.5,ymax=7.5,ylabels=['Undef','Next-only','Curr-only','Curr&Next','Prev-only','Prev&Next','Prev&Curr','Prev&Curr&Next'])
878  myGroupHit.defineHistogram('hit_bcmask_bw24sectors_Wire,hit_bcmask_for_bw24sectors_Wire;TgcPrd_BWSectorsVsBCMask_Wire',
879  title='BWSectorsVsBCMask_Wire;;',type='TH2F',
880  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=8,ymin=-0.5,ymax=7.5,ylabels=['Undef','Next-only','Curr-only','Curr&Next','Prev-only','Prev&Next','Prev&Curr','Prev&Curr&Next'])
881  myGroupHit.defineHistogram('hit_bcmask_bw24sectors_Strip,hit_bcmask_for_bw24sectors_Strip;TgcPrd_BWSectorsVsBCMask_Strip',
882  title='BWSectorsVsBCMask_Strip;;',type='TH2F',
883  path=hitPath,xbins=25,xmin=-12.5,xmax=12.5,xlabels=label_bw24sectors,ybins=8,ymin=-0.5,ymax=7.5,ylabels=['Undef','Next-only','Curr-only','Curr&Next','Prev-only','Prev&Next','Prev&Curr','Prev&Curr&Next'])
884 
885 
886 
887  for side in ['A', 'C']:# side-A or side-C
888  for station in range(1,5):# M1,2,3,4
889  for s_or_w in ['S','W']:# strip or wire
890  name = "%sM%02i%s" % (side,station,s_or_w) # e.g. AM01W
891  nbins = 10
892  label_glbl_index = []
893  if station==1:
894  nbins = 720
895  label_glbl_index = label_glbl_index_bw1
896  elif station==2 or station==3:
897  nbins = 576
898  label_glbl_index = label_glbl_index_bw23
899  else: # station==4
900  nbins = 96
901  label_glbl_index = label_glbl_index_sw
902 
903  x_name = "mon_lb"
904  y_name = "hit_glblphi_%s" % (name)
905  objname = "TgcPrd_GlobalChamberIndexVsLB_%s" % (name)
906  title = "GlobalChamberIndexVsLB_%s" % (name)
907  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
908  title=title+';Luminosity block;',type='TH2F',
909  path=hitPath,xbins=100,xmin=-0.5,xmax=99.5,
910  ybins=nbins,ymin=0.5,ymax=nbins+0.5,ylabels=label_glbl_index,opt='kAddBinsDynamically', merge='merge')
911  x_name = "hit_glblphi_%s" % (name)
912  y_name = "hit_bunch_%s" % (name)
913  objname = "TgcPrd_GlobalChamberIndexVsTiming_All_%s" % (name)
914  title = "GlobalChamberIndexVsTiming_All_%s" % (name)
915  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
916  title=title+';;Timing',type='TH2F',
917  path=hitPath,xbins=nbins,xmin=0.5,xmax=nbins+0.5,xlabels=label_glbl_index,
918  ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
919  x_name = "hit_glblphi_wTrack_%s" % (name)
920  y_name = "hit_bunch_wTrack_%s" % (name)
921  objname = "TgcPrd_GlobalChamberIndexVsTiming_wTrack_%s" % (name)
922  title = "GlobalChamberIndexVsTiming_wTrack_%s" % (name)
923  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
924  title=title+';;Timing',type='TH2F',
925  path=hitPath,xbins=nbins,xmin=0.5,xmax=nbins+0.5,xlabels=label_glbl_index,
926  ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
927 
928  x_name = "hit_glblphi_effnum_%s" % (name)
929  y_name = "hit_glblphi_effden_%s" % (name)
930  objname = "TgcPrd_GlobalChamberIndex_Efficiency_%s" % (name)
931  title = "GlobalChamberIndex_Efficiency_%s" % (name)
932  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
933  title=title+';;Efficiency',type='TEfficiency',
934  path=hitEffPath,xbins=nbins,xmin=0.5,xmax=nbins+0.5,xlabels=label_glbl_index)
935 
936  x_name = "hit_bcmask_glblphi_%s" % (name)
937  y_name = "hit_bcmask_%s" % (name)
938  objname = "TgcPrd_GlobalChamberIndexVsBCMask_%s" % (name)
939  title = "GlobalChamberIndexVsBCMask_%s" % (name)
940  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
941  title=title+';;',type='TH2F',
942  path=hitPath,xbins=nbins,xmin=0.5,xmax=nbins+0.5,xlabels=label_glbl_index,
943  ybins=8,ymin=-0.5,ymax=7.5,ylabels=['Undef',
944  'Next-only',
945  'Curr-only',
946  'Curr&Next',
947  'Prev-only',
948  'Prev&Next',
949  'Prev&Curr',
950  'Prev&Curr&Next'])
951 
952 
953  nbinsx = 10
954  nbinsy = 10
955  label_ieta = []
956  label_iphi = []
957  if station==1:
958  nbinsx = 15
959  nbinsy = 48
960  label_ieta = label_ieta_bw1
961  label_iphi = label_iphi_bw1
962  elif station==2 or station==3:
963  nbinsx = 12
964  nbinsy = 48
965  label_ieta = label_ieta_bw23
966  label_iphi = label_iphi_bw23
967  else: # station==4
968  nbinsx = 4
969  nbinsy = 24
970  label_ieta = label_ieta_sw
971  label_iphi = label_iphi_sw
972 
973  x_name = "hit_x_%s" % (name)
974  y_name = "hit_y_%s" % (name)
975  objname = "TgcPrd_iPhiVsiEta_%s" % (name)
976  title = "iPhiVsiEta_%s" % (name)
977  myGroupHit.defineHistogram(x_name+','+y_name+';'+objname,
978  title=title+';;',type='TH2F',path=hitPath,
979  xbins=nbinsx,xmin=0.5,xmax=nbinsx+0.5,xlabels=label_ieta,
980  ybins=nbinsy,ymin=0.5,ymax=nbinsy+0.5,ylabels=label_iphi)
981 
982  eff_name = "hit_effnum_x_%s" % (name)
983  x_name = "hit_effden_x_%s" % (name)
984  y_name = "hit_effden_y_%s" % (name)
985  objname = "TgcPrd_iPhiVsiEta_Efficiency_%s" % (name)
986  title = "iPhiVsiEta_Efficiency_%s" % (name)
987  myGroupHit.defineHistogram(eff_name+','+x_name+','+y_name+';'+objname,
988  title=title+';;',type='TEfficiency',
989  path=hitEffPath,
990  xbins=nbinsx,xmin=0.5,xmax=nbinsx+0.5,xlabels=label_ieta,
991  ybins=nbinsy,ymin=0.5,ymax=nbinsy+0.5,ylabels=label_iphi)
992 
993 
994 
995  for side in ['A', 'C']:# side-A or side-C
996  for sector in range(0,16):# Sector 00...15 (00 for FI, 01..15 for EI, 01..12 for BW)
997  for station in range(1,5):# M1,2,3,4
998  for phi in range(25):# internal phi 0,1,2,3...24 (0..3 for BW and EI, 1..24 for FI)
999  for eta in range(6):# eta index 1,,,5 for Endcap, and 0 for Forward
1000  for lay in range(1,4):# sub-layer 1,2,3 (triplet) or 1,2 (doublet)
1001  if station<4 and (sector>12 or sector==0):continue # BW only 1..12 sectors
1002  if station==4 and eta==0 and sector!=0:continue # FI only sector-0
1003  if station==4 and eta==1 and sector%2==0:continue # EI only odd-sectors (1,3,5,7..15)
1004  if station==4 and eta==0 and phi==0:continue # FI only 1..24 internal phi
1005  if (station<4 or (station==4 and eta==1)) and phi>3: continue # BW and EI only 0..3 internal phi
1006  if station==1 and eta==5:continue # BW M1 has only 1..4 eta
1007  if station==4 and eta>1:continue # EI/FI eta 0 or 1
1008  if station>1 and lay>2:continue # triplet is only M1
1009  for s_or_w in ['S','W']:# strip or wire
1010  if station==1 and lay==2 and s_or_w=="S":continue # there is no strip channel on M1 L2
1011  nbins = 100
1012  if s_or_w=="S":
1013  nbins = 32
1014  else:
1015  if station==1:
1016  if eta==1: nbins = 24
1017  elif eta==2: nbins = 23
1018  elif eta==3:
1019  if lay==1: nbins = 61
1020  else: nbins = 62
1021  elif eta==4:
1022  if lay==1: nbins = 92
1023  else: nbins = 91
1024  else: # forward
1025  if lay==2: nbins = 104
1026  else: nbins = 105
1027  elif station==2:
1028  if eta==1 or eta==2 or eta==3: nbins = 32
1029  elif eta==4: nbins = 103
1030  elif eta==5: nbins = 110
1031  else: nbins = 125 # forward
1032  elif station==3:
1033  if eta==1: nbins = 31
1034  elif eta==2: nbins = 30
1035  elif eta==3: nbins = 32
1036  elif eta==4: nbins = 106
1037  elif eta==5: nbins = 96
1038  else: nbins = 122
1039  else: # EI/FI
1040  if eta==1:
1041  if (sector==1 and phi==0) or (sector==1 and phi==2) or (sector==9 and phi==0) or (sector==9 and phi==2) or sector==11 or sector==15:
1042  nbins = 16 # EI short
1043  else:
1044  nbins = 24 # EI
1045  else: nbins = 32 # FI
1046 
1047  if doGapByGapHitOcc:
1048  chamber_name = "%s%02dM%02df%02d%s%02dL%02d%s" % (side,sector,station,phi,'F' if eta==0 else 'E',eta,lay,s_or_w)
1049  objname = 'TgcPrd_ChannelOccupancy_'+ chamber_name
1050  title = 'Occ_'+chamber_name
1051  myGroupHit.defineHistogram('hit_on_'+chamber_name+';'+objname,
1052  title=title+';Channel ID;Number of events',
1053  path="GapByGapHits/",xbins=nbins,xmin=0.5,xmax=nbins+0.5)
1054 
1055  if doGapByGapEffMap:
1056  objname = 'TgcPrd_GapByGapEffMap_' + chamber_name
1057  title = 'Eff_' + chamber_name
1058  objectx = 'hit_localX_effden_' + chamber_name
1059  objecty = 'hit_localY_effden_' + chamber_name
1060  objectz = 'hit_effnum_' + chamber_name
1061  myGroupHit.defineHistogram(objectz+','+objectx+','+objecty+';'+objname,
1062  title=title+';X [mm];Y [mm]',type='TEfficiency',
1063  path="GapByGapEffMap/",xbins=100,xmin=-1000,xmax=1000,ybins=100,ymin=-1500,ymax=1500)
1064 
1065  if lay == 1 and doHitResiduals:
1066  chamber_name = "%s%02dM%02df%02d%s%02d%s" % (side,sector,station,phi,'F' if eta==0 else 'E',eta,s_or_w)
1067  objname = 'TgcPrd_Residual_' + chamber_name
1068  title = 'Res_'+chamber_name
1069  myGroupHit.defineHistogram('hit_residual_on_'+chamber_name+';'+objname,
1070  title=title+';Residual [mm];Number of events',
1071  path="Residuals/",xbins=400,xmin=-1000,xmax=1000)
1072 
1073 
1074 
1075 
1076 
1077 
1078 
1079  myGroupCoin = helper.addGroup(tgcRawDataMonAlg, 'TgcRawDataMonitor_TgcCoin', mainDir)
1080  coinPath = 'Coin/'
1081  myGroupCoin.defineHistogram('nTgcCoinDetElementIsNull;h_nTgcCoinDetElementIsNull',title='nTgcCoinDetElementIsNull',
1082  path=coinPath,xbins=101,xmin=-0.5,xmax=100.5)
1083  myGroupCoin.defineHistogram('nTgcCoinPostOutPtrIsNull;h_nTgcCoinPostOutPtrIsNull',title='nTgcCoinPostOutPtrIsNull',
1084  path=coinPath,xbins=101,xmin=-0.5,xmax=100.5)
1085 
1086  for Det in ['Eifi','Tile','Rpc','Nsw']:
1087  det = Det.lower()
1088  for Region in ['','_Endcap','_Forward']:
1089  region = Region.lower()
1090  nrois = 64 if Region == '_Forward' else 148
1091  nsectors = 24 if Region == '_Forward' else 48
1092  rmask_endfwd = 'coin_inner_tgc_forward' if Region == '_Forward' else 'coin_inner_tgc_endcap'
1093  rmask_coverage = 'coin_inner_tgc_etaupto1p3'
1094  if Det == 'Nsw':
1095  if Region == '_Endcap':
1096  rmask_coverage = 'coin_inner_tgc_etafrom1p3_endcap'
1097  else:
1098  rmask_coverage = 'coin_inner_tgc_forward'
1099 
1100 
1101  if Region == '':
1102  myGroupCoin.defineHistogram('coin_inner_'+det+'_roiEta,coin_inner_'+det+'_roiPhi;InnerCoin_Evt2D_'+Det+'_EtaVsPhi',
1103  title='InnerCoin_Evt2D_'+Det+'_EtaVsPhi;RoI Eta;RoI Phi',
1104  path=coinPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1105  if (Det != 'Nsw' and Region == '') or (Det == 'Nsw' and Region != ''):
1106  myGroupCoin.defineHistogram('coin_inner_'+det+'_roiNum,coin_inner_'+det+'_slSector'+region+';InnerCoin_Evt2D_'+Det+Region+'_SectorVsRoI',
1107  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1108  path=coinPath,type='TH2F',ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1109  myGroupCoin.defineHistogram('coin_inner_'+det+'_slSector'+region+',coin_inner_'+det+'_deltaBcid;InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaBcid',
1110  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaBcid;SL Trigger Sector +1 (>0 for A, <0 for C);Delta Bcid ('+Det+' - ATLAS)',
1111  path=coinPath,type='TH2F',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,ybins=31,ymin=-15.5,ymax=15.5)
1112  myGroupCoin.defineHistogram('coin_inner_'+det+'_slSector'+region+',coin_inner_'+det+'_deltaTiming;InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaTiming',
1113  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaTiming;SL Trigger Sector +1 (>0 for A, <0 for C);Delta Signal Timing',
1114  path=coinPath,type='TH2F',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,ybins=11,ymin=-5.5,ymax=5.5)
1115  myGroupCoin.defineHistogram('coin_inner_'+det+'_slSector'+region+',coin_inner_'+det+'_deltaBcid;InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaBcid_BcCurr',
1116  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaBcid_BcCurr;SL Trigger Sector +1 (>0 for A, <0 for C);Delta Bcid ('+Det+' - ATLAS)',
1117  path=coinPath,type='TH2F',cutmask='coin_inner_'+det+'_currBc',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,ybins=31,ymin=-15.5,ymax=15.5)
1118  myGroupCoin.defineHistogram('mon_bcid,coin_inner_'+det+'_deltaBcid;InnerCoin_Evt2D_'+Det+Region+'_BcidVsDeltaBcid_BcCurr',
1119  title='InnerCoin_Evt2D_'+Det+Region+'_BcidVsDeltaBcid_BcCurr;Bcid;Delta Bcid ('+Det+' - ATLAS)',
1120  path=coinPath,type='TH2F',cutmask='coin_inner_'+det+region+'_currBc',xbins=4096,xmin=-0.5,xmax=4095.5,ybins=31,ymin=-15.5,ymax=15.5)
1121  myGroupCoin.defineHistogram('coin_inner_'+det+'_slSector'+region+',coin_inner_'+det+'_deltaTiming;InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaTiming_goodBcid0',
1122  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsDeltaTiming_goodBcid0;SL Trigger Sector +1 (>0 for A, <0 for C);Delta Signal Timing',
1123  path=coinPath,type='TH2F',cutmask='coin_inner_'+det+'_goodBcid0',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,ybins=11,ymin=-5.5,ymax=5.5)
1124 
1125 
1126  for bcid in ['','0','1','2']:
1127  goodBcid = '_goodBcid'+bcid if bcid != '' else ''
1128  cmask = 'coin_inner_'+det+goodBcid if bcid != '' else ''
1129  myGroupCoin.defineHistogram('mon_lb,coin_inner_'+det+'_slSector_goodTiming'+region+';InnerCoin_Evt2D_'+Det+Region+'_SectorVsLB_BcCurr'+goodBcid,
1130  title='InnerCoin_Evt2D_'+Det+Region+'_SectorVsLB_BcCurr'+goodBcid+';Lumi Block;SL Trigger Sector +1 (>0 for A, <0 for C)',
1131  path=coinPath,type='TH2F',cutmask=cmask,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=100,xmin=0.5,xmax=100.5,
1132  opt='kAddBinsDynamically', merge='merge')
1133 
1134 
1135  for htype in ['Eff','Reduction']:
1136  fake = '_fake' if htype == 'Reduction' else ''
1137 
1138  if (Det != 'Nsw' and Region == '') or (Det == 'Nsw' and Region != ''):
1139  myGroupCoin.defineHistogram('coin_inner_tgc_coinflag'+Det+',coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_CoinFlag',
1140  title='InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_CoinFlag;SL Trigger Sector +1 (>0 for A, <0 for C);Efficiency',
1141  path=coinPath,type='TEfficiency',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,cutmask=rmask_coverage)
1142  myGroupCoin.defineHistogram('coin_inner_tgc_coinflag'+Det+',coin_inner_tgc_roi,coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_CoinFlag',
1143  title='InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_CoinFlag;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1144  path=coinPath,type='TEfficiency',cutmask=rmask_endfwd,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1145  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+'_goodBcid0,coin_inner_tgc_roi,coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_goodBcid0',
1146  title='InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_goodBcid0;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1147  path=coinPath,type='TEfficiency',cutmask=rmask_endfwd,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1148  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+',coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_goodTiming',
1149  title='InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_goodTiming;SL Trigger Sector +1 (>0 for A, <0 for C);Efficiency',
1150  path=coinPath,type='TEfficiency',xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5,cutmask=rmask_coverage)
1151  myGroupCoin.defineHistogram('coin_inner_tgc_anyBc'+Det+',coin_inner_tgc_roi,coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI',
1152  title='InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1153  path=coinPath,type='TEfficiency',cutmask=rmask_endfwd,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1154  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+',coin_inner_tgc_roi,coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_goodTiming',
1155  title='InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_goodTiming;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1156  path=coinPath,type='TEfficiency',cutmask=rmask_endfwd,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1157 
1158  if Region == '':
1159  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+',coin_inner_tgc'+fake+'_eta;InnerCoin_'+htype+'1D_'+Det+'_Eta_goodTiming',
1160  title='InnerCoin_'+htype+'1D_'+Det+'_Eta_goodTiming;RoI Eta;Efficiency',
1161  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5)
1162  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+',coin_inner_tgc'+fake+'_eta,coin_inner_tgc'+fake+'_phi;InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_goodTiming',
1163  title='InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_goodTiming;RoI Eta;RoI Phi',
1164  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1165  myGroupCoin.defineHistogram('coin_inner_tgc_coinflag'+Det+',coin_inner_tgc'+fake+'_eta,coin_inner_tgc'+fake+'_phi;InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_CoinFlag',
1166  title='InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_CoinFlag;RoI Eta;RoI Phi',
1167  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1168  myGroupCoin.defineHistogram('coin_inner_tgc_coinflag'+Det+',coin_inner_tgc'+fake+'_eta;InnerCoin_'+htype+'1D_'+Det+'_Eta_CoinFlag',
1169  title='InnerCoin_'+htype+'1D_'+Det+'_Eta_CoinFlag;RoI Eta;Efficiency',
1170  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5)
1171 
1172 
1173  for Bunch in ['Any','Prev','Curr','Next','NextNext']:
1174  bunch = Bunch.lower()
1175 
1176  for bcid in ['','0','1','2']:
1177  goodBcid = '_goodBcid'+bcid if bcid != '' else ''
1178  if (Det != 'Nsw' and Region == '') or (Det == 'Nsw' and Region != ''):
1179  myGroupCoin.defineHistogram('coin_inner_tgc_'+bunch+'Bc'+Det+goodBcid+',coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_Bc'+Bunch+goodBcid,
1180  title='InnerCoin_'+htype+'1D_'+Det+Region+'_Sector_Bc'+Bunch+goodBcid+';SL Trigger Sector +1 (>0 for A, <0 for C);Efficiency',
1181  path=coinPath,type='TEfficiency',cutmask=rmask_coverage,xbins=nsectors*2+1,xmin=-1*nsectors-0.5,xmax=nsectors+0.5)
1182  myGroupCoin.defineHistogram('coin_inner_tgc_'+bunch+'Bc'+Det+goodBcid+',coin_inner_tgc_roi,coin_inner_tgc'+fake+'_sector;InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_Bc'+Bunch+goodBcid,
1183  title='InnerCoin_'+htype+'2D_'+Det+Region+'_SectorVsRoI_Bc'+Bunch+goodBcid+';RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1184  path=coinPath,type='TEfficiency',cutmask=rmask_endfwd,ybins=nsectors*2+1,ymin=-1*nsectors-0.5,ymax=nsectors+0.5,xbins=nrois,xmin=-0.5,xmax=nrois-0.5)
1185  if Region == '':
1186  myGroupCoin.defineHistogram('coin_inner_tgc_'+bunch+'Bc'+Det+goodBcid+',coin_inner_tgc'+fake+'_eta,coin_inner_tgc'+fake+'_phi;InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_Bc'+Bunch+goodBcid,
1187  title='InnerCoin_'+htype+'2D_'+Det+'_EtaVsPhi_Bc'+Bunch+goodBcid+';RoI Eta;RoI Phi',
1188  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1189  myGroupCoin.defineHistogram('coin_inner_tgc_currBc'+Det+goodBcid+',coin_inner_tgc'+fake+'_eta;InnerCoin_'+htype+'1D_'+Det+'_Eta_Bc'+Bunch+goodBcid,
1190  title='InnerCoin_'+htype+'1D_'+Det+'_Eta_Bc'+Bunch+goodBcid+';RoI Eta;Efficiency',
1191  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5)
1192 
1193  #Tile inner coincidence
1194  myGroupCoin.defineHistogram('coin_inner_tile2_slSector,coin_inner_tile2_tmdbDecisions;InnerCoin_Evt2D_Tile_SectorVsTmdbDecisions',
1195  title='InnerCoin_Evt2D_Tile_SectorVsTmdbDecisions;SL Trigger Sector +1 (>0 for A, <0 for C);TMDB Module Decisions',
1196  path=coinPath,type='TH2F',xbins=97,xmin=-48.5,xmax=48.5,ybins=3,ymin=0.5,ymax=3.5,ylabels=['D5 only','D6 only','D5+D6'])
1197  myGroupCoin.defineHistogram('coin_inner_tile2_slSector,coin_inner_tile2_tmdbDecisions;InnerCoin_Evt2D_Tile_SectorVsTmdbDecisions_BcCurr',
1198  title='InnerCoin_Evt2D_Tile_SectorVsTmdbDecisions_BcCurr;SL Trigger Sector +1 (>0 for A, <0 for C);TMDB Module Decisions',
1199  path=coinPath,type='TH2F',cutmask='coin_inner_tile2_currBc',xbins=97,xmin=-48.5,xmax=48.5,ybins=3,ymin=0.5,ymax=3.5,ylabels=['D5 only','D6 only','D5+D6'])
1200 
1201  #Nsw inner coincidence
1202  myGroupCoin.defineHistogram('coin_inner_nsw_roiEta,coin_inner_nsw_R;InnerCoin_Evt2D_Nsw_RoiEtaVsR',
1203  title='InnerCoin_Evt2D_Nsw_RoiEtaVsR;SL RoI Eta;NSW R',
1204  path=coinPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=251,ymin=-0.5,ymax=250.5)
1205  myGroupCoin.defineHistogram('coin_inner_nsw_roiPhi,coin_inner_nsw_Phi;InnerCoin_Evt2D_Nsw_RoiPhiVsPhi',
1206  title='InnerCoin_Evt2D_Nsw_RoiPhiVsPhi;SL RoI Phi;NSW Phi',
1207  path=coinPath,type='TH2F',xbins=48*10,xmin=-math.pi,xmax=math.pi,ybins=61,ymin=-0.5,ymax=60.5)
1208  myGroupCoin.defineHistogram('coin_inner_nsw_roiEta,coin_inner_nsw_deltaR;InnerCoin_Evt2D_Nsw_RoiEtaVsDeltaR',
1209  title='InnerCoin_Evt2D_Nsw_RoiEtaVsDeltaR;SL RoI Eta;DeltaR(Nsw - SL)',
1210  path=coinPath,type='TH2F',xbins=100,xmin=-2.5,xmax=2.5,ybins=1000,ymin=-500,ymax=500)
1211 
1212 
1213 
1215  for side in ['A','C']:
1216  label_slnswinput_index = []
1217  slid = 0
1218  for sec in range(1,13):# 1..12
1219  for dup in range(2):# 0..1
1220  slid += 1
1221  for inp in range(6):# 0..6
1222  label = '%s%02dE%02d-%d' % (side,sec,slid,inp) # A01E01-0
1223  label_slnswinput_index.append(label)
1224  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Endcap,coin_inner_nsw_deltaBcid;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaBcid',
1225  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaBcid;;Delta Bcid (Nsw - ATLAS)',
1226  path=coinPath,type='TH2F',xbins=144,xmin=-0.5,xmax=143.5,xlabels=label_slnswinput_index,ybins=31,ymin=-15.5,ymax=15.5)
1227  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Endcap,coin_inner_nsw_deltaTiming;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaTiming',
1228  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaTiming;;Delta Signal Timing (Nsw - ATLAS)',
1229  path=coinPath,type='TH2F',xbins=144,xmin=-0.5,xmax=143.5,xlabels=label_slnswinput_index,ybins=11,ymin=-5.5,ymax=5.5)
1230 
1231  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Endcap,coin_inner_nsw_deltaBcid;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaBcid_goodTiming',
1232  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaBcid_goodTiming;;Delta Bcid (Nsw - ATLAS)',
1233  path=coinPath,type='TH2F',xbins=144,xmin=-0.5,xmax=143.5,xlabels=label_slnswinput_index,ybins=31,ymin=-15.5,ymax=15.5,cutmask='coin_inner_nsw_goodTiming')
1234  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Endcap,coin_inner_nsw_deltaTiming;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaTiming_goodBcid0',
1235  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsDeltaTiming_goodBcid0;;Delta Signal Timing (Nsw - ATLAS)',
1236  path=coinPath,type='TH2F',xbins=144,xmin=-0.5,xmax=143.5,xlabels=label_slnswinput_index,ybins=11,ymin=-5.5,ymax=5.5,cutmask='coin_inner_nsw_goodBcid0')
1237 
1238  for bcid in ['0','1','2']:
1239  myGroupCoin.defineHistogram('mon_lb,coin_inner_nsw_slInputIndex_'+side+'Endcap;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsLB_NswGoodTimingBcid'+bcid,
1240  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsLB_NswGoodTimingBcid'+bcid+';Lumi Block;',cutmask='coin_inner_nsw_goodTimingBcid'+bcid,
1241  opt='kAddBinsDynamically', merge='merge',path=coinPath,type='TH2F',
1242  ybins=144,ymin=-0.5,ymax=143.5,ylabels=label_slnswinput_index,xbins=100,xmin=0.5,xmax=100.5)
1243  for bunch in ['Prev','Curr','Next','NextNext']:
1244  myGroupCoin.defineHistogram('mon_lb,coin_inner_nsw_slInputIndex_'+side+'Endcap;InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsLB_Bc'+bunch,
1245  title='InnerCoin_Evt2D_Nsw_'+side+'Endcap_SLInputVsLB_Bc'+bunch+';Lumi Block;',cutmask='coin_inner_nsw_Bc'+bunch,
1246  opt='kAddBinsDynamically', merge='merge',path=coinPath,type='TH2F',
1247  ybins=144,ymin=-0.5,ymax=143.5,ylabels=label_slnswinput_index,xbins=100,xmin=0.5,xmax=100.5)
1248 
1249 
1250  # Forward
1251  for side in ['A','C']:
1252  label_slnswinput_index = []
1253  for sec in range(1,13):# 1..12
1254  for inp in range(6):# 0..6
1255  label = '%s%02dF%02d-%d' % (side,sec,sec,inp) # A01F01-0
1256  label_slnswinput_index.append(label)
1257  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Forward,coin_inner_nsw_deltaBcid;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaBcid',
1258  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaBcid;;Delta Bcid (Nsw - ATLAS)',
1259  path=coinPath,type='TH2F',xbins=72,xmin=-0.5,xmax=71.5,xlabels=label_slnswinput_index,ybins=31,ymin=-15.5,ymax=15.5)
1260  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Forward,coin_inner_nsw_deltaTiming;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaTiming',
1261  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaTiming;;Delta Signal Timing (Nsw - ATLAS)',
1262  path=coinPath,type='TH2F',xbins=72,xmin=-0.5,xmax=71.5,xlabels=label_slnswinput_index,ybins=11,ymin=-5.5,ymax=5.5)
1263 
1264  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Forward,coin_inner_nsw_deltaBcid;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaBcid_goodTiming',
1265  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaBcid_goodTiming;;Delta Bcid (Nsw - ATLAS)',
1266  path=coinPath,type='TH2F',xbins=72,xmin=-0.5,xmax=71.5,xlabels=label_slnswinput_index,ybins=31,ymin=-15.5,ymax=15.5,cutmask='coin_inner_nsw_goodTiming')
1267  myGroupCoin.defineHistogram('coin_inner_nsw_slInputIndex_'+side+'Forward,coin_inner_nsw_deltaTiming;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaTiming_goodBcid0',
1268  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsDeltaTiming_goodBcid0;;Delta Signal Timing (Nsw - ATLAS)',
1269  path=coinPath,type='TH2F',xbins=72,xmin=-0.5,xmax=71.5,xlabels=label_slnswinput_index,ybins=11,ymin=-5.5,ymax=5.5,cutmask='coin_inner_nsw_goodBcid0')
1270 
1271  for bcid in ['0','1','2']:
1272  myGroupCoin.defineHistogram('mon_lb,coin_inner_nsw_slInputIndex_'+side+'Forward;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsLB_NswGoodTimingBcid'+bcid,
1273  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsLB_NswGoodTimingBcid'+bcid+';Lumi Block;',cutmask='coin_inner_nsw_goodTimingBcid'+bcid,
1274  opt='kAddBinsDynamically', merge='merge',path=coinPath,type='TH2F',
1275  ybins=72,ymin=-0.5,ymax=71.5,ylabels=label_slnswinput_index,xbins=100,xmin=0.5,xmax=100.5)
1276  for bunch in ['Prev','Curr','Next','NextNext']:
1277  myGroupCoin.defineHistogram('mon_lb,coin_inner_nsw_slInputIndex_'+side+'Forward;InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsLB_Bc'+bunch,
1278  title='InnerCoin_Evt2D_Nsw_'+side+'Forward_SLInputVsLB_Bc'+bunch+';Lumi Block;',cutmask='coin_inner_nsw_Bc'+bunch,
1279  opt='kAddBinsDynamically', merge='merge',path=coinPath,type='TH2F',
1280  ybins=72,ymin=-0.5,ymax=71.5,ylabels=label_slnswinput_index,xbins=100,xmin=0.5,xmax=100.5)
1281 
1282 
1283  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_roi,coin_inner_tgc_sector;InnerCoin_Eff2D_CoinFlagC_Endcap_SectorVsRoI',
1284  title='InnerCoin_Eff2D_CoinFlagC_Endcap_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1285  path=coinPath,type='TEfficiency',cutmask='coin_inner_tgc_endcap',ybins=97,ymin=-48.5,ymax=48.5,xbins=149,xmin=-0.5,xmax=148.5)
1286  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_roi,coin_inner_tgc_fake_sector;InnerCoin_Reduction2D_CoinFlagC_Endcap_SectorVsRoI',
1287  title='InnerCoin_Reduction2D_CoinFlagC_Endcap_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1288  path=coinPath,type='TEfficiency',cutmask='coin_inner_tgc_endcap',ybins=97,ymin=-48.5,ymax=48.5,xbins=149,xmin=-0.5,xmax=148.5)
1289 
1290  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_roi,coin_inner_tgc_sector;InnerCoin_Eff2D_CoinFlagC_Forward_SectorVsRoI',
1291  title='InnerCoin_Eff2D_CoinFlagC_Forward_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1292  path=coinPath,type='TEfficiency',cutmask='coin_inner_tgc_forward',ybins=49,ymin=-24.5,ymax=24.5,xbins=65,xmin=-0.5,xmax=64.5)
1293  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_roi,coin_inner_tgc_fake_sector;InnerCoin_Reduction2D_CoinFlagC_Forward_SectorVsRoI',
1294  title='InnerCoin_Reduction2D_CoinFlagC_Forward_SectorVsRoI;RoI;SL Trigger Sector +1 (>0 for A, <0 for C)',
1295  path=coinPath,type='TEfficiency',cutmask='coin_inner_tgc_forward',ybins=49,ymin=-24.5,ymax=24.5,xbins=65,xmin=-0.5,xmax=64.5)
1296 
1297  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_eta,coin_inner_tgc_phi;InnerCoin_Eff2D_CoinFlagC_EtaVsPhi',
1298  title='InnerCoin_Eff2D_CoinFlagC_EtaVsPhi;RoI Eta;RoI Phi',
1299  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1300  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_fake_eta,coin_inner_tgc_fake_phi;InnerCoin_Reduction2D_CoinFlagC_EtaVsPhi',
1301  title='InnerCoin_Reduction2D_CoinFlagC_EtaVsPhi;RoI Eta;RoI Phi',
1302  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1303 
1304  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_eta;InnerCoin_Eff1D_CoinFlagC_Eta',
1305  title='InnerCoin_Eff1D_CoinFlagC_Eta;RoI Eta;Efficiency',
1306  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5)
1307  myGroupCoin.defineHistogram('coin_inner_tgc_coinflagC,coin_inner_tgc_fake_eta;InnerCoin_Reduction1D_CoinFlagC_Eta',
1308  title='InnerCoin_Reduction1D_CoinFlagC_EtaVsPhi;RoI Eta;Efficiency',
1309  path=coinPath,type='TEfficiency',xbins=100,xmin=-2.5,xmax=2.5)
1310 
1311  for coinType in ['SL','HPT','LPT','EIFI']:
1312  for region in ['','Endcap','Forward']:
1313  suffix0 = coinType if region == '' else coinType+'_'+region
1314  nrois = 148 if region == 'Endcap' else 64
1315  nsectors = 48 if region == 'Endcap' else 24
1316  for chanType in ['','Wire','Strip']:
1317  if coinType == 'SL' and chanType != '': continue # no wire or strip for "SL"
1318  if coinType == 'HPT' and chanType == '': continue # always wire or strip for "HPT"
1319  if coinType == 'LPT' and chanType == '': continue # always wire or strip for "LPT"
1320  if coinType == 'EIFI' and chanType == '': continue # always wire or strip for "EIFI" tracklet
1321  suffix = suffix0+'_' if chanType == '' else suffix0+'_'+chanType+'_'
1322 
1323  if coinType == 'SL':
1324  for thr in range(1,16): #1.2...15
1325  cut = suffix+"coin_cutmask_pt"+str(thr)
1326  PT = "_Thr%02d" % thr
1327  if region == '':
1328  myGroupCoin.defineHistogram(suffix+'coin_eta,'+suffix+'coin_phi;'+suffix+'TgcCoin_Evt_EtaVsPhi'+PT,
1329  title=suffix+'TgcCoin_Evt_EtaVsPhi'+PT+';Eta;Phi',
1330  type='TH2F',path=coinPath,cutmask=cut,
1331  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1332  else:
1333  myGroupCoin.defineHistogram(suffix+'coin_roi,'+suffix+'coin_sector;'+suffix+'TgcCoin_Evt_SectorVsRoI'+PT,
1334  title=suffix+'TgcCoin_Evt_SectorVsRoI'+PT+';RoI;Trigger Sector +1 (>0 for A, <0 for C)',
1335  type='TH2F',path=coinPath,cutmask=cut,
1336  xbins=nrois+1,xmin=-0.5,xmax=nrois+0.5,
1337  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1338 
1339  if region == '':
1340  myGroupCoin.defineHistogram(suffix+'coin_eta,'+suffix+'coin_phi;'+suffix+'TgcCoin_Evt_EtaVsPhi',
1341  title=suffix+'TgcCoin_Evt_EtaVsPhi;Eta;Phi',
1342  type='TH2F',path=coinPath,
1343  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1344  myGroupCoin.defineHistogram(suffix+'coin_ext_matched,'+suffix+'coin_ext_eta,'+suffix+'coin_ext_phi;'+suffix+'TgcCoin_Eff_EtaVsPhi',
1345  title=suffix+'TgcCoin_Eff_EtaVsPhi;Eta;Phi',
1346  type='TEfficiency',path=coinPath,
1347  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1348  if coinType == 'SL':
1349  for coinflag in ['Qpos','Qneg','F','C','H','EI','Tile','RPC','NSW']:
1350  myGroupCoin.defineHistogram(suffix+'coin_eta,'+suffix+'coin_phi;'+suffix+'TgcCoin_Evt_EtaVsPhi_CoinFlag'+coinflag,
1351  title=suffix+'TgcCoin_Evt_EtaVsPhi_CoinFlag'+coinflag+';Eta;Phi',cutmask=suffix+'coin_CoinFlag'+coinflag,
1352  type='TH2F',path=coinPath,
1353  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1354  for coinflag in ['Q','F','C','H','EI','Tile','RPC','NSW']:
1355  myGroupCoin.defineHistogram(suffix+'coin_ext_matched_CoinFlag'+coinflag+','+suffix+'coin_ext_matched_eta,'+suffix+'coin_ext_matched_phi;'+suffix+'TgcCoin_Eff_EtaVsPhi_CoinFlag'+coinflag,
1356  title=suffix+'TgcCoin_Eff_EtaVsPhi_CoinFlag'+coinflag+';Eta;Phi',
1357  type='TEfficiency',path=coinPath,
1358  xbins=100,xmin=-2.5,xmax=2.5,ybins=48,ymin=-math.pi,ymax=math.pi)
1359 
1360  else:
1361  myGroupCoin.defineHistogram(suffix+'coin_sector,'+suffix+'coin_bunch;'+suffix+'TgcCoin_Evt_SectorVsTiming',
1362  title=suffix+'TgcCoin_Evt_SectorVsTiming;Trigger Sector +1 (>0 for A, <0 for C);Timing',
1363  type='TH2F',path=coinPath,
1364  xbins=nsectors*2+1,xmin=-nsectors-0.5,xmax=nsectors+0.5,
1365  ybins=3,ymin=-1.5,ymax=1.5,ylabels=['Previous','Current','Next'])
1366  myGroupCoin.defineHistogram(suffix+'coin_lb,'+suffix+'coin_sector;'+suffix+'TgcCoin_Evt_SectorVsLB',
1367  title=suffix+'TgcCoin_Evt_SectorVsLB;LumiBlock;Trigger Sector +1 (>0 for A, <0 for C)',
1368  type='TH2F',path=coinPath,
1369  xbins=100,xmin=0.5,xmax=100.5,opt='kAddBinsDynamically', merge='merge',
1370  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1371 
1372  if coinType == 'SL':
1373  for coinflag in ['EI','Tile','RPC','NSW','F','C','H']:
1374  if region == 'Forward' :
1375  if coinflag == 'EI' :continue
1376  if coinflag == 'Tile' :continue
1377  if coinflag == 'RPC' :continue
1378  myGroupCoin.defineHistogram(suffix+'coin_roi,'+suffix+'coin_sector;'+suffix+'TgcCoin_Evt_SectorVsRoI_CoinFlag'+coinflag,
1379  title=suffix+'TgcCoin_Evt_SectorVsRoI_CoinFlag'+coinflag+';RoI;Trigger Sector +1 (>0 for A, <0 for C)',
1380  type='TH2F',path=coinPath,cutmask=suffix+'coin_CoinFlag'+coinflag,
1381  xbins=nrois+1,xmin=-0.5,xmax=nrois+0.5,
1382  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1383  if coinflag != 'H' :
1384  myGroupCoin.defineHistogram(suffix+'coin_lb,'+suffix+'coin_sector;'+suffix+'TgcCoin_Evt_SectorVsLB_CoinFlag'+coinflag,
1385  title=suffix+'TgcCoin_Evt_SectorVsLB_CoinFlag'+coinflag+';LumiBlock;Trigger Sector +1 (>0 for A, <0 for C)',
1386  type='TH2F',path=coinPath,cutmask=suffix+'coin_CoinFlag'+coinflag,
1387  xbins=100,xmin=0.5,xmax=100.5,opt='kAddBinsDynamically', merge='merge',
1388  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1389 
1390  myGroupCoin.defineHistogram(suffix+'coin_roi,'+suffix+'coin_sector;'+suffix+'TgcCoin_Evt_SectorVsRoI',
1391  title=suffix+'TgcCoin_Evt_SectorVsRoI;RoI;Trigger Sector +1 (>0 for A, <0 for C)',
1392  type='TH2F',path=coinPath,
1393  xbins=nrois+1,xmin=-0.5,xmax=nrois+0.5,
1394  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1395  myGroupCoin.defineHistogram(suffix+'coin_veto_roi,'+suffix+'coin_veto_sector;'+suffix+'TgcCoin_Evt_SectorVsRoI_wVeto',
1396  title=suffix+'TgcCoin_Evt_SectorVsRoI_wVeto;RoI;Trigger Sector +1 (>0 for A, <0 for C)',
1397  type='TH2F',path=coinPath,
1398  xbins=nrois+1,xmin=-0.5,xmax=nrois+0.5,
1399  ybins=nsectors*2+1,ymin=-nsectors-0.5,ymax=nsectors+0.5)
1400  myGroupCoin.defineHistogram(suffix+'coin_sector,'+suffix+'coin_pt;'+suffix+'TgcCoin_Evt_SectorVsThr',
1401  title=suffix+'TgcCoin_Evt_SectorVsThr;Trigger Sector +1 (>0 for A, <0 for C);Threshold',
1402  type='TH2F',path=coinPath,
1403  xbins=nsectors*2+1,xmin=-nsectors-0.5,xmax=nsectors+0.5,
1404  ybins=15,ymin=0.5,ymax=15.5)
1405  myGroupCoin.defineHistogram(suffix+'coin_sector,'+suffix+'coin_isPositiveDeltaR;'+suffix+'TgcCoin_Evt_SectorVsisPositiveDeltaR',
1406  title=suffix+'TgcCoin_Evt_SectorVsisPositiveDeltaR;Trigger Sector +1 (>0 for A, <0 for C);isPositiveDeltaR',
1407  type='TH2F',path=coinPath,
1408  xbins=nsectors*2+1,xmin=-nsectors-0.5,xmax=nsectors+0.5,
1409  ybins=2,ymin=-0.5,ymax=1.5)
1410 
1411 
1412 
1413 
1414  acc = helper.result()
1415  result.merge(acc)
1416  return result
1417 
1418 if __name__=='__main__':
1419  from AthenaCommon.Logging import log
1420  from AthenaCommon.Constants import INFO
1421  log.setLevel(INFO)
1422 
1423  from AthenaConfiguration.AllConfigFlags import initConfigFlags
1425  flags.Input.isMC = True
1426 
1427  import glob
1428  import sys
1429  if len(sys.argv) == 3:
1430  inputs = sys.argv[1].split(',')
1431  flags.Input.Files = inputs
1432  flags.Output.HISTFileName = sys.argv[2]
1433  else:
1434  inputs = glob.glob('data/*')
1435  flags.Input.Files = inputs
1436  flags.Output.HISTFileName = 'ExampleMonitorOutput.root'
1437 
1438  if not flags.Input.isMC:
1439  flags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2023-02"
1440 
1441  flags.lock()
1442  flags.dump()
1443 
1444  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
1445  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
1446  cfg = MainServicesCfg(flags)
1447  cfg.merge(PoolReadCfg(flags))
1448 
1449  tgcRawDataMonitorAcc = TgcRawDataMonitoringConfig(flags)
1450  cfg.merge(tgcRawDataMonitorAcc)
1451  cfg.getEventAlgo('TgcRawDataMonAlg').OutputLevel = INFO
1452  cfg.getEventAlgo('TgcRawDataMonAlg').MonitorThresholdPatterns = True
1453  cfg.getEventAlgo('TgcRawDataMonAlg').TagAndProbe = True
1454  cfg.getEventAlgo('TgcRawDataMonAlg').TgcRawDataMonitorTool.OutputLevel = INFO
1455  cfg.getEventAlgo('TgcRawDataMonAlg').FillGapByGapHistograms = True
1456  cfg.getEventAlgo('TgcRawDataMonAlg').UseMuonSelectorTool = True
1457  cfg.getEventAlgo('TgcRawDataMonAlg').UseOnlyCombinedMuons = True
1458  cfg.getEventAlgo('TgcRawDataMonAlg').UseOnlyMuidCoStacoMuons = True
1459  cfg.getEventAlgo('TgcRawDataMonAlg').RequireIsolated = True
1460  cfg.getEventAlgo('TgcRawDataMonAlg').IsolationWindow = 1.0
1461  cfg.getEventAlgo('TgcRawDataMonAlg').ResidualWindow = 200.
1462  cfg.getEventAlgo('TgcRawDataMonAlg').nHitsInOtherTGCWire = 3
1463  cfg.getEventAlgo('TgcRawDataMonAlg').nHitsInOtherTGCStrip = 2
1464  cfg.getEventAlgo('TgcRawDataMonAlg').MaskChannelFileName = 'tgc_mask_channels.txt'
1465  cfg.getEventAlgo('TgcRawDataMonAlg').TagMuonInDifferentSystem = False
1466  cfg.getEventAlgo('TgcRawDataMonAlg').StreamerFilter = '' # such as 'HLT_noalg_L1MU14FCH'
1467  cfg.getEventAlgo('TgcRawDataMonAlg').doExpressProcessing = False
1468  cfg.getEventAlgo('TgcRawDataMonAlg').pTCutOnTrigExtrapolation = 20000.
1469 
1470  from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
1471  cfg.merge(AtlasFieldCacheCondAlgCfg(flags))
1472 
1473  if not flags.Input.isMC:
1474  from AthenaConfiguration.ComponentFactory import CompFactory
1475  cfg.getEventAlgo('TgcRawDataMonAlg').GRLTool = CompFactory.GoodRunsListSelectorTool('GoodRunsListSelectorTool')
1476  cfg.getEventAlgo('TgcRawDataMonAlg').GRLTool.GoodRunsListVec = ['data22_13p6TeV.periodAllYear_DetStatus-v109-pro28-04_MERGED_PHYS_StandardGRL_All_Good_25ns.xml']
1477 
1478  flags_dummy = initConfigFlags()
1479  flags_dummy.Input.Files = flags.Input.Files
1480  flags_dummy.Trigger.triggerConfig = "FILE"
1481  flags_dummy.Trigger.triggerMenuSetup = "Dev_pp_run3_v1"
1482  flags_dummy.lock()
1483  from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg,generateL1Menu
1484  cfg.merge( L1ConfigSvcCfg( flags_dummy ) )
1485  generateL1Menu(flags_dummy)
1486 
1487  cfg.printConfig(withDetails=False, summariseProps = False)
1488 
1489  cfg.run()
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
AtlasTrackingGeometryCondAlgConfig.TrackingGeometryCondAlgCfg
def TrackingGeometryCondAlgCfg(flags, name='AtlasTrackingGeometryCondAlg', doMaterialValidation=False, **kwargs)
Definition: AtlasTrackingGeometryCondAlgConfig.py:128
python.TrigConfigSvcCfg.generateL1Menu
def generateL1Menu(flags)
Definition: TrigConfigSvcCfg.py:184
TgcRawDataMonitorAlgorithm.TgcRawDataMonitoringConfig
def TgcRawDataMonitoringConfig(inputFlags)
Definition: TgcRawDataMonitorAlgorithm.py:12
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:256
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
Constants
some useful constants -------------------------------------------------—
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
python.TrigConfigSvcCfg.L1ConfigSvcCfg
def L1ConfigSvcCfg(flags)
Definition: TrigConfigSvcCfg.py:198
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
str
Definition: BTagTrackIpAccessor.cxx:11
python.MagFieldServicesConfig.AtlasFieldCacheCondAlgCfg
def AtlasFieldCacheCondAlgCfg(flags, **kwargs)
Definition: MagFieldServicesConfig.py:8
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69
Trk::split
@ split
Definition: LayerMaterialProperties.h:38