5 '''@file InDetAlignMonResidualsAlgCfg.py 
    8 @brief Configuration for Run 3 based on InDetAlignMonResiduals.cxx 
   11     '''Function to configures some algorithms in the monitoring system.''' 
   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
 
   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
 
   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 
 
   45     m_minTRTResWindow = -0.6
 
   46     m_maxTRTResWindow = 0.6
 
   47     m_TRTB_nSectorBins = 32
 
   51     folderName = 
"ExtendedTracks" 
   52     if "TrackName" in kwargs:
 
   53         folderName = kwargs[
"TrackName"]
 
   56     residualGroup = helper.addGroup(alg, 
'Residuals')
 
   57     pathResiduals = 
'/IDAlignMon/'+folderName+
'/Residuals' 
   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)
 
   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)
 
   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)
 
   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)
 
   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)
 
   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)
 
   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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)
 
  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)