ATLAS Offline Software
IDAlignMonResidualsAlgCfg.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 '''@file InDetAlignMonResidualsAlgCfg.py
6 @author PerJohansson
7 @date 2021-2022
8 @brief Configuration for Run 3 based on InDetAlignMonResiduals.cxx
9 '''
10 def IDAlignMonResidualsAlgCfg(helper, alg, **kwargs):
11  '''Function to configures some algorithms in the monitoring system.'''
12 
13  #Values
14  m_nBinsMuRange = 101
15  m_muRangeMin = -0.5
16  m_muRangeMax = 100.5
17  m_minSiResFillRange = -0.08
18  m_maxSiResFillRange = 0.08
19  m_siliconBarrelLayers = 12
20  m_siliconECLayers = 24
21  m_RangeOfPullHistos = 6
22  m_minPIXResYFillRange = -0.4
23  m_maxPIXResYFillRange = 0.4
24  m_FinerBinningFactor = 1
25  strawRadius = 2.5
26  m_EtaModulesPix = [20, 13, 13, 13]
27  m_EtaModulesMinPix = [-10.5, -6.5, -6.5, -6.5]
28  m_EtaModulesMaxPix = [9.5, 6.5, 6.5, 6.5]
29  m_PhiModules = [14, 22, 38, 52]
30  m_PhiModulesShift_barrel = 158
31  m_EtaModulesShift_barrel = 92
32  m_PhiModulesPerRing = 48
33  m_PhiModulesShift_ec = 152
34  m_EtaModulesSCT = 13
35  m_EtaModulesSCTEC = 3
36  m_EtaModulesMinSCT = -7
37  m_EtaModulesMaxSCT = 7
38  m_PhiModulesSCT = [32, 40 ,48 ,56]
39  m_PhiModulesSCTEC = 52
40  m_PhiModulesShift_sct_barrel = 208
41  m_EtaModulesShift_sct_barrel = 84
42  m_PhiModulesShift_sct_ec = 500
43  m_minTRTResWindow = -1.0
44  m_maxTRTResWindow = 1.0
45  m_TRTB_nSectorBins = 32
46  m_TRTEC_nPhiBins = 8
47 
48  # Set a folder name from the user options
49  folderName = "ExtendedTracks"
50  if "TrackName" in kwargs:
51  folderName = kwargs["TrackName"]
52 
53  # this creates a "residualGroup" called "alg" which will put its histograms into the subdirectory "Residuals"
54  residualGroup = helper.addGroup(alg, 'Residuals')
55  pathResiduals = '/IDAlignMon/'+folderName+'/Residuals'
56 
57  # Histograms for the Alignment Residual monitoring:
58  varName = 'm_mu;mu_perEvent'
59  title = 'mu_perEvent;#LT#mu#GT per event;Events'
60  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=m_nBinsMuRange, xmin=m_muRangeMin, xmax=m_muRangeMax)
61 
62  varName = 'm_detType;sirescalcfailure'
63  title = 'Hits with ResidualPullCalculator problem;Events;DetType'
64  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=2, xmin=0, xmax=2)
65 
66 
67  #TRT Barrel Plots
68  layersTRTB = ['', 'Side_A', 'Side_C']
69  predictedRBArray = helper.addArray([len(layersTRTB)], alg, 'TRTPredictedRB', topPath = pathResiduals)
70  for postfix, tool in predictedRBArray.Tools.items():
71  layer = layersTRTB[int( postfix.split('_')[1] )]
72  title = ('Measured drift radius from TRT Barrel %s' % layer) + ';Predicted Drift Radius [mm];Entries'
73  name = 'm_trt_b_PredictedR;trt_b_PredictedR' + layer
74  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 , xmin = -strawRadius , xmax = strawRadius)
75 
76  measuredRBArray = helper.addArray([len(layersTRTB)], alg, 'TRTMeasuredRB', topPath = pathResiduals)
77  for postfix, tool in measuredRBArray.Tools.items():
78  layer = layersTRTB[int( postfix.split('_')[1] )]
79  title = ('Measured at drift radius for TRT Barrel %s' % layer) + ';Measured Drift Radius [mm];Entries'
80  name = 'm_trt_b_MeasuredR;trt_b_MeasuredR' + layer
81  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 , xmin = -strawRadius , xmax = strawRadius)
82 
83  residualRBArray = helper.addArray([len(layersTRTB)], alg, 'TRTResidualRB', topPath = pathResiduals)
84  for postfix, tool in residualRBArray.Tools.items():
85  layer = layersTRTB[int( postfix.split('_')[1] )]
86  title = ('UnBiased Residual for the TRT %s' % layer) + ';Residual [mm];Entries'
87  name = 'm_trt_b_residualR;trt_b_residualR' + layer
88  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 * m_FinerBinningFactor, xmin = m_minTRTResWindow , xmax = m_maxTRTResWindow)
89 
90  pullRBArray = helper.addArray([len(layersTRTB)], alg, 'TRTPullRB', topPath = pathResiduals)
91  for postfix, tool in pullRBArray.Tools.items():
92  layer = layersTRTB[int( postfix.split('_')[1] )]
93  title = ('Pull for the TRT %s' % layer) + ';Pull;Entries'
94  name = 'm_trt_b_pullR;trt_b_pullR' + layer
95  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100, xmin = -m_RangeOfPullHistos , xmax = m_RangeOfPullHistos)
96 
97  residualRNoTubeBArray = helper.addArray([len(layersTRTB)], alg, 'TRTResidualRNoTubeB', topPath = pathResiduals)
98  for postfix, tool in residualRNoTubeBArray.Tools.items():
99  layer = layersTRTB[int( postfix.split('_')[1] )]
100  title = ('UnBiased Residual (notube) for the TRT %s' % layer) + ';Residual [mm];Entries'
101  name = 'm_trt_b_residualR_notube;trt_b_residualR' + layer + '_notube'
102  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 * m_FinerBinningFactor, xmin = m_minTRTResWindow , xmax = m_maxTRTResWindow)
103 
104  pullRNoTubeBArray = helper.addArray([len(layersTRTB)], alg, 'TRTPullRNoTubeB', topPath = pathResiduals)
105  for postfix, tool in pullRNoTubeBArray.Tools.items():
106  layer = layersTRTB[int( postfix.split('_')[1] )]
107  title = ('Pull (notube) for the TRT %s' % layer) + ';Pull;Entries'
108  name = 'm_trt_b_pullR_notube;trt_b_pullR_notube' + layer
109  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100, xmin = -m_RangeOfPullHistos , xmax = m_RangeOfPullHistos)
110 
111  lrBArray = helper.addArray([len(layersTRTB)], alg, 'TRTLRB', topPath = pathResiduals)
112  for postfix, tool in lrBArray.Tools.items():
113  layer = layersTRTB[int( postfix.split('_')[1] )]
114  title = ('|0= LRcor !isTube | 1= LRcor isTube| 2= !LRcor !isTube | 3= !LRcor isTube %s' % layer) + ';;Entries'
115  name = 'm_trt_b_lr;trt_b_lr' + layer
116  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 4, xmin = 0 , xmax = 4)
117 
118  #Plots for A+C,A,C over Barrel layer 0,1,2
119  layTRTB = ['0', '1', '2']
120  resvsEtaBArray = helper.addArray([len(layersTRTB),len(layTRTB)], alg, 'TRTResVsEtaB', topPath = pathResiduals)
121  for postfix, tool in resvsEtaBArray.Tools.items():
122  layer = layersTRTB[int( postfix.split('_')[1] )]
123  lay = layTRTB[int( postfix.split('_')[2] )]
124  title = ('Average Residual vs Track Eta for TRT Barrel module layer %s %s' % (lay,layer)) + ';Track Eta;Average Residual [mm]'
125  name = 'm_trt_b_aveResVsTrackEta, m_trt_b_residualR;trt_b_aveResVsTrackEta_l' + lay + layer
126  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = 20, xmin = -2.5 , xmax = 2.5, ymin = -1.0 , ymax = 1.0)
127 
128  resVsPhiSecBArray = helper.addArray([len(layersTRTB),len(layTRTB)], alg, 'TRTResVsPhiSecB', topPath = pathResiduals)
129  for postfix, tool in resVsPhiSecBArray.Tools.items():
130  layer = layersTRTB[int( postfix.split('_')[1] )]
131  lay = layTRTB[int( postfix.split('_')[2] )]
132  title = ('Average Residual vs PhiSec for TRT Barrel Layer %s %s' % (lay,layer)) + ';Phi Sector;Average Residual [mm]'
133  name = 'm_trt_b_PhiSec,m_trt_b_residualR;trt_b_aveRes_l' + lay +layer
134  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = m_TRTB_nSectorBins, xmin = -0.5 , xmax = 31.5, ymin = -1.0 , ymax = 1.0)
135 
136  lrVsPhiSecBArray = helper.addArray([len(layersTRTB),len(layTRTB)], alg, 'TRTLRVsPhiSecB', topPath = pathResiduals)
137  for postfix, tool in lrVsPhiSecBArray.Tools.items():
138  layer = layersTRTB[int( postfix.split('_')[1] )]
139  lay = layTRTB[int( postfix.split('_')[2] )]
140  title = ('LR assignment vs Phi Sector for TRT Barrel Layer %s %s' % (lay,layer)) + ';Phi Sector;fraction of LR assignment correct'
141  name = 'm_trt_b_PhiSec,m_trt_b_lrVsPhiSec;trt_b_lr_l' + lay + layer
142  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = m_TRTB_nSectorBins, xmin = -0.5 , xmax = 31.5)
143 
144 
145  #TRT EndCap Plots
146  layersTRTEC = ['Endcap_A', 'Endcap_C']
147  predictedRECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTPredictedREC', topPath = pathResiduals)
148  for postfix, tool in predictedRECArray.Tools.items():
149  layer = layersTRTEC[int( postfix.split('_')[1] )]
150  title = ('Predicted drift radius for TRT %s' % layer) + ';Predicted Drift Radius [mm];Entries'
151  name = 'm_trt_ec_PredictedR;trt_ec_PredictedR' + layer
152  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 , xmin = -strawRadius , xmax = strawRadius)
153 
154  measuredRECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTMeasuredREC', topPath = pathResiduals)
155  for postfix, tool in measuredRECArray.Tools.items():
156  layer = layersTRTEC[int( postfix.split('_')[1] )]
157  title = ('Measured at line drift radius from TRT %s' % layer) + ';Measured Drift Radius [mm];Entries'
158  name = 'm_trt_ec_MeasuredR;trt_ec_MeasuredR' + layer
159  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100 , xmin = -strawRadius , xmax = strawRadius)
160 
161  residualRECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTResidualREC', topPath = pathResiduals)
162  for postfix, tool in residualRECArray.Tools.items():
163  layer = layersTRTEC[int( postfix.split('_')[1] )]
164  title = ('UnBiased Residual for TRT %s' % layer) + ';Residual [mm];Entries'
165  name = 'm_trt_ec_residualR;trt_ec_residualR' + layer
166  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 200, xmin = m_minTRTResWindow , xmax = m_maxTRTResWindow)
167 
168  pullRECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTPullREC', topPath = pathResiduals)
169  for postfix, tool in pullRECArray.Tools.items():
170  layer = layersTRTEC[int( postfix.split('_')[1] )]
171  title = ('Pull for TRT %s' % layer) + ';Pull;Entries'
172  name = 'm_trt_ec_pullR;trt_ec_pullR_' + layer
173  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100, xmin = -m_RangeOfPullHistos , xmax = m_RangeOfPullHistos)
174 
175  pullRNoTubeECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTPullRNoTubeEC', topPath = pathResiduals)
176  for postfix, tool in pullRNoTubeECArray.Tools.items():
177  layer = layersTRTEC[int( postfix.split('_')[1] )]
178  title = ('Pull (notube) for TRT %s' % layer) + ';Pull;Entries'
179  name = 'm_trt_ec_pullR_notube;trt_ec_pullR_notube_' + layer
180  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 100, xmin = -m_RangeOfPullHistos , xmax = m_RangeOfPullHistos)
181 
182  residualRECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTResidualRNoTubeEC', topPath = pathResiduals)
183  for postfix, tool in residualRECArray.Tools.items():
184  layer = layersTRTEC[int( postfix.split('_')[1] )]
185  title = ('UnBiased Residual (notube) for TRT %s' % layer) + ';Residual [mm];Entries'
186  name = 'm_trt_ec_residualR_notube;trt_ec_residualR_notube' + layer
187  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 200, xmin = m_minTRTResWindow , xmax = m_maxTRTResWindow)
188 
189  lrECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTLREC', topPath = pathResiduals)
190  for postfix, tool in lrECArray.Tools.items():
191  layer = layersTRTEC[int( postfix.split('_')[1] )]
192  title = ('|0= LRcor !isTube | 1= LRcor isTube| 2= !LRcor !isTube | 3= !LRcor isTube %s' % layer) + ';;Entries'
193  name = 'm_trt_ec_lr;trt_ec_lr' + layer
194  tool.defineHistogram(name, title = title, type = 'TH1F', xbins = 4, xmin = 0 , xmax = 4)
195 
196  resvsEtaECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTResVsEtaEC', topPath = pathResiduals)
197  for postfix, tool in resvsEtaECArray.Tools.items():
198  layer = layersTRTEC[int( postfix.split('_')[1] )]
199  title = ('Average Residual vs Eta for TRT %s' % layer) + ';Track Eta;Residual [mm]'
200  name = 'm_trt_ec_aveResVsTrackEta, m_trt_ec_residualR;trt_ec_aveResVsTrackEta_' + layer
201  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = 20, xmin = -2.5 , xmax = 2.5, ymin = -1.0, ymax = 1.0)
202 
203  resVsPhiSecECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTResVsPhiEC', topPath = pathResiduals)
204  for postfix, tool in resVsPhiSecECArray.Tools.items():
205  layer = layersTRTEC[int( postfix.split('_')[1] )]
206  title = ('Average Residual vs PhiSec for TRT %s' % layer) + ';Phi Sector;Average Residual [mm]'
207  name = 'm_trt_ec_phi,m_trt_ec_residualR;trt_ec_aveResVsPhiSec_' + layer
208  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = m_TRTEC_nPhiBins, xmin = -0.5 , xmax = 31.5, ymin = -1.0, ymax = 1.0)
209 
210  lrVsPhiSecECArray = helper.addArray([len(layersTRTEC)], alg, 'TRTLRVsPhiEC', topPath = pathResiduals)
211  for postfix, tool in lrVsPhiSecECArray.Tools.items():
212  layer = layersTRTEC[int( postfix.split('_')[1] )]
213  title = ('LR assignment vs Phi Sector for TRT %s' % layer) + ';Phi Sector;fraction of LR assignment correct'
214  name = 'm_trt_ec_phi,m_trt_ec_lrVsPhiSec;trt_ec_lrVsPhiSec_' + layer
215  tool.defineHistogram(name, title = title, type = 'TProfile', xbins = m_TRTEC_nPhiBins, xmin = -0.5 , xmax = m_TRTEC_nPhiBins - 0.5)
216 
217 
218  #Silicon Plots
219  #Common for Pixel and SCT, barrel and Endcaps
220  varName = 'm_si_residualx;si_residualx'
221  title = 'Silicon UnBiased X Residual;Residual [mm];Events'
222  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
223 
224  varName = 'm_si_b_residualx;si_b_residualx'
225  title = 'Silicon Barrel Only UnBiased X Residual;Residual [mm];Events'
226  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
227 
228  varName = 'm_layerDisk_si, m_si_barrel_resX;si_barrel_resX'
229  title = 'Residual X vs Silicon Barrel Layer;Layer;Residual [mm]'
230  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconBarrelLayers, xmin=-0.5, xmax=m_siliconBarrelLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minSiResFillRange, ymax=m_maxSiResFillRange)
231 
232  varName = 'm_layerDisk_si, m_si_barrel_resY;si_barrel_resY'
233  title = 'Residual Y vs Silicon Barrel Layer;Layer;Residual [mm]'
234  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconBarrelLayers, xmin=-0.5, xmax=m_siliconBarrelLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minPIXResYFillRange, ymax=m_maxPIXResYFillRange)
235 
236  varName = 'm_layerDisk_si, m_si_barrel_pullX;si_barrel_pullX'
237  title = 'Pull X vs Silicon Barrel Layer;Layer;Pull'
238  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconBarrelLayers, xmin=-0.5, xmax=m_siliconBarrelLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
239 
240  varName = 'm_layerDisk_si, m_si_barrel_pullY;si_barrel_pullY'
241  title = 'Pull Y vs Silicon Barrel Layer;Layer;Pull'
242  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconBarrelLayers, xmin=-0.5, xmax=m_siliconBarrelLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
243 
244  varName = 'm_layerDisk_si, m_si_eca_resX;si_eca_resX'
245  title = 'Residual X vs Silicon ECA Layer;Residual [mm]'
246  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minSiResFillRange, ymax=m_maxSiResFillRange)
247 
248  varName = 'm_layerDisk_si, m_si_eca_resY;si_eca_resY'
249  title = 'Residual Y vs Silicon ECA Layer;Layer;Residual [mm]'
250  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minPIXResYFillRange, ymax=m_maxPIXResYFillRange)
251 
252  varName = 'm_layerDisk_si, m_si_eca_pullX;si_eca_pullX'
253  title = 'Pull X vs Silicon ECA Layer;Layer;Pull'
254  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
255 
256  varName = 'm_layerDisk_si, m_si_eca_pullY;si_eca_pullY'
257  title = 'Pull Y vs Silicon ECA Layer;Layer;Pull'
258  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
259 
260  varName = 'm_layerDisk_si, m_si_ecc_resX;si_ecc_resX'
261  title = 'Residual X vs Silicon ECC Layer;Layer;Residual [mm]'
262  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minSiResFillRange, ymax=m_maxSiResFillRange)
263 
264  varName = 'm_layerDisk_si, m_si_ecc_resY;si_ecc_resY'
265  title = 'Residual Y vs Silicon ECC Layer;Layer;Residual [mm]'
266  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100 * m_FinerBinningFactor, ymin=m_minPIXResYFillRange, ymax=m_maxPIXResYFillRange)
267 
268  varName = 'm_layerDisk_si, m_si_ecc_pullX;si_ecc_pullX'
269  title = 'Pull X vs Silicon ECA Layer;Layer;Pull'
270  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
271 
272  varName = 'm_layerDisk_si, m_si_ecc_pullY;si_ecc_pullY'
273  title = 'Pull Y vs Silicon ECC Layer;Layer;Pull'
274  residualGroup.defineHistogram(varName, type='TH2F', path=pathResiduals, title=title, xbins=m_siliconECLayers, xmin=-0.5, xmax=m_siliconECLayers-0.5, ybins=100, ymin=-m_RangeOfPullHistos, ymax=m_RangeOfPullHistos)
275 
276 
277  #Pixel Barrel Plots
278  varName = 'm_pix_b_residualx;pix_b_residualx'
279  title = 'UnBiased X Residual Pixel Barrel;Residual [mm];Events'
280  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
281 
282  varName = 'm_pix_b_biased_residualx;pix_b_biasedresidualx'
283  title = 'Biased X Residual Pixel Barrel;Residual [mm];Events'
284  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
285 
286  varName = 'm_pix_b_residualy;pix_b_residualy'
287  title = 'UnBiased Y Residual Pixel Barrel;Residual [mm];Events'
288  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
289 
290  varName = 'm_pix_b_biased_residualy;pix_b_biasedresidualy'
291  title = 'Biased Y Residual Pixel Barrel;Residual [mm];Events'
292  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
293 
294  layersPix = ['0', '1', '2', '3']
295  residualXArray = helper.addArray([len(layersPix)], alg, 'PixResidualX', topPath = pathResiduals)
296  for postfix, tool in residualXArray.Tools.items():
297  layer = layersPix[int( postfix.split('_')[1] )]
298  title = ('UnBiased X Residual Pixel Barrel %s' % layer)
299  name = 'm_pix_residualsx;pix_b' + layer + '_residualx'
300  tool.defineHistogram(name, title = title, type = 'TH1F',
301  xbins = 100 * m_FinerBinningFactor, xmin = m_minSiResFillRange, xmax = m_maxSiResFillRange)
302 
303  residualYArray = helper.addArray([len(layersPix)], alg, 'PixResidualY', topPath = pathResiduals)
304  for postfix, tool in residualYArray.Tools.items():
305  layer = layersPix[int( postfix.split('_')[1] )]
306  title = ('UnBiased Y Residual Pixel Barrel %s' % layer)
307  name = 'm_pix_residualsy;pix_b' + layer + '_residualy'
308  tool.defineHistogram(name, title = title, type = 'TH1F',
309  xbins = 100 * m_FinerBinningFactor, xmin = m_minPIXResYFillRange, xmax = m_maxPIXResYFillRange)
310 
311  # Define local X,Y 3D histograms
312  residualX3DArray = helper.addArray([len(layersPix)], alg, 'PixResidualX_3D', topPath = pathResiduals)
313  for postfix, tool in residualX3DArray.Tools.items():
314  layer = layersPix[int( postfix.split('_')[1] )]
315  title = ('Local X Residual vs Module Eta-Phi-ID Pixel Barrel layer %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
316  name = 'm_modEta,m_modPhi,m_pix_residualsx;pix_b' + layer + '_xresvsmodetaphi_3d'
317  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesPix[int(layer)], xmin = m_EtaModulesMinPix[int(layer)], xmax = m_EtaModulesMaxPix[int(layer)],
318  ybins = m_PhiModules[int(layer)], ymin = -0.5, ymax = m_PhiModules[int(layer)] - 0.5,
319  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
320 
321  residualY3DArray = helper.addArray([len(layersPix)], alg, 'PixResidualY_3D', topPath = pathResiduals)
322  for postfix, tool in residualY3DArray.Tools.items():
323  layer = layersPix[int( postfix.split('_')[1] )]
324  title = ('Local Y Residual vs Module Eta-Phi-ID Pixel Barrel layer %s; Mod Eta; Mod Phi; Local Y Residual [mm]' % layer)
325  name = 'm_modEta,m_modPhi,m_pix_residualsy;pix_b' + layer + '_yresvsmodetaphi_3d'
326  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesPix[int(layer)], xmin = m_EtaModulesMinPix[int(layer)], xmax = m_EtaModulesMaxPix[int(layer)],
327  ybins = m_PhiModules[int(layer)], ymin = -0.5, ymax = m_PhiModules[int(layer)] - 0.5,
328  zmin = m_minPIXResYFillRange, zmax = m_maxPIXResYFillRange)
329 
330  pullXArray = helper.addArray([len(layersPix)], alg, 'PixPullX', topPath = pathResiduals)
331  for postfix, tool in pullXArray.Tools.items():
332  layer = layersPix[int( postfix.split('_')[1] )]
333  title = ('UnBiased X Pull Pixel Barrel %s' % layer) + ';Pull'
334  name = 'm_pix_pullsx;pix_b' + layer + '_pullx'
335  tool.defineHistogram(name, title = title, type = 'TH1F',
336  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
337 
338  pullYArray = helper.addArray([len(layersPix)], alg, 'PixPullY', topPath = pathResiduals)
339  for postfix, tool in pullYArray.Tools.items():
340  layer = layersPix[int( postfix.split('_')[1] )]
341  title = ('UnBiased Y Pull Pixel Barrel %s' % layer) + ';Pull'
342  name = 'm_pix_pullsy;pix_b' + layer + '_pully'
343  tool.defineHistogram(name, title = title, type = 'TH1F',
344  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
345 
346  resXvsEtaArray = helper.addArray([len(layersPix)], alg, 'PixResidualXvsEta', topPath = pathResiduals)
347  for postfix, tool in resXvsEtaArray.Tools.items():
348  layer = layersPix[int( postfix.split('_')[1] )]
349  layerInd = int(layer)
350  EtaModules = m_EtaModulesPix[layerInd]
351  EtaModulesMin = m_EtaModulesMinPix[layerInd]
352  EtaModulesMax = m_EtaModulesMaxPix[layerInd]
353  title = ('X Residual Distribution vs Module Eta-ID Pixel Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
354  name = 'm_modEta,m_residualX;pix_b' + layer + '_xresidualvseta_2d'
355  tool.defineHistogram(name, title = title, type = 'TH2F',
356  xbins = EtaModules, xmin = EtaModulesMin, xmax = EtaModulesMax,
357  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
358 
359  resYvsEtaArray = helper.addArray([len(layersPix)], alg, 'PixResidualYvsEta', topPath = pathResiduals)
360  for postfix, tool in resYvsEtaArray.Tools.items():
361  layer = layersPix[int( postfix.split('_')[1] )]
362  layerInd = int(layer)
363  EtaModules = m_EtaModulesPix[layerInd]
364  EtaModulesMin = m_EtaModulesMinPix[layerInd]
365  EtaModulesMax = m_EtaModulesMaxPix[layerInd]
366  title = ('Y Residual Distribution vs Module Eta-ID Pixel Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
367  name = 'm_modEta,m_residualY;pix_b' + layer + '_yresidualvseta_2d'
368  tool.defineHistogram(name, title = title, type = 'TH2F',
369  xbins = EtaModules, xmin = EtaModulesMin, xmax = EtaModulesMax,
370  ybins = 50 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
371 
372  resXvsPhiArray = helper.addArray([len(layersPix)], alg, 'PixResidualXvsPhi', topPath = pathResiduals)
373  for postfix, tool in resXvsPhiArray.Tools.items():
374  layer = layersPix[int( postfix.split('_')[1] )]
375  layerInd = int(layer)
376  PhiModules = m_PhiModules[layerInd]
377  title = ('X Residual Distribution vs Module Phi-ID Pixel Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
378  name = 'm_modPhi,m_residualX;pix_b' + layer + '_xresidualvsphi_2d'
379  tool.defineHistogram(name, title = title, type = 'TH2F',
380  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
381  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
382 
383  resYvsPhiArray = helper.addArray([len(layersPix)], alg, 'PixResidualYvsPhi', topPath = pathResiduals)
384  for postfix, tool in resYvsPhiArray.Tools.items():
385  layer = layersPix[int( postfix.split('_')[1] )]
386  layerInd = int(layer)
387  PhiModules = m_PhiModules[layerInd]
388  title = ('Y Residual Distribution vs Module Phi-ID Pixel Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
389  name = 'm_modPhi,m_residualY;pix_b' + layer + '_yresidualvsphi_2d'
390  tool.defineHistogram(name, title = title, type = 'TH2F',
391  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
392  ybins = 50 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
393 
394  varName = 'm_modPhiShift_barrel,m_residualX_barrel;pix_b_xresvsmodphi_profile'
395  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel Barrel;(Modified) Phi-ID;Residual [mm]'
396  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
397  xbins = m_PhiModulesShift_barrel, xmin = 0, xmax = m_PhiModulesShift_barrel)
398 
399  varName = 'm_modPhiShift_barrel,m_residualY_barrel;pix_b_yresvsmodphi_profile'
400  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel Barrel;(Modified) Phi-ID;Residual [mm]'
401  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
402  xbins = m_PhiModulesShift_barrel, xmin = 0, xmax = m_PhiModulesShift_barrel)
403 
404  varName = 'm_modEtaShift_barrel,m_residualX_barrel;pix_b_xresvsmodeta_profile'
405  title = 'X Residual Mean vs (Modified) Module Eta-ID Pixel Barrel;(Modified) Eta-ID;Residual [mm]'
406  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
407  xbins = m_EtaModulesShift_barrel, xmin = 0, xmax = m_EtaModulesShift_barrel)
408 
409  varName = 'm_modEtaShift_barrel,m_residualY_barrel;pix_b_yresvsmodeta_profile'
410  title = 'Y Residual Mean vs (Modified) Module Eta-ID Pixel Barrel;(Modified) Eta-ID;Residual [mm]'
411  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
412  xbins = m_EtaModulesShift_barrel, xmin = 0, xmax = m_EtaModulesShift_barrel)
413 
414  #Pixel EndCap A plots
415  layersECPix = ['0', '1', '2']
416  varName = 'm_pix_eca_residualx;pix_eca_residualx'
417  title = 'UnBiased X Residual Pixel EndCap A;Residual [mm]'
418  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
419 
420  varName = 'm_pix_eca_residualy;pix_eca_residualy'
421  title = 'UnBiased Y Residual Pixel EndCap A;Residual [mm]'
422  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
423 
424  varName = 'm_pix_eca_pullx;pix_eca_pulllx'
425  title = 'UnBiased X Pull Pixel EndCap A;Pull'
426  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
427 
428  varName = 'm_pix_eca_pully;pix_eca_pullly'
429  title = 'UnBiased Y Pull Pixel EndCap A;Pull'
430  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
431 
432  residualECAXArray = helper.addArray([len(layersECPix)], alg, 'PixResidualXECA', topPath = pathResiduals)
433  for postfix, tool in residualECAXArray.Tools.items():
434  layer = layersECPix[int( postfix.split('_')[1] )]
435  title = ('UNBIASED X Residual Average vs Module Phi of Pixel Endcap A Disk %s' % layer)
436  name = 'm_modPhi,m_pix_eca_residualx;m_pix_eca_unbiased_xresvsmodphi_disk' + layer
437  tool.defineHistogram(name, title = title, type = 'TProfile',
438  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
439 
440  residualECAYArray = helper.addArray([len(layersECPix)], alg, 'PixResidualYECA', topPath = pathResiduals)
441  for postfix, tool in residualECAYArray.Tools.items():
442  layer = layersECPix[int( postfix.split('_')[1] )]
443  title = ('UNBIASED Y Residual Average vs Module Phi of Pixel Endcap A Disk %s' % layer)
444  name = 'm_modPhi,m_pix_eca_residualy;m_pix_eca_unbiased_yresvsmodphi_disk' + layer
445  tool.defineHistogram(name, title = title, type = 'TProfile',
446  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
447 
448  # Define local X,Y 3D histograms for endcaps A, C
449  endcapsPix = ['a', 'c']
450  residualECX3DArray = helper.addArray([len(endcapsPix)], alg, 'PixResidualXEC_3D', topPath = pathResiduals)
451  for postfix, tool in residualECX3DArray.Tools.items():
452  layer = endcapsPix[int(postfix.split('_')[1])]
453  title = ('Local X Residual vs Module Disk-Phi-ID Pixel Endcap %s; Disk; Mod Phi; Local X Residual [mm]' % layer)
454  name = 'm_layerDisk,m_modPhi,m_pix_ec_residualx;pix_ec' + layer + '_xresvsmodetaphi_3d'
455  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = 3, xmin = - 0.5, xmax = 3 - 0.5,
456  ybins = m_PhiModulesPerRing, ymin = -0.5, ymax = m_PhiModulesPerRing - 0.5,
457  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
458 
459  residualECY3DArray = helper.addArray([len(endcapsPix)], alg, 'PixResidualYEC_3D', topPath = pathResiduals)
460  for postfix, tool in residualECY3DArray.Tools.items():
461  layer = endcapsPix[int( postfix.split('_')[1])]
462  title = ('Local Y Residual vs Module Eta-Phi-ID Pixel Endcap %s; Disk; Mod Phi; Local Y Residual [mm]' % layer)
463  name = 'm_layerDisk,m_modPhi,m_pix_ec_residualy;pix_ec' + layer + '_yresvsmodetaphi_3d'
464  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = 3, xmin = - 0.5, xmax = 3 - 0.5,
465  ybins = m_PhiModulesPerRing, ymin = -0.5, ymax = m_PhiModulesPerRing - 0.5,
466  zmin = m_minPIXResYFillRange, zmax = m_maxPIXResYFillRange)
467 
468  varName = 'm_modPhiShift_eca,m_residualX_eca;pix_eca_xresvsmodphi_2d'
469  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
470  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
471  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
472  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
473 
474  varName = 'm_modPhiShift_eca,m_residualY_eca;pix_eca_yresvsmodphi_2d'
475  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
476  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
477  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
478  ybins = 100 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
479 
480  varName = 'm_modPhiShift_eca,m_residualX_eca;pix_eca_xresvsmodphi_profile'
481  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
482  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
483  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
484 
485  varName = 'm_modPhiShift_eca,m_residualY_eca;pix_eca_yresvsmodphi_profile'
486  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
487  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
488  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
489 
490  #Pixel EndCap C plots
491  varName = 'm_pix_ecc_residualx;pix_ecc_residualx'
492  title = 'UnBiased X Residual Pixel EndCap C;Residual [mm]'
493  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
494 
495  varName = 'm_pix_ecc_residualy;pix_ecc_residualy'
496  title = 'UnBiased Y Residual Pixel EndCap C;Residual [mm]'
497  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
498 
499  varName = 'm_pix_ecc_pullx;pix_ecc_pulllx'
500  title = 'UnBiased X Pull Pixel EndCap C;Pull'
501  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
502 
503  varName = 'm_pix_ecc_pully;pix_ecc_pullly'
504  title = 'UnBiased Y Pull Pixel EndCap C;Pull'
505  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
506 
507  residualECCXArray = helper.addArray([len(layersECPix)], alg, 'PixResidualXECC', topPath = pathResiduals)
508  for postfix, tool in residualECCXArray.Tools.items():
509  layer = layersECPix[int( postfix.split('_')[1] )]
510  title = ('UNBIASED X Residual Average vs Module Phi of Pixel Endcap C Disk %s' % layer)
511  name = 'm_modPhi,m_pix_ecc_residualx;m_pix_ecc_unbiased_xresvsmodphi_disk' + layer
512  tool.defineHistogram(name, title = title, type = 'TProfile',
513  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
514 
515  residualECCYArray = helper.addArray([len(layersECPix)], alg, 'PixResidualYECC', topPath = pathResiduals)
516  for postfix, tool in residualECCYArray.Tools.items():
517  layer = layersECPix[int( postfix.split('_')[1] )]
518  title = ('UNBIASED Y Residual Average vs Module Phi of Pixel Endcap C Disk %s' % layer)
519  name = 'm_modPhi,m_pix_ecc_residualy;m_pix_ecc_unbiased_yresvsmodphi_disk' + layer
520  tool.defineHistogram(name, title = title, type = 'TProfile',
521  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
522 
523  varName = 'm_modPhiShift_ecc,m_residualX_ecc;pix_ecc_xresvsmodphi_2d'
524  title = 'X Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
525  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
526  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
527  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
528 
529  varName = 'm_modPhiShift_ecc,m_residualY_ecc;pix_ecc_yresvsmodphi_2d'
530  title = 'Y Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
531  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
532  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
533  ybins = 100 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
534 
535  varName = 'm_modPhiShift_ecc,m_residualX_ecc;pix_ecc_xresvsmodphi_profile'
536  title = 'X Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
537  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
538  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
539 
540  varName = 'm_modPhiShift_ecc,m_residualY_ecc;pix_ecc_yresvsmodphi_profile'
541  title = 'Y Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
542  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
543  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
544 
545  #SCT Barrel Plots
546  varName = 'm_sct_b_residualx;sct_b_residualx'
547  title = 'UnBiased X Residual SCT Barrel;Residual [mm]'
548  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
549 
550  varName = 'm_sct_b_biased_residualx;sct_b_biasedresidualx'
551  title = 'Biased X Residual SCT Barrel;Residual [mm]'
552  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
553 
554  layersSCTB = ['0', '1', '2', '3']
555  residualSCTXArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualX', topPath = pathResiduals)
556  for postfix, tool in residualSCTXArray.Tools.items():
557  layer = layersSCTB[int( postfix.split('_')[1] )]
558  title = ('UnBiased X Residual SCT Barrel %s' % layer)
559  name = 'm_sct_residualsx;sct_b' + layer + '_residualx'
560  tool.defineHistogram(name, title = title, type = 'TH1F',
561  xbins = 100 * m_FinerBinningFactor, xmin = m_minSiResFillRange, xmax = m_maxSiResFillRange)
562 
563  # Define local X 3D histograms
564  residualSCTX3DArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualX_3D', topPath = pathResiduals)
565  for postfix, tool in residualSCTX3DArray.Tools.items():
566  layer = layersSCTB[int( postfix.split('_')[1] )]
567  title = ('Local X Residual vs Module Eta-Phi-ID SCT Barrel layer %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
568  name = 'm_modEta,m_modPhi,m_sct_residualsx;sct_b' + layer + '_xresvsmodetaphi_3d'
569  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesPix[int(layer)], xmin = m_EtaModulesMinPix[int(layer)], xmax = m_EtaModulesMaxPix[int(layer)],
570  ybins = m_PhiModules[int(layer)], ymin = -0.5, ymax = m_PhiModules[int(layer)] - 0.5,
571  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
572 
573  pullSCTXArray = helper.addArray([len(layersSCTB)], alg, 'SCTPullX', topPath = pathResiduals)
574  for postfix, tool in pullSCTXArray.Tools.items():
575  layer = layersSCTB[int( postfix.split('_')[1] )]
576  title = ('UnBiased X Pull SCT Barrel %s' % layer) + ';Pull'
577  name = 'm_sct_pullsx;sct_b' + layer + '_pullx'
578  tool.defineHistogram(name, title = title, type = 'TH1F',
579  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
580 
581  resXvsEtaSCTArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualXvsEta', topPath = pathResiduals)
582  for postfix, tool in resXvsEtaSCTArray.Tools.items():
583  layer = layersSCTB[int( postfix.split('_')[1] )]
584  layerInd = int(layer)
585  title = ('X Residual Distribution vs Module Eta-ID SCT Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
586  name = 'm_modEta,m_residualX;sct_b' + layer + '_xresidualvseta_2d'
587  tool.defineHistogram(name, title = title, type = 'TH2F',
588  xbins = m_EtaModulesSCT, xmin = m_EtaModulesMinSCT, xmax = m_EtaModulesMaxSCT,
589  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
590 
591  resXvsPhiSCTArray = helper.addArray([len(layersPix)], alg, 'SCTResidualXvsPhi', topPath = pathResiduals)
592  for postfix, tool in resXvsPhiSCTArray.Tools.items():
593  layer = layersSCTB[int( postfix.split('_')[1] )]
594  layerInd = int(layer)
595  PhiModules = m_PhiModulesSCT[layerInd]
596  title = ('X Residual Distribution vs Module Phi-ID SCT Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
597  name = 'm_modPhi,m_residualX;sct_b' + layer + '_xresidualvsphi_2d'
598  tool.defineHistogram(name, title = title, type = 'TH2F',
599  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
600  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
601 
602  varName = 'm_modPhiShift_sct_barrel,m_residualX_sct_barrel;sct_b_xresvsmodphi_profile'
603  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT Barrel;(Modified) Phi-ID;Residual [mm]'
604  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
605  xbins = m_PhiModulesShift_sct_barrel, xmin = - 0.5, xmax = m_PhiModulesShift_sct_barrel - 0.5)
606 
607  varName = 'm_modEtaShift_sct_barrel,m_residualX_sct_barrel;sct_b_xresvsmodeta_profile'
608  title = 'X Residual Mean vs (Modified) Module Eta-ID SCT Barrel;(Modified) Eta-ID;Residual [mm]'
609  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
610  xbins = m_EtaModulesShift_sct_barrel, xmin = - 0.5, xmax = m_EtaModulesShift_sct_barrel - 0.5)
611 
612  #SCT EndCap A plots
613  varName = 'm_sct_eca_residualx;sct_eca_residualx'
614  title = 'UnBiased X Residual SCT EndCap A;Residual [mm]'
615  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
616 
617  # Define local X 3D histograms
618  layersECsct = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
619  residualSCTECAX3DArray = helper.addArray([len(layersECsct)], alg, 'SCTECAResidualX_3D', topPath = pathResiduals)
620  for postfix, tool in residualSCTECAX3DArray.Tools.items():
621  layer = layersECsct[int( postfix.split('_')[1] )]
622  title = ('Local X Residual vs Module Eta-Phi-ID SCT Endcap A Disk %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
623  name = 'm_modEta,m_modPhi,m_sct_eca_residualx;sct_eca' + layer + '_xresvsmodetaphi_3d'
624  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
625  ybins = m_PhiModulesSCTEC, ymin = - 0.5, ymax = m_PhiModulesSCTEC - 0.5,
626  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
627 
628  varName = 'm_sct_eca_pullx;sct_eca_pulllx'
629  title = 'UnBiased X Pull SCT EndCap A;Pull'
630  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
631 
632  varName = 'm_modPhiShift_sct_eca,m_residualX_sct_eca;sct_eca_xresvsmodphi_2d'
633  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECA;(Modified) Phi-ID;Residual [mm]'
634  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
635  xbins = m_PhiModulesShift_sct_ec, xmin = 0, xmax = m_PhiModulesShift_sct_ec,
636  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
637 
638  varName = 'm_modPhiShift_sct_eca,m_residualX_sct_eca;sct_eca_xresvsmodphi_profile'
639  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECA;(Modified) Phi-ID;Residual [mm]'
640  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
641  xbins = m_PhiModulesShift_sct_ec, xmin = - 0.5, xmax = m_PhiModulesShift_sct_ec - 0.5)
642 
643 
644  #SCT EndCap C plots
645  varName = 'm_sct_ecc_residualx;sct_ecc_residualx'
646  title = 'UnBiased X Residual SCT EndCap C;Residual [mm]'
647  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
648 
649  # Define local X 3D histograms
650  residualSCTECCX3DArray = helper.addArray([len(layersECsct)], alg, 'SCTECCResidualX_3D', topPath = pathResiduals)
651  for postfix, tool in residualSCTECCX3DArray.Tools.items():
652  layer = layersECsct[int( postfix.split('_')[1] )]
653  title = ('Local X Residual vs Module Eta-Phi-ID SCT Endcap C Disk %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
654  name = 'm_modEta,m_modPhi,m_sct_ecc_residualx;sct_ecc' + layer + '_xresvsmodetaphi_3d'
655  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
656  ybins = m_PhiModulesSCTEC, ymin = -0.5, ymax = m_PhiModulesSCTEC - 0.5,
657  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
658 
659  varName = 'm_sct_ecc_pullx;sct_ecc_pulllx'
660  title = 'UnBiased X Pull SCT EndCap C;Pull'
661  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
662 
663  varName = 'm_modPhiShift_sct_ecc,m_residualX_sct_ecc;sct_ecc_xresvsmodphi_2d'
664  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECC;(Modified) Phi-ID;Residual [mm]'
665  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
666  xbins = m_PhiModulesShift_sct_ec, xmin = 0, xmax = m_PhiModulesShift_sct_ec,
667  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
668 
669  varName = 'm_modPhiShift_sct_ecc,m_residualX_sct_ecc;sct_ecc_xresvsmodphi_profile'
670  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECC;(Modified) Phi-ID;Residual [mm]'
671  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
672  xbins = m_PhiModulesShift_sct_ec, xmin = - 0.5, xmax = m_PhiModulesShift_sct_ec - 0.5)
673 
674  # end histograms
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
IDAlignMonResidualsAlgCfg.IDAlignMonResidualsAlgCfg
def IDAlignMonResidualsAlgCfg(helper, alg, **kwargs)
Definition: IDAlignMonResidualsAlgCfg.py:10