///////////////////////////////////////////////////////////////////////
// CalculateTPCTOFPIDCorrFact.C (called by JCGAnalysis.C) //
// //
// the return value is an array containing the correction factors //
// //
// written by John Groh //
///////////////////////////////////////////////////////////////////////
Float_t * CalculateTPCTOFPIDCorrFact(TH2F ** hTPCTOFnsig)
{
cout << "\n--- Just entered CalculateTPCTOFPIDCorrFact() ---\n";
// return value
Float_t * TPCTOFPIDCorrFact = new Float_t[nPart];
const Int_t fixedBin[nPart] = {25,25,36}; // pt bin to use for the projection
const Int_t fitMax[nPart] = {153,130,126}; // ranges for integration
TH1F * hTPCTOFnsigProj[nPart]; // projection histograms
for (Int_t ipart=0; ipart<nPart; ipart++)
{
// project the nsigma distribution in the desired pt bin
hTPCTOFnsigProj[ipart] = (TH1F*)hTPCTOFnsig[ipart]->ProjectionY("",fixedBin[ipart],fixedBin[ipart])->Clone();
// integrate and calculate the correction factors
TPCTOFPIDCorrFact[ipart] = hTPCTOFnsigProj[ipart]->Integral(hTPCTOFnsigProj[ipart]->FindBin(0), hTPCTOFnsigProj[ipart]->FindBin(3));
TPCTOFPIDCorrFact[ipart] /= hTPCTOFnsigProj[ipart]->Integral(hTPCTOFnsigProj[ipart]->FindBin(0), fitMax[ipart]);
}
// draw everything to make sure it worked
TCanvas * cTPCTOFnsigInterp = new TCanvas("cTPCTOFnsigInterp","cTPCTOFnsigInterp");
cTPCTOFnsigInterp->Divide(3,1);
for (Int_t ipart=0; ipart<nPart; ipart++)
{
cTPCTOFnsigInterp->cd(ipart+1);
hTPCTOFnsigProj[ipart]->SetTitle(Form("TPC+TOF NSigma Projection - %ss - Bin %i;n#sigma (TPC+TOF);",Particle[ipart].Data(),fixedBin[ipart]));
hTPCTOFnsigProj[ipart]->SetLineColor(Color[ipart]);
hTPCTOFnsigProj[ipart]->DrawCopy("hist");
}
cout << "\n\n\n\n\n--- PID CORRECTION FACTORS:\n"
<< "Pions: " << TPCTOFPIDCorrFact[0] << endl
<< "Kaons: " << TPCTOFPIDCorrFact[1] << endl
<< "Protons: " << TPCTOFPIDCorrFact[2] << endl << endl << endl;
cout << "\n--- Leaving CalculateTPCTOFPIDCorrFact() ---\n";
// return the correction factors
return TPCTOFPIDCorrFact;
}
CalculateTPCTOFPIDCorrFact.C:1 CalculateTPCTOFPIDCorrFact.C:2 CalculateTPCTOFPIDCorrFact.C:3 CalculateTPCTOFPIDCorrFact.C:4 CalculateTPCTOFPIDCorrFact.C:5 CalculateTPCTOFPIDCorrFact.C:6 CalculateTPCTOFPIDCorrFact.C:7 CalculateTPCTOFPIDCorrFact.C:8 CalculateTPCTOFPIDCorrFact.C:9 CalculateTPCTOFPIDCorrFact.C:10 CalculateTPCTOFPIDCorrFact.C:11 CalculateTPCTOFPIDCorrFact.C:12 CalculateTPCTOFPIDCorrFact.C:13 CalculateTPCTOFPIDCorrFact.C:14 CalculateTPCTOFPIDCorrFact.C:15 CalculateTPCTOFPIDCorrFact.C:16 CalculateTPCTOFPIDCorrFact.C:17 CalculateTPCTOFPIDCorrFact.C:18 CalculateTPCTOFPIDCorrFact.C:19 CalculateTPCTOFPIDCorrFact.C:20 CalculateTPCTOFPIDCorrFact.C:21 CalculateTPCTOFPIDCorrFact.C:22 CalculateTPCTOFPIDCorrFact.C:23 CalculateTPCTOFPIDCorrFact.C:24 CalculateTPCTOFPIDCorrFact.C:25 CalculateTPCTOFPIDCorrFact.C:26 CalculateTPCTOFPIDCorrFact.C:27 CalculateTPCTOFPIDCorrFact.C:28 CalculateTPCTOFPIDCorrFact.C:29 CalculateTPCTOFPIDCorrFact.C:30 CalculateTPCTOFPIDCorrFact.C:31 CalculateTPCTOFPIDCorrFact.C:32 CalculateTPCTOFPIDCorrFact.C:33 CalculateTPCTOFPIDCorrFact.C:34 CalculateTPCTOFPIDCorrFact.C:35 CalculateTPCTOFPIDCorrFact.C:36 CalculateTPCTOFPIDCorrFact.C:37 CalculateTPCTOFPIDCorrFact.C:38 CalculateTPCTOFPIDCorrFact.C:39 CalculateTPCTOFPIDCorrFact.C:40 CalculateTPCTOFPIDCorrFact.C:41 CalculateTPCTOFPIDCorrFact.C:42 CalculateTPCTOFPIDCorrFact.C:43 CalculateTPCTOFPIDCorrFact.C:44 CalculateTPCTOFPIDCorrFact.C:45 CalculateTPCTOFPIDCorrFact.C:46 CalculateTPCTOFPIDCorrFact.C:47 CalculateTPCTOFPIDCorrFact.C:48 CalculateTPCTOFPIDCorrFact.C:49 CalculateTPCTOFPIDCorrFact.C:50 CalculateTPCTOFPIDCorrFact.C:51 CalculateTPCTOFPIDCorrFact.C:52 CalculateTPCTOFPIDCorrFact.C:53 CalculateTPCTOFPIDCorrFact.C:54 CalculateTPCTOFPIDCorrFact.C:55 CalculateTPCTOFPIDCorrFact.C:56 CalculateTPCTOFPIDCorrFact.C:57 CalculateTPCTOFPIDCorrFact.C:58