+++ /dev/null
-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]);
- }
-}