ATLAS Offline Software
Loading...
Searching...
No Matches
ClusterMonitorAlgorithm.py
Go to the documentation of this file.
2# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3#
4
5'''@file ClusterMonitorAlgorithm.py
6@author L. Sawyer
7@date 2019-08-15
8@python configuration for the Run III Calo Cluster Monitoring package
9'''
10
12 '''Function to configures some algorithms in the monitoring system.'''
13
14
20
21 # The following class will make a sequence, configure algorithms, and link
22 # them to GenericMonitoringTools
23 from AthenaMonitoring import AthMonitorCfgHelper
24 helper = AthMonitorCfgHelper(inputFlags,'ClusterAthMonitorCfg')
25
26
27
34
35 from AthenaMonitoring.AtlasReadyFilterConfig import AtlasReadyFilterCfg
36 from AthenaMonitoring.BadLBFilterToolConfig import LArBadLBFilterToolCfg
37 from AthenaMonitoring.EventFlagFilterToolConfig import EventFlagFilterToolCfg
38
39 from AthenaConfiguration.ComponentFactory import CompFactory
40 clusterMonAlg = helper.addAlgorithm(CompFactory.ClusterMonitorAlgorithm,'ClusterMonAlg',
41 addFilterTools = [AtlasReadyFilterCfg(inputFlags),
42 LArBadLBFilterToolCfg(inputFlags),
43 EventFlagFilterToolCfg(inputFlags,doLAr=True, doTile=False, doSCT=False, doCore=False)
44 ])
45
46
47
48
55
56 clusterMonAlg.CaloTopoClusterContainer = "CaloCalTopoClusters"
57 clusterMonAlg.EMTopoClusterContainer = "egammaClusters"
58 # cluster energy threshold in GeV -
59 clusterMonAlg.lowEthresh = 10.0
60 clusterMonAlg.medEthresh = 15.0
61 clusterMonAlg.medhiEthresh = 25.0
62 clusterMonAlg.hiEthresh = 50.0
63
64 clusterMonAlg.EMlowEthresh = 4.0
65 clusterMonAlg.EMmedEthresh = 10.0
66 clusterMonAlg.EMmedhiEthresh = 15.0
67 clusterMonAlg.EMhiEthresh = 25.0
68
69
72
73 # # Then, add a tool that doesn't have its own configuration function. In
74 # # this example, no accumulator is returned, so no merge is necessary.
75 # from MyDomainPackage.MyDomainPackageConf import MyDomainTool
76 # clusterMonAlg.MyDomainTool = MyDomainTool()
77
78
79 # Add monitor groups.
80 clustersAllGroup = helper.addGroup(
81 alg=clusterMonAlg,
82 name='ClusterMonitorAllClusters',
83 topPath='CaloTopoClusters/AllClusters/'
84 )
85 clustersAllGroupEM = helper.addGroup(
86 alg=clusterMonAlg,
87 name='ClusterMonitorAllEMClusters',
88 topPath='CaloTopoClusters/AllEMClusters/'
89 )
90
91 clustersExpertGroup = helper.addGroup(
92 alg=clusterMonAlg,
93 name='ClusterMonitorExpertPlots',
94 topPath='CaloTopoClusters/AllClusters/Expert/'
95 )
96 clustersExpertGroupEM = helper.addGroup(
97 alg=clusterMonAlg,
98 name='ClusterMonitorExpertPlotsEM',
99 topPath='CaloTopoClusters/AllEMClusters/Expert/'
100 )
101
102 clustersNCBGroup = helper.addGroup(
103 alg=clusterMonAlg,
104 name='ClusterMonitorNCBPlots',
105 topPath='CaloTopoClusters/AllClusters/NCB/'
106 )
107
108 clustersCalECAGroup = helper.addGroup(
109 alg=clusterMonAlg,
110 name='ClusterMonitorCalECA',
111 topPath='CaloTopoClusters/CalECA/'
112 )
113 clustersEMECAGroup = helper.addGroup(
114 alg=clusterMonAlg,
115 name='ClusterMonitorEMECA',
116 topPath='CaloTopoClusters/CalEMECA/'
117 )
118
119 clustersCalBARGroup = helper.addGroup(
120 alg=clusterMonAlg,
121 name='ClusterMonitorCalBAR',
122 topPath='CaloTopoClusters/CalBAR/'
123 )
124 clustersEMBARGroup = helper.addGroup(
125 alg=clusterMonAlg,
126 name='ClusterMonitorEMBAR',
127 topPath='CaloTopoClusters/CalEMBAR/'
128 )
129
130 clustersCalECCGroup = helper.addGroup(
131 alg=clusterMonAlg,
132 name='ClusterMonitorCalECC',
133 topPath='CaloTopoClusters/CalECC/'
134 )
135 clustersEMECCGroup = helper.addGroup(
136 alg=clusterMonAlg,
137 name='ClusterMonitorEMECC',
138 topPath='CaloTopoClusters/CalEMECC/'
139 )
140
141
142 # Configure histograms - All Clusters
143 clustersAllGroup.defineHistogram('nClusters',title='No. of Clusters;N_{clusters};Events',xbins=200,xmin=0.0,xmax=1000.0)
144 clustersAllGroup.defineHistogram('clusterEta',title='Cluster eta;eta;Events',xbins=98,xmin=-4.9,xmax=4.9)
145 clustersAllGroup.defineHistogram('clusterPhi', title='Cluster phi;phi;Events',xbins=64,xmin=-3.15,xmax=3.15)
146 clustersAllGroup.defineHistogram('clusterE', title='Cluster energy;E;Events',xbins=100,xmin=0.0,xmax=100)
147 clustersAllGroup.defineHistogram('clusterET', title='Cluster transverse energy;ET;Events',xbins=100,xmin=0.0,xmax=100)
148
149 clustersAllGroup.defineHistogram('clusterEta,clusterE', type='TH2F',title='Cluster energy vs eta;eta;E',
150 xbins=98,xmin=-4.9,xmax=4.9,ybins=100,ymin=0.0,ymax=100.0 )
151 clustersAllGroup.defineHistogram('clusterEta,clusterET', type='TH2F', title='Cluster transverse energy vs eta;eta;E_{T}',
152 xbins=98,xmin=-4.9,xmax=4.9,ybins=100,ymin=0.0,ymax=100.0 )
153 clustersAllGroup.defineHistogram('clusterPhi,clusterE', type='TH2F',title='Cluster energy vs phi;phi;E',
154 xbins=64,xmin=-3.15,xmax=3.15,ybins=100,ymin=0.0,ymax=100.0 )
155 clustersAllGroup.defineHistogram('clusterPhi,clusterET', type='TH2F', title='Cluster transverse energy vs phi;phi;E_{T}',
156 xbins=64,xmin=-3.15,xmax=3.15,ybins=100,ymin=0.0,ymax=100.0 )
157 clustersAllGroup.defineHistogram('clusterEta,clusterPhi,clusterE', type='TProfile2D', title='Average Cluster Energy;eta;phi',
158 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
159 clustersAllGroup.defineHistogram('clusterEta,clusterPhi,clusterET', type='TProfile2D', title='Average Cluster Transverse Energy;eta;phi',
160 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
161
162 # Configure histograms - All Clusters:Expert Plots
163 clustersExpertGroup.defineHistogram('nCells',title='No. of Cells in a Clusters;N_{cells};Events',xbins=200,xmin=0.0,xmax=200.0)
164 clustersExpertGroup.defineHistogram('nBadCells',title='No. of Bad Cells in a Clusters;N_{bad cells};Events',xbins=11,xmin=-1.0,xmax=10.0)
165 clustersExpertGroup.defineHistogram('EBadCells',title='E of Bad Cells in a Clusters;E_{bad cells};Events',xbins=210,xmin=-10.0,xmax=100.0)
166 clustersExpertGroup.defineHistogram('clusterEta,clusterPhi,nCells', type='TProfile2D', title='No. of Cells in a Clusters;eta;phi',
167 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
168 clustersExpertGroup.defineHistogram('clusterEta,clusterPhi,nBadCells', type='TProfile2D', title='No. of Bad Cells in a Clusters;eta;phi',
169 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
170 clustersExpertGroup.defineHistogram('clusterTime',title='Cluster Time;time;Events',xbins=200,xmin=-100.0,xmax=100.0)
171 clustersExpertGroup.defineHistogram('clusterTime,clusterE',type='TH2F',title='Cluster Time vs E;time;E',
172 xbins=200,xmin=-100.0,xmax=100.0,ybins=100,ymin=0.0,ymax=100.0)
173 clustersExpertGroup.defineHistogram('HotRat',title='Energy Fraction of Highest Cell;E_{frac};Events',xbins=200,xmin=-0.2,xmax=1.8)
174 clustersExpertGroup.defineHistogram('clusterIsol',title='Cluster Isolation;Isolation;Events',xbins=60,xmin=-1.0,xmax=2.0)
175 clustersExpertGroup.defineHistogram('BadLARQFrac',title='Bad LAR Q Frac.;Frac;Events',xbins=25,xmin=-1.0,xmax=1.5)
176 clustersExpertGroup.defineHistogram('EngPos',title='E from Positive Cells;E;Events',xbins=100,xmin=0.0,xmax=100.0)
177 clustersExpertGroup.defineHistogram('AveLARQ',title='Average LAR Q;LAR Q;Events',xbins=31,xmin=-1000.0,xmax=30000.0)
178 clustersExpertGroup.defineHistogram('AveTileQ',title='Average Tile Q;Tile Q;Events',xbins=21,xmin=-10.0,xmax=200.0)
179
180 clustersExpertGroup.defineHistogram('clusterEta,clusterPhi,HotRat',type='TProfile2D', title='Energy Fraction of Highest Cell;eta;phi',
181 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
182 clustersExpertGroup.defineHistogram('clusterEta,clusterPhi,HotRat;vHotRatE',type='TProfile2D', title='Energy Fraction of Highest Cell for E_{frac}>0.9;eta;phi',
183 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='HighHotRat')
184 clustersExpertGroup.defineHistogram('clusterEta,clusterPhi;vHotRatOcc',type='TH2F', title='Occupancy of Clusters with Highest Cell E_{frac}>0.9;eta;phi',
185 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='HighHotRat')
186
187 # Histograms for NCB checks
188 clustersNCBGroup.defineHistogram('clusterEta,clusterTime',type='TH2F',title='Cluster Time vs eta; eta; time',
189 xbins=98,xmin=-4.9,xmax=4.9,ybins=200,ymin=-100.0,ymax=100.0)
190 clustersNCBGroup.defineHistogram('clusterEta,clusterTime;PhiRegion1',type='TH2F',title='Cluster Time vs eta - |phi| < 0.3 || |phi| > 2.7;eta; time',
191 xbins=98,xmin=-4.9,xmax=4.9,ybins=200,ymin=-100.0,ymax=100.0, cutmask='PhiRegion1')
192 clustersNCBGroup.defineHistogram('clusterEta,clusterTime;PhiRegion2',type='TH2F',title='Cluster Time vs eta - 0.3 < |phi| < 2.7 ;eta; time',
193 xbins=98,xmin=-4.9,xmax=4.9,ybins=200,ymin=-100.0,ymax=100.0, cutmask='PhiRegion2')
194
195 # Configure histograms - Occupancies and energies by region
196 #ECA:
197 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi;Thresh0ECAOcc', type='TH2F',title='Cluster Occupancy - No Threshold;eta;phi',
198 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
199 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi;Thresh1ECAOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
200 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
201 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi;Thresh2ECAOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
202 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
203 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi;Thresh3ECAOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
204 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
205 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi;Thresh4ECAOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
206 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
207
208 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh0ECAAveE', type='TProfile2D',title='Average Cluster Energy - No Threshold;eta;phi',
209 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
210 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh1ECAAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
211 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
212 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh2ECAAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
213 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
214 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh3ECAAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
215 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
216 clustersCalECAGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh4ECAAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
217 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
218 #BAR:
219 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi;Thresh0BAROcc', type='TH2F',title='Cluster Occupancy - No Threshold;eta;phi',
220 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
221 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi;Thresh1BAROcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
222 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
223 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi;Thresh2BAROcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
224 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
225 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi;Thresh3BAROcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
226 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
227 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi;Thresh4BAROcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
228 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
229
230 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh0BARAveE', type='TProfile2D',title='Average Cluster Energy - No Threshold;eta;phi',
231 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
232 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh1BARAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
233 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
234 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh2BARAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
235 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
236 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh3BARAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
237 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
238 clustersCalBARGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh4BARAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
239 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
240 #ECC:
241 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi;Thresh0ECCOcc', type='TH2F',title='Cluster Occupancy - No Threshold;eta;phi',
242 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
243 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi;Thresh1ECCOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
244 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
245 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi;Thresh2ECCOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
246 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
247 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi;Thresh3ECCOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
248 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
249 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi;Thresh4ECCOcc', type='TH2F',title='Cluster Occupancy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
250 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
251
252 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh0ECCAveE', type='TProfile2D',title='Average Cluster Energy - No Threshold;eta;phi',
253 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
254 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh1ECCAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.lowEthresh)+' GeV;eta;phi',
255 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold1' )
256 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh2ECCAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medEthresh)+' GeV;eta;phi',
257 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold2' )
258 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh3ECCAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.medhiEthresh)+' GeV;eta;phi',
259 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold3' )
260 clustersCalECCGroup.defineHistogram('clusterEta,clusterPhi,clusterE;Thresh4ECCAveE', type='TProfile2D',title='Average Cluster Energy - Threshold='+str(clusterMonAlg.hiEthresh)+' GeV;eta;phi',
261 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='Threshold4' )
262
263 # Configure histograms - egamma Clusters
264 clustersAllGroupEM.defineHistogram('nEMClusters',title='No. of EM Clusters;N_{clusters};Events',xbins=200,xmin=0.0,xmax=200.0)
265 clustersAllGroupEM.defineHistogram('emclusterEta',title='EM Cluster eta;eta;Events',xbins=98,xmin=-4.9,xmax=4.9)
266 clustersAllGroupEM.defineHistogram('emclusterPhi', title='EM Cluster phi;phi;Events',xbins=64,xmin=-3.15,xmax=3.15)
267 clustersAllGroupEM.defineHistogram('emclusterE', title='EM Cluster energy;E;Events',xbins=100,xmin=0.0,xmax=100)
268 clustersAllGroupEM.defineHistogram('emclusterET', title='EM Cluster transverse energy;ET;Events',xbins=100,xmin=0.0,xmax=100)
269
270 # Configure histograms - egamma Clusters:Expert Plots
271 clustersExpertGroupEM.defineHistogram('nEMCells',title='No. of Cells in EM Clusters;N_{cells};Events',xbins=200,xmin=0.0,xmax=200.0)
272 clustersExpertGroupEM.defineHistogram('nEMBadCells',title='No. of Bad Cells in EM Clusters;N_{bad cells};Events',xbins=11,xmin=-1.0,xmax=10.0)
273 clustersExpertGroupEM.defineHistogram('emEBadCells',title='E of Bad Cells in EM Clusters;E_{bad cells};Events',xbins=210,xmin=-10.0,xmax=100.0)
274 clustersExpertGroupEM.defineHistogram('emclusterEta,emclusterPhi,nEMCells', type='TProfile2D', title='No. of Cells in EM Clusters;eta;phi',
275 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
276 clustersExpertGroupEM.defineHistogram('emclusterEta,emclusterPhi,nEMBadCells', type='TProfile2D', title='No. of Bad Cells in a Clusters;eta;phi',
277 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
278 clustersExpertGroupEM.defineHistogram('emclusterTime',title='EM Cluster Time;time;Events',xbins=200,xmin=-100.0,xmax=100.0)
279 clustersExpertGroupEM.defineHistogram('emclusterTime,emclusterE',type='TH2F',title='EM Cluster Time vs E;time;E',
280 xbins=200,xmin=-100.0,xmax=100.0,ybins=300,ymin=0.0,ymax=1500.0)
281 clustersExpertGroupEM.defineHistogram('emHotRat',title='Energy Fraction of Highest Cell (EM Clusters);E_{frac};Events',
282 xbins=200,xmin=-0.2,xmax=1.8)
283 clustersExpertGroupEM.defineHistogram('emclusterIsol',title='EM Cluster Isolation;Isolation;Events',xbins=60,xmin=-1.0,xmax=2.0)
284 clustersExpertGroupEM.defineHistogram('emBadLARQFrac',title='Bad LAR Q Frac. (EMClusters);Frac;Events',xbins=25,xmin=-1.0,xmax=1.5)
285 clustersExpertGroupEM.defineHistogram('emEngPos',title='E from Positive Cells (EM CLusters);E;Events',xbins=100,xmin=0.0,xmax=100.0)
286 clustersExpertGroupEM.defineHistogram('emAveLARQ',title='Average LAR Q (EM Clusters);LAR Q;Events',xbins=31,xmin=-1000.0,xmax=30000.0)
287
288 clustersExpertGroupEM.defineHistogram('emclusterEta,emclusterPhi,emHotRat',type='TProfile2D', title='Energy Fraction of Highest Cell (EM Clusters);eta;phi',
289 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
290 clustersExpertGroupEM.defineHistogram('emclusterEta,emclusterPhi,emHotRat;vemHotRatE',type='TProfile2D', title='Energy Fraction of Highest Cell for E_{frac}>0.9 (EM Clusters);eta;phi',
291 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='HighHotRat')
292 clustersExpertGroupEM.defineHistogram('emclusterEta,emclusterPhi;vemHotRatOcc',type='TH2F', title='Occupancy of EM Clusters with Highest Cell E_{frac}>0.9;eta;phi',
293 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='HighHotRat')
294
295 # Configure histograms - egamma Occupancies and energies by region
296 #ECA:
297 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh0ECAOcc', type='TH2F',title='EM Cluster Occupancy - No Threshold;eta;phi',
298 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
299 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh1ECAOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
300 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
301 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh2ECAOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
302 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
303 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh3ECAOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
304 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
305 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh4ECAOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
306 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
307
308 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh0ECAAveE', type='TProfile2D',title='Average EM Cluster Energy - No Threshold;eta;phi',
309 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
310 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh1ECAAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
311 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
312 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh2ECAAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
313 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
314 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh3ECAAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
315 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
316 clustersEMECAGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh4ECAAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
317 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
318 #BAR:
319 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh0BAROcc', type='TH2F',title='EM Cluster Occupancy - No Threshold;eta;phi',
320 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
321 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh1BAROcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
322 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
323 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh2BAROcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
324 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
325 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh3BAROcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
326 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
327 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh4BAROcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
328 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
329
330 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh0BARAveE', type='TProfile2D',title='Average EM Cluster Energy - No Threshold;eta;phi',
331 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
332 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh1BARAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
333 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
334 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh2BARAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
335 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
336 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh3BARAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
337 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
338 clustersEMBARGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh4BARAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
339 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
340 #ECC:
341 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh0ECCOcc', type='TH2F',title='EM Cluster Occupancy - No Threshold;eta;phi',
342 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
343 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh1ECCOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
344 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
345 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh2ECCOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
346 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
347 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh3ECCOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
348 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
349 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi;EMThresh4ECCOcc', type='TH2F',title='EM Cluster Occupancy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
350 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
351
352 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh0ECCAveE', type='TProfile2D',title='Average EM Cluster Energy - No Threshold;eta;phi',
353 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15 )
354 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh1ECCAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMlowEthresh)+' GeV;eta;phi',
355 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold1' )
356 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh2ECCAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedEthresh)+' GeV;eta;phi',
357 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold2' )
358 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh3ECCAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMmedhiEthresh)+' GeV;eta;phi',
359 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold3' )
360 clustersEMECCGroup.defineHistogram('emclusterEta,emclusterPhi,emclusterE;EMThresh4ECCAveE', type='TProfile2D',title='Average EM Cluster Energy - Threshold='+str(clusterMonAlg.EMhiEthresh)+' GeV;eta;phi',
361 xbins=98,xmin=-4.9,xmax=4.9,ybins=64,ymin=-3.15,ymax=3.15, cutmask='EMThreshold4' )
362
363
368 return helper.result()
369
370 # # Otherwise, merge with result object and return
371 # acc = helper.result()
372 # result.merge(acc)
373 # return result
374
375if __name__=='__main__':
376 # Setup logs
377 from AthenaCommon.Logging import log
378 from AthenaCommon.Constants import INFO
379 log.setLevel(INFO)
380
381 # Set the Athena configuration flags
382 from AthenaConfiguration.AllConfigFlags import initConfigFlags
383 import sys
384 nightly = '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/'
385 file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1'
386 flags = initConfigFlags()
387 flags.Input.Files = [nightly+file]
388 flags.Input.isMC = False
389 flags.Output.HISTFileName = 'ClusterMonitorOutput.root'
390 flags.fillFromArgs(sys.argv[1:])
391
392 flags.lock()
393
394 # Initialize configuration object, add accumulator, merge, and run.
395 from AthenaConfiguration.MainServicesConfig import MainServicesThreadedCfg
396 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
397 cfg = MainServicesThreadedCfg(flags)
398 cfg.merge(PoolReadCfg(flags))
399
400 clusterMonitorAcc = ClusterMonitoringConfig(flags)
401 cfg.merge(clusterMonitorAcc)
402
403 # If you want to turn on more detailed messages ...
404 # clusterMonitorAcc.getEventAlgo('ClusterMonAlg').OutputLevel = 2 # DEBUG
405 cfg.printConfig(withDetails=False) # set True for exhaustive info
406
407 cfg.run() #use cfg.run(20) to only run on first 20 events