Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 = 500
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 
220  #Silicon Plots
221  #Common for Pixel and SCT, barrel and Endcaps
222  varName = 'm_si_residualx;si_residualx'
223  title = 'Silicon UnBiased X Residual;Residual [mm];Events'
224  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
225 
226  varName = 'm_si_b_residualx;si_b_residualx'
227  title = 'Silicon Barrel Only UnBiased X Residual;Residual [mm];Events'
228  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
229 
230  varName = 'm_layerDisk_si, m_si_barrel_resX;si_barrel_resX'
231  title = 'Residual X vs Silicon Barrel Layer;Layer;Residual [mm]'
232  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)
233 
234  varName = 'm_layerDisk_si, m_si_barrel_resY;si_barrel_resY'
235  title = 'Residual Y vs Silicon Barrel Layer;Layer;Residual [mm]'
236  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)
237 
238  varName = 'm_layerDisk_si, m_si_barrel_pullX;si_barrel_pullX'
239  title = 'Pull X vs Silicon Barrel Layer;Layer;Pull'
240  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)
241 
242  varName = 'm_layerDisk_si, m_si_barrel_pullY;si_barrel_pullY'
243  title = 'Pull Y vs Silicon Barrel Layer;Layer;Pull'
244  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)
245 
246  varName = 'm_layerDisk_si, m_si_eca_resX;si_eca_resX'
247  title = 'Residual X vs Silicon ECA Layer;Residual [mm]'
248  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)
249 
250  varName = 'm_layerDisk_si, m_si_eca_resY;si_eca_resY'
251  title = 'Residual Y vs Silicon ECA Layer;Layer;Residual [mm]'
252  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)
253 
254  varName = 'm_layerDisk_si, m_si_eca_pullX;si_eca_pullX'
255  title = 'Pull X vs Silicon ECA Layer;Layer;Pull'
256  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)
257 
258  varName = 'm_layerDisk_si, m_si_eca_pullY;si_eca_pullY'
259  title = 'Pull Y vs Silicon ECA Layer;Layer;Pull'
260  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)
261 
262  varName = 'm_layerDisk_si, m_si_ecc_resX;si_ecc_resX'
263  title = 'Residual X vs Silicon ECC Layer;Layer;Residual [mm]'
264  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)
265 
266  varName = 'm_layerDisk_si, m_si_ecc_resY;si_ecc_resY'
267  title = 'Residual Y vs Silicon ECC Layer;Layer;Residual [mm]'
268  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)
269 
270  varName = 'm_layerDisk_si, m_si_ecc_pullX;si_ecc_pullX'
271  title = 'Pull X vs Silicon ECA Layer;Layer;Pull'
272  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)
273 
274  varName = 'm_layerDisk_si, m_si_ecc_pullY;si_ecc_pullY'
275  title = 'Pull Y vs Silicon ECC Layer;Layer;Pull'
276  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)
277 
278 
279  #Pixel Barrel Plots
280  varName = 'm_pix_b_residualx;pix_b_residualx'
281  title = 'UnBiased X Residual Pixel Barrel;Residual [mm];Events'
282  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
283 
284  varName = 'm_pix_b_biased_residualx;pix_b_biasedresidualx'
285  title = 'Biased X Residual Pixel Barrel;Residual [mm];Events'
286  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
287 
288  varName = 'm_pix_b_residualy;pix_b_residualy'
289  title = 'UnBiased Y Residual Pixel Barrel;Residual [mm];Events'
290  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
291 
292  varName = 'm_pix_b_biased_residualy;pix_b_biasedresidualy'
293  title = 'Biased Y Residual Pixel Barrel;Residual [mm];Events'
294  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
295 
296  layersPix = ['0', '1', '2', '3']
297  layersName = ['IBL','B-layer','1','2']
298  residualXArray = helper.addArray([len(layersPix)], alg, 'PixResidualX', topPath = pathResiduals)
299  for postfix, tool in residualXArray.Tools.items():
300  layer = layersPix[int( postfix.split('_')[1] )]
301  title = ('UnBiased X Residual Pixel Barrel %s' % layersName[int(layer)])
302  name = 'm_pix_residualsx;pix_b' + layer + '_residualx'
303  tool.defineHistogram(name, title = title, type = 'TH1F',
304  xbins = 100 * m_FinerBinningFactor, xmin = m_minSiResFillRange, xmax = m_maxSiResFillRange)
305 
306  residualYArray = helper.addArray([len(layersPix)], alg, 'PixResidualY', topPath = pathResiduals)
307  for postfix, tool in residualYArray.Tools.items():
308  layer = layersPix[int( postfix.split('_')[1] )]
309  title = ('UnBiased Y Residual Pixel Barrel %s' % layersName[int(layer)])
310  name = 'm_pix_residualsy;pix_b' + layer + '_residualy'
311  tool.defineHistogram(name, title = title, type = 'TH1F',
312  xbins = 100 * m_FinerBinningFactor, xmin = m_minPIXResYFillRange, xmax = m_maxPIXResYFillRange)
313 
314  # Define local X,Y 3D histograms (not really 3D histograms but TProfile 2D)
315  residualX2DProfArray = helper.addArray([len(layersPix)], alg, 'PixResidualX_2DProf', topPath = pathResiduals)
316  for postfix, tool in residualX2DProfArray.Tools.items():
317  layer = layersPix[int( postfix.split('_')[1] )]
318  title = ('Local X Residual vs Module Eta-Phi-ID Pixel Barrel layer %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layersName[int(layer)])
319  name = 'm_modEta,m_modPhi,m_pix_residualsx;pix_b' + layer + '_xresvsmodetaphi_2dprof'
320  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesPix[int(layer)], xmin = m_EtaModulesMinPix[int(layer)], xmax = m_EtaModulesMaxPix[int(layer)],
321  ybins = m_PhiModules[int(layer)], ymin = -0.5, ymax = m_PhiModules[int(layer)] - 0.5,
322  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
323 
324  residualY2DProfArray = helper.addArray([len(layersPix)], alg, 'PixResidualY_2DProf', topPath = pathResiduals)
325  for postfix, tool in residualY2DProfArray.Tools.items():
326  layer = layersPix[int( postfix.split('_')[1] )]
327  title = ('Local Y Residual vs Module Eta-Phi-ID Pixel Barrel layer %s; Mod Eta; Mod Phi; Local Y Residual [mm]' % layersName[int(layer)])
328  name = 'm_modEta,m_modPhi,m_pix_residualsy;pix_b' + layer + '_yresvsmodetaphi_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_minPIXResYFillRange, zmax = m_maxPIXResYFillRange)
332 
333  pullXArray = helper.addArray([len(layersPix)], alg, 'PixPullX', topPath = pathResiduals)
334  for postfix, tool in pullXArray.Tools.items():
335  layer = layersPix[int( postfix.split('_')[1] )]
336  title = ('UnBiased X Pull Pixel Barrel %s' % layer) + ';Pull'
337  name = 'm_pix_pullsx;pix_b' + layer + '_pullx'
338  tool.defineHistogram(name, title = title, type = 'TH1F',
339  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
340 
341  pullYArray = helper.addArray([len(layersPix)], alg, 'PixPullY', topPath = pathResiduals)
342  for postfix, tool in pullYArray.Tools.items():
343  layer = layersPix[int( postfix.split('_')[1] )]
344  title = ('UnBiased Y Pull Pixel Barrel %s' % layer) + ';Pull'
345  name = 'm_pix_pullsy;pix_b' + layer + '_pully'
346  tool.defineHistogram(name, title = title, type = 'TH1F',
347  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
348 
349  resXvsEtaArray = helper.addArray([len(layersPix)], alg, 'PixResidualXvsEta', topPath = pathResiduals)
350  for postfix, tool in resXvsEtaArray.Tools.items():
351  layer = layersPix[int( postfix.split('_')[1] )]
352  layerInd = int(layer)
353  EtaModules = m_EtaModulesPix[layerInd]
354  EtaModulesMin = m_EtaModulesMinPix[layerInd]
355  EtaModulesMax = m_EtaModulesMaxPix[layerInd]
356  title = ('X Residual Distribution vs Module Eta-ID Pixel Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
357  name = 'm_modEta,m_residualX;pix_b' + layer + '_xresidualvseta_2d'
358  tool.defineHistogram(name, title = title, type = 'TH2F',
359  xbins = EtaModules, xmin = EtaModulesMin, xmax = EtaModulesMax,
360  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
361 
362  resYvsEtaArray = helper.addArray([len(layersPix)], alg, 'PixResidualYvsEta', topPath = pathResiduals)
363  for postfix, tool in resYvsEtaArray.Tools.items():
364  layer = layersPix[int( postfix.split('_')[1] )]
365  layerInd = int(layer)
366  EtaModules = m_EtaModulesPix[layerInd]
367  EtaModulesMin = m_EtaModulesMinPix[layerInd]
368  EtaModulesMax = m_EtaModulesMaxPix[layerInd]
369  title = ('Y Residual Distribution vs Module Eta-ID Pixel Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
370  name = 'm_modEta,m_residualY;pix_b' + layer + '_yresidualvseta_2d'
371  tool.defineHistogram(name, title = title, type = 'TH2F',
372  xbins = EtaModules, xmin = EtaModulesMin, xmax = EtaModulesMax,
373  ybins = 50 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
374 
375  resXvsPhiArray = helper.addArray([len(layersPix)], alg, 'PixResidualXvsPhi', topPath = pathResiduals)
376  for postfix, tool in resXvsPhiArray.Tools.items():
377  layer = layersPix[int( postfix.split('_')[1] )]
378  layerInd = int(layer)
379  PhiModules = m_PhiModules[layerInd]
380  title = ('X Residual Distribution vs Module Phi-ID Pixel Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
381  name = 'm_modPhi,m_residualX;pix_b' + layer + '_xresidualvsphi_2d'
382  tool.defineHistogram(name, title = title, type = 'TH2F',
383  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
384  ybins = 50 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
385 
386  resYvsPhiArray = helper.addArray([len(layersPix)], alg, 'PixResidualYvsPhi', topPath = pathResiduals)
387  for postfix, tool in resYvsPhiArray.Tools.items():
388  layer = layersPix[int( postfix.split('_')[1] )]
389  layerInd = int(layer)
390  PhiModules = m_PhiModules[layerInd]
391  title = ('Y Residual Distribution vs Module Phi-ID Pixel Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
392  name = 'm_modPhi,m_residualY;pix_b' + layer + '_yresidualvsphi_2d'
393  tool.defineHistogram(name, title = title, type = 'TH2F',
394  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
395  ybins = 50 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
396 
397  varName = 'm_modPhiShift_barrel,m_residualX_barrel;pix_b_xresvsmodphi_profile'
398  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel Barrel;(Modified) Phi-ID;Residual [mm]'
399  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
400  xbins = m_PhiModulesShift_barrel, xmin = 0, xmax = m_PhiModulesShift_barrel)
401 
402  varName = 'm_modPhiShift_barrel,m_residualY_barrel;pix_b_yresvsmodphi_profile'
403  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel Barrel;(Modified) Phi-ID;Residual [mm]'
404  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
405  xbins = m_PhiModulesShift_barrel, xmin = 0, xmax = m_PhiModulesShift_barrel)
406 
407  varName = 'm_modEtaShift_barrel,m_residualX_barrel;pix_b_xresvsmodeta_profile'
408  title = 'X Residual Mean vs (Modified) Module Eta-ID Pixel Barrel;(Modified) Eta-ID;Residual [mm]'
409  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
410  xbins = m_EtaModulesShift_barrel, xmin = 0, xmax = m_EtaModulesShift_barrel)
411 
412  varName = 'm_modEtaShift_barrel,m_residualY_barrel;pix_b_yresvsmodeta_profile'
413  title = 'Y Residual Mean vs (Modified) Module Eta-ID Pixel Barrel;(Modified) Eta-ID;Residual [mm]'
414  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
415  xbins = m_EtaModulesShift_barrel, xmin = 0, xmax = m_EtaModulesShift_barrel)
416 
417  #Pixel EndCap A plots
418  layersECPix = ['0', '1', '2']
419  varName = 'm_pix_eca_residualx;pix_eca_residualx'
420  title = 'UnBiased X Residual Pixel EndCap A;Residual [mm]'
421  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
422 
423  varName = 'm_pix_eca_residualy;pix_eca_residualy'
424  title = 'UnBiased Y Residual Pixel EndCap A;Residual [mm]'
425  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
426 
427  varName = 'm_pix_eca_pullx;pix_eca_pulllx'
428  title = 'UnBiased X Pull Pixel EndCap A;Pull'
429  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
430 
431  varName = 'm_pix_eca_pully;pix_eca_pullly'
432  title = 'UnBiased Y Pull Pixel EndCap A;Pull'
433  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
434 
435  residualECAXArray = helper.addArray([len(layersECPix)], alg, 'PixResidualXECA', topPath = pathResiduals)
436  for postfix, tool in residualECAXArray.Tools.items():
437  layer = layersECPix[int( postfix.split('_')[1] )]
438  title = ('UNBIASED X Residual Average vs Module Phi of Pixel Endcap A Disk %s' % layer)
439  name = 'm_modPhi,m_pix_eca_residualx;m_pix_eca_unbiased_xresvsmodphi_disk' + layer
440  tool.defineHistogram(name, title = title, type = 'TProfile',
441  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
442 
443  residualECAYArray = helper.addArray([len(layersECPix)], alg, 'PixResidualYECA', topPath = pathResiduals)
444  for postfix, tool in residualECAYArray.Tools.items():
445  layer = layersECPix[int( postfix.split('_')[1] )]
446  title = ('UNBIASED Y Residual Average vs Module Phi of Pixel Endcap A Disk %s' % layer)
447  name = 'm_modPhi,m_pix_eca_residualy;m_pix_eca_unbiased_yresvsmodphi_disk' + layer
448  tool.defineHistogram(name, title = title, type = 'TProfile',
449  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
450 
451  # Define local X,Y 3D histograms for endcaps A, C (not really 3D histograms but TProfile 2D)
452  endcapsPix = ['a', 'c']
453  residualECX2DProfArray = helper.addArray([len(endcapsPix)], alg, 'PixResidualXEC_2DProf', topPath = pathResiduals)
454  for postfix, tool in residualECX2DProfArray.Tools.items():
455  layer = endcapsPix[int(postfix.split('_')[1])]
456  title = ('Local X Residual vs Module Disk-Phi-ID Pixel Endcap %s; Disk; Mod Phi; Local X Residual [mm]' % layer.upper())
457  name = 'm_layerDisk,m_modPhi,m_pix_ec_residualx;pix_ec' + layer + '_xresvsmodetaphi_2dprof'
458  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = 3, xmin = - 0.5, xmax = 3 - 0.5,
459  ybins = m_PhiModulesPerRing, ymin = -0.5, ymax = m_PhiModulesPerRing - 0.5,
460  zmin = m_minSiResFillRange, zmax = m_maxSiResFillRange)
461 
462  residualECY2DProfArray = helper.addArray([len(endcapsPix)], alg, 'PixResidualYEC_2DProf', topPath = pathResiduals)
463  for postfix, tool in residualECY2DProfArray.Tools.items():
464  layer = endcapsPix[int( postfix.split('_')[1])]
465  title = ('Local Y Residual vs Module Eta-Phi-ID Pixel Endcap %s; Disk; Mod Phi; Local Y Residual [mm]' % layer.upper())
466  name = 'm_layerDisk,m_modPhi,m_pix_ec_residualy;pix_ec' + layer + '_yresvsmodetaphi_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_minPIXResYFillRange, zmax = m_maxPIXResYFillRange)
470 
471  varName = 'm_modPhiShift_eca,m_residualX_eca;pix_eca_xresvsmodphi_2d'
472  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
473  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
474  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
475  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
476 
477  varName = 'm_modPhiShift_eca,m_residualY_eca;pix_eca_yresvsmodphi_2d'
478  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
479  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
480  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
481  ybins = 100 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
482 
483  varName = 'm_modPhiShift_eca,m_residualX_eca;pix_eca_xresvsmodphi_profile'
484  title = 'X Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
485  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
486  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
487 
488  varName = 'm_modPhiShift_eca,m_residualY_eca;pix_eca_yresvsmodphi_profile'
489  title = 'Y Residual Mean vs (Modified) Module Phi-ID Pixel ECA;(Modified) Phi-ID;Residual [mm]'
490  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
491  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
492 
493  #Pixel EndCap C plots
494  varName = 'm_pix_ecc_residualx;pix_ecc_residualx'
495  title = 'UnBiased X Residual Pixel EndCap C;Residual [mm]'
496  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSiResFillRange, xmax=m_maxSiResFillRange)
497 
498  varName = 'm_pix_ecc_residualy;pix_ecc_residualy'
499  title = 'UnBiased Y Residual Pixel EndCap C;Residual [mm]'
500  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minPIXResYFillRange, xmax=m_maxPIXResYFillRange)
501 
502  varName = 'm_pix_ecc_pullx;pix_ecc_pulllx'
503  title = 'UnBiased X Pull Pixel EndCap C;Pull'
504  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
505 
506  varName = 'm_pix_ecc_pully;pix_ecc_pullly'
507  title = 'UnBiased Y Pull Pixel EndCap C;Pull'
508  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
509 
510  residualECCXArray = helper.addArray([len(layersECPix)], alg, 'PixResidualXECC', topPath = pathResiduals)
511  for postfix, tool in residualECCXArray.Tools.items():
512  layer = layersECPix[int( postfix.split('_')[1] )]
513  title = ('UNBIASED X Residual Average vs Module Phi of Pixel Endcap C Disk %s' % layer)
514  name = 'm_modPhi,m_pix_ecc_residualx;m_pix_ecc_unbiased_xresvsmodphi_disk' + layer
515  tool.defineHistogram(name, title = title, type = 'TProfile',
516  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
517 
518  residualECCYArray = helper.addArray([len(layersECPix)], alg, 'PixResidualYECC', topPath = pathResiduals)
519  for postfix, tool in residualECCYArray.Tools.items():
520  layer = layersECPix[int( postfix.split('_')[1] )]
521  title = ('UNBIASED Y Residual Average vs Module Phi of Pixel Endcap C Disk %s' % layer)
522  name = 'm_modPhi,m_pix_ecc_residualy;m_pix_ecc_unbiased_yresvsmodphi_disk' + layer
523  tool.defineHistogram(name, title = title, type = 'TProfile',
524  xbins = m_PhiModulesPerRing, xmin = -0.5, xmax = m_PhiModulesPerRing - 0.5)
525 
526  varName = 'm_modPhiShift_ecc,m_residualX_ecc;pix_ecc_xresvsmodphi_2d'
527  title = 'X Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
528  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
529  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
530  ybins = 100 * m_FinerBinningFactor, ymin = m_minSiResFillRange, ymax = m_maxSiResFillRange)
531 
532  varName = 'm_modPhiShift_ecc,m_residualY_ecc;pix_ecc_yresvsmodphi_2d'
533  title = 'Y Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
534  residualGroup.defineHistogram(varName, title = title, type = 'TH2F', path=pathResiduals,
535  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec,
536  ybins = 100 * m_FinerBinningFactor, ymin = m_minPIXResYFillRange, ymax = m_maxPIXResYFillRange)
537 
538  varName = 'm_modPhiShift_ecc,m_residualX_ecc;pix_ecc_xresvsmodphi_profile'
539  title = 'X Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
540  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
541  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
542 
543  varName = 'm_modPhiShift_ecc,m_residualY_ecc;pix_ecc_yresvsmodphi_profile'
544  title = 'Y Residual Distribution vs (Modified) Module Phi-ID Pixel ECC;(Modified) Phi-ID;Residual [mm]'
545  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
546  xbins = m_PhiModulesShift_ec, xmin = 0, xmax = m_PhiModulesShift_ec)
547 
548  #SCT Barrel Plots
549  varName = 'm_sct_b_residualx;sct_b_residualx'
550  title = 'UnBiased X Residual SCT Barrel;Residual [mm]'
551  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSCTResFillRange, xmax=m_maxSCTResFillRange)
552 
553  varName = 'm_sct_b_biased_residualx;sct_b_biasedresidualx'
554  title = 'Biased X Residual SCT Barrel;Residual [mm]'
555  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSCTResFillRange, xmax=m_maxSCTResFillRange)
556 
557  layersSCTB = ['0', '1', '2', '3']
558  residualSCTXArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualX', topPath = pathResiduals)
559  for postfix, tool in residualSCTXArray.Tools.items():
560  layer = layersSCTB[int( postfix.split('_')[1] )]
561  title = ('UnBiased X Residual SCT Barrel %s' % layer)
562  name = 'm_sct_residualsx;sct_b' + layer + '_residualx'
563  tool.defineHistogram(name, title = title, type = 'TH1F',
564  xbins = 100 * m_FinerBinningFactor, xmin = m_minSCTResFillRange, xmax = m_maxSCTResFillRange)
565 
566  # Define local X 3D histograms (not really 3D histograms but TProfile 2D)
567  residualSCTX2DProfArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualX_2DProf', topPath = pathResiduals)
568  for postfix, tool in residualSCTX2DProfArray.Tools.items():
569  layer = layersSCTB[int( postfix.split('_')[1] )]
570  title = ('Local X Residual vs Module Eta-Phi-ID SCT Barrel layer %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
571  name = 'm_modEta,m_modPhi,m_sct_residualsx;sct_b' + layer + '_xresvsmodetaphi_2dprof'
572  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCT, xmin = m_EtaModulesMinSCT, xmax = m_EtaModulesMaxSCT,
573  ybins = m_PhiModulesSCT[int(layer)], ymin = -0.5, ymax = m_PhiModulesSCT[int(layer)] - 0.5,
574  zmin = m_minSCTResFillRange, zmax = m_maxSCTResFillRange)
575 
576  residualSCTXS02DProfArray = helper.addArray([len(layersSCTB)], alg, 'SCT_s0_ResidualX_2DProf', topPath = pathResiduals)
577  for postfix, tool in residualSCTXS02DProfArray.Tools.items():
578  layer = layersSCTB[int( postfix.split('_')[1] )]
579  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)
580  name = 'm_modEta,m_modPhi,m_sct_residualsx;sct_b' + layer + '_s0_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  residualSCTXS12DProfArray = helper.addArray([len(layersSCTB)], alg, 'SCT_s1_ResidualX_2DProf', topPath = pathResiduals)
586  for postfix, tool in residualSCTXS12DProfArray.Tools.items():
587  layer = layersSCTB[int( postfix.split('_')[1] )]
588  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)
589  name = 'm_modEta,m_modPhi,m_sct_residualsx;sct_b' + layer + '_s1_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  pullSCTXArray = helper.addArray([len(layersSCTB)], alg, 'SCTPullX', topPath = pathResiduals)
595  for postfix, tool in pullSCTXArray.Tools.items():
596  layer = layersSCTB[int( postfix.split('_')[1] )]
597  title = ('UnBiased X Pull SCT Barrel %s' % layer) + ';Pull'
598  name = 'm_sct_pullsx;sct_b' + layer + '_pullx'
599  tool.defineHistogram(name, title = title, type = 'TH1F',
600  xbins = 100 * m_FinerBinningFactor, xmin = -m_RangeOfPullHistos, xmax = m_RangeOfPullHistos)
601 
602  resXvsEtaSCTArray = helper.addArray([len(layersSCTB)], alg, 'SCTResidualXvsEta', topPath = pathResiduals)
603  for postfix, tool in resXvsEtaSCTArray.Tools.items():
604  layer = layersSCTB[int( postfix.split('_')[1] )]
605  layerInd = int(layer)
606  title = ('X Residual Distribution vs Module Eta-ID SCT Barrel %s' % layer) + ';Mod Eta;Residual [mm]'
607  name = 'm_modEta,m_residualX;sct_b' + layer + '_xresidualvseta_2d'
608  tool.defineHistogram(name, title = title, type = 'TH2F',
609  xbins = m_EtaModulesSCT, xmin = m_EtaModulesMinSCT, xmax = m_EtaModulesMaxSCT,
610  ybins = 50 * m_FinerBinningFactor, ymin = m_minSCTResFillRange, ymax = m_maxSCTResFillRange)
611 
612  resXvsPhiSCTArray = helper.addArray([len(layersPix)], alg, 'SCTResidualXvsPhi', topPath = pathResiduals)
613  for postfix, tool in resXvsPhiSCTArray.Tools.items():
614  layer = layersSCTB[int( postfix.split('_')[1] )]
615  layerInd = int(layer)
616  PhiModules = m_PhiModulesSCT[layerInd]
617  title = ('X Residual Distribution vs Module Phi-ID SCT Barrel %s' % layer) + ';Mod Phi;Residual [mm]'
618  name = 'm_modPhi,m_residualX;sct_b' + layer + '_xresidualvsphi_2d'
619  tool.defineHistogram(name, title = title, type = 'TH2F',
620  xbins = PhiModules, xmin = - 0.5, xmax = PhiModules - 0.5,
621  ybins = 50 * m_FinerBinningFactor, ymin = m_minSCTResFillRange, ymax = m_maxSCTResFillRange)
622 
623  varName = 'm_modPhiShift_sct_barrel,m_residualX_sct_barrel;sct_b_xresvsmodphi_profile'
624  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT Barrel;(Modified) Phi-ID;Residual [mm]'
625  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
626  xbins = m_PhiModulesShift_sct_barrel, xmin = - 0.5, xmax = m_PhiModulesShift_sct_barrel - 0.5)
627 
628  varName = 'm_modEtaShift_sct_barrel,m_residualX_sct_barrel;sct_b_xresvsmodeta_profile'
629  title = 'X Residual Mean vs (Modified) Module Eta-ID SCT Barrel;(Modified) Eta-ID;Residual [mm]'
630  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
631  xbins = m_EtaModulesShift_sct_barrel, xmin = - 0.5, xmax = m_EtaModulesShift_sct_barrel - 0.5)
632 
633  #SCT EndCap A plots
634  varName = 'm_sct_eca_residualx;sct_eca_residualx'
635  title = 'UnBiased X Residual SCT EndCap A;Residual [mm]'
636  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSCTResFillRange, xmax=m_maxSCTResFillRange)
637 
638  # Define local X 3D histograms (not really 3D histograms but TProfile 2D)
639  layersECsct = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
640  residualSCTECAX2DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECAResidualX_2DProf', topPath = pathResiduals)
641  for postfix, tool in residualSCTECAX2DProfArray.Tools.items():
642  layer = layersECsct[int( postfix.split('_')[1] )]
643  title = ('Local X Residual vs Module Eta-Phi-ID SCT Endcap A Disk %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
644  name = 'm_modEta,m_modPhi,m_sct_eca_residualx;sct_eca' + layer + '_xresvsmodetaphi_2dprof'
645  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
646  ybins = m_PhiModulesPerRingSCT, ymin = - 0.5, ymax = m_PhiModulesPerRingSCT - 0.5,
647  zmin=m_minSCTResFillRange, zmax=m_maxSCTResFillRange)
648 
649  residualSCTECAXS02DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECA_s0_ResidualX_2DProf', topPath = pathResiduals)
650  for postfix, tool in residualSCTECAXS02DProfArray.Tools.items():
651  layer = layersECsct[int( postfix.split('_')[1] )]
652  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)
653  name = 'm_modEta,m_modPhi,m_sct_eca_residualx;sct_eca' + layer + '_s0_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  residualSCTECAXS12DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECA_s1_ResidualX_2DProf', topPath = pathResiduals)
659  for postfix, tool in residualSCTECAXS12DProfArray.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 1; Mod Eta; Mod Phi; Local X Residual side 1 [mm]' % layer)
662  name = 'm_modEta,m_modPhi,m_sct_eca_residualx;sct_eca' + layer + '_s1_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  varName = 'm_sct_eca_pullx;sct_eca_pulllx'
668  title = 'UnBiased X Pull SCT EndCap A;Pull'
669  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
670 
671  varName = 'm_modPhiShift_sct_eca,m_residualX_sct_eca;sct_eca_xresvsmodphi_2d'
672  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECA;(Modified) Phi-ID;Residual [mm]'
673  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
674  xbins = m_PhiModulesShift_sct_ec, xmin = 0, xmax = m_PhiModulesShift_sct_ec,
675  ybins = 100 * m_FinerBinningFactor, ymin=m_minSCTResFillRange, ymax=m_maxSCTResFillRange)
676 
677  varName = 'm_modPhiShift_sct_eca,m_residualX_sct_eca;sct_eca_xresvsmodphi_profile'
678  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECA;(Modified) Phi-ID;Residual [mm]'
679  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
680  xbins = m_PhiModulesShift_sct_ec, xmin = - 0.5, xmax = m_PhiModulesShift_sct_ec - 0.5)
681 
682  #SCT EndCap C plots
683  varName = 'm_sct_ecc_residualx;sct_ecc_residualx'
684  title = 'UnBiased X Residual SCT EndCap C;Residual [mm]'
685  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=m_minSCTResFillRange, xmax=m_maxSCTResFillRange)
686 
687  # Define local X 3D histograms (not really 3D histograms but TProfile 2D)
688  residualSCTECCX2DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECCResidualX_2DProf', topPath = pathResiduals)
689  for postfix, tool in residualSCTECCX2DProfArray.Tools.items():
690  layer = layersECsct[int( postfix.split('_')[1] )]
691  title = ('Local X Residual vs Module Eta-Phi-ID SCT Endcap C Disk %s; Mod Eta; Mod Phi; Local X Residual [mm]' % layer)
692  name = 'm_modEta,m_modPhi,m_sct_ecc_residualx;sct_ecc' + layer + '_xresvsmodetaphi_2dprof'
693  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
694  ybins = m_PhiModulesPerRingSCT, ymin = -0.5, ymax = m_PhiModulesPerRingSCT - 0.5,
695  zmin=m_minSCTResFillRange, zmax=m_maxSCTResFillRange)
696 
697  residualSCTECCXS02DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECC_s0_ResidualX_2DProf', topPath = pathResiduals)
698  for postfix, tool in residualSCTECCXS02DProfArray.Tools.items():
699  layer = layersECsct[int( postfix.split('_')[1] )]
700  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)
701  name = 'm_modEta,m_modPhi,m_sct_ecc_residualx;sct_ecc' + layer + '_s0_xresvsmodetaphi_2dprof'
702  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
703  ybins = m_PhiModulesPerRingSCT, ymin = - 0.5, ymax = m_PhiModulesPerRingSCT - 0.5,
704  zmin=m_minSCTResFillRange, zmax=m_maxSCTResFillRange)
705 
706  residualSCTECCXS12DProfArray = helper.addArray([len(layersECsct)], alg, 'SCTECC_s1_ResidualX_2DProf', topPath = pathResiduals)
707  for postfix, tool in residualSCTECCXS12DProfArray.Tools.items():
708  layer = layersECsct[int( postfix.split('_')[1] )]
709  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)
710  name = 'm_modEta,m_modPhi,m_sct_ecc_residualx;sct_ecc' + layer + '_s1_xresvsmodetaphi_2dprof'
711  tool.defineHistogram(name, title = title, type = 'TProfile2D', xbins = m_EtaModulesSCTEC, xmin = -0.5, xmax = m_EtaModulesSCTEC - 0.5,
712  ybins = m_PhiModulesPerRingSCT, ymin = - 0.5, ymax = m_PhiModulesPerRingSCT - 0.5,
713  zmin=m_minSCTResFillRange, zmax=m_maxSCTResFillRange)
714 
715  varName = 'm_sct_ecc_pullx;sct_ecc_pulllx'
716  title = 'UnBiased X Pull SCT EndCap C;Pull'
717  residualGroup.defineHistogram(varName, type='TH1F', path=pathResiduals, title=title, xbins=100, xmin=-m_RangeOfPullHistos, xmax=m_RangeOfPullHistos)
718 
719  varName = 'm_modPhiShift_sct_ecc,m_residualX_sct_ecc;sct_ecc_xresvsmodphi_2d'
720  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECC;(Modified) Phi-ID;Residual [mm]'
721  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
722  xbins = m_PhiModulesShift_sct_ec, xmin = 0, xmax = m_PhiModulesShift_sct_ec,
723  ybins = 100 * m_FinerBinningFactor, ymin=m_minSCTResFillRange, ymax=m_maxSCTResFillRange)
724 
725  varName = 'm_modPhiShift_sct_ecc,m_residualX_sct_ecc;sct_ecc_xresvsmodphi_profile'
726  title = 'X Residual Mean vs (Modified) Module Phi-ID SCT ECC;(Modified) Phi-ID;Residual [mm]'
727  residualGroup.defineHistogram(varName, title = title, type = 'TProfile', path=pathResiduals,
728  xbins = m_PhiModulesShift_sct_ec, xmin = - 0.5, xmax = m_PhiModulesShift_sct_ec - 0.5)
729 
730  # end histograms
731  #
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
IDAlignMonResidualsAlgCfg.IDAlignMonResidualsAlgCfg
def IDAlignMonResidualsAlgCfg(helper, alg, **kwargs)
Definition: IDAlignMonResidualsAlgCfg.py:10