]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
A little macro to combine non-injected and injected efficiencies
authorbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 19 Jan 2013 10:19:11 +0000 (10:19 +0000)
committerbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 19 Jan 2013 10:19:11 +0000 (10:19 +0000)
PWGLF/STRANGENESS/LambdaK0PbPb/comb_eff.C [new file with mode: 0644]

diff --git a/PWGLF/STRANGENESS/LambdaK0PbPb/comb_eff.C b/PWGLF/STRANGENESS/LambdaK0PbPb/comb_eff.C
new file mode 100644 (file)
index 0000000..c8e535b
--- /dev/null
@@ -0,0 +1,93 @@
+TH1D *combine(TH1D *pure, TH1D *injected) {
+   TH1D *eff=new TH1D(*pure);
+   eff->SetLineColor(2);
+   eff->Add(injected);
+   eff->Scale(0.5);
+   for (Int_t i=1; i<16; i++) {
+      Double_t c=pure->GetBinContent(i);
+      Double_t e=pure->GetBinError(i);
+      eff->SetBinContent(i,c);
+      eff->SetBinError(i,e);       
+   }
+   for (Int_t i=25; i<=eff->GetNbinsX(); i++) {
+      Double_t c=injected->GetBinContent(i);
+      Double_t e=injected->GetBinError(i);
+      eff->SetBinContent(i,c);
+      eff->SetBinError(i,e);       
+   }
+   return eff;
+}
+
+void comb_eff(const Char_t *centr) {
+  TFile *non=TFile::Open("SpectraV0CutVariations_nonInj.root");
+  TFile *all=TFile::Open("SpectraV0CutVariations_all.root");
+
+  TFile *file=TFile::Open("comb_eff.root","update");
+
+  TString name;
+  TH1D *hnon, *hall, *comb, *r;
+
+  TCanvas *c=new TCanvas();
+  c->Divide(3,2);
+
+
+  non->cd();
+  name="eff_K0s_nonInj_"; name+=centr;
+  hnon=(TH1D*)gDirectory->Get(name.Data());
+     all->cd();
+     name="eff_K0s_"; name+=centr;
+     hall=(TH1D*)gDirectory->Get(name.Data());
+  comb=combine(hnon,hall);
+  name="eff_K0s_comb_"; name+=centr;
+  comb->SetName(name.Data());
+  c->cd(1);
+  hall->Draw(); comb->Draw("same");
+  c->cd(4);  gPad->SetGridx(); gPad->SetGridy();
+  r=new TH1D(*hall); r->Divide(comb); 
+  r->SetMinimum(0.8); r->SetMaximum(1.2); r->Draw();
+  file->cd(); comb->Write();
+
+  non->cd(); 
+  name="eff_Lambda_nonInj_"; name+=centr;
+  hnon=(TH1D*)gDirectory->Get(name.Data());
+     all->cd();
+     name="eff_Lambda_"; name+=centr;
+     hall=(TH1D*)gDirectory->Get(name.Data());
+  comb=combine(hnon,hall);
+  name="eff_Lambda_comb_"; name+=centr;
+  comb->SetName(name.Data());
+  c->cd(2);
+  hall->Draw(); comb->Draw("same");
+  c->cd(5);  gPad->SetGridx(); gPad->SetGridy();
+  r=new TH1D(*hall); r->Divide(comb); 
+  r->SetMinimum(0.8); r->SetMaximum(1.2); r->Draw();
+  file->cd(); comb->Write();
+
+
+  non->cd(); 
+  name="eff_LambdaBar_nonInj_"; name+=centr;
+  hnon=(TH1D*)gDirectory->Get(name.Data());
+     all->cd();
+     name="eff_LambdaBar_"; name+=centr;
+     hall=(TH1D*)gDirectory->Get(name.Data());
+  comb=combine(hnon,hall);
+  name="eff_LambdaBar_comb_"; name+=centr;
+  comb->SetName(name.Data());
+  c->cd(3);
+  hall->Draw(); comb->Draw("same");
+  c->cd(6); gPad->SetGridx(); gPad->SetGridy();
+  r=new TH1D(*hall); r->Divide(comb); 
+  r->SetMinimum(0.8); r->SetMaximum(1.2); r->Draw();
+  file->cd(); comb->Write();
+
+  file->Close();
+}
+
+void Loop() {
+  const Char_t *cent[]={"0005","0010","1020","2040","4060","6080","8090"};
+  Int_t nCent=sizeof(cent)/sizeof(const Char_t *);
+  for (Int_t i=0; i<nCent; i++) {
+    cout<<cent[i]<<endl;
+    comb_eff(cent[i]);
+  }
+}