1 #define DCdEdxSelector_cxx
36 TString option = GetOption();
47 dOutputFile =
new TFile(
"dh_DCdEdxHists.root",
"RECREATE");
62 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_Proton1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
63 locFunc->SetParameters(15.0407, -4.60489, 0.501318, -0.0913598);
65 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_Proton2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
66 locFunc->SetParameters(26.6243, -5.92033, 0.384732, -0.0820965);
68 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_Proton3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
69 locFunc->SetParameters(10.0415, -4.956, 0.29667, -0.0551989);
71 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_Proton4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
72 locFunc->SetParameters(14.5991, -5.9726, 0.274239, -0.0546458);
75 for(
unsigned int loc_i = 0; loc_i < 4; loc_i++)
79 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
80 locFunc->SetParameters(14.263, -3.91119, 0.471623, -0.0867709);
82 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
83 locFunc->SetParameters(10.5091, -4.2701, 0.638759, -0.191789);
85 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
86 locFunc->SetParameters(5.74486, -3.46166, 0.353456, -0.0594251);
88 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
89 locFunc->SetParameters(6.93564, -4.55521, 0.372744, -0.0809587);
91 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton5",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
92 locFunc->SetParameters(11.3186, -6.17783, 0.269247, -0.0525885);
94 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_Proton6",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
95 locFunc->SetParameters(8.41072, -5.90604, 0.23806, -0.0406181);
98 for(
unsigned int loc_i = 0; loc_i < 6; loc_i++)
102 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
103 locFunc->SetParameters(1.8644, -1.92051, 0.401207, -0.00510045);
105 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
106 locFunc->SetParameters(3.08596, -2.55591, 0.326127, -0.00439305);
108 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
109 locFunc->SetParameters(1.63183, -2.18999, 0.276187, -0.00277214);
111 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
112 locFunc->SetParameters(0.42353, -1.12885, 0.218266, 0.000475549);
114 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus5",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
115 locFunc->SetParameters(0.599551, -1.27373, 0.15483, 0.00125788);
117 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_PiPlus6",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
118 locFunc->SetParameters(1.02319, -2.15814, 0.146108, 0.00126295);
120 for(
unsigned int loc_i = 0; loc_i < 6; loc_i++)
124 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_PiPlus1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
125 locFunc->SetParameters(0.972821, -1.13778, 0.28177, 0.00414764);
127 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_PiPlus2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
128 locFunc->SetParameters(0.72011, -1.13622, 0.205834, 0.00248226);
130 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_PiPlus3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
131 locFunc->SetParameters(0.783602, -1.58954, 0.175932, 0.00139313);
133 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_PiPlus4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
134 locFunc->SetParameters(0.666107, -1.50611, 0.144197, 0.0019479);
136 for(
unsigned int loc_i = 0; loc_i < 4; loc_i++)
141 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
142 locFunc->SetParameters(10.3149, -3.48486, 0.590082, -0.0757512);
144 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
145 locFunc->SetParameters(10.9306, -3.49101, 0.443805, -0.0527794);
147 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
148 locFunc->SetParameters(7.71149, -3.19237, 0.319949, -0.0248138);
150 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
151 locFunc->SetParameters(2.70214, -2.51235, 0.224439, -0.00564491);
153 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus5",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
154 locFunc->SetParameters(1.12165, -2.16051, 0.155717, 0.000195505);
156 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_CDC_KPlus6",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
157 locFunc->SetParameters(1.60267, -2.62908, 0.153127, -0.000775554);
159 for(
unsigned int loc_i = 0; loc_i < 6; loc_i++)
163 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_KPlus1",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
164 locFunc->SetParameters(3.4624, -2.51387, 0.328651, -0.00906703);
166 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_KPlus2",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
167 locFunc->SetParameters(8.77765, -3.16076, 0.20651, 0.00175279);
169 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_KPlus3",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
170 locFunc->SetParameters(6.44965, -3.01797, 0.175224, -0.000185835);
172 locFunc =
new TF1(
"dPID_dEdxSigmaFunc_FDC_KPlus4",
"[0]*exp([1]*x) + [2] + [3]*x", 0.0, 100.0);
173 locFunc->SetParameters(1.37552, -2.21704, 0.148445, 0.0014621);
175 for(
unsigned int loc_i = 0; loc_i < 4; loc_i++)
178 unsigned int locNumBetaBins = 240;
179 unsigned int locNumdEdxBins = 5000;
180 unsigned int locNumMomentumBins = 500;
181 unsigned int locNumBetaGammaBins = 1500;
182 unsigned int locNumHitsBins = 20;
183 unsigned int locThetaBins = 600;
184 unsigned int locNumdxBins = 500;
185 float locBetaMin = 0.0, locBetaMax = 1.0;
186 float locdEdxMin = 0.0, locdEdxMax = 100.0;
187 float locMomentumMin = 0.0, locMomentumMax = 3.0;
188 float locBetaGammaMin = 0.0, locBetaGammaMax = 15.0;
189 float locNumHitsMin = -0.5, locNumHitsMax = 19.5;
190 float locThetaMin = 0.0, locThetaMax = 150.0;
191 float locdxMin = 0.0, locdxMax = 50.0;
195 dSelectorHist_dEdxVsBeta_HitsCutoff_FDC =
new TH2F(
"dSelectorHist_dEdxVsBeta_HitsCutoff_FDC",
";#beta;FDC #frac{dE}{dx} (keV/cm)", locNumBetaBins, locBetaMin, locBetaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
196 dSelectorHist_dEdxVsP_HitsCutoff_FDC =
new TH2F(
"dSelectorHist_dEdxVsP_HitsCutoff_FDC",
";p (GeV/c);FDC #frac{dE}{dx} (keV/cm)", locNumMomentumBins, locMomentumMin, locMomentumMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
197 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC",
";#beta#gamma;FDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
198 dSelectorHist_dEdxVsBeta_HitsCutoff_CDC =
new TH2F(
"dSelectorHist_dEdxVsBeta_HitsCutoff_CDC",
";#beta;CDC #frac{dE}{dx} (keV/cm)", locNumBetaBins, locBetaMin, locBetaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
199 dSelectorHist_dEdxVsP_HitsCutoff_CDC =
new TH2F(
"dSelectorHist_dEdxVsP_HitsCutoff_CDC",
";p (GeV/c);CDC #frac{dE}{dx} (keV/cm)", locNumMomentumBins, locMomentumMin, locMomentumMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
200 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC",
";#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
202 dSelectorHist_NumHitsVsTheta_CDC =
new TH2F(
"dSelectorHist_NumHitsVsTheta_CDC",
";#theta#circ;#CDC Hits / 2", locThetaBins, locThetaMin, locThetaMax, locNumHitsBins, locNumHitsMin, locNumHitsMax);
203 dSelectorHist_dxVsNumHits_CDC =
new TH2F(
"dSelectorHist_dxVsNumHits_CDC",
";#CDC Hits / 2;dx (cm)", locNumHitsBins, locNumHitsMin, locNumHitsMax, locNumdxBins, locdxMin, locdxMax);
204 dSelectorHist_dxVsTheta_CDC =
new TH2F(
"dSelectorHist_dxVsTheta_CDC",
";#theta#circ;CDC dx (cm)", locThetaBins, locThetaMin, locThetaMax, locNumdxBins, locdxMin, locdxMax);
205 dSelectorHist_NumHitsVsTheta_FDC =
new TH2F(
"dSelectorHist_NumHitsVsTheta_FDC",
";#theta#circ;#FDC Hits / 2", locThetaBins, locThetaMin, locThetaMax, locNumHitsBins, locNumHitsMin, locNumHitsMax);
206 dSelectorHist_dxVsNumHits_FDC =
new TH2F(
"dSelectorHist_dxVsNumHits_FDC",
";#FDC Hits / 2;dx (cm)", locNumHitsBins, locNumHitsMin, locNumHitsMax, locNumdxBins, locdxMin, locdxMax);
207 dSelectorHist_dxVsTheta_FDC =
new TH2F(
"dSelectorHist_dxVsTheta_FDC",
";#theta#circ;FDC dx (cm)", locThetaBins, locThetaMin, locThetaMax, locNumdxBins, locdxMin, locdxMax);
209 dSelectorHist_NumHitsFDCVsNumHitsCDC =
new TH2F(
"dSelectorHist_NumHitsFDCVsNumHitsCDC",
";#FDC Hits / 2;#CDC Hits / 2", locNumHitsBins, locNumHitsMin, locNumHitsMax, locNumHitsBins, locNumHitsMin, locNumHitsMax);
216 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_3Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_3Hits",
"# FDC Hits Used = 3;#beta#gamma;FDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
217 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_6Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_6Hits",
"# FDC Hits Used = 6;#beta#gamma;FDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
218 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_9Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_9Hits",
"# FDC Hits Used = 9;#beta#gamma;FDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
219 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_12Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_12Hits",
"# FDC Hits Used = 12;#beta#gamma;FDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
221 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_2Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_2Hits",
"# CDC Hits Used = 2;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
222 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_4Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_4Hits",
"# CDC Hits Used = 4;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
223 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_6Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_6Hits",
"# CDC Hits Used = 6;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
224 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_8Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_8Hits",
"# CDC Hits Used = 8;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
225 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_10Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_10Hits",
"# CDC Hits Used = 10;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
226 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_12Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_12Hits",
"# CDC Hits Used = 12;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
227 dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_14Hits =
new TH2F(
"dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_14Hits",
"# CDC Hits Used = 14;#beta#gamma;CDC #frac{dE}{dx} (keV/cm)", locNumBetaGammaBins, locBetaGammaMin, locBetaGammaMax, locNumdEdxBins, locdEdxMin, locdEdxMax);
230 unsigned int locNumConfidenceLevelBins = 400;
280 TString option = GetOption();
305 if((entry % 1000) == 0)
306 cout <<
"entry = " << entry << endl;
308 double ddEdxkeV_FDC = 1000000.0*
ddEdx_FDC;
309 double ddEdxkeV_CDC = 1000000.0*
ddEdx_CDC;
312 float locTheta_Degrees =
dTheta*180.0/3.141592654;
314 unsigned int locMinimumNumHitsUsed = 3;
366 bool locCalcStatus =
Calc_FOM(locFOM);
374 if(locCalcStatus ==
false)
391 if((locBetaGamma >= 0.3) && (locBetaGamma < 0.6))
393 if((locBetaGamma >= 0.6) && (locBetaGamma < 0.9))
395 if((locBetaGamma >= 0.9) && (locBetaGamma < 1.2))
397 if((locBetaGamma >= 1.2) && (locBetaGamma < 1.5))
399 if((locBetaGamma >= 1.5) && (locBetaGamma < 1.8))
401 if((locBetaGamma >= 1.8) && (locBetaGamma < 2.1))
403 if((locBetaGamma >= 2.1) && (locBetaGamma < 4.1))
405 if((locBetaGamma >= 4.1) && (locBetaGamma < 6.1))
407 if((locBetaGamma >= 6.1) && (locBetaGamma < 8.1))
409 if((locBetaGamma >= 8.1) && (locBetaGamma < 10.1))
411 if((locBetaGamma >= 10.1) && (locBetaGamma < 12.1))
413 if((locBetaGamma >= 12.1) && (locBetaGamma < 14.1))
431 if((locBetaGamma >= 0.3) && (locBetaGamma < 0.6))
433 if((locBetaGamma >= 0.6) && (locBetaGamma < 0.9))
435 if((locBetaGamma >= 0.9) && (locBetaGamma < 1.2))
437 if((locBetaGamma >= 1.2) && (locBetaGamma < 1.5))
439 if((locBetaGamma >= 1.5) && (locBetaGamma < 1.8))
441 if((locBetaGamma >= 1.8) && (locBetaGamma < 2.1))
443 if((locBetaGamma >= 2.1) && (locBetaGamma < 4.1))
445 if((locBetaGamma >= 4.1) && (locBetaGamma < 6.1))
447 if((locBetaGamma >= 6.1) && (locBetaGamma < 8.1))
449 if((locBetaGamma >= 8.1) && (locBetaGamma < 10.1))
451 if((locBetaGamma >= 10.1) && (locBetaGamma < 12.1))
453 if((locBetaGamma >= 12.1) && (locBetaGamma < 14.1))
462 double locMeandEdx_CDC, locMeandEdx_FDC;
491 float locNumNotEnoughHits, locNumGenerated, locNotEnoughHitsRatio, locNotEnoughHitsRatioUncertainty;
495 locNotEnoughHitsRatio = locNumNotEnoughHits/locNumGenerated;
496 locNotEnoughHitsRatioUncertainty =
sqrt(locNumNotEnoughHits*(1.0 - locNotEnoughHitsRatio))/locNumGenerated;
505 double locBetaGammaValue = locBeta/
sqrt(1.0 - locBeta*locBeta);
507 if(locBetaGammaValue < 0.3)
509 if(locBetaGammaValue > 2.15)
516 if(locBetaGammaValue < 0.65)
518 if(locBetaGammaValue > 4.1)
525 double locBetaGamma[44];
526 double locdEdxMean[44];
527 locBetaGamma[0] = 0.48; locBetaGamma[1] = 0.8; locBetaGamma[2] = 1.12; locBetaGamma[3] = 1.44; locBetaGamma[4] = 1.76; locBetaGamma[5] = 2.08; locBetaGamma[6] = 2.4; locBetaGamma[7] = 2.72; locBetaGamma[8] = 3.04; locBetaGamma[9] = 3.36; locBetaGamma[10] = 3.68; locBetaGamma[11] = 4; locBetaGamma[12] = 4.32; locBetaGamma[13] = 4.64; locBetaGamma[14] = 4.96; locBetaGamma[15] = 5.28; locBetaGamma[16] = 5.6; locBetaGamma[17] = 5.92; locBetaGamma[18] = 6.24; locBetaGamma[19] = 6.56; locBetaGamma[20] = 6.88; locBetaGamma[21] = 7.2; locBetaGamma[22] = 7.52; locBetaGamma[23] = 7.84; locBetaGamma[24] = 8.16; locBetaGamma[25] = 8.48; locBetaGamma[26] = 8.8; locBetaGamma[27] = 9.12; locBetaGamma[28] = 9.44; locBetaGamma[29] = 9.76; locBetaGamma[30] = 10.08; locBetaGamma[31] = 10.4; locBetaGamma[32] = 10.72; locBetaGamma[33] = 11.04; locBetaGamma[34] = 11.36; locBetaGamma[35] = 11.68; locBetaGamma[36] = 12; locBetaGamma[37] = 12.32; locBetaGamma[38] = 12.64; locBetaGamma[39] = 12.96; locBetaGamma[40] = 13.28; locBetaGamma[41] = 13.6; locBetaGamma[42] = 13.92; locBetaGamma[43] = 14.24;
528 locdEdxMean[0] = 2.40705; locdEdxMean[1] = 2.64016; locdEdxMean[2] = 1.97719; locdEdxMean[3] = 1.74434; locdEdxMean[4] = 1.60673; locdEdxMean[5] = 1.52877; locdEdxMean[6] = 1.47792; locdEdxMean[7] = 1.44914; locdEdxMean[8] = 1.44456; locdEdxMean[9] = 1.44089; locdEdxMean[10] = 1.44077; locdEdxMean[11] = 1.44643; locdEdxMean[12] = 1.46221; locdEdxMean[13] = 1.47146; locdEdxMean[14] = 1.48451; locdEdxMean[15] = 1.49671; locdEdxMean[16] = 1.50718; locdEdxMean[17] = 1.51892; locdEdxMean[18] = 1.53035; locdEdxMean[19] = 1.54224; locdEdxMean[20] = 1.5531; locdEdxMean[21] = 1.56325; locdEdxMean[22] = 1.57347; locdEdxMean[23] = 1.58422; locdEdxMean[24] = 1.59239; locdEdxMean[25] = 1.60057; locdEdxMean[26] = 1.61224; locdEdxMean[27] = 1.62025; locdEdxMean[28] = 1.6288; locdEdxMean[29] = 1.63748; locdEdxMean[30] = 1.64582; locdEdxMean[31] = 1.65254; locdEdxMean[32] = 1.65864; locdEdxMean[33] = 1.66693; locdEdxMean[34] = 1.67503; locdEdxMean[35] = 1.68328; locdEdxMean[36] = 1.68964; locdEdxMean[37] = 1.69732; locdEdxMean[38] = 1.70258; locdEdxMean[39] = 1.70849; locdEdxMean[40] = 1.71469; locdEdxMean[41] = 1.72359; locdEdxMean[42] = 1.73032; locdEdxMean[43] = 1.73672;
530 if(locBetaGammaValue < 0.81)
532 if(locBetaGammaValue > 14.2)
535 double locSlope, locIntercept;
536 for(
unsigned int loc_i = 0; loc_i < 43; loc_i++){
537 if(locBetaGammaValue > locBetaGamma[loc_i + 1])
539 locSlope = (locdEdxMean[loc_i + 1] - locdEdxMean[loc_i])/(locBetaGamma[loc_i + 1] - locBetaGamma[loc_i]);
540 locIntercept = locdEdxMean[loc_i] - locSlope*locBetaGamma[loc_i];
541 locMeandEdx = (locSlope*locBetaGammaValue + locIntercept)/1000000.0;
549 double locBetaGammaValue = locBeta/
sqrt(1.0 - locBeta*locBeta);
552 if(locBetaGammaValue < 0.3)
554 if(locBetaGammaValue > 2.15)
561 if(locBetaGammaValue < 0.9)
563 if(locBetaGammaValue > 4.1)
570 double locBetaGamma[44];
571 double locdEdxMean[44];
572 locBetaGamma[0] = 0.48; locBetaGamma[1] = 0.8; locBetaGamma[2] = 1.12; locBetaGamma[3] = 1.44; locBetaGamma[4] = 1.76; locBetaGamma[5] = 2.08; locBetaGamma[6] = 2.4; locBetaGamma[7] = 2.72; locBetaGamma[8] = 3.04; locBetaGamma[9] = 3.36; locBetaGamma[10] = 3.68; locBetaGamma[11] = 4; locBetaGamma[12] = 4.32; locBetaGamma[13] = 4.64; locBetaGamma[14] = 4.96; locBetaGamma[15] = 5.28; locBetaGamma[16] = 5.6; locBetaGamma[17] = 5.92; locBetaGamma[18] = 6.24; locBetaGamma[19] = 6.56; locBetaGamma[20] = 6.88; locBetaGamma[21] = 7.2; locBetaGamma[22] = 7.52; locBetaGamma[23] = 7.84; locBetaGamma[24] = 8.16; locBetaGamma[25] = 8.48; locBetaGamma[26] = 8.8; locBetaGamma[27] = 9.12; locBetaGamma[28] = 9.44; locBetaGamma[29] = 9.76; locBetaGamma[30] = 10.08; locBetaGamma[31] = 10.4; locBetaGamma[32] = 10.72; locBetaGamma[33] = 11.04; locBetaGamma[34] = 11.36; locBetaGamma[35] = 11.68; locBetaGamma[36] = 12; locBetaGamma[37] = 12.32; locBetaGamma[38] = 12.64; locBetaGamma[39] = 12.96; locBetaGamma[40] = 13.28; locBetaGamma[41] = 13.6; locBetaGamma[42] = 13.92; locBetaGamma[43] = 14.24;
573 locdEdxMean[0] = 1.32105; locdEdxMean[1] = 1.50904; locdEdxMean[2] = 1.50873; locdEdxMean[3] = 1.57426; locdEdxMean[4] = 1.52213; locdEdxMean[5] = 1.45914; locdEdxMean[6] = 1.4271; locdEdxMean[7] = 1.42623; locdEdxMean[8] = 1.42268; locdEdxMean[9] = 1.42632; locdEdxMean[10] = 1.43233; locdEdxMean[11] = 1.43742; locdEdxMean[12] = 1.4467; locdEdxMean[13] = 1.45642; locdEdxMean[14] = 1.46337; locdEdxMean[15] = 1.4719; locdEdxMean[16] = 1.48252; locdEdxMean[17] = 1.49443; locdEdxMean[18] = 1.50234; locdEdxMean[19] = 1.513; locdEdxMean[20] = 1.52394; locdEdxMean[21] = 1.5289; locdEdxMean[22] = 1.53878; locdEdxMean[23] = 1.54396; locdEdxMean[24] = 1.55427; locdEdxMean[25] = 1.56105; locdEdxMean[26] = 1.5674; locdEdxMean[27] = 1.57221; locdEdxMean[28] = 1.58027; locdEdxMean[29] = 1.5865; locdEdxMean[30] = 1.59519; locdEdxMean[31] = 1.60211; locdEdxMean[32] = 1.60751; locdEdxMean[33] = 1.61522; locdEdxMean[34] = 1.62066; locdEdxMean[35] = 1.6277; locdEdxMean[36] = 1.63227; locdEdxMean[37] = 1.63661; locdEdxMean[38] = 1.64457; locdEdxMean[39] = 1.65043; locdEdxMean[40] = 1.6557; locdEdxMean[41] = 1.66085; locdEdxMean[42] = 1.66486; locdEdxMean[43] = 1.66916;
575 if(locBetaGammaValue < 1.77)
577 if(locBetaGammaValue > 14.2)
580 double locSlope, locIntercept;
581 for(
unsigned int loc_i = 0; loc_i < 43; loc_i++){
582 if(locBetaGammaValue > locBetaGamma[loc_i + 1])
584 locSlope = (locdEdxMean[loc_i + 1] - locdEdxMean[loc_i])/(locBetaGamma[loc_i + 1] - locBetaGamma[loc_i]);
585 locIntercept = locdEdxMean[loc_i] - locSlope*locBetaGamma[loc_i];
586 locMeandEdx = (locSlope*locBetaGammaValue + locIntercept)/1000000.0;
594 double locBetaGamma = locBeta/
sqrt(1.0 - locBeta*locBeta);
595 double locSigmadEdx_LowSide, locSigmadEdx_HighSide;
597 vector<int> locNumHitsVector;
598 TObjArray *locFuncArray;
612 double locSlope, locIntercept;
614 for(
unsigned int loc_i = 0; loc_i < locNumHitsVector.size(); loc_i++){
615 if(locNumHitsUsedFordEdx == locNumHitsVector[loc_i]){
616 locSigmadEdx = (((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma))/1000000.0;
619 if(loc_i == (locNumHitsVector.size() - 1)){
621 locSigmadEdx_LowSide = ((TF1*)(*locFuncArray)[loc_i - 1])->Eval(locBetaGamma);
622 locSigmadEdx_HighSide = ((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma);
624 locSlope = (locSigmadEdx_HighSide - locSigmadEdx_LowSide)/(locNumHitsVector[loc_i] - locNumHitsVector[loc_i - 1]);
625 locIntercept = locSigmadEdx_HighSide - locSlope*locNumHitsVector[loc_i];
626 locSigmadEdx = (locSlope*locNumHitsUsedFordEdx + locIntercept)/1000000.0;
630 if((locNumHitsUsedFordEdx > locNumHitsVector[loc_i]) && (locNumHitsUsedFordEdx < locNumHitsVector[loc_i + 1])){
631 locSigmadEdx_LowSide = ((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma);
632 locSigmadEdx_HighSide = ((TF1*)(*locFuncArray)[loc_i + 1])->Eval(locBetaGamma);
634 locSlope = (locSigmadEdx_HighSide - locSigmadEdx_LowSide)/(locNumHitsVector[loc_i + 1] - locNumHitsVector[loc_i]);
635 locIntercept = locSigmadEdx_HighSide - locSlope*locNumHitsVector[loc_i + 1];
636 locSigmadEdx = (locSlope*locNumHitsUsedFordEdx + locIntercept)/1000000.0;
645 double locBetaGamma = locBeta/
sqrt(1.0 - locBeta*locBeta);
646 double locSigmadEdx_LowSide, locSigmadEdx_HighSide;
648 vector<int> locNumHitsVector;
649 TObjArray *locFuncArray;
663 double locSlope, locIntercept;
665 for(
unsigned int loc_i = 0; loc_i < locNumHitsVector.size(); loc_i++){
666 if(locNumHitsUsedFordEdx == locNumHitsVector[loc_i]){
667 locSigmadEdx = (((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma))/1000000.0;
670 if(loc_i == (locNumHitsVector.size() - 1)){
672 locSigmadEdx_LowSide = ((TF1*)(*locFuncArray)[loc_i - 1])->Eval(locBetaGamma);
673 locSigmadEdx_HighSide = ((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma);
675 locSlope = (locSigmadEdx_HighSide - locSigmadEdx_LowSide)/(locNumHitsVector[loc_i] - locNumHitsVector[loc_i - 1]);
676 locIntercept = locSigmadEdx_HighSide - locSlope*locNumHitsVector[loc_i];
677 locSigmadEdx = (locSlope*locNumHitsUsedFordEdx + locIntercept)/1000000.0;
681 if((locNumHitsUsedFordEdx > locNumHitsVector[loc_i]) && (locNumHitsUsedFordEdx < locNumHitsVector[loc_i + 1])){
682 locSigmadEdx_LowSide = ((TF1*)(*locFuncArray)[loc_i])->Eval(locBetaGamma);
683 locSigmadEdx_HighSide = ((TF1*)(*locFuncArray)[loc_i + 1])->Eval(locBetaGamma);
685 locSlope = (locSigmadEdx_HighSide - locSigmadEdx_LowSide)/(locNumHitsVector[loc_i + 1] - locNumHitsVector[loc_i]);
686 locIntercept = locSigmadEdx_HighSide - locSlope*locNumHitsVector[loc_i + 1];
687 locSigmadEdx = (locSlope*locNumHitsUsedFordEdx + locIntercept)/1000000.0;
698 double locDCdEdx, locChiSq;
700 unsigned int locMinimumNumberUsedHitsForConfidence = 3;
706 if((locUseCDCHitsFlag ==
false) && (locUseFDCHitsFlag ==
false))
709 double locMeandEdx_FDC, locMeandEdx_CDC, locSigmadEdx_FDC, locSigmadEdx_CDC;
710 double locDeltadEdx_CDC = 0.0, locDeltadEdx_FDC = 0.0;
712 if(locUseCDCHitsFlag ==
true){
717 locDeltadEdx_CDC =
ddEdx_CDC - locMeandEdx_CDC;
721 if(locUseFDCHitsFlag ==
true){
726 locDeltadEdx_FDC =
ddEdx_FDC - locMeandEdx_FDC;
732 locChiSq = locDeltadEdx_CDC/locSigmadEdx_CDC;
733 locChiSq *= locChiSq;
735 locFOM = TMath::Prob(locChiSq, locNDF);
741 locChiSq = locDeltadEdx_FDC/locSigmadEdx_FDC;
742 locChiSq *= locChiSq;
744 locFOM = TMath::Prob(locChiSq, locNDF);
vector< int > ddEdxSigmaNumHitsVector_CDC_PiPlus
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin8
TH1F * dSelectorHist_ConfidenceLevel_Both
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin3
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_12Hits
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_4Hits
TH2F * dSelectorHist_NumHitsVsTheta_CDC
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin1
vector< int > ddEdxSigmaNumHitsVector_CDC_KPlus
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC
bool GetdEdxSigma_CDC(double locBeta, unsigned int locNumHitsUsedFordEdx, double &locSigmadEdx)
TH2F * dSelectorHist_dEdxVsP_HitsCutoff_FDC
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC
TH1F * dSelectorHist_PercentageNotEnoughHitsInTheta
bool GetdEdxMean_FDC(double locBeta, unsigned int locNumHitsUsedFordEdx, double &locMeandEdx)
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin2
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_12Hits
bool GetdEdxMean_CDC(double locBeta, unsigned int locNumHitsUsedFordEdx, double &locMeandEdx)
TH1F * dSelectorHist_ConfidenceLevel_CDC_14Hits
bool Calc_FOM(double &locFOM)
TF1 * ddEdxMeanFunc_FDC_KPlus
TH1F * dSelectorHist_ConfidenceLevel_CDC_4Hits
bool dCalcFOMManuallyFlag
TH2F * dSelectorHist_dEdxVsP_HitsCutoff_CDC
TF1 * ddEdxMeanFunc_FDC_Proton
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin1
UInt_t dNumHitsUsedFordEdx_FDC
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_14Hits
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin5
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin11
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_3Hits
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin2
virtual Bool_t Process(Long64_t entry)
virtual void SlaveBegin(TTree *tree)
TH1F * dSelectorHist_ConfidenceLevel_FDC_6Hits
TObjArray * dSigmaFuncArray_FDC_PiPlus
TObjArray * dSigmaFuncArray_CDC_Proton
TF1 * ddEdxMeanFunc_CDC_KPlus
TH1F * dSelectorHist_ConfidenceLevel_CDC_10Hits
vector< int > ddEdxSigmaNumHitsVector_FDC_PiPlus
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_8Hits
UInt_t dNumHitsUsedFordEdx_CDC
vector< int > ddEdxSigmaNumHitsVector_FDC_KPlus
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin7
bool GetdEdxSigma_FDC(double locBeta, unsigned int locNumHitsUsedFordEdx, double &locSigmadEdx)
TH2F * dSelectorHist_dxVsNumHits_FDC
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin12
TH1F * dSelectorHist_ConfidenceLevel_CDC_6Hits
TH2F * dSelectorHist_dxVsNumHits_CDC
vector< int > ddEdxSigmaNumHitsVector_CDC_Proton
TH2F * dSelectorHist_dxVsTheta_FDC
TH2F * dSelectorHist_NumHitsVsTheta_FDC
TH1F * dSelectorHist_ConfidenceLevel_CDC_12Hits
TH1F * dSelectorHist_ConfidenceLevel_FDC_3Hits
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin6
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin4
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin7
TH1F * dSelectorHist_ThetaDistribution
TH1F * dSelectorHist_ConfidenceLevel_FDC
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_9Hits
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_6Hits
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin9
TH1F * dSelectorHist_ConfidenceLevel_FDC_9Hits
TObjArray * dSigmaFuncArray_CDC_PiPlus
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin9
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin12
TH2F * dSelectorHist_dxVsTheta_CDC
TH1F * dSelectorHist_ConfidenceLevel_CDC
TH2F * dSelectorHist_dEdxVsBeta_HitsCutoff_FDC
TH1F * dSelectorHist_ConfidenceLevel_FDC_12Hits
TObjArray * dSigmaFuncArray_CDC_KPlus
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_FDC_6Hits
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin3
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin10
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin5
TH1F * dSelectorHist_ConfidenceLevel_CDC_8Hits
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_2Hits
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin8
TH2F * dSelectorHist_dEdxVsBetaGamma_HitsCutoff_CDC_10Hits
TH2F * dSelectorHist_dEdxVsBeta_HitsCutoff_CDC
TH1F * dSelectorHist_NotEnoughHitsInTheta
virtual void Begin(TTree *tree)
TH2F * dSelectorHist_NumHitsFDCVsNumHitsCDC
TF1 * ddEdxMeanFunc_CDC_Proton
TH1F * dSelectorHist_ConfidenceLevel_FDC_BetaGammaBin10
vector< int > ddEdxSigmaNumHitsVector_FDC_Proton
TObjArray * dSigmaFuncArray_FDC_Proton
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin4
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin11
virtual void SlaveTerminate()
TH1F * dSelectorHist_ConfidenceLevel_CDC_BetaGammaBin6
TObjArray * dSigmaFuncArray_FDC_KPlus