]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
updated macros for making PPR plots
authorjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Oct 2009 05:47:56 +0000 (05:47 +0000)
committerjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Oct 2009 05:47:56 +0000 (05:47 +0000)
PWG4/macros/electrons/plotMCRates.C

index 2706c13771d910465090d172dcd813bb7112ed09..8d9cb18035f1e1f72faf59ad2ad349f0bcc737ad 100644 (file)
@@ -16,55 +16,71 @@ TH1F* dalitz;
 TH1F* wz;\r
 TH1F* other;\r
 TH1F* mchad;\r
+TH1F* sige;\r
+TH1F* bkge;\r
+TH1F* walle;\r
+TH1F* hije;\r
+\r
 TLegend* leg;\r
 \r
-void plotMCRates(char* hijfname = "data/histos-merged-LHC0bd6.root",\r
-                char* jjfname = "data/histosscaledLHC09b2ESDb.root",\r
-                char* bfname = "data/histosscaledLHC09b4v2.root",\r
-                char* wfname = "data/histos_wboson_pt29b.root") {\r
+void plotMCRates(char* hijfname = "scale/histosLHC08d6.root",\r
+                char* jjfname = "scale/histosscaledLHC09b2ESD.root",\r
+                char* bfname = "scale/histosscaledLHC09b4.root",\r
+                char* wfname = "scale/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; //seconds*lumi*Pb*Pb\r
+  double pyscale = (1.E6)*0.5*208*208*100/360; //seconds*lumi*Pb*Pb*acceptance\r
+  double bscale = pyscale*0.10; //Branching ratio for forced\r
+                               //semi-leptonic decays\r
   double wscale = pyscale*6.29e-05; //JLK: This is temporary X-sec\r
-                                    //info from 2-29 GeV bin until we get pyxsec files\r
-\r
+                                    //info from 2-29 GeV bin until we\r
+                                    //get pyxsec files; also need to\r
+                                    //divide by nTrials.  For now,\r
+                                    //use nEvt\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* hijmcele = (TH2F*)hijlist->FindObject("AnaElectron_hPtMCElectron");\r
-  TH1F* hijmchad = (TH1F*)hijlist->FindObject("AnaElectron_hPtMCHadron");\r
-  TH1F* refmult = (TH1F*)hijlist->FindObject("AnaElectron_hRefMult");\r
-  Int_t nEvt = refmult->GetEntries();\r
+  TH2F* hijmcele = (TH2F*)histos->FindObject("AnaElectron_hPtMCElectron");\r
+  TH1F* hijmchad = (TH1F*)histos->FindObject("AnaElectron_hPtMCHadron");\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
   hijmcele->Scale(hijscale/nEvt);\r
   hijmchad->Scale(hijscale/nEvt);\r
 \r
   TFile* jjfile = new TFile(jjfname);\r
   if(!jjfile) { printf("NO JET-JET FILE\n"); return; }\r
-  TList* jjlist = (TList*)jjfile->Get("histos");\r
-  TH2F* jjmcele = (TH2F*)histosscaled->FindObject("AnaElectron_hPtMCElectronScaled");\r
-  TH1F* jjmchad = (TH1F*)histosscaled->FindObject("AnaElectron_hPtMCHadronScaled");\r
+  TH2F* jjmcele = (TH2F*)jjfile->Get("AnaElectron_hPtMCElectronScaled");\r
+  TH1F* jjmchad = (TH1F*)jjfile->Get("AnaElectron_hPtMCHadronScaled");\r
+  TH1F* jjmult = (TH1F*)jjfile->Get("AnaElectron_hRefMultScaled");\r
+  Int_t nEvtJJ = jjmult->GetEntries();\r
   jjmcele->Scale(pyscale);\r
   jjmchad->Scale(pyscale);\r
 \r
   TFile* bfile = new TFile(bfname);\r
   if(!bfile) { printf("NO B-JET FILE\n"); return; }\r
-  TList* blist = (TList*)bfile->Get("histos");\r
-  TH2F* bmcele = (TH2F*)histosscaled->FindObject("AnaElectron_hPtMCElectronScaled");\r
-  TH1F* bmchad = (TH1F*)histosscaled->FindObject("AnaElectron_hPtMCHadronScaled");\r
-  bmcele->Scale(pyscale);\r
-  bmchad->Scale(pyscale);\r
+  TH2F* bmcele = (TH2F*)bfile->Get("AnaElectron_hPtMCElectronScaled");\r
+  TH1F* bmchad = (TH1F*)bfile->Get("AnaElectron_hPtMCHadronScaled");\r
+  TH1F* bmult = (TH1F*)bfile->Get("AnaElectron_hRefMultScaled");\r
+  Int_t nEvtB = bmult->GetEntries();\r
+  bmcele->Scale(bscale);\r
+  bmchad->Scale(bscale);\r
 \r
   TFile* wfile = new TFile(wfname);\r
   if(!wfile) { printf("NO W-BOSON FILE\n"); return; }\r
   TList* wlist = (TList*)wfile->Get("histos");\r
   TH2F* wmcele = (TH2F*)histos->FindObject("AnaElectron_hPtMCElectron");\r
   TH1F* wmchad = (TH1F*)histos->FindObject("AnaElectron_hPtMCHadron");\r
-  wmcele->Scale(wscale);\r
-  wmchad->Scale(wscale);\r
+  TH1F* wmult = (TH1F*)histos->FindObject("AnaElectron_hRefMult");\r
+  Int_t nEvtW = wmult->GetEntries();\r
+  wmcele->Scale(wscale/nEvtW);\r
+  wmchad->Scale(wscale/nEvtW);\r
+\r
+  printf("Event statistics: %d (HIJING)  %d (JET-JET)  %d (B-JET)  %d (W-Boson)\n",nEvt,nEvtJJ,nEvtB,nEvtW);\r
 \r
   TH2F* combined = (TH2F*)hijmcele->Clone();\r
   combined->Add(jjmcele);\r
@@ -90,22 +106,35 @@ void plotMCRates(char* hijfname = "data/histos-merged-LHC0bd6.root",
   other = (TH1F*)combined->ProjectionX("other",8,8);\r
 \r
   wz = (TH1F*)wmcele->ProjectionX("wz",7,7);\r
+  \r
+  all->Add(wz); //because it had to be done separately\r
+\r
+  //For comparing contributions\r
+  walle = (TH1F*)wmcele->ProjectionX("walle",7,7);\r
+  sige = (TH1F*)bmcele->ProjectionX("sige",1,1);\r
+  bkge = (TH1F*)jjmcele->ProjectionX("bkge",1,1);\r
+  hije = (TH1F*)hijmcele->ProjectionX("hije",1,1);\r
 \r
   double myscale = 1.; //we already scaled them\r
   ScaleAndConfigure(all,myscale,kBlack,kFALSE);\r
   ScaleAndConfigure(bele,myscale,kRed,kFALSE);\r
+  ScaleAndConfigure(sige,myscale,kRed,kFALSE);\r
   ScaleAndConfigure(cele,myscale,kBlue,kFALSE);\r
   ScaleAndConfigure(candb,myscale,kViolet,kFALSE);\r
   ScaleAndConfigure(conv,myscale,kOrange-3,kFALSE);\r
+  ScaleAndConfigure(bkge,myscale,kOrange-3,kFALSE);\r
   ScaleAndConfigure(dalitz,myscale,kGreen-3,kFALSE);\r
   ScaleAndConfigure(wz,myscale,kOrange-7,kFALSE);\r
+  ScaleAndConfigure(walle,myscale,kOrange-7,kFALSE);\r
   ScaleAndConfigure(mchad,myscale,kGreen+2,kFALSE);\r
+  ScaleAndConfigure(hije,myscale,kGreen+2,kFALSE);\r
 \r
   gStyle->SetOptStat(0);\r
   //drawXSRates();\r
   drawAnnualYields();\r
   drawPtCutRates();\r
   drawHadEleRatios();\r
+  drawSigBkg();\r
 \r
 }\r
 \r
@@ -124,7 +153,7 @@ void ScaleAndConfigure(TH1F* hist,Double_t scale, Int_t color,Bool_t keepErr)
 \r
 void drawAnnualYields() {\r
 \r
-  TCanvas* crates = new TCanvas("crates","crates",20,20,600,400);\r
+  TCanvas* crates = new TCanvas();\r
   crates->cd();\r
   gPad->SetLogy();\r
   all->SetXTitle("p_{T} (GeV/c)");\r
@@ -152,6 +181,32 @@ void drawAnnualYields() {
 \r
 }\r
 \r
+void drawSigBkg() {\r
+\r
+  TCanvas* csigbkg = new TCanvas();\r
+  csigbkg->cd();\r
+  gPad->SetLogy();\r
+  all->SetXTitle("p_{T} (GeV/c)");\r
+  all->SetYTitle("Annual yield");\r
+  all->GetYaxis()->SetRangeUser(1.E1,3.E9);\r
+  all->GetXaxis()->SetRangeUser(0.,50.);\r
+  all->Draw();\r
+  sige->Draw("same");  \r
+  bkge->Draw("same");  \r
+  hije->Draw("same");  \r
+  walle->Draw("same");\r
+\r
+  TLegend* leg1 = new TLegend(0.6,0.6,0.9,0.9);\r
+  leg1->SetTextSize(leg->GetTextSize()*1.2);\r
+  leg1->AddEntry(all,"All MC electrons","l");\r
+  leg1->AddEntry(sige,"B-Jet Events","l");\r
+  leg1->AddEntry(hije,"Pb+Pb Underlying Event","l");\r
+  leg1->AddEntry(bkge,"Jet-Jet Events","l");\r
+  leg1->AddEntry(walle,"W-decay Events","l");\r
+  leg1->Draw();\r
+\r
+}\r
+\r
 void drawPtCutRates() {\r
 \r
   TCanvas* cptcut = new TCanvas();\r
@@ -163,6 +218,7 @@ void drawPtCutRates() {
   TH1F* cbeleptcut = GetPtCutHisto(candb);\r
   TH1F* dalitzptcut = GetPtCutHisto(dalitz);\r
   TH1F* convptcut = GetPtCutHisto(conv);\r
+  TH1F* wzptcut = GetPtCutHisto(wz);\r
   alleptcut->GetXaxis()->SetRangeUser(0,50);\r
   alleptcut->GetYaxis()->SetRangeUser(100,alleptcut->GetMaximum()*2);\r
   alleptcut->SetXTitle("p_{T}^{cut} (GeV/c)");\r
@@ -174,6 +230,7 @@ void drawPtCutRates() {
   cbeleptcut->Draw("same");\r
   dalitzptcut->Draw("same");\r
   convptcut->Draw("same");\r
+  wzptcut->Draw("same");\r
   leg->Draw();\r
 \r
 }\r
@@ -210,10 +267,10 @@ void drawHadEleRatios() {
   behratio->GetXaxis()->SetRangeUser(0,50);\r
   allratio->SetMarkerStyle(20);\r
   behratio->SetMarkerStyle(24);\r
+  allratio->Fit("pol0");\r
   allratio->Draw();\r
   behratio->Draw("psame");\r
 \r
-\r
   TLegend *heleg = new TLegend(0.4,0.75,0.75,0.9);\r
   heleg->SetTextSize(heleg->GetTextSize()*1.5);\r
   heleg->AddEntry(allratio,"All electrons","l");\r