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