ROOT logo
///////////////////////////////////////////////////////////////////////
// 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