]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/electrons/plotNPERates.C
correct the cluster rejection by energy range and number of cells cut
[u/mrichter/AliRoot.git] / PWG4 / macros / electrons / plotNPERates.C
index 8eb7721c7f4b69746d6e7160e92c913fec5d5d91..94d0410c082d114c789e6b39e0d6fdfce84c384c 100644 (file)
 //\r
 /////////////////////////////////////////////////\r
 \r
-TH1F *alltte,      *alltrk,      *allemc;\r
-TH1F *sumtte,      *sumtrk,      *sumemc;\r
-TH1F *bpttte,      *bpttrk,      *bptemc;\r
-TH1F *cpttte,      *cpttrk,      *cptemc;\r
-TH1F *candbpttte,  *candbpttrk,  *candbptemc;\r
-TH1F *convpttte,   *convpttrk,   *convptemc;\r
-TH1F *dalitzpttte, *dalitzpttrk, *dalitzptemc;\r
-TH1F *wzpttte,     *wzpttrk,     *wzptemc;\r
-TH1F *otherpttte,  *otherpttrk,  *otherptemc;\r
-TH1F *misidpttte,  *misidpttrk,  *misidptemc;\r
-\r
 TLegend* leg;\r
 \r
-void plotNPERates(char* which = "TTE", \r
-                 char* hijfname = "data/scaled25Oct09/histosLHC08d6.root",\r
-                 char* jjfname = "data/scaled25Oct09/TOTALhistosscaled-LHC09b2-0.root",\r
-                 char* bfname = "data/scaled25Oct09/histosscaledLHC09b4AODc.root",\r
-                 char* wfname = "data/scaled25Oct09/histosWboson.root") {\r
-\r
-  //For HIJING need to divide by the number of events, which we\r
-  //can get from the file and do when we perform scaling\r
-  double hijscale = 0.05*(1.E6)*0.5*7700; //0-5% * seconds*lumi*PbPb x-section\r
-  //For bjet and jet-jet events\r
-  double pyscale = (1.E6)*0.5*208*208*100/360; //seconds*lumi*Pb*Pb*acceptance\r
-  double bscale = pyscale; //Do we need to scale by Branching ratio for forced\r
-                               //semi-leptonic decays?\r
-  double wscale = pyscale;\r
-  \r
-  TFile* hijfile = new TFile(hijfname);\r
-  if(!hijfile) { printf("NO HIJING FILE\n"); return; }\r
-  TList* hijlist = (TList*)hijfile->Get("histos");\r
-  TH2F* hijtte = (TH2F*)histos->FindObject("AnaElectron_hPtNPEleTTE");\r
-  TH2F* hijemc = (TH2F*)histos->FindObject("AnaElectron_hPtNPEleEMCAL");\r
-  TH2F* hijtrk = (TH2F*)histos->FindObject("AnaElectron_hPtNPEleTPCTRD");\r
-  TH1F* hijmult = (TH1F*)histos->FindObject("AnaElectron_hRefMult");\r
-  Int_t nEvt = hijmult->GetEntries();\r
-  if(nEvt == 0) { printf("NO HIJING EVENTS\n"); return; }\r
-  hijtte->Scale(hijscale/nEvt);\r
-  hijemc->Scale(hijscale/nEvt);\r
-  hijtrk->Scale(hijscale/nEvt);\r
-\r
-  TFile* jjfile = new TFile(jjfname);\r
-  if(!jjfile) { printf("NO JET-JET FILE\n"); return; }\r
-  TH2F* jjtte = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleTTEScaled");\r
-  TH2F* jjemc = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleEMCALScaled");\r
-  TH2F* jjtrk = (TH2F*)jjfile->Get("AnaElectron_hPtNPEleTPCTRDScaled");\r
-  TH1F* jjmult = (TH1F*)jjfile->Get("AnaElectron_hRefMultScaled");\r
-  Int_t nEvtJJ = jjmult->GetEntries();\r
-  jjtte->Scale(pyscale);\r
-  jjemc->Scale(pyscale);\r
-  jjtrk->Scale(pyscale);\r
-\r
-  TFile* bfile = new TFile(bfname);\r
-  if(!bfile) { printf("NO B-JET FILE\n"); return; }\r
-  TH2F* btte = (TH2F*)bfile->Get("AnaElectron_hPtNPEleTTEScaled");\r
-  TH2F* bemc = (TH2F*)bfile->Get("AnaElectron_hPtNPEleEMCALScaled");\r
-  TH2F* btrk = (TH2F*)bfile->Get("AnaElectron_hPtNPEleTPCTRDScaled");\r
-  TH1F* bmult = (TH1F*)bfile->Get("AnaElectron_hRefMultScaled");\r
-  Int_t nEvtB = bmult->GetEntries();\r
-  btte->Scale(bscale);\r
-  bemc->Scale(bscale);\r
-  btrk->Scale(bscale);\r
-\r
-  TFile* wfile = new TFile(wfname);\r
-  if(!wfile) { printf("NO W-BOSON FILE\n"); return; }\r
-  TH2F* wtte = (TH2F*)wfile->Get("AnaElectron_hPtNPEleTTE");\r
-  TH2F* wemc = (TH2F*)wfile->Get("AnaElectron_hPtNPEleEMCAL");\r
-  TH2F* wtrk = (TH2F*)wfile->Get("AnaElectron_hPtNPEleTPCTRD");\r
-  TH1F* wmult = (TH1F*)wfile->Get("AnaElectron_hRefMult");\r
-  Int_t nEvtW = wmult->GetEntries();\r
-  wtte->Scale(wscale); //already scaled by evts\r
-  wemc->Scale(wscale); //already scaled by evts\r
-  wtrk->Scale(wscale); //already scaled by evts\r
-\r
-  printf("Event statistics: %d (HIJING)  %d (JET-JET)  %d (B-JET)  %d (W-Boson)\n",nEvt,nEvtJJ,nEvtB,nEvtW);\r
-\r
-  TH2F* combTTE = (TH2F*)hijtte->Clone();\r
-  combTTE->Add(jjtte);\r
-  combTTE->Add(btte);\r
-  combTTE->SetTitle("Identified non-phot. electrons (TPC+TRD+EMCAL)");\r
-  combTTE->SetName("CombinedEleTTE");\r
-  combTTE->SetXTitle("p_T (GeV/c)");\r
-\r
-  alltte = (TH1F*)combTTE->ProjectionX("alltte",1,1);\r
-  bpttte = (TH1F*)combTTE->ProjectionX("btte",2,2);\r
-  cpttte = (TH1F*)combTTE->ProjectionX("ctte",3,3);\r
-  candbpttte = (TH1F*)combTTE->ProjectionX("candbtte",4,4);\r
-  convpttte = (TH1F*)combTTE->ProjectionX("convtte",5,5);\r
-  dalitzpttte = (TH1F*)combTTE->ProjectionX("dalitztte",6,6);\r
-  otherpttte = (TH1F*)combTTE->ProjectionX("othertte",8,8);\r
-  sumtte = (TH1F*)bpttte->Clone(); sumtte->SetName("sumtte");\r
-  sumtte->Add(cpttte); sumtte->Add(candbpttte); sumtte->Add(convpttte);\r
-  sumtte->Add(dalitzpttte); //sumtte->Add(otherpttte);\r
-  misidpttte = (TH1F*)combTTE->ProjectionX("misidtte",9,9);\r
-\r
-  wzpttte = (TH1F*)wtte->ProjectionX("wz",7,7);\r
-  alltte->Add(wzpttte);\r
-  sumtte->Add(wzpttte);\r
-\r
-  double myscale = 1.; //we already scaled them\r
-  ScaleAndConfigure(alltte,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(sumtte,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(bpttte,myscale,kRed,kFALSE);\r
-  ScaleAndConfigure(cpttte,myscale,kBlue,kFALSE);\r
-  ScaleAndConfigure(candbpttte,myscale,kViolet,kFALSE);\r
-  ScaleAndConfigure(convpttte,myscale,kOrange-3,kFALSE);\r
-  ScaleAndConfigure(dalitzpttte,myscale,kGreen-3,kFALSE);\r
-  ScaleAndConfigure(misidpttte,myscale,kGreen+2,kFALSE);\r
-  ScaleAndConfigure(wzpttte,myscale,kOrange-7,kFALSE);\r
-\r
-  TH2F* combEMC = (TH2F*)hijemc->Clone();\r
-  combEMC->Add(jjemc);\r
-  combEMC->Add(bemc);\r
-  combEMC->SetTitle("Identified non-phot. electrons (EMCAL)");\r
-  combEMC->SetName("CombinedEleEMC");\r
-  combEMC->SetXTitle("p_T (GeV/c)");\r
-\r
-  allemc = (TH1F*)combEMC->ProjectionX("allemc",1,1);\r
-  bptemc = (TH1F*)combEMC->ProjectionX("bemc",2,2);\r
-  cptemc = (TH1F*)combEMC->ProjectionX("cemc",3,3);\r
-  candbptemc = (TH1F*)combEMC->ProjectionX("candbemc",4,4);\r
-  convptemc = (TH1F*)combEMC->ProjectionX("convemc",5,5);\r
-  dalitzptemc = (TH1F*)combEMC->ProjectionX("dalitzemc",6,6);\r
-  otherptemc = (TH1F*)combEMC->ProjectionX("otheremc",8,8);\r
-  sumemc = (TH1F*)bptemc->Clone(); sumemc->SetName("sumemc");\r
-  sumemc->Add(cptemc); sumemc->Add(candbptemc); sumemc->Add(convptemc);\r
-  sumemc->Add(dalitzptemc); //sumemc->Add(otherptemc);\r
-  misidptemc = (TH1F*)combEMC->ProjectionX("misidemc",9,9);\r
-\r
-  wzptemc = (TH1F*)wemc->ProjectionX("wz",7,7);\r
-  allemc->Add(wzptemc);\r
-  sumemc->Add(wzptemc);\r
-\r
-  double myscale = 1.; //we already scaled them\r
-  ScaleAndConfigure(allemc,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(sumemc,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(bptemc,myscale,kRed,kFALSE);\r
-  ScaleAndConfigure(cptemc,myscale,kBlue,kFALSE);\r
-  ScaleAndConfigure(candbptemc,myscale,kViolet,kFALSE);\r
-  ScaleAndConfigure(convptemc,myscale,kOrange-3,kFALSE);\r
-  ScaleAndConfigure(dalitzptemc,myscale,kGreen-3,kFALSE);\r
-  ScaleAndConfigure(misidptemc,myscale,kGreen+2,kFALSE);\r
-  ScaleAndConfigure(wzptemc,myscale,kOrange-7,kFALSE);\r
+void plotNPERates(const char* which = "EMC") {\r
 \r
-  TH2F* combTRK = (TH2F*)hijtrk->Clone();\r
-  combTRK->Add(jjtrk);\r
-  combTRK->Add(btrk);\r
-  combTRK->SetTitle("Identified non-phot. electrons (TPC+TRD)");\r
-  combTRK->SetName("CombinedEleTRK");\r
-  combTRK->SetXTitle("p_T (GeV/c)");\r
-\r
-  alltrk = (TH1F*)combTRK->ProjectionX("alltrk",1,1);\r
-  bpttrk = (TH1F*)combTRK->ProjectionX("btrk",2,2);\r
-  cpttrk = (TH1F*)combTRK->ProjectionX("ctrk",3,3);\r
-  candbpttrk = (TH1F*)combTRK->ProjectionX("candbtrk",4,4);\r
-  convpttrk = (TH1F*)combTRK->ProjectionX("convtrk",5,5);\r
-  dalitzpttrk = (TH1F*)combTRK->ProjectionX("dalitztrk",6,6);\r
-  otherpttrk = (TH1F*)combTRK->ProjectionX("othertrk",8,8);\r
-  sumtrk = (TH1F*)bpttrk->Clone(); sumtrk->SetName("sumtrk");\r
-  sumtrk->Add(cpttrk); sumtrk->Add(candbpttrk); sumtrk->Add(convpttrk);\r
-  sumtrk->Add(dalitzpttrk); //sumtrk->Add(otherpttrk);\r
-  misidpttrk = (TH1F*)combTRK->ProjectionX("misidtrk",9,9);\r
-\r
-  wzpttrk = (TH1F*)wtrk->ProjectionX("wztrk",7,7);\r
-  alltrk->Add(wzpttrk);\r
-  sumtrk->Add(wzpttrk);\r
-\r
-  double myscale = 1.; //we already scaled them\r
-  ScaleAndConfigure(alltrk,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(sumtrk,myscale,kBlack,kFALSE);\r
-  ScaleAndConfigure(bpttrk,myscale,kRed,kFALSE);\r
-  ScaleAndConfigure(cpttrk,myscale,kBlue,kFALSE);\r
-  ScaleAndConfigure(candbpttrk,myscale,kViolet,kFALSE);\r
-  ScaleAndConfigure(convpttrk,myscale,kOrange-3,kFALSE);\r
-  ScaleAndConfigure(dalitzpttrk,myscale,kGreen-3,kFALSE);\r
-  ScaleAndConfigure(misidpttrk,myscale,kGreen+2,kFALSE);\r
-  ScaleAndConfigure(wzpttrk,myscale,kOrange-7,kFALSE);\r
+  gROOT->LoadMacro("makeCombinedData.C");\r
+  makeData("data/scaled25Oct09/TOTALhistosscaled-LHC09b2-0.root",\r
+           "data/scaled25Oct09/histosscaledLHC09b4AODc.root",\r
+           "data/scaled25Oct09/histosWboson.root");\r
 \r
   //define common legend\r
   leg = new TLegend(0.5,0.6,0.9,0.9);\r
+  leg->SetFillColor(0);\r
   leg->SetTextSize(leg->GetTextSize()*1.2);\r
   //leg->AddEntry(alltte,"All N-P e candidates","l");\r
   leg->AddEntry(sumtte,"All N-P electrons","l");\r
-  leg->AddEntry(bpttte,"Bottom e","l");\r
-  leg->AddEntry(cpttte,"Charm e","l");\r
-  leg->AddEntry(candbpttte,"B-->C e","l");\r
-  leg->AddEntry(dalitzpttte,"Dalitz e","l");\r
-  leg->AddEntry(convpttte,"Conversion e","l");\r
-  leg->AddEntry(wzpttte,"W Boson e","l");\r
-  //leg->AddEntry(misidpttte,"Mis-identified hadrons","l");\r
+  leg->AddEntry(btte,"Bottom e","l");\r
+  leg->AddEntry(ctte,"Charm e","l");\r
+  leg->AddEntry(cbtte,"B-->C e","l");\r
+  leg->AddEntry(daltte,"Dalitz e","l");\r
+  leg->AddEntry(convtte,"Conversion e","l");\r
+  leg->AddEntry(wztte,"W Boson e","l");\r
+  //  leg->AddEntry(htte,"Misidentified hadrons","l");\r
 \r
   gStyle->SetOptStat(0);\r
-  drawAnnualYields(which);\r
-  drawComparePID();\r
-  drawPtCutRates(which);\r
-\r
-}\r
-\r
-void ScaleAndConfigure(TH1F* hist,Double_t scale, Int_t color,Bool_t keepErr)\r
-{\r
-  hist->Scale(scale);\r
-  hist->SetLineColor(color);\r
-  hist->SetLineWidth(2);\r
-  if(keepErr == kFALSE) {\r
-    //remove the error bars - useful for MC rates\r
-    for(Int_t i = 1; i <= hist->GetNbinsX(); i++) {\r
-      if(hist->GetBinContent(i) > 0.) {\r
-       if(hist->GetBinError(i)/hist->GetBinContent(i) > 0.5) {\r
-         Double_t avg = 0.;\r
-         if(i > 1 && i < hist->GetNbinsX()) \r
-           avg = (hist->GetBinContent(i-1) + hist->GetBinContent(i+1))/2.;\r
-         hist->SetBinContent(i,avg);\r
-       }\r
-      }\r
-      hist->SetBinError(i,0.);\r
-    }\r
-  } else {\r
-    //Set the error bars to statistics of the bin content\r
-    for(Int_t i = 1; i <= hist->GetNbinsX(); i++) {\r
-      if(hist->GetBinContent(i) > 0.) {\r
-       if(hist->GetBinError(i)/hist->GetBinContent(i) > 0.5) {\r
-         Double_t avg = 0;\r
-         if(i > 1 && i < hist->GetNbinsX()) \r
-           avg = (hist->GetBinContent(i-1) + hist->GetBinContent(i+1))/2.;\r
-         hist->SetBinContent(i,avg);\r
-       }\r
-      }\r
-      hist->SetBinError(i,TMath::Sqrt(hist->GetBinContent(i)));\r
-    }\r
-  }\r
+  //  drawAnnualYields(which);\r
+  // drawPtCutRates(which);\r
+  //drawCompareTruth();\r
 \r
 }\r
 \r
 void drawAnnualYields(char* which = "EMC") {\r
 \r
   TCanvas* crates = new TCanvas();\r
+  crates->SetFillColor(0);\r
+  crates->SetBorderMode(0);\r
+  crates->SetBorderSize(2);\r
+  crates->SetFrameBorderMode(0);\r
+  crates->SetFrameBorderMode(0);\r
+\r
   crates->cd();\r
   gPad->SetLogy();\r
 \r
   if(strcmp(which,"EMC")==0) {\r
-    /*\r
     allemc->SetXTitle("p_{T} (GeV/c)");\r
     allemc->SetYTitle("Annual yield");\r
     allemc->SetTitle("Annual yield of non-phot. electron candidates (EMCAL pid)");\r
-    allemc->Rebin(2); allemc->Scale(0.5);\r
-    */\r
+    allemc->Rebin(5); allemc->Scale(0.2);\r
+\r
     sumemc->SetXTitle("p_{T} (GeV/c)");\r
     sumemc->SetYTitle("Annual yield");\r
     sumemc->SetTitle("Annual yield of non-phot. electrons (EMCAL pid)");\r
-    sumemc->Rebin(2); sumemc->Scale(0.5);\r
-\r
-    bptemc->Rebin(2); bptemc->Scale(0.5);\r
-    cptemc->Rebin(2); cptemc->Scale(0.5);\r
-    candbptemc->Rebin(2); candbptemc->Scale(0.5);\r
-    convptemc->Rebin(2); convptemc->Scale(0.5);\r
-    dalitzptemc->Rebin(2); dalitzptemc->Scale(0.5);\r
-    wzptemc->Rebin(2); wzptemc->Scale(0.5);\r
-    misidptemc->Rebin(2); misidptemc->Scale(0.5);\r
-    /*\r
-    allemc->GetYaxis()->SetRangeUser(1.,allemc->GetMaximum()*2.);\r
-    allemc->GetXaxis()->SetRangeUser(0.,49.);\r
-    allemc->Draw();\r
-    */\r
-    sumemc->GetYaxis()->SetRangeUser(1.,sumemc->GetMaximum()*2.);\r
-    sumemc->GetXaxis()->SetRangeUser(0.,49.);\r
+    sumemc->Rebin(5); sumemc->Scale(0.2);\r
+\r
+    bemc->Rebin(5); bemc->Scale(0.2);\r
+    cemc->Rebin(5); cemc->Scale(0.2);\r
+    cbemc->Rebin(5); cbemc->Scale(0.2);\r
+    convemc->Rebin(5); convemc->Scale(0.2);\r
+    dalemc->Rebin(5); dalemc->Scale(0.2);\r
+    wzemc->Rebin(5); wzemc->Scale(0.2);\r
+    hemc->Rebin(5); hemc->Scale(0.2);\r
+\r
+    allemc->GetYaxis()->SetRangeUser(1.,2.e6);\r
+    allemc->GetXaxis()->SetRangeUser(10.,49.);\r
+    //allemc->Draw();\r
+    sumemc->GetYaxis()->SetRangeUser(1.,2.e6);\r
+    sumemc->GetXaxis()->SetRangeUser(10.,49.);\r
     sumemc->Draw();\r
-    bptemc->Draw("same");\r
-    cptemc->Draw("same");\r
-    candbptemc->Draw("same");\r
-    convptemc->Draw("same");\r
-    dalitzptemc->Draw("same");\r
-    wzptemc->Draw("same");\r
-    //misidptemc->Draw("same");\r
+    bemc->Draw("same");\r
+    cemc->Draw("same");\r
+    cbemc->Draw("same");\r
+    convemc->Draw("same");\r
+    dalemc->Draw("same");\r
+    wzemc->Draw("same");\r
+    //    hemc->Draw("same");\r
     leg->Draw();\r
     crates->Print("NPERates_EMC_all.pdf");\r
   }\r
+  if(strcmp(which,"TRK")==0) {\r
+    alltrk->SetXTitle("p_{T} (GeV/c)");\r
+    alltrk->SetYTitle("Annual yield");\r
+    alltrk->SetTitle("Annual yield of non-phot. electron candidates (TPC+TRD pid)");\r
+    alltrk->Rebin(5); alltrk->Scale(0.2);\r
+    sumtrk->SetXTitle("p_{T} (GeV/c)");\r
+    sumtrk->SetYTitle("Annual yield");\r
+    sumtrk->SetTitle("Annual yield of non-phot. electrons (TPC+TRD pid)");\r
+    sumtrk->Rebin(5); sumtrk->Scale(0.2);\r
+\r
+    btrk->Rebin(5); btrk->Scale(0.2);\r
+    ctrk->Rebin(5); ctrk->Scale(0.2);\r
+    cbtrk->Rebin(5); cbtrk->Scale(0.2);\r
+    convtrk->Rebin(5); convtrk->Scale(0.2);\r
+    daltrk->Rebin(5); daltrk->Scale(0.2);\r
+    wztrk->Rebin(5); wztrk->Scale(0.2);\r
+    htrk->Rebin(5); htrk->Scale(0.2);\r
+\r
+    alltrk->GetYaxis()->SetRangeUser(1.,6.e6);\r
+    alltrk->GetXaxis()->SetRangeUser(10.,49.);\r
+    //    alltrk->Draw();\r
+    sumtrk->GetYaxis()->SetRangeUser(1.,6.e6);\r
+    sumtrk->GetXaxis()->SetRangeUser(10.,49.);\r
+    sumtrk->Draw();\r
+    btrk->Draw("same");\r
+    ctrk->Draw("same");\r
+    cbtrk->Draw("same");\r
+    convtrk->Draw("same");\r
+    daltrk->Draw("same");\r
+    wztrk->Draw("same");\r
+    //    htrk->Draw("same");\r
+    leg->Draw();\r
+    crates->Print("NPERates_TRK_all.pdf");\r
+  }\r
   if(strcmp(which,"TTE")==0) {\r
-    /*    alltte->SetXTitle("p_{T} (GeV/c)");\r
+    alltte->SetXTitle("p_{T} (GeV/c)");\r
     alltte->SetYTitle("Annual yield");\r
     alltte->SetTitle("Annual yield of non-phot. electron candidates (Tracking+EMCAL pid)");\r
-    alltte->Rebin(2); alltte->Scale(0.5);\r
-    */\r
+    alltte->Rebin(5); alltte->Scale(0.2);\r
     sumtte->SetXTitle("p_{T} (GeV/c)");\r
     sumtte->SetYTitle("Annual yield");\r
     sumtte->SetTitle("Annual yield of non-phot. electrons (Tracking+EMCAL pid)");\r
-    sumtte->Rebin(2); sumtte->Scale(0.5);\r
-    bpttte->Rebin(2); bpttte->Scale(0.5);\r
-    cpttte->Rebin(2); cpttte->Scale(0.5);\r
-    candbpttte->Rebin(2); candbpttte->Scale(0.5);\r
-    convpttte->Rebin(2); convpttte->Scale(0.5);\r
-    dalitzpttte->Rebin(2); dalitzpttte->Scale(0.5);\r
-    wzpttte->Rebin(2); wzpttte->Scale(0.5);\r
-    misidpttte->Rebin(2); misidpttte->Scale(0.5);\r
-    /*    alltte->GetYaxis()->SetRangeUser(1.,alltte->GetMaximum()*2.);\r
-    alltte->GetXaxis()->SetRangeUser(0.,49.);\r
-    alltte->Draw();\r
-    */\r
-    sumtte->GetYaxis()->SetRangeUser(1.,sumtte->GetMaximum()*2.);\r
-    sumtte->GetXaxis()->SetRangeUser(0.,49.);\r
+    sumtte->Rebin(5); sumtte->Scale(0.2);\r
+\r
+    btte->Rebin(5); btte->Scale(0.2);\r
+    ctte->Rebin(5); ctte->Scale(0.2);\r
+    cbtte->Rebin(5); cbtte->Scale(0.2);\r
+    convtte->Rebin(5); convtte->Scale(0.2);\r
+    daltte->Rebin(5); daltte->Scale(0.2);\r
+    wztte->Rebin(5); wztte->Scale(0.2);\r
+    htte->Rebin(5); htte->Scale(0.2);\r
+\r
+    alltte->GetYaxis()->SetRangeUser(1.,2.e6);\r
+    alltte->GetXaxis()->SetRangeUser(10.,49.);\r
+    //    alltte->Draw();\r
+    sumtte->GetYaxis()->SetRangeUser(1.,2.e6);\r
+    sumtte->GetXaxis()->SetRangeUser(10.,49.);\r
     sumtte->Draw();\r
-    bpttte->Draw("same");\r
-    cpttte->Draw("same");\r
-    candbpttte->Draw("same");\r
-    convpttte->Draw("same");\r
-    dalitzpttte->Draw("same");\r
-    wzpttte->Draw("same");\r
-    //misidpttte->Draw("same");\r
+    btte->Draw("same");\r
+    ctte->Draw("same");\r
+    cbtte->Draw("same");\r
+    convtte->Draw("same");\r
+    daltte->Draw("same");\r
+    wztte->Draw("same");\r
+    htte->Draw("same");\r
     leg->Draw();\r
     crates->Print("NPERates_TTE_all.pdf");\r
   }\r
 \r
-\r
-}\r
-\r
-void drawComparePID() {\r
-\r
-  TCanvas* crates = new TCanvas();\r
-  crates->cd();\r
-  gPad->SetLogy();\r
-  alltrk->SetXTitle("p_{T} (GeV/c)");\r
-  alltrk->SetYTitle("Annual yield of electron candidates");\r
-  alltrk->SetTitle("PID comparison: Tracking only vs. EMCAL only");\r
-  alltrk->Rebin(2); alltrk->Scale(0.5);\r
-  alltrk->GetYaxis()->SetRangeUser(10.,alltrk->GetMaximum()*2.);\r
-  alltrk->GetXaxis()->SetRangeUser(0.,49.);\r
-  alltrk->Draw();\r
-  misidpttrk->Rebin(2); misidpttrk->Scale(0.5);\r
-  misidpttrk->Draw("same");\r
-  TH1F* tempallemc = (TH1F*)allemc->Clone();\r
-  tempallemc->SetNameTitle("tempallemc","tempallemc");\r
-  tempallemc->SetLineColor(kBlue);\r
-  tempallemc->Draw("same");\r
-  \r
-  TH1F* tempmisidemc = (TH1F*)misidptemc->Clone();\r
-  tempmisidemc->SetNameTitle("tempmisidemc","tempmisidemc");\r
-  tempmisidemc->SetLineColor(kOrange-3);\r
-  tempmisidemc->Draw("same");\r
-\r
-  TLegend* leg2 = new TLegend(0.35,0.6,0.9,0.9);\r
-  leg2->SetTextSize(leg->GetTextSize()*1.2);\r
-  leg2->AddEntry(alltrk,"All electrons (Tracking PID only)","l");\r
-  leg2->AddEntry(misidpttrk,"Hadron contamination (Tracking PID only)","l");\r
-  leg2->AddEntry(tempallemc,"All electrons (EMCAL PID)","l");\r
-  leg2->AddEntry(tempmisidemc,"Hadron contamination (EMCAL PID)","l");\r
-  leg2->Draw();\r
-  crates->Print("NPERates_PIDCompare_all.pdf");\r
 }\r
 \r
 void drawPtCutRates(char* which = "EMC") {\r
 \r
   TCanvas* cptcut = new TCanvas();\r
+  cptcut->SetFillColor(0);\r
+  cptcut->SetBorderMode(0);\r
+  cptcut->SetBorderSize(2);\r
+  cptcut->SetFrameBorderMode(0);\r
+  cptcut->SetFrameBorderMode(0);\r
   cptcut->cd();\r
   gPad->SetLogy();\r
   if(strcmp(which,"EMC")==0) {\r
     //    TH1F* alleptcut = GetPtCutHisto(allemc);\r
     TH1F* alleptcut = GetPtCutHisto(sumemc);\r
-    TH1F* beleptcut = GetPtCutHisto(bptemc);\r
-    TH1F* celeptcut = GetPtCutHisto(cptemc);\r
-    TH1F* cbeleptcut = GetPtCutHisto(candbptemc);\r
-    TH1F* dalitzptcut = GetPtCutHisto(dalitzptemc);\r
-    TH1F* convptcut = GetPtCutHisto(convptemc);\r
-    TH1F* wzptcut = GetPtCutHisto(wzptemc);\r
-    TH1F* misidptcut = GetPtCutHisto(misidptemc);\r
+    TH1F* beleptcut = GetPtCutHisto(bemc);\r
+    TH1F* celeptcut = GetPtCutHisto(cemc);\r
+    TH1F* cbeleptcut = GetPtCutHisto(cbemc);\r
+    TH1F* dalitzptcut = GetPtCutHisto(dalemc);\r
+    TH1F* convptcut = GetPtCutHisto(convemc);\r
+    TH1F* wzptcut = GetPtCutHisto(wzemc);\r
+    TH1F* misidptcut = GetPtCutHisto(hemc);\r
     alleptcut->SetXTitle("p_{T}^{cut} (GeV/c)");\r
     alleptcut->SetYTitle("Annual Yield in EMCAL for p_{T}>p_{T}^{cut}");\r
-    alleptcut->SetTitle("Annual non-phot. electrons for p_{T}>p_{T}^{cut} (EMCAL pid)");\r
-    alleptcut->GetXaxis()->SetRangeUser(0,49);\r
-    alleptcut->GetYaxis()->SetRangeUser(1,alleptcut->GetMaximum()*2);\r
+    alleptcut->SetTitle("Pb+Pb, 5.5 TeV reconstructed N-P electrons (EMCAL pid)");\r
+    alleptcut->GetXaxis()->SetRangeUser(10.,49.);\r
+    alleptcut->GetYaxis()->SetRangeUser(1,4.e5);\r
     alleptcut->Draw();\r
     beleptcut->Draw("same");\r
     celeptcut->Draw("same");\r
@@ -386,21 +191,47 @@ void drawPtCutRates(char* which = "EMC") {
     leg->Draw();\r
     cptcut->Print("NPERates_EMC_ptcut_all.pdf");\r
   }\r
+  if(strcmp(which,"TRK")==0) {\r
+    //    TH1F* alleptcut = GetPtCutHisto(alltrk);\r
+    TH1F* alleptcut = GetPtCutHisto(sumtrk);\r
+    TH1F* beleptcut = GetPtCutHisto(btrk);\r
+    TH1F* celeptcut = GetPtCutHisto(ctrk);\r
+    TH1F* cbeleptcut = GetPtCutHisto(cbtrk);\r
+    TH1F* dalitzptcut = GetPtCutHisto(daltrk);\r
+    TH1F* convptcut = GetPtCutHisto(convtrk);\r
+    TH1F* wzptcut = GetPtCutHisto(wztrk);\r
+    TH1F* misidptcut = GetPtCutHisto(htrk);\r
+    alleptcut->SetXTitle("p_{T}^{cut} (GeV/c)");\r
+    alleptcut->SetYTitle("Annual Yield in EMCAL for p_{T}>p_{T}^{cut}");\r
+    alleptcut->SetTitle("Pb+Pb, 5.5 TeV reconstructed N-P electrons (TPC+TRD pid)");\r
+    alleptcut->GetXaxis()->SetRangeUser(10.,49.);\r
+    alleptcut->GetYaxis()->SetRangeUser(1,6.e6);\r
+    alleptcut->Draw();\r
+    beleptcut->Draw("same");\r
+    celeptcut->Draw("same");\r
+    cbeleptcut->Draw("same");\r
+    dalitzptcut->Draw("same");\r
+    convptcut->Draw("same");\r
+    wzptcut->Draw("same");\r
+    //misidptcut->Draw("same");\r
+    leg->Draw();\r
+    cptcut->Print("NPERates_TRK_ptcut_all.pdf");\r
+  }\r
   if(strcmp(which,"TTE")==0) {\r
     //    TH1F* alleptcut = GetPtCutHisto(alltte);\r
     TH1F* alleptcut = GetPtCutHisto(sumtte);\r
-    TH1F* beleptcut = GetPtCutHisto(bpttte);\r
-    TH1F* celeptcut = GetPtCutHisto(cpttte);\r
-    TH1F* cbeleptcut = GetPtCutHisto(candbpttte);\r
-    TH1F* dalitzptcut = GetPtCutHisto(dalitzpttte);\r
-    TH1F* convptcut = GetPtCutHisto(convpttte);\r
-    TH1F* wzptcut = GetPtCutHisto(wzpttte);\r
-    TH1F* misidptcut = GetPtCutHisto(misidpttte);\r
+    TH1F* beleptcut = GetPtCutHisto(btte);\r
+    TH1F* celeptcut = GetPtCutHisto(ctte);\r
+    TH1F* cbeleptcut = GetPtCutHisto(cbtte);\r
+    TH1F* dalitzptcut = GetPtCutHisto(daltte);\r
+    TH1F* convptcut = GetPtCutHisto(convtte);\r
+    TH1F* wzptcut = GetPtCutHisto(wztte);\r
+    TH1F* misidptcut = GetPtCutHisto(htte);\r
     alleptcut->SetXTitle("p_{T}^{cut} (GeV/c)");\r
     alleptcut->SetYTitle("Annual Yield in EMCAL for p_{T}>p_{T}^{cut}");\r
-    alleptcut->SetTitle("Annual non-phot. electrons for p_{T}>p_{T}^{cut} (Tracking+EMCAL pid)");\r
-    alleptcut->GetXaxis()->SetRangeUser(0,49);\r
-    alleptcut->GetYaxis()->SetRangeUser(1,alleptcut->GetMaximum()*2);\r
+    alleptcut->SetTitle("Pb+Pb, 5.5 TeV reconstructed N-P electrons (Tracking+EMCAL pid)");\r
+    alleptcut->GetXaxis()->SetRangeUser(10.,49.);\r
+    alleptcut->GetYaxis()->SetRangeUser(1,4.e5);\r
     alleptcut->Draw();\r
     beleptcut->Draw("same");\r
     celeptcut->Draw("same");\r
@@ -408,7 +239,7 @@ void drawPtCutRates(char* which = "EMC") {
     dalitzptcut->Draw("same");\r
     convptcut->Draw("same");\r
     wzptcut->Draw("same");\r
-    //misidptcut->Draw("same");\r
+    misidptcut->Draw("same");\r
 \r
     leg->Draw();\r
     cptcut->Print("NPERates_TTE_ptcut_all.pdf");\r
@@ -416,23 +247,69 @@ void drawPtCutRates(char* which = "EMC") {
 \r
 }\r
 \r
-\r
-TH1F* GetPtCutHisto(TH1F* input) \r
-{\r
-  //Given a rate histogram vs pt, return the histogram with yield\r
-  //above a given pTcut\r
-\r
-  TH1F* result = (TH1F*)input->Clone();\r
-  char name[100];\r
-  sprintf(name,"%s_ptCut",result->GetName());\r
-  result->SetNameTitle(name,name);\r
-  for(Int_t i = 1; i <= result->GetNbinsX(); i++) {\r
-    Double_t val = input->Integral(i,result->GetNbinsX());\r
-    result->SetBinContent(i,val);\r
-    result->SetBinError(i,0.);\r
+TH1F* drawCompareTruth() {\r
+\r
+  TH1F* mctruth = (TH1F*)belemc->Clone();\r
+  mctruth->SetName("mctruth");\r
+  mctruth->Add(celemc);\r
+  mctruth->Add(candbmc);\r
+  mctruth->Add(wzmc);\r
+  mctruth->Rebin(2); mctruth->Scale(0.5);\r
+\r
+  TFile* effic = new TFile("elec_eff.root");\r
+  TH1F* heff = (TH1F*)effic->Get("h111");\r
+\r
+  TH1F* hcorr = (TH1F*)sumHFemc->Clone();\r
+  hcorr->SetName("hcorr");\r
+  for(Int_t i = 1; i < heff->GetNbinsX(); i++) {\r
+    Double_t pt = heff->GetBinCenter(i);\r
+    Double_t eff = heff->GetBinContent(i);    \r
+    Double_t corr = 0.;\r
+    if(eff > 0.) corr = hcorr->GetBinContent(i)/eff;\r
+    hcorr->SetBinContent(i,corr);\r
+  }\r
+  hcorr->Rebin(2); hcorr->Scale(0.5);\r
+  sumHFemc->Rebin(2); sumHFemc->Scale(0.5);\r
+\r
+  Double_t efinal = 0.258;\r
+  TGraphErrors* eerr = new TGraphErrors();\r
+  eerr->SetName("emcErr");\r
+  for(Int_t i = 1; i <= hcorr->GetNbinsX(); i++) {\r
+    eerr->SetPoint(i-1,hcorr->GetBinCenter(i),hcorr->GetBinContent(i));\r
+    eerr->SetPointError(i-1,0.,efinal*hcorr->GetBinContent(i));\r
   }\r
+  eerr->SetFillColor(kRed-8);\r
 \r
-  return result;\r
+  TCanvas* ctruth = new TCanvas();\r
+  ctruth->SetFillColor(0);\r
+  ctruth->SetBorderMode(0);\r
+  ctruth->SetBorderSize(2);\r
+  ctruth->SetFrameBorderMode(0);\r
+  ctruth->SetFrameBorderMode(0);\r
 \r
-}\r
+  ctruth->cd();\r
+  gPad->SetLogy();\r
+  mctruth->SetTitle("Comparison of MC and reco HF+W electrons");\r
+  mctruth->SetMarkerColor(kBlack); mctruth->SetLineColor(kBlack);\r
+  mctruth->SetYTitle("Annual yield in EMCAL dN/dp_{T} (GeV/c)^{-1}");\r
+  mctruth->SetXTitle("p_{T} (GeV/c)");\r
+  mctruth->GetXaxis()->SetRangeUser(10.,49.);\r
+  mctruth->Draw();\r
+  eerr->Draw("3same");\r
+  hcorr->SetMarkerColor(kRed);\r
+  hcorr->SetLineColor(kRed);\r
+  hcorr->Draw("same");\r
+  sumHFemc->SetMarkerColor(kBlue);\r
+  sumHFemc->SetLineColor(kBlue);\r
+  sumHFemc->Draw("same");\r
+  TLegend *legy = new TLegend(0.3,0.7,0.9,0.9);\r
+  legy->SetFillColor(0);\r
+  legy->AddEntry(mctruth,"MC HF+W electrons","l");\r
+  legy->AddEntry(sumHFemc,"Rec (EMCAL) HF+W electrons","l");\r
+  legy->AddEntry(hcorr,"Eff. corrected reco HF+W electrons","l");\r
+  legy->AddEntry(eerr,"Systematic uncertainty","f");\r
+  legy->Draw();\r
+\r
+  ctruth->Print("NPERates_TruthComparison.pdf");\r
 \r
+}\r