void mTScale_rebin(){ const Int_t ptBins=8; const Int_t Npt=8; // const Int_t ptBins=14; // const Int_t ptBins=20; const Int_t N=1; TH1D *fHistGenTotal_Sel[ptBins]; TH1D *fHistGenTotal_INEL[ptBins]; char name[500]; Double_t pt[ptBins]; Double_t gen_value_sel[ptBins]; Double_t gen_value_inel[ptBins]; Double_t efficiency[ptBins]; Double_t efficiency_error[ptBins]; Double_t lrap,hrap; Double_t lcm=0; Double_t hcm=100; Double_t lc = 0.00; Double_t hc =1.00; Double_t Low_pt[Npt+1]={0.6, 1.0, 1.5, 2.0, 2.5, 3.0,3.5,4.0, 6.0}; TFile *fInputFile = new TFile("~/testsl.root"); TKey* key_inel10 = (TKey*)fInputFile->GetListOfKeys()->At(3); TList *fInputList_inel10 = (TList*)fInputFile->Get(key_inel10->GetName()); TKey* key_sel = (TKey*)fInputFile->GetListOfKeys()->At(2); TList *fInputList_sel = (TList*)fInputFile->Get(key_sel->GetName()); THnSparseF * fHistGen_sel = (THnSparseF *) fInputList_sel->FindObject("LStarppMC_trig_protron_mother"); //fHistGen->SetName("abc"); THnSparseF * fHistGen_sel1 = (THnSparseF *) fInputList_sel->FindObject("LStarppMC_trig_antiprotron_mother"); TCanvas *genC = new TCanvas(); genC->Divide(3,1); genC->cd(1); TH1D *hGen_pt = (TH1D*)fHistGen_sel->Projection(1); TH1D *Gen_pt=(TH1D*)hGen_pt->Rebin(ptBins,"Gen",Low_pt); Gen_pt->SetName("Gen"); Gen_pt->Draw(); genC->cd(2); // TDatabasePDG *db = TDatabasePDG::Instance(); // TParticlePDG *part1 = db->GetParticle(3124); // Double_t mass1 = part1->Mass(); TH1D *hGen_proton = (TH1D*)Gen_pt->Clone("massprotron"); TH1D *hGen_Lambda = (TH1D*)Gen_pt->Clone("masslambda"); for(Int_t m=1;mSetBinContent(m,0.938); hGen_proton->SetBinError(m,0.002); hGen_Lambda->SetBinContent(m,1.5190); hGen_Lambda->SetBinError(m,0.001); } hGen_proton->Draw(); hGen_Lambda->Draw("same"); TCanvas *genC2 = new TCanvas(); genC2->Divide(2,2); genC2->cd(1); TH1D hpT= (*Gen_pt)*(*Gen_pt); TH1D * h1 =(TH1D*)hpT.Clone(); h1->Draw(); genC2->cd(2); TH1D hpr= (*hGen_proton)*(*hGen_proton); TH1D * hp =(TH1D*)hpr.Clone(); hp->Draw(); genC2->cd(3); TH1D hL= (*hGen_Lambda)*(*hGen_Lambda); TH1D * hLa =(TH1D*)hL.Clone(); hLa->Draw(); TH1D *ht = (TH1D*)hpT.Clone("total"); genC2->cd(4); // ht->Add(hp); // ht->Add(hLa,-1); ht->Draw(); TCanvas *genC3 = new TCanvas(); genC3->cd(); genC3->SetLogy(); TH1D *hto = (TH1D*)hpT.Clone("total"); for(Int_t m=1;mSetBinContent(m,sqrt(ht->GetBinContent(m))); hto->SetBinError(m,sqrt(ht->GetBinError(m))); } // hto->SetMarkerSize(1.9); hto->SetMarkerColor(2); hto->SetMarkerStyle(2); hto->Draw(); }