ROOT logo
//////////////////////////////////////////////////////////////////////////////
// CheckIntegratedRawYield.C (called by AODQAChecks.C)                      //
//                                                                          //
// Written by John Groh                                                     //
//////////////////////////////////////////////////////////////////////////////

void CheckIntegratedRawYield(AliSpectraAODEventCuts * ecuts,
			     AliSpectraAODHistoManager * hman,
			     TH1F*& IntegRawYieldAll,
			     TH1F*& IntegRawYieldPiPlus,
			     TH1F*& IntegRawYieldPiMinus,
			     TH1F*& IntegRawYieldKPlus,
			     TH1F*& IntegRawYieldKMinus,
			     TH1F*& IntegRawYieldProton,
			     TH1F*& IntegRawYieldAntiproton,
			     Int_t runs[],
			     Int_t irun,
			     Int_t nRuns,
			     TString names[],
			     Bool_t useMC)
{
  // get total raw yield histogram
  TH1F * hRaw_allCh = (TH1F*)((TH1F*) hman->GetPtHistogram1D("hHistPtRec",-1,-1))->Clone();
  // scale it by the number of events
  hRaw_allCh->Scale(1./ecuts->NumberOfEvents(), "width");
  
  // integrate and fill IntegRawYieldAll
  IntegRawYieldAll->SetBinContent(irun+1,hRaw_allCh->Integral());
  
  // get particle raw yield histograms
  TH1F * hRaw[nCharge*nPart];
  for (Int_t icharge=0; icharge<nCharge; icharge++)
    {
      for (Int_t ipart=0; ipart<nPart; ipart++)
	{
	  Int_t index = ipart + 3*icharge;
	  TString hname = Form("hHistPtRecSigma%s%s",Particle[ipart].Data(),Sign[icharge].Data());
	  hRaw[index] = (TH1F*)((TH1F*)hman->GetPtHistogram1D(hname.Data(),-1,-1))->Clone();
	  hRaw[index]->Scale(1./ecuts->NumberOfEvents(),"width");
	}
    }
  
  // integrate and fill IntegRawYield___ (for individual particles)
  IntegRawYieldPiPlus->Fill(irun,hRaw[0]->Integral());
  IntegRawYieldKPlus->Fill(irun,hRaw[1]->Integral());
  IntegRawYieldProton->Fill(irun,hRaw[2]->Integral());
  IntegRawYieldPiMinus->Fill(irun,hRaw[3]->Integral());
  IntegRawYieldKMinus->Fill(irun,hRaw[4]->Integral());
  IntegRawYieldAntiproton->Fill(irun,hRaw[5]->Integral());
  
  // temporarily draw individual runs to a canvas
  TCanvas * cRawYieldIndiv = new TCanvas("cRawYieldIndiv","cRawYieldIndiv");
  gPad->SetLogy();
  TLegend * lRawYieldIndiv = new TLegend(0.69,.59,.99,.99);
  lRawYieldIndiv->SetFillColor(0);
  hRaw_allCh->SetTitle("Raw Yield;p_{T} (GeV/c);");
  hRaw_allCh->GetXaxis()->CenterTitle();
  hRaw_allCh->SetStats(kFALSE);
  hRaw_allCh->SetMarkerStyle(34);
  hRaw_allCh->SetMarkerColor(kGreen);
  hRaw_allCh->SetLineColor(kGreen);
  hRaw_allCh->GetYaxis()->SetRangeUser(.001,1000);
  hRaw_allCh->DrawCopy("E1P");
  lRawYieldIndiv->AddEntry(hRaw_allCh,Form("Run %i",runs[irun]),"");
  if (useMC) lRawYieldIndiv->AddEntry(hRaw_allCh,"MC","");
  else lRawYieldIndiv->AddEntry(hRaw_allCh,"DATA","");
  lRawYieldIndiv->AddEntry(hRaw_allCh,"All Particles","pe");

  Int_t index = 0;
  Int_t colorIndex;
  for (Int_t icharge=0; icharge<nCharge; icharge++)
    {
      colorIndex = 0; // only 3 colors, so have to reset after inner loop runs
      for (Int_t ipart=0; ipart<nPart; ipart++)
	{
	  hRaw[index]->SetStats(kFALSE);
	  hRaw[index]->SetMarkerStyle(Marker[index]);
	  hRaw[index]->SetMarkerColor(Color[colorIndex]);
	  hRaw[index]->SetLineColor(Color[colorIndex]);
	  hRaw[index]->DrawCopy("E1Psame");
	  lRawYieldIndiv->AddEntry(hRaw[index],Names[index].Data(),"pe");
	  colorIndex++;
	  index++;
	}
    }
  lRawYieldIndiv->DrawClone();

  // close the canvas and save to a pdf file
  if (useMC)
    {
      if (irun == 0) cRawYieldIndiv->SaveAs("Plots/MC/RawYieldIndiv.pdf(","pdf");
      else if (irun < nRuns-1) cRawYieldIndiv->SaveAs("Plots/MC/RawYieldIndiv.pdf","pdf");
      else if (irun == nRuns-1) cRawYieldIndiv->SaveAs("Plots/MC/RawYieldIndiv.pdf)","pdf");
      cRawYieldIndiv->Close();
    }
  else
    {
      if (irun == 0) cRawYieldIndiv->SaveAs("Plots/DATA/RawYieldIndiv.pdf(","pdf");
      else if (irun < nRuns-1) cRawYieldIndiv->SaveAs("Plots/DATA/RawYieldIndiv.pdf","pdf");
      else if (irun == nRuns-1) cRawYieldIndiv->SaveAs("Plots/DATA/RawYieldIndiv.pdf)","pdf");
      cRawYieldIndiv->Close();
    }
}

 CheckIntegratedRawYield.C:1
 CheckIntegratedRawYield.C:2
 CheckIntegratedRawYield.C:3
 CheckIntegratedRawYield.C:4
 CheckIntegratedRawYield.C:5
 CheckIntegratedRawYield.C:6
 CheckIntegratedRawYield.C:7
 CheckIntegratedRawYield.C:8
 CheckIntegratedRawYield.C:9
 CheckIntegratedRawYield.C:10
 CheckIntegratedRawYield.C:11
 CheckIntegratedRawYield.C:12
 CheckIntegratedRawYield.C:13
 CheckIntegratedRawYield.C:14
 CheckIntegratedRawYield.C:15
 CheckIntegratedRawYield.C:16
 CheckIntegratedRawYield.C:17
 CheckIntegratedRawYield.C:18
 CheckIntegratedRawYield.C:19
 CheckIntegratedRawYield.C:20
 CheckIntegratedRawYield.C:21
 CheckIntegratedRawYield.C:22
 CheckIntegratedRawYield.C:23
 CheckIntegratedRawYield.C:24
 CheckIntegratedRawYield.C:25
 CheckIntegratedRawYield.C:26
 CheckIntegratedRawYield.C:27
 CheckIntegratedRawYield.C:28
 CheckIntegratedRawYield.C:29
 CheckIntegratedRawYield.C:30
 CheckIntegratedRawYield.C:31
 CheckIntegratedRawYield.C:32
 CheckIntegratedRawYield.C:33
 CheckIntegratedRawYield.C:34
 CheckIntegratedRawYield.C:35
 CheckIntegratedRawYield.C:36
 CheckIntegratedRawYield.C:37
 CheckIntegratedRawYield.C:38
 CheckIntegratedRawYield.C:39
 CheckIntegratedRawYield.C:40
 CheckIntegratedRawYield.C:41
 CheckIntegratedRawYield.C:42
 CheckIntegratedRawYield.C:43
 CheckIntegratedRawYield.C:44
 CheckIntegratedRawYield.C:45
 CheckIntegratedRawYield.C:46
 CheckIntegratedRawYield.C:47
 CheckIntegratedRawYield.C:48
 CheckIntegratedRawYield.C:49
 CheckIntegratedRawYield.C:50
 CheckIntegratedRawYield.C:51
 CheckIntegratedRawYield.C:52
 CheckIntegratedRawYield.C:53
 CheckIntegratedRawYield.C:54
 CheckIntegratedRawYield.C:55
 CheckIntegratedRawYield.C:56
 CheckIntegratedRawYield.C:57
 CheckIntegratedRawYield.C:58
 CheckIntegratedRawYield.C:59
 CheckIntegratedRawYield.C:60
 CheckIntegratedRawYield.C:61
 CheckIntegratedRawYield.C:62
 CheckIntegratedRawYield.C:63
 CheckIntegratedRawYield.C:64
 CheckIntegratedRawYield.C:65
 CheckIntegratedRawYield.C:66
 CheckIntegratedRawYield.C:67
 CheckIntegratedRawYield.C:68
 CheckIntegratedRawYield.C:69
 CheckIntegratedRawYield.C:70
 CheckIntegratedRawYield.C:71
 CheckIntegratedRawYield.C:72
 CheckIntegratedRawYield.C:73
 CheckIntegratedRawYield.C:74
 CheckIntegratedRawYield.C:75
 CheckIntegratedRawYield.C:76
 CheckIntegratedRawYield.C:77
 CheckIntegratedRawYield.C:78
 CheckIntegratedRawYield.C:79
 CheckIntegratedRawYield.C:80
 CheckIntegratedRawYield.C:81
 CheckIntegratedRawYield.C:82
 CheckIntegratedRawYield.C:83
 CheckIntegratedRawYield.C:84
 CheckIntegratedRawYield.C:85
 CheckIntegratedRawYield.C:86
 CheckIntegratedRawYield.C:87
 CheckIntegratedRawYield.C:88
 CheckIntegratedRawYield.C:89
 CheckIntegratedRawYield.C:90
 CheckIntegratedRawYield.C:91
 CheckIntegratedRawYield.C:92
 CheckIntegratedRawYield.C:93
 CheckIntegratedRawYield.C:94
 CheckIntegratedRawYield.C:95
 CheckIntegratedRawYield.C:96
 CheckIntegratedRawYield.C:97
 CheckIntegratedRawYield.C:98
 CheckIntegratedRawYield.C:99
 CheckIntegratedRawYield.C:100
 CheckIntegratedRawYield.C:101
 CheckIntegratedRawYield.C:102
 CheckIntegratedRawYield.C:103
 CheckIntegratedRawYield.C:104
 CheckIntegratedRawYield.C:105