File indexing completed on 2026-04-07 08:08:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #pragma once
0013
0014 using namespace std;
0015
0016
0017
0018
0019
0020 void STrackCutStudy::InitHists() {
0021
0022
0023 const UInt_t nNHitBins(100);
0024 const UInt_t nQualBins(40);
0025 const UInt_t nDcaBins(2000);
0026 const UInt_t nEtaBins(400);
0027 const UInt_t nPhiBins(60);
0028 const UInt_t nPtBins(100);
0029 const UInt_t nFracBins(100);
0030 const UInt_t nPtFracBins(500);
0031 const UInt_t nDiffBins(2000);
0032 const UInt_t nErrBins(5000);
0033 const UInt_t nXYVtxBins(1000);
0034 const UInt_t nZVtxBins(1200);
0035 const UInt_t nDVtxBins(2400);
0036 const Float_t rNHitBins[NRange] = {0, 100};
0037 const Float_t rQualBins[NRange] = {0., 20.};
0038 const Float_t rDcaBins[NRange] = {-100., 100.};
0039 const Float_t rEtaBins[NRange] = {-2., 2.};
0040 const Float_t rPhiBins[NRange] = {-3.15, 3.15};
0041 const Float_t rPtBins[NRange] = {0., 100.};
0042 const Float_t rFracBins[NRange] = {0., 5.};
0043 const Float_t rPtFracBins[NRange] = {0., 5.};
0044 const Float_t rDiffBins[NRange] = {-100., 100.};
0045 const Float_t rErrBins[NRange] = {0., 100.};
0046 const Float_t rXYVtxBins[NRange] = {-1., 1.};
0047 const Float_t rZVtxBins[NRange] = {-300., 300.};
0048 const Float_t rDVtxBins[NRange] = {-600., 600.};
0049
0050
0051 TString sTrkVar[NType][NTrkVar];
0052 TString sTrkVarDiff[NType][NTrkVar];
0053 TString sTrkVarFrac[NType][NTrkVar];
0054 TString sTrkVarVsNTpc[NType][NTrkVar];
0055 TString sTrkVarVsDcaXY[NType][NTrkVar];
0056 TString sTrkVarVsDcaZ[NType][NTrkVar];
0057 TString sTrkVarVsPtReco[NType][NTrkVar];
0058 TString sTrkVarVsPtTrue[NType][NTrkVar];
0059 TString sTrkVarVsPtFrac[NType][NTrkVar];
0060
0061
0062 TString sPhysVar[NType][NPhysVar];
0063 TString sPhysVarDiff[NType][NPhysVar];
0064 TString sPhysVarFrac[NType][NPhysVar];
0065 TString sPhysVarVsNTpc[NType][NPhysVar];
0066 TString sPhysVarVsDcaXY[NType][NPhysVar];
0067 TString sPhysVarVsDcaZ[NType][NPhysVar];
0068 TString sPhysVarVsPtReco[NType][NPhysVar];
0069 TString sPhysVarVsPtTrue[NType][NPhysVar];
0070 TString sPhysVarVsPtFrac[NType][NPhysVar];
0071
0072
0073 const TString sDiffSuffix("Diff");
0074 const TString sFracSuffix("Frac");
0075 const TString sVsNTpcSuffix("VsNTpc");
0076 const TString sVsDcaXySuffix("VsDcaXY");
0077 const TString sVsDcaZSuffix("VsDcaZ");
0078 const TString sVsPtRecoSuffix("VsPtReco");
0079 const TString sVsPtTrueSuffix("VsPtTrue");
0080 const TString sVsPtFracSuffix("VsPtFrac");
0081
0082
0083 TString sTrkVarName[NTrkVar];
0084 TString sPhysVarName[NPhysVar];
0085 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0086 sTrkVarName[iTrkVar] = "h";
0087 sTrkVarName[iTrkVar].Append(sTrkVars[iTrkVar].Data());
0088 }
0089 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0090 sPhysVarName[iPhysVar] = "h";
0091 sPhysVarName[iPhysVar].Append(sPhysVars[iPhysVar].Data());
0092 }
0093
0094
0095 TString sTypeSuffix[NType];
0096 for (size_t iType = 0; iType < NType; iType++) {
0097 sTypeSuffix[iType] = "_";
0098 sTypeSuffix[iType].Append(sTrkNames[iType].Data());
0099 }
0100
0101 for (size_t iType = 0; iType < NType; iType++) {
0102 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0103 sTrkVar[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0104 sTrkVarDiff[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0105 sTrkVarFrac[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0106 sTrkVarVsNTpc[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0107 sTrkVarVsDcaXY[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0108 sTrkVarVsDcaZ[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0109 sTrkVarVsPtReco[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0110 sTrkVarVsPtTrue[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0111 sTrkVarVsPtFrac[iType][iTrkVar] = sTrkVarName[iTrkVar].Data();
0112 sTrkVarDiff[iType][iTrkVar].Append(sDiffSuffix.Data());
0113 sTrkVarFrac[iType][iTrkVar].Append(sFracSuffix.Data());
0114 sTrkVarVsNTpc[iType][iTrkVar].Append(sVsNTpcSuffix.Data());
0115 sTrkVarVsDcaXY[iType][iTrkVar].Append(sVsDcaXySuffix.Data());
0116 sTrkVarVsDcaZ[iType][iTrkVar].Append(sVsDcaZSuffix.Data());
0117 sTrkVarVsPtReco[iType][iTrkVar].Append(sVsPtRecoSuffix.Data());
0118 sTrkVarVsPtTrue[iType][iTrkVar].Append(sVsPtTrueSuffix.Data());
0119 sTrkVarVsPtFrac[iType][iTrkVar].Append(sVsPtFracSuffix.Data());
0120 sTrkVar[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0121 sTrkVarDiff[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0122 sTrkVarFrac[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0123 sTrkVarVsNTpc[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0124 sTrkVarVsDcaXY[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0125 sTrkVarVsDcaZ[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0126 sTrkVarVsPtReco[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0127 sTrkVarVsPtTrue[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0128 sTrkVarVsPtFrac[iType][iTrkVar].Append(sTypeSuffix[iType].Data());
0129 }
0130 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0131 sPhysVar[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0132 sPhysVarDiff[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0133 sPhysVarFrac[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0134 sPhysVarVsNTpc[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0135 sPhysVarVsDcaXY[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0136 sPhysVarVsDcaZ[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0137 sPhysVarVsPtReco[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0138 sPhysVarVsPtTrue[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0139 sPhysVarVsPtFrac[iType][iPhysVar] = sPhysVarName[iPhysVar].Data();
0140 sPhysVarDiff[iType][iPhysVar].Append(sDiffSuffix.Data());
0141 sPhysVarFrac[iType][iPhysVar].Append(sFracSuffix.Data());
0142 sPhysVarVsNTpc[iType][iPhysVar].Append(sVsNTpcSuffix.Data());
0143 sPhysVarVsDcaXY[iType][iPhysVar].Append(sVsDcaXySuffix.Data());
0144 sPhysVarVsDcaZ[iType][iPhysVar].Append(sVsDcaZSuffix.Data());
0145 sPhysVarVsPtReco[iType][iPhysVar].Append(sVsPtRecoSuffix.Data());
0146 sPhysVarVsPtTrue[iType][iPhysVar].Append(sVsPtTrueSuffix.Data());
0147 sPhysVarVsPtFrac[iType][iPhysVar].Append(sVsPtFracSuffix.Data());
0148 sPhysVar[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0149 sPhysVarDiff[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0150 sPhysVarFrac[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0151 sPhysVarVsNTpc[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0152 sPhysVarVsDcaXY[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0153 sPhysVarVsDcaZ[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0154 sPhysVarVsPtReco[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0155 sPhysVarVsPtTrue[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0156 sPhysVarVsPtFrac[iType][iPhysVar].Append(sTypeSuffix[iType].Data());
0157 }
0158 }
0159
0160
0161 const UInt_t nTrkBins[NTrkVar] = {nXYVtxBins, nXYVtxBins, nZVtxBins, nNHitBins, nNHitBins, nNHitBins, nNHitBins, nQualBins, nDcaBins, nDcaBins,
0162 nErrBins, nErrBins, nNHitBins, nNHitBins};
0163 const UInt_t nTrkDiffBins[NTrkVar] = {nDVtxBins, nDVtxBins, nDVtxBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins,
0164 nDiffBins, nDiffBins, nDiffBins, nDiffBins};
0165 const UInt_t nTrkFracBins[NTrkVar] = {nFracBins, nFracBins, nFracBins, nFracBins, nFracBins, nFracBins, nFracBins, nFracBins, nFracBins, nFracBins,
0166 nFracBins, nFracBins, nFracBins, nFracBins};
0167
0168
0169 const UInt_t nPhysBins[NPhysVar] = {nPhiBins, nEtaBins, nPtBins, nErrBins, nErrBins, nErrBins};
0170 const UInt_t nPhysDiffBins[NPhysVar] = {nDiffBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins, nDiffBins};
0171 const UInt_t nPhysFracBins[NPhysVar] = {nFracBins, nFracBins, nPtFracBins, nFracBins, nFracBins, nFracBins};
0172
0173
0174 const Float_t rTrkBins[NTrkVar][NRange] = {{rXYVtxBins[0], rXYVtxBins[1]}, {rXYVtxBins[0], rXYVtxBins[1]}, {rZVtxBins[0], rZVtxBins[1]},
0175 {rNHitBins[0], rNHitBins[1]}, {rNHitBins[0], rNHitBins[1]}, {rNHitBins[0], rNHitBins[1]},
0176 {rNHitBins[0], rNHitBins[1]}, {rQualBins[0], rQualBins[1]}, {rDcaBins[0], rDcaBins[1]},
0177 {rDcaBins[0], rDcaBins[1]}, {rErrBins[0], rErrBins[1]}, {rErrBins[0], rErrBins[1]},
0178 {rNHitBins[0], rNHitBins[1]}, {rNHitBins[0], rNHitBins[1]}};
0179 const Float_t rTrkDiffBins[NTrkVar][NRange] = {{rDVtxBins[0], rDVtxBins[1]}, {rDVtxBins[0], rDVtxBins[1]}, {rDiffBins[0], rDiffBins[1]},
0180 {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]},
0181 {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]},
0182 {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]},
0183 {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}};
0184 const Float_t rTrkFracBins[NTrkVar][NRange] = {{rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]},
0185 {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]},
0186 {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]},
0187 {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]},
0188 {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}};
0189
0190
0191 const Float_t rPhysBins[NPhysVar][NRange] = {{rPhiBins[0], rPhiBins[1]}, {rEtaBins[0], rEtaBins[1]}, {rPtBins[0], rPtBins[1]},
0192 {rErrBins[0], rErrBins[1]}, {rErrBins[0], rErrBins[1]}, {rErrBins[0], rErrBins[1]}};
0193 const Float_t rPhysDiffBins[NPhysVar][NRange] = {{rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]},
0194 {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}, {rDiffBins[0], rDiffBins[1]}};
0195 const Float_t rPhysFracBins[NPhysVar][NRange] = {{rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rPtFracBins[0], rPtFracBins[1]},
0196 {rFracBins[0], rFracBins[1]}, {rFracBins[0], rFracBins[1]}, {rPtFracBins[0], rPtFracBins[1]}};
0197
0198
0199 for (int iType = 0; iType < NType; iType++) {
0200
0201
0202 if (isBeforeCuts[iType] || isPileup[iType]) {
0203 if (isBeforeCuts[iType] && !doBeforeCuts) continue;
0204 if (isPileup[iType] && !doPileup) continue;
0205 }
0206
0207 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0208 hTrkVar[iType][iTrkVar] = new TH1D(sTrkVar[iType][iTrkVar].Data(), "", nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0209 hTrkVarDiff[iType][iTrkVar] = new TH1D(sTrkVarDiff[iType][iTrkVar].Data(), "", nTrkDiffBins[iTrkVar], rTrkDiffBins[iTrkVar][0], rTrkDiffBins[iTrkVar][1]);
0210 hTrkVarFrac[iType][iTrkVar] = new TH1D(sTrkVarFrac[iType][iTrkVar].Data(), "", nTrkFracBins[iTrkVar], rTrkFracBins[iTrkVar][0], rTrkFracBins[iTrkVar][1]);
0211 hTrkVarVsNTpc[iType][iTrkVar] = new TH2D(sTrkVarVsNTpc[iType][iTrkVar].Data(), "", nNHitBins, rNHitBins[0], rNHitBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0212 hTrkVarVsDcaXY[iType][iTrkVar] = new TH2D(sTrkVarVsDcaXY[iType][iTrkVar].Data(), "", nDcaBins, rDcaBins[0], rDcaBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0213 hTrkVarVsDcaZ[iType][iTrkVar] = new TH2D(sTrkVarVsDcaZ[iType][iTrkVar].Data(), "", nDcaBins, rDcaBins[0], rDcaBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0214 hTrkVarVsPtReco[iType][iTrkVar] = new TH2D(sTrkVarVsPtReco[iType][iTrkVar].Data(), "", nPtBins, rPtBins[0], rPtBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0215 hTrkVarVsPtTrue[iType][iTrkVar] = new TH2D(sTrkVarVsPtTrue[iType][iTrkVar].Data(), "", nPtBins, rPtBins[0], rPtBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0216 hTrkVarVsPtFrac[iType][iTrkVar] = new TH2D(sTrkVarVsPtFrac[iType][iTrkVar].Data(), "", nPtFracBins, rPtFracBins[0], rPtFracBins[1], nTrkBins[iTrkVar], rTrkBins[iTrkVar][0], rTrkBins[iTrkVar][1]);
0217 hTrkVar[iType][iTrkVar] -> Sumw2();
0218 hTrkVarDiff[iType][iTrkVar] -> Sumw2();
0219 hTrkVarFrac[iType][iTrkVar] -> Sumw2();
0220 hTrkVarVsNTpc[iType][iTrkVar] -> Sumw2();
0221 hTrkVarVsDcaXY[iType][iTrkVar] -> Sumw2();
0222 hTrkVarVsDcaZ[iType][iTrkVar] -> Sumw2();
0223 hTrkVarVsPtReco[iType][iTrkVar] -> Sumw2();
0224 hTrkVarVsPtTrue[iType][iTrkVar] -> Sumw2();
0225 hTrkVarVsPtFrac[iType][iTrkVar] -> Sumw2();
0226 }
0227 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0228 hPhysVar[iType][iPhysVar] = new TH1D(sPhysVar[iType][iPhysVar].Data(), "", nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0229 hPhysVarDiff[iType][iPhysVar] = new TH1D(sPhysVarDiff[iType][iPhysVar].Data(), "", nPhysDiffBins[iPhysVar], rPhysDiffBins[iPhysVar][0], rPhysDiffBins[iPhysVar][1]);
0230 hPhysVarFrac[iType][iPhysVar] = new TH1D(sPhysVarFrac[iType][iPhysVar].Data(), "", nPhysFracBins[iPhysVar], rPhysFracBins[iPhysVar][0], rPhysFracBins[iPhysVar][1]);
0231 hPhysVarVsNTpc[iType][iPhysVar] = new TH2D(sPhysVarVsNTpc[iType][iPhysVar].Data(), "", nNHitBins, rNHitBins[0], rNHitBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0232 hPhysVarVsDcaXY[iType][iPhysVar] = new TH2D(sPhysVarVsDcaXY[iType][iPhysVar].Data(), "", nDcaBins, rDcaBins[0], rDcaBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0233 hPhysVarVsDcaZ[iType][iPhysVar] = new TH2D(sPhysVarVsDcaZ[iType][iPhysVar].Data(), "", nDcaBins, rDcaBins[0], rDcaBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0234 hPhysVarVsPtReco[iType][iPhysVar] = new TH2D(sPhysVarVsPtReco[iType][iPhysVar].Data(), "", nPtBins, rPtBins[0], rPtBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0235 hPhysVarVsPtTrue[iType][iPhysVar] = new TH2D(sPhysVarVsPtTrue[iType][iPhysVar].Data(), "", nPtBins, rPtBins[0], rPtBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0236 hPhysVarVsPtFrac[iType][iPhysVar] = new TH2D(sPhysVarVsPtFrac[iType][iPhysVar].Data(), "", nPtFracBins, rPtFracBins[0], rPtFracBins[1], nPhysBins[iPhysVar], rPhysBins[iPhysVar][0], rPhysBins[iPhysVar][1]);
0237 hPhysVar[iType][iPhysVar] -> Sumw2();
0238 hPhysVarDiff[iType][iPhysVar] -> Sumw2();
0239 hPhysVarFrac[iType][iPhysVar] -> Sumw2();
0240 hPhysVarVsNTpc[iType][iPhysVar] -> Sumw2();
0241 hPhysVarVsDcaXY[iType][iPhysVar] -> Sumw2();
0242 hPhysVarVsDcaZ[iType][iPhysVar] -> Sumw2();
0243 hPhysVarVsPtReco[iType][iPhysVar] -> Sumw2();
0244 hPhysVarVsPtTrue[iType][iPhysVar] -> Sumw2();
0245 hPhysVarVsPtFrac[iType][iPhysVar] -> Sumw2();
0246 }
0247 }
0248 cout << " Initialized output histograms." << endl;
0249 return;
0250
0251 }
0252
0253
0254
0255 void STrackCutStudy::NormalizeHists() {
0256
0257 for (int iType = 0; iType < NType; iType++) {
0258
0259
0260 if (isBeforeCuts[iType] || isPileup[iType]) {
0261 if (isBeforeCuts[iType] && !doBeforeCuts) continue;
0262 if (isPileup[iType] && !doPileup) continue;
0263 }
0264
0265 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0266 const Double_t intTrkVar = hTrkVar[iType][iTrkVar] -> Integral();
0267 const Double_t intTrkVarDiff = hTrkVarDiff[iType][iTrkVar] -> Integral();
0268 const Double_t intTrkVarFrac = hTrkVarFrac[iType][iTrkVar] -> Integral();
0269 const Double_t intTrkVarVsNTpc = hTrkVarVsNTpc[iType][iTrkVar] -> Integral();
0270 const Double_t intTrkVarVsDcaXY = hTrkVarVsDcaXY[iType][iTrkVar] -> Integral();
0271 const Double_t intTrkVarVsDcaZ = hTrkVarVsDcaZ[iType][iTrkVar] -> Integral();
0272 const Double_t intTrkVarVsPtReco = hTrkVarVsPtReco[iType][iTrkVar] -> Integral();
0273 const Double_t intTrkVarVsPtTrue = hTrkVarVsPtTrue[iType][iTrkVar] -> Integral();
0274 const Double_t intTrkVarVsPtFrac = hTrkVarVsPtFrac[iType][iTrkVar] -> Integral();
0275 if (intTrkVar > 0.) hTrkVar[iType][iTrkVar] -> Scale(1. / intTrkVar);
0276 if (intTrkVarDiff > 0.) hTrkVarDiff[iType][iTrkVar] -> Scale(1. / intTrkVarDiff);
0277 if (intTrkVarFrac > 0.) hTrkVarFrac[iType][iTrkVar] -> Scale(1. / intTrkVarFrac);
0278 if (intTrkVarVsNTpc > 0.) hTrkVarVsNTpc[iType][iTrkVar] -> Scale(1. / intTrkVarVsNTpc);
0279 if (intTrkVarVsDcaXY > 0.) hTrkVarVsDcaXY[iType][iTrkVar] -> Scale(1. / intTrkVarVsDcaXY);
0280 if (intTrkVarVsDcaZ > 0.) hTrkVarVsDcaZ[iType][iTrkVar] -> Scale(1. / intTrkVarVsDcaZ);
0281 if (intTrkVarVsPtReco > 0.) hTrkVarVsPtReco[iType][iTrkVar] -> Scale(1. / intTrkVarVsPtReco);
0282 if (intTrkVarVsPtTrue > 0.) hTrkVarVsPtTrue[iType][iTrkVar] -> Scale(1. / intTrkVarVsPtTrue);
0283 if (intTrkVarVsPtFrac > 0.) hTrkVarVsPtFrac[iType][iTrkVar] -> Scale(1. / intTrkVarVsPtFrac);
0284 }
0285 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0286 const Double_t intPhysVar = hPhysVar[iType][iPhysVar] -> Integral();
0287 const Double_t intPhysVarDiff = hPhysVarDiff[iType][iPhysVar] -> Integral();
0288 const Double_t intPhysVarFrac = hPhysVarFrac[iType][iPhysVar] -> Integral();
0289 const Double_t intPhysVarVsNTpc = hPhysVarVsNTpc[iType][iPhysVar] -> Integral();
0290 const Double_t intPhysVarVsDcaXY = hPhysVarVsDcaXY[iType][iPhysVar] -> Integral();
0291 const Double_t intPhysVarVsDcaZ = hPhysVarVsDcaZ[iType][iPhysVar] -> Integral();
0292 const Double_t intPhysVarVsPtReco = hPhysVarVsPtReco[iType][iPhysVar] -> Integral();
0293 const Double_t intPhysVarVsPtTrue = hPhysVarVsPtTrue[iType][iPhysVar] -> Integral();
0294 const Double_t intPhysVarVsPtFrac = hPhysVarVsPtFrac[iType][iPhysVar] -> Integral();
0295 if (intPhysVar > 0.) hPhysVar[iType][iPhysVar] -> Scale(1. / intPhysVar);
0296 if (intPhysVarDiff > 0.) hPhysVarDiff[iType][iPhysVar] -> Scale(1. / intPhysVarDiff);
0297 if (intPhysVarFrac > 0.) hPhysVarFrac[iType][iPhysVar] -> Scale(1. / intPhysVarFrac);
0298 if (intPhysVarVsNTpc > 0.) hPhysVarVsNTpc[iType][iPhysVar] -> Scale(1. / intPhysVarVsNTpc);
0299 if (intPhysVarVsDcaXY > 0.) hPhysVarVsDcaXY[iType][iPhysVar] -> Scale(1. / intPhysVarVsDcaXY);
0300 if (intPhysVarVsDcaZ > 0.) hPhysVarVsDcaZ[iType][iPhysVar] -> Scale(1. / intPhysVarVsDcaZ);
0301 if (intPhysVarVsPtReco > 0.) hPhysVarVsPtReco[iType][iPhysVar] -> Scale(1. / intPhysVarVsPtReco);
0302 if (intPhysVarVsPtTrue > 0.) hPhysVarVsPtTrue[iType][iPhysVar] -> Scale(1. / intPhysVarVsPtTrue);
0303 if (intPhysVarVsPtFrac > 0.) hPhysVarVsPtFrac[iType][iPhysVar] -> Scale(1. / intPhysVarVsPtFrac);
0304 }
0305 }
0306 cout << " Normalized histograms." << endl;
0307 return;
0308
0309 }
0310
0311
0312
0313 void STrackCutStudy::SetHistStyles() {
0314
0315
0316 const UInt_t fFil(0);
0317 const UInt_t fLin(1);
0318 const UInt_t fMar2D(1);
0319 const Float_t fOffX(1.0);
0320 const Float_t fOffY(1.2);
0321 const Float_t fOffZ(1.0);
0322
0323
0324 TString sCountToUse("");
0325 if (doIntNorm) {
0326 sCountToUse = "arbitrary units";
0327 } else {
0328 sCountToUse = "counts";
0329 }
0330
0331
0332 const TString sTrkNMms("N_{layer}^{MMS}");
0333 const TString sTrkNMap("N_{layer}^{MAPS}");
0334 const TString sTrkNInt("N_{layer}^{INTT}");
0335 const TString sTrkNTpc("N_{layer}^{TPC}");
0336 const TString sTrkQuality("#chi^{2}/ndf");
0337 const TString sTrkDCAxy("DCA_{xy} [#mum]");
0338 const TString sTrkDCAz("DCA_{z} [#mum]");
0339 const TString sDeltaDCAxy("#DeltaDCA_{xy} / DCA_{xy}");
0340 const TString sDeltaDCAz("#DeltaDCA_{z} / DCA_{z}");
0341 const TString sTrkVx("v_{x} [cm]");
0342 const TString sTrkVy("v_{y} [cm]");
0343 const TString sTrkVz("v_{z} [cm]");
0344 const TString sTrkPhi("#phi");
0345 const TString sTrkEta("#eta");
0346 const TString sTrkPt("p_{T} [GeV/c]");
0347 const TString sTruPt("p_{T}^{truth} [GeV/c]");
0348 const TString sDeltaEta("#Delta#eta^{trk} / #eta^{trk}");
0349 const TString sDeltaPhi("#Delta#phi^{trk} / #phi^{trk}");
0350 const TString sDeltaPt("#Deltap_{T}^{trk} / p_{T}^{trk}");
0351 const TString sTrkNClust("N_{clust}");
0352 const TString sTrkAvgClust("<cluster size>");
0353
0354
0355 const TString sDiffVx("v_{x}^{reco} - v_{x}^{truth}");
0356 const TString sDiffVy("v_{y}^{reco} - v_{y}^{truth}");
0357 const TString sDiffVz("v_{z}^{reco} - v_{z}^{truth}");
0358 const TString sDiffNMms("N_{layer/reco}^{MMS} - N_{layer/truth}^{MMS}");
0359 const TString sDiffNMap("N_{layer/reco}^{MAP} - N_{layer/truth}^{MAP}");
0360 const TString sDiffNInt("N_{layer/reco}^{INTT} - N_{layer/truth}^{INTT}");
0361 const TString sDiffNTpc("N_{layer/reco}^{TPC} - N_{layer/truth}^{TPC}");
0362 const TString sDiffQual("IRRELEVANT");
0363 const TString sDiffDCAxy("DCA_{xy}^{reco} - DCA_{xy}^{truth} [#mum]");
0364 const TString sDiffDCAz("DCA_{z}^{reco} - DCA_{z}^{truth} [#mum]");
0365 const TString sDiffDeltaDCAxy("IRRELEVANT");
0366 const TString sDiffDeltaDCAz("IRRELEVANT");
0367 const TString sDiffPhi("#phi^{reco} - #phi^{truth}");
0368 const TString sDiffEta("#eta^{reco} - #eta^{truth}");
0369 const TString sDiffPt("p_{T}^{reco} - p_{T}^{truth}");
0370 const TString sDiffDeltaPhi("IRRELEVANT");
0371 const TString sDiffDeltaEta("IRRELEVANT");
0372 const TString sDiffDeltaPt("IRRELEVANT");
0373 const TString sDiffNClust("N_{clust}^{reco} - N_{clust}^{truth}");
0374 const TString sDiffAvgClust("<cluster size>_{reco} - <cluster size>_{truth}");
0375
0376
0377 const TString sFracVx("v_{x}^{reco} / v_{x}^{truth}");
0378 const TString sFracVy("v_{y}^{reco} / v_{y}^{truth}");
0379 const TString sFracVz("v_{z}^{reco} / v_{z}^{truth}");
0380 const TString sFracMms("N_{layer/reco}^{MMS} / N_{layer/truth}^{MMS}");
0381 const TString sFracMap("N_{layer/reco}^{MAPS} / N_{layer/truth}^{MAPS}");
0382 const TString sFracInt("N_{layer/reco}^{INTT} / N_{layer/truth}^{INTT}");
0383 const TString sFracTpc("N_{layer/reco}^{TPC} / N_{layer/truth}^{TPC}");
0384 const TString sFracTot("N_{layer/reco}^{tot} / N_{layer/truth}^{tot}");
0385 const TString sFracQual("IRRELEVANT");
0386 const TString sFracDCAxy("DCA_{xy}^{reco} / DCA_{xy}^{truth}");
0387 const TString sFracDCAz("DCA_{z}^{reco} / DCA_{z}^{truth}");
0388 const TString sFracDeltaDCAxy("IRRELEVANT");
0389 const TString sFracDeltaDCAz("IRRELEVANT");
0390 const TString sFracPhi("#delta#phi^{trk} = #phi^{trk} / #phi^{truth}");
0391 const TString sFracEta("#delta#eta^{trk} = #eta^{trk} / #eta^{truth}");
0392 const TString sFracPt("#deltap_{T}^{trk} = p_{T}^{trk} / p_{T}^{truth}");
0393 const TString sFracDeltaPhi("IRRELEVANT");
0394 const TString sFracDeltaEta("IRRELEVANT");
0395 const TString sFracDeltaPt("IRRELEVANT");
0396 const TString sFracNClust("N_{clust}^{reco} / N_{clust}^{truth}");
0397 const TString sFracAvgClust("<cluster size>_{reco} / <cluster size>_{truth}");
0398
0399
0400 const TString sTrkTitles[NTrkVar] = {sTrkVx, sTrkVy, sTrkVz, sTrkNMms, sTrkNMap, sTrkNInt, sTrkNTpc, sTrkQuality, sTrkDCAxy, sTrkDCAz,
0401 sDeltaDCAxy, sDeltaDCAz, sTrkNClust, sTrkAvgClust};
0402 const TString sTrkDiffTitles[NTrkVar] = {sDiffVx, sDiffVy, sDiffVz, sDiffNMms, sDiffNMap, sDiffNInt, sDiffNTpc, sDiffQual, sDiffDCAxy, sDiffDCAz,
0403 sDiffDeltaDCAxy, sDiffDeltaDCAz, sDiffNClust, sDiffAvgClust};
0404 const TString sTrkFracTitles[NTrkVar] = {sFracVx, sFracVy, sFracVz, sFracMms, sFracMap, sFracInt, sFracTpc, sFracQual, sTrkDCAxy, sTrkDCAz,
0405 sFracDeltaDCAxy, sFracDeltaDCAz, sFracNClust, sFracAvgClust};
0406
0407
0408 const TString sPhysTitles[NPhysVar] = {sTrkPhi, sTrkEta, sTrkPt, sDeltaPhi, sDeltaEta, sDeltaPt};
0409 const TString sPhysDiffTitles[NPhysVar] = {sDiffPhi, sDiffEta, sDiffPt, sDiffDeltaPhi, sDiffDeltaEta, sDiffDeltaPt};
0410 const TString sPhysFracTitles[NPhysVar] = {sFracPhi, sFracEta, sFracPt, sFracDeltaPhi, sFracDeltaEta, sFracDeltaPt};
0411
0412 for (Int_t iType = 0; iType < NType; iType++) {
0413
0414
0415 if (isBeforeCuts[iType] || isPileup[iType]) {
0416 if (isBeforeCuts[iType] && !doBeforeCuts) continue;
0417 if (isPileup[iType] && !doPileup) continue;
0418 }
0419
0420 for (Int_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0421 hTrkVar[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0422 hTrkVar[iType][iTrkVar] -> SetMarkerStyle(fTypeMar[iType]);
0423 hTrkVar[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0424 hTrkVar[iType][iTrkVar] -> SetLineStyle(fLin);
0425 hTrkVar[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0426 hTrkVar[iType][iTrkVar] -> SetFillStyle(fFil);
0427 hTrkVar[iType][iTrkVar] -> SetTitleFont(FTxt);
0428 hTrkVar[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0429 hTrkVar[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0430 hTrkVar[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0431 hTrkVar[iType][iTrkVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0432 hTrkVar[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0433 hTrkVar[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0434 hTrkVarDiff[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0435 hTrkVarDiff[iType][iTrkVar] -> SetMarkerStyle(fTypeMar[iType]);
0436 hTrkVarDiff[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0437 hTrkVarDiff[iType][iTrkVar] -> SetLineStyle(fLin);
0438 hTrkVarDiff[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0439 hTrkVarDiff[iType][iTrkVar] -> SetFillStyle(fFil);
0440 hTrkVarDiff[iType][iTrkVar] -> SetTitleFont(FTxt);
0441 hTrkVarDiff[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkDiffTitles[iTrkVar].Data());
0442 hTrkVarDiff[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0443 hTrkVarDiff[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0444 hTrkVarDiff[iType][iTrkVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0445 hTrkVarDiff[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0446 hTrkVarDiff[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0447 hTrkVarFrac[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0448 hTrkVarFrac[iType][iTrkVar] -> SetMarkerStyle(fTypeMar[iType]);
0449 hTrkVarFrac[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0450 hTrkVarFrac[iType][iTrkVar] -> SetLineStyle(fLin);
0451 hTrkVarFrac[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0452 hTrkVarFrac[iType][iTrkVar] -> SetFillStyle(fFil);
0453 hTrkVarFrac[iType][iTrkVar] -> SetTitleFont(FTxt);
0454 hTrkVarFrac[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkFracTitles[iTrkVar].Data());
0455 hTrkVarFrac[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0456 hTrkVarFrac[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0457 hTrkVarFrac[iType][iTrkVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0458 hTrkVarFrac[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0459 hTrkVarFrac[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0460 hTrkVarVsNTpc[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0461 hTrkVarVsNTpc[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0462 hTrkVarVsNTpc[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0463 hTrkVarVsNTpc[iType][iTrkVar] -> SetLineStyle(fLin);
0464 hTrkVarVsNTpc[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0465 hTrkVarVsNTpc[iType][iTrkVar] -> SetFillStyle(fFil);
0466 hTrkVarVsNTpc[iType][iTrkVar] -> SetTitleFont(FTxt);
0467 hTrkVarVsNTpc[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkNTpc.Data());
0468 hTrkVarVsNTpc[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0469 hTrkVarVsNTpc[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0470 hTrkVarVsNTpc[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0471 hTrkVarVsNTpc[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0472 hTrkVarVsNTpc[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0473 hTrkVarVsNTpc[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0474 hTrkVarVsNTpc[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0475 hTrkVarVsNTpc[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0476 hTrkVarVsDcaXY[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0477 hTrkVarVsDcaXY[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0478 hTrkVarVsDcaXY[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0479 hTrkVarVsDcaXY[iType][iTrkVar] -> SetLineStyle(fLin);
0480 hTrkVarVsDcaXY[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0481 hTrkVarVsDcaXY[iType][iTrkVar] -> SetFillStyle(fFil);
0482 hTrkVarVsDcaXY[iType][iTrkVar] -> SetTitleFont(FTxt);
0483 hTrkVarVsDcaXY[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkDCAxy.Data());
0484 hTrkVarVsDcaXY[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0485 hTrkVarVsDcaXY[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0486 hTrkVarVsDcaXY[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0487 hTrkVarVsDcaXY[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0488 hTrkVarVsDcaXY[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0489 hTrkVarVsDcaXY[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0490 hTrkVarVsDcaXY[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0491 hTrkVarVsDcaXY[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0492 hTrkVarVsDcaZ[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0493 hTrkVarVsDcaZ[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0494 hTrkVarVsDcaZ[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0495 hTrkVarVsDcaZ[iType][iTrkVar] -> SetLineStyle(fLin);
0496 hTrkVarVsDcaZ[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0497 hTrkVarVsDcaZ[iType][iTrkVar] -> SetFillStyle(fFil);
0498 hTrkVarVsDcaZ[iType][iTrkVar] -> SetTitleFont(FTxt);
0499 hTrkVarVsDcaZ[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkDCAz.Data());
0500 hTrkVarVsDcaZ[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0501 hTrkVarVsDcaZ[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0502 hTrkVarVsDcaZ[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0503 hTrkVarVsDcaZ[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0504 hTrkVarVsDcaZ[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0505 hTrkVarVsDcaZ[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0506 hTrkVarVsDcaZ[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0507 hTrkVarVsDcaZ[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0508 hTrkVarVsPtReco[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0509 hTrkVarVsPtReco[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0510 hTrkVarVsPtReco[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0511 hTrkVarVsPtReco[iType][iTrkVar] -> SetLineStyle(fLin);
0512 hTrkVarVsPtReco[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0513 hTrkVarVsPtReco[iType][iTrkVar] -> SetFillStyle(fFil);
0514 hTrkVarVsPtReco[iType][iTrkVar] -> SetTitleFont(FTxt);
0515 hTrkVarVsPtReco[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTrkPt.Data());
0516 hTrkVarVsPtReco[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0517 hTrkVarVsPtReco[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0518 hTrkVarVsPtReco[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0519 hTrkVarVsPtReco[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0520 hTrkVarVsPtReco[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0521 hTrkVarVsPtReco[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0522 hTrkVarVsPtReco[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0523 hTrkVarVsPtReco[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0524 hTrkVarVsPtTrue[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0525 hTrkVarVsPtTrue[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0526 hTrkVarVsPtTrue[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0527 hTrkVarVsPtTrue[iType][iTrkVar] -> SetLineStyle(fLin);
0528 hTrkVarVsPtTrue[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0529 hTrkVarVsPtTrue[iType][iTrkVar] -> SetFillStyle(fFil);
0530 hTrkVarVsPtTrue[iType][iTrkVar] -> SetTitleFont(FTxt);
0531 hTrkVarVsPtTrue[iType][iTrkVar] -> GetXaxis() -> SetTitle(sTruPt.Data());
0532 hTrkVarVsPtTrue[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0533 hTrkVarVsPtTrue[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0534 hTrkVarVsPtTrue[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0535 hTrkVarVsPtTrue[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0536 hTrkVarVsPtTrue[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0537 hTrkVarVsPtTrue[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0538 hTrkVarVsPtTrue[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0539 hTrkVarVsPtTrue[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0540 hTrkVarVsPtFrac[iType][iTrkVar] -> SetMarkerColor(fTypeCol[iType]);
0541 hTrkVarVsPtFrac[iType][iTrkVar] -> SetMarkerStyle(fMar2D);
0542 hTrkVarVsPtFrac[iType][iTrkVar] -> SetLineColor(fTypeCol[iType]);
0543 hTrkVarVsPtFrac[iType][iTrkVar] -> SetLineStyle(fLin);
0544 hTrkVarVsPtFrac[iType][iTrkVar] -> SetFillColor(fTypeCol[iType]);
0545 hTrkVarVsPtFrac[iType][iTrkVar] -> SetFillStyle(fFil);
0546 hTrkVarVsPtFrac[iType][iTrkVar] -> SetTitleFont(FTxt);
0547 hTrkVarVsPtFrac[iType][iTrkVar] -> GetXaxis() -> SetTitle(sFracPt.Data());
0548 hTrkVarVsPtFrac[iType][iTrkVar] -> GetXaxis() -> SetTitleFont(FTxt);
0549 hTrkVarVsPtFrac[iType][iTrkVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0550 hTrkVarVsPtFrac[iType][iTrkVar] -> GetYaxis() -> SetTitle(sTrkTitles[iTrkVar].Data());
0551 hTrkVarVsPtFrac[iType][iTrkVar] -> GetYaxis() -> SetTitleFont(FTxt);
0552 hTrkVarVsPtFrac[iType][iTrkVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0553 hTrkVarVsPtFrac[iType][iTrkVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0554 hTrkVarVsPtFrac[iType][iTrkVar] -> GetZaxis() -> SetTitleFont(FTxt);
0555 hTrkVarVsPtFrac[iType][iTrkVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0556 }
0557 for (Int_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0558 hPhysVar[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0559 hPhysVar[iType][iPhysVar] -> SetMarkerStyle(fTypeMar[iType]);
0560 hPhysVar[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0561 hPhysVar[iType][iPhysVar] -> SetLineStyle(fLin);
0562 hPhysVar[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0563 hPhysVar[iType][iPhysVar] -> SetFillStyle(fFil);
0564 hPhysVar[iType][iPhysVar] -> SetTitleFont(FTxt);
0565 hPhysVar[iType][iPhysVar] -> GetXaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0566 hPhysVar[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0567 hPhysVar[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0568 hPhysVar[iType][iPhysVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0569 hPhysVar[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0570 hPhysVar[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0571 hPhysVarDiff[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0572 hPhysVarDiff[iType][iPhysVar] -> SetMarkerStyle(fTypeMar[iType]);
0573 hPhysVarDiff[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0574 hPhysVarDiff[iType][iPhysVar] -> SetLineStyle(fLin);
0575 hPhysVarDiff[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0576 hPhysVarDiff[iType][iPhysVar] -> SetFillStyle(fFil);
0577 hPhysVarDiff[iType][iPhysVar] -> SetTitleFont(FTxt);
0578 hPhysVarDiff[iType][iPhysVar] -> GetXaxis() -> SetTitle(sPhysDiffTitles[iPhysVar].Data());
0579 hPhysVarDiff[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0580 hPhysVarDiff[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0581 hPhysVarDiff[iType][iPhysVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0582 hPhysVarDiff[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0583 hPhysVarDiff[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0584 hPhysVarFrac[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0585 hPhysVarFrac[iType][iPhysVar] -> SetMarkerStyle(fTypeMar[iType]);
0586 hPhysVarFrac[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0587 hPhysVarFrac[iType][iPhysVar] -> SetLineStyle(fLin);
0588 hPhysVarFrac[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0589 hPhysVarFrac[iType][iPhysVar] -> SetFillStyle(fFil);
0590 hPhysVarFrac[iType][iPhysVar] -> SetTitleFont(FTxt);
0591 hPhysVarFrac[iType][iPhysVar] -> GetXaxis() -> SetTitle(sPhysFracTitles[iPhysVar].Data());
0592 hPhysVarFrac[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0593 hPhysVarFrac[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0594 hPhysVarFrac[iType][iPhysVar] -> GetYaxis() -> SetTitle(sCountToUse.Data());
0595 hPhysVarFrac[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0596 hPhysVarFrac[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0597 hPhysVarVsNTpc[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0598 hPhysVarVsNTpc[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0599 hPhysVarVsNTpc[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0600 hPhysVarVsNTpc[iType][iPhysVar] -> SetLineStyle(fLin);
0601 hPhysVarVsNTpc[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0602 hPhysVarVsNTpc[iType][iPhysVar] -> SetFillStyle(fFil);
0603 hPhysVarVsNTpc[iType][iPhysVar] -> SetTitleFont(FTxt);
0604 hPhysVarVsNTpc[iType][iPhysVar] -> GetXaxis() -> SetTitle(sTrkNTpc.Data());
0605 hPhysVarVsNTpc[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0606 hPhysVarVsNTpc[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0607 hPhysVarVsNTpc[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0608 hPhysVarVsNTpc[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0609 hPhysVarVsNTpc[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0610 hPhysVarVsNTpc[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0611 hPhysVarVsNTpc[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0612 hPhysVarVsNTpc[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0613 hPhysVarVsDcaXY[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0614 hPhysVarVsDcaXY[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0615 hPhysVarVsDcaXY[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0616 hPhysVarVsDcaXY[iType][iPhysVar] -> SetLineStyle(fLin);
0617 hPhysVarVsDcaXY[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0618 hPhysVarVsDcaXY[iType][iPhysVar] -> SetFillStyle(fFil);
0619 hPhysVarVsDcaXY[iType][iPhysVar] -> SetTitleFont(FTxt);
0620 hPhysVarVsDcaXY[iType][iPhysVar] -> GetXaxis() -> SetTitle(sTrkDCAxy.Data());
0621 hPhysVarVsDcaXY[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0622 hPhysVarVsDcaXY[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0623 hPhysVarVsDcaXY[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0624 hPhysVarVsDcaXY[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0625 hPhysVarVsDcaXY[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0626 hPhysVarVsDcaXY[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0627 hPhysVarVsDcaXY[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0628 hPhysVarVsDcaXY[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0629 hPhysVarVsDcaZ[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0630 hPhysVarVsDcaZ[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0631 hPhysVarVsDcaZ[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0632 hPhysVarVsDcaZ[iType][iPhysVar] -> SetLineStyle(fLin);
0633 hPhysVarVsDcaZ[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0634 hPhysVarVsDcaZ[iType][iPhysVar] -> SetFillStyle(fFil);
0635 hPhysVarVsDcaZ[iType][iPhysVar] -> SetTitleFont(FTxt);
0636 hPhysVarVsDcaZ[iType][iPhysVar] -> GetXaxis() -> SetTitle(sTrkDCAz.Data());
0637 hPhysVarVsDcaZ[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0638 hPhysVarVsDcaZ[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0639 hPhysVarVsDcaZ[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0640 hPhysVarVsDcaZ[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0641 hPhysVarVsDcaZ[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0642 hPhysVarVsDcaZ[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0643 hPhysVarVsDcaZ[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0644 hPhysVarVsDcaZ[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0645 hPhysVarVsPtReco[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0646 hPhysVarVsPtReco[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0647 hPhysVarVsPtReco[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0648 hPhysVarVsPtReco[iType][iPhysVar] -> SetLineStyle(fLin);
0649 hPhysVarVsPtReco[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0650 hPhysVarVsPtReco[iType][iPhysVar] -> SetFillStyle(fFil);
0651 hPhysVarVsPtReco[iType][iPhysVar] -> SetTitleFont(FTxt);
0652 hPhysVarVsPtReco[iType][iPhysVar] -> GetXaxis() -> SetTitle(sTrkPt.Data());
0653 hPhysVarVsPtReco[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0654 hPhysVarVsPtReco[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0655 hPhysVarVsPtReco[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0656 hPhysVarVsPtReco[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0657 hPhysVarVsPtReco[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0658 hPhysVarVsPtReco[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0659 hPhysVarVsPtReco[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0660 hPhysVarVsPtReco[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0661 hPhysVarVsPtTrue[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0662 hPhysVarVsPtTrue[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0663 hPhysVarVsPtTrue[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0664 hPhysVarVsPtTrue[iType][iPhysVar] -> SetLineStyle(fLin);
0665 hPhysVarVsPtTrue[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0666 hPhysVarVsPtTrue[iType][iPhysVar] -> SetFillStyle(fFil);
0667 hPhysVarVsPtTrue[iType][iPhysVar] -> SetTitleFont(FTxt);
0668 hPhysVarVsPtTrue[iType][iPhysVar] -> GetXaxis() -> SetTitle(sTruPt.Data());
0669 hPhysVarVsPtTrue[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0670 hPhysVarVsPtTrue[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0671 hPhysVarVsPtTrue[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0672 hPhysVarVsPtTrue[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0673 hPhysVarVsPtTrue[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0674 hPhysVarVsPtTrue[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0675 hPhysVarVsPtTrue[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0676 hPhysVarVsPtTrue[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0677 hPhysVarVsPtFrac[iType][iPhysVar] -> SetMarkerColor(fTypeCol[iType]);
0678 hPhysVarVsPtFrac[iType][iPhysVar] -> SetMarkerStyle(fMar2D);
0679 hPhysVarVsPtFrac[iType][iPhysVar] -> SetLineColor(fTypeCol[iType]);
0680 hPhysVarVsPtFrac[iType][iPhysVar] -> SetLineStyle(fLin);
0681 hPhysVarVsPtFrac[iType][iPhysVar] -> SetFillColor(fTypeCol[iType]);
0682 hPhysVarVsPtFrac[iType][iPhysVar] -> SetFillStyle(fFil);
0683 hPhysVarVsPtFrac[iType][iPhysVar] -> SetTitleFont(FTxt);
0684 hPhysVarVsPtFrac[iType][iPhysVar] -> GetXaxis() -> SetTitle(sFracPt.Data());
0685 hPhysVarVsPtFrac[iType][iPhysVar] -> GetXaxis() -> SetTitleFont(FTxt);
0686 hPhysVarVsPtFrac[iType][iPhysVar] -> GetXaxis() -> SetTitleOffset(fOffX);
0687 hPhysVarVsPtFrac[iType][iPhysVar] -> GetYaxis() -> SetTitle(sPhysTitles[iPhysVar].Data());
0688 hPhysVarVsPtFrac[iType][iPhysVar] -> GetYaxis() -> SetTitleFont(FTxt);
0689 hPhysVarVsPtFrac[iType][iPhysVar] -> GetYaxis() -> SetTitleOffset(fOffY);
0690 hPhysVarVsPtFrac[iType][iPhysVar] -> GetZaxis() -> SetTitle(sCountToUse.Data());
0691 hPhysVarVsPtFrac[iType][iPhysVar] -> GetZaxis() -> SetTitleFont(FTxt);
0692 hPhysVarVsPtFrac[iType][iPhysVar] -> GetZaxis() -> SetTitleOffset(fOffZ);
0693 }
0694 }
0695 cout << " Set histogram styles." << endl;
0696 return;
0697
0698 }
0699
0700
0701
0702 void STrackCutStudy::FillTrackHistograms(const Int_t type, const Double_t recoTrkVars[], const Double_t trueTrkVars[], const Double_t recoPhysVars[], const Double_t truePhysVars[]) {
0703
0704
0705 if (isTruth[type]) {
0706 cerr << "PANIC: trying to fill truth histograms in non-truth style! Check what you wrote!\n" << endl;
0707 assert(!isTruth[type]);
0708 }
0709
0710
0711 const auto nTpc = recoTrkVars[TRKVAR::NTPC];
0712 const auto dcaXY = recoTrkVars[TRKVAR::DCAXY];
0713 const auto dcaZ = recoTrkVars[TRKVAR::DCAZ];
0714 const auto ptRec = recoPhysVars[PHYSVAR::PT];
0715 const auto ptTrue = truePhysVars[PHYSVAR::PT];
0716 const auto ptFrac = ptRec / ptTrue;
0717
0718
0719 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0720
0721
0722 const auto trkVarDiff = recoTrkVars[iTrkVar] - trueTrkVars[iTrkVar];
0723 const auto trkVarFrac = recoTrkVars[iTrkVar] / trueTrkVars[iTrkVar];
0724
0725
0726 hTrkVar[type][iTrkVar] -> Fill(recoTrkVars[iTrkVar]);
0727 hTrkVarDiff[type][iTrkVar] -> Fill(trkVarDiff);
0728 hTrkVarFrac[type][iTrkVar] -> Fill(trkVarFrac);
0729 hTrkVarVsNTpc[type][iTrkVar] -> Fill(nTpc, recoTrkVars[iTrkVar]);
0730 hTrkVarVsDcaXY[type][iTrkVar] -> Fill(dcaXY, recoTrkVars[iTrkVar]);
0731 hTrkVarVsDcaZ[type][iTrkVar] -> Fill(dcaZ, recoTrkVars[iTrkVar]);
0732 hTrkVarVsPtReco[type][iTrkVar] -> Fill(ptRec, recoTrkVars[iTrkVar]);
0733 hTrkVarVsPtTrue[type][iTrkVar] -> Fill(ptTrue, recoTrkVars[iTrkVar]);
0734 hTrkVarVsPtFrac[type][iTrkVar] -> Fill(ptFrac, recoTrkVars[iTrkVar]);
0735 }
0736
0737
0738 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0739
0740
0741 const auto trkVarDiff = recoPhysVars[iPhysVar] - truePhysVars[iPhysVar];
0742 const auto trkVarFrac = recoPhysVars[iPhysVar] / truePhysVars[iPhysVar];
0743
0744
0745 hPhysVar[type][iPhysVar] -> Fill(recoPhysVars[iPhysVar]);
0746 hPhysVarDiff[type][iPhysVar] -> Fill(trkVarDiff);
0747 hPhysVarFrac[type][iPhysVar] -> Fill(trkVarFrac);
0748 hPhysVarVsNTpc[type][iPhysVar] -> Fill(nTpc, recoPhysVars[iPhysVar]);
0749 hPhysVarVsDcaXY[type][iPhysVar] -> Fill(dcaXY, recoPhysVars[iPhysVar]);
0750 hPhysVarVsDcaZ[type][iPhysVar] -> Fill(dcaZ, recoPhysVars[iPhysVar]);
0751 hPhysVarVsPtReco[type][iPhysVar] -> Fill(ptRec, recoPhysVars[iPhysVar]);
0752 hPhysVarVsPtTrue[type][iPhysVar] -> Fill(ptTrue, recoPhysVars[iPhysVar]);
0753 hPhysVarVsPtFrac[type][iPhysVar] -> Fill(ptFrac, recoPhysVars[iPhysVar]);
0754 }
0755 return;
0756
0757 }
0758
0759
0760
0761 void STrackCutStudy::FillTruthHistograms(const Int_t type, const Double_t recoTrkVars[], const Double_t trueTrkVars[], const Double_t recoPhysVars[], const Double_t truePhysVars[]) {
0762
0763
0764 if (!isTruth[type]) {
0765 cerr << "PANIC: trying to fill non-truth histograms in truth style! Check what you wrote!\n" << endl;
0766 assert(isTruth[type]);
0767 }
0768
0769
0770 const auto nTpc = recoTrkVars[TRKVAR::NTPC];
0771 const auto dcaXY = recoTrkVars[TRKVAR::DCAXY];
0772 const auto dcaZ = recoTrkVars[TRKVAR::DCAZ];
0773 const auto ptRec = recoPhysVars[PHYSVAR::PT];
0774 const auto ptTrue = truePhysVars[PHYSVAR::PT];
0775 const auto ptFrac = ptRec / ptTrue;
0776
0777
0778 for (size_t iTrkVar = 0; iTrkVar < NTrkVar; iTrkVar++) {
0779
0780
0781 if (!trkVarHasTruVal[iTrkVar]) continue;
0782
0783
0784 hTrkVar[type][iTrkVar] -> Fill(trueTrkVars[iTrkVar]);
0785 hTrkVarVsNTpc[type][iTrkVar] -> Fill(nTpc, trueTrkVars[iTrkVar]);
0786 hTrkVarVsDcaXY[type][iTrkVar] -> Fill(dcaXY, trueTrkVars[iTrkVar]);
0787 hTrkVarVsDcaZ[type][iTrkVar] -> Fill(dcaZ, trueTrkVars[iTrkVar]);
0788 hTrkVarVsPtReco[type][iTrkVar] -> Fill(ptRec, trueTrkVars[iTrkVar]);
0789 hTrkVarVsPtTrue[type][iTrkVar] -> Fill(ptTrue, trueTrkVars[iTrkVar]);
0790 hTrkVarVsPtFrac[type][iTrkVar] -> Fill(ptFrac, trueTrkVars[iTrkVar]);
0791 }
0792
0793
0794 for (size_t iPhysVar = 0; iPhysVar < NPhysVar; iPhysVar++) {
0795
0796
0797 if (!physVarHasTruVal[iPhysVar]) continue;
0798
0799
0800 hPhysVar[type][iPhysVar] -> Fill(truePhysVars[iPhysVar]);
0801 hPhysVarVsNTpc[type][iPhysVar] -> Fill(nTpc, truePhysVars[iPhysVar]);
0802 hPhysVarVsDcaXY[type][iPhysVar] -> Fill(dcaXY, truePhysVars[iPhysVar]);
0803 hPhysVarVsDcaZ[type][iPhysVar] -> Fill(dcaZ, truePhysVars[iPhysVar]);
0804 hPhysVarVsPtReco[type][iPhysVar] -> Fill(ptRec, truePhysVars[iPhysVar]);
0805 hPhysVarVsPtTrue[type][iPhysVar] -> Fill(ptTrue, truePhysVars[iPhysVar]);
0806 hPhysVarVsPtFrac[type][iPhysVar] -> Fill(ptFrac, truePhysVars[iPhysVar]);
0807 }
0808 return;
0809
0810 }
0811
0812