//______________________________________________________________________________ void processJpsi2eeQAplots(const Char_t* filename="jpsi_Default.root", TString suffix = "eps", const Char_t* outfile="Jpsi2eeQAplots_output.root") { // // TFile* file = TFile::Open(filename); // event wise histograms TH1F* zDistrib = (TH1F*)GetHistogram(file, "default", "Event", "Z"); // electron candidate histograms TH2F* tpcDedx = (TH2F*)GetHistogram(file, "default", "Track_ev1+", "P_InnerParam_TPC_signal"); tpcDedx->Add((TH2F*)GetHistogram(file, "default", "Track_ev1-", "P_InnerParam_TPC_signal")); TH2F* tpcNsigmaEle = (TH2F*)GetHistogram(file, "default", "Track_ev1+", "P_InnerParam_TPC_nSigma_Electrons"); tpcNsigmaEle->Add((TH2F*)GetHistogram(file, "default", "Track_ev1-", "P_InnerParam_TPC_nSigma_Electrons")); // pair candidate histograms TH1F* invmass_pp = (TH1F*)GetHistogram(file, "default", "Pair_ev1+_ev1+", "pM"); TH1F* invmass_pm = (TH1F*)GetHistogram(file, "default", "Pair_ev1+_ev1-", "pM"); TH1F* invmass_mm = (TH1F*)GetHistogram(file, "default", "Pair_ev1-_ev1-", "pM"); // draw stuff TLatex* latex=new TLatex(); latex->SetNDC(); latex->SetTextSize(0.04); latex->SetTextFont(42); TCanvas* c1=new TCanvas("fig_dq_tpcDedx", ""); if(tpcDedx) { tpcDedx->SetStats(kFALSE); tpcDedx->GetXaxis()->SetRangeUser(0.0,10.0); tpcDedx->GetYaxis()->SetRangeUser(40.0,120.0); tpcDedx->SetTitle(""); tpcDedx->Draw("colz"); latex->DrawLatex(0.12, 0.83, "J/#psi electron candidates"); } TCanvas* c2=new TCanvas("fig_dq_tpcNsigmaElectron", ""); if(tpcNsigmaEle) { tpcNsigmaEle->SetStats(kFALSE); tpcNsigmaEle->GetYaxis()->SetRangeUser(-5.0,5.0); tpcNsigmaEle->GetXaxis()->SetRangeUser(0.0,10.0); tpcNsigmaEle->SetTitle(""); tpcNsigmaEle->Draw("colz"); latex->DrawLatex(0.12, 0.83, "J/#psi electron candidates"); } TCanvas* c3=new TCanvas("fig_dq_eeInvMass", ""); if(invmass_pm) { invmass_pm->SetStats(kFALSE); invmass_pm->SetTitle(""); invmass_pm->SetLineColor(1); invmass_pm->GetYaxis()->SetTitle(Form("Pairs per %.0f MeV/c^{2}", 1000.0*invmass_pm->GetXaxis()->GetBinWidth(1))); invmass_pm->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); invmass_pm->Draw(); } if(invmass_pp) { invmass_pp->SetLineColor(2); invmass_pp->Draw((invmass_pm ? "same" : "")); } if(invmass_mm) { invmass_mm->SetLineColor(4); invmass_mm->Draw((invmass_mm ? "same" : "")); } if(invmass_pm || invmass_mm || invmass_pp) latex->DrawLatex(0.12, 0.85, "J/#psi candidates"); if(invmass_pm && zDistrib && zDistrib->Integral()>1.); latex->DrawLatex(0.12, 0.80, Form("candidates / event = %.3f", invmass_pm->Integral() / zDistrib->Integral())); TLegend* legend=new TLegend(0.7,0.7,0.89,0.89); legend->SetTextFont(42); legend->SetBorderSize(0); legend->SetFillColor(0); if(invmass_pm) legend->AddEntry(invmass_pm, "+- pairs", "l"); if(invmass_pp) legend->AddEntry(invmass_pp, "++ pairs", "l"); if(invmass_mm) legend->AddEntry(invmass_mm, "-- pairs", "l"); if(invmass_mm || invmass_pm || invmass_pp) legend->Draw(); c1->SaveAs(Form("fig_dq_tpcDedx.%s",suffix.Data())); c2->SaveAs(Form("fig_dq_tpcNsigmaElectron.%s",suffix.Data())); c3->SaveAs(Form("fig_dq_eeInvMass.%s",suffix.Data())); // TFile* save=new TFile(outputName, "RECREATE"); // c1->Write(); // c2->Write(); // c3->Write(); // save->Close(); // Added by jsatya TFile *fout = TFile::Open(outfile,"UPDATE"); fout->ls(); TDirectoryFile *cdd = NULL; cdd = (TDirectoryFile*)fout->Get("DQ"); if(!cdd) { Printf("Warning: DQ <dir> doesn't exist, creating a new one"); cdd = (TDirectoryFile*)fout->mkdir("DQ"); } cdd->cd(); cdd->ls(); if (invmass_pp){ invmass_pp->SetName(Form("fig_dq_%s_pp", invmass_pp->GetName())); invmass_pp->Write(); } if (invmass_pm){ invmass_pm->SetName(Form("fig_dq_%s_pm", invmass_pm->GetName())); invmass_pm->Write(); } if (invmass_mm){ invmass_mm->SetName(Form("fig_dq_%s_mm", invmass_mm->GetName())); invmass_mm->Write(); } tpcNsigmaEle->SetName(Form("fig_dq_%s", tpcNsigmaEle->GetName())); tpcNsigmaEle->Write(); tpcDedx->SetName(Form("fig_dq_%s", tpcDedx->GetName())); tpcDedx->Write(); fout->cd(); fout->Close(); }
/////// main func. /////// int make2Droot_total_noPtWeight(char *dirName = "8rap9pt2gev", char *dateName = "no"){ using namespace std; //////////////////////////////////////////////// ////// read in Acceptance file // *** without pt weight TFile *fAccPR = new TFile("../001_Acceptance/AccAna_8rap9pt2gev_PRMC_boosted.root"); TFile *fAccNP = new TFile("../001_Acceptance/AccAna_8rap9pt2gev_NPMC_boosted.root"); // *** with pt weight //TFile *fAccPR = new TFile("../001_Acceptance_weight_8rap9pt2gev/AccAna_isPrompt1_Pbp_kyo01.root"); //TFile *fAccNP = new TFile("../001_Acceptance_weight_8rap9pt2gev/AccAna_isPrompt0_Pbp_kyo01.root"); TH2D* h2D_Acc_pt_y_PRMC_Pbp = (TH2D*)fAccPR->Get("h2D_Acc_pt_y_Pbp"); TH2D* h2D_Acc_pt_y_PRMC_pPb = (TH2D*)fAccPR->Get("h2D_Acc_pt_y_pPb"); TH2D* h2D_Acc_pt_y_NPMC_Pbp = (TH2D*)fAccNP->Get("h2D_Acc_pt_y_Pbp"); TH2D* h2D_Acc_pt_y_NPMC_pPb = (TH2D*)fAccNP->Get("h2D_Acc_pt_y_pPb"); //TH2D* h2D_Acc_pt_y_NPMC_Pbp = (TH2D*)fAccNP->Get("h2D_Acc_noWeight_pt_y_Pbp"); //un-weighted! //TH2D* h2D_Acc_pt_y_NPMC_pPb = (TH2D*)fAccNP->Get("h2D_Acc_noWeight_pt_y_pPb"); h2D_Acc_pt_y_PRMC_Pbp->SetName("h2D_Acc_pt_y_PRMC_Pbp"); h2D_Acc_pt_y_PRMC_pPb->SetName("h2D_Acc_pt_y_PRMC_pPb"); h2D_Acc_pt_y_NPMC_Pbp->SetName("h2D_Acc_pt_y_NPMC_Pbp"); h2D_Acc_pt_y_NPMC_pPb->SetName("h2D_Acc_pt_y_NPMC_pPb"); cout << "4 Acc TH2D : "<<h2D_Acc_pt_y_PRMC_Pbp<<" "<<h2D_Acc_pt_y_PRMC_pPb<<" "<<h2D_Acc_pt_y_NPMC_Pbp<<" "<<h2D_Acc_pt_y_NPMC_pPb<<endl; TH2D* h2D_Acc_Den_pt_y_PRMC_Pbp = (TH2D*)fAccPR->Get("h2D_Den_pt_y_Pbp"); TH2D* h2D_Acc_Den_pt_y_PRMC_pPb = (TH2D*)fAccPR->Get("h2D_Den_pt_y_pPb"); TH2D* h2D_Acc_Den_pt_y_NPMC_Pbp = (TH2D*)fAccNP->Get("h2D_Den_pt_y_Pbp"); //WRONG!! weighted! TH2D* h2D_Acc_Den_pt_y_NPMC_pPb = (TH2D*)fAccNP->Get("h2D_Den_pt_y_pPb"); //WRONG!! weighted! h2D_Acc_Den_pt_y_PRMC_Pbp->SetName("h2D_Acc_Den_pt_y_PRMC_Pbp"); h2D_Acc_Den_pt_y_PRMC_pPb->SetName("h2D_Acc_Den_pt_y_PRMC_pPb"); h2D_Acc_Den_pt_y_NPMC_Pbp->SetName("h2D_Acc_Den_pt_y_NPMC_Pbp"); h2D_Acc_Den_pt_y_NPMC_pPb->SetName("h2D_Acc_Den_pt_y_NPMC_pPb"); TH2D* h2D_Acc_Num_pt_y_PRMC_Pbp = (TH2D*)fAccPR->Get("h2D_Num_pt_y_Pbp"); TH2D* h2D_Acc_Num_pt_y_PRMC_pPb = (TH2D*)fAccPR->Get("h2D_Num_pt_y_pPb"); TH2D* h2D_Acc_Num_pt_y_NPMC_Pbp = (TH2D*)fAccNP->Get("h2D_Num_pt_y_Pbp"); //WRONG!! weighted! TH2D* h2D_Acc_Num_pt_y_NPMC_pPb = (TH2D*)fAccNP->Get("h2D_Num_pt_y_pPb"); //WRONG!! weighted! h2D_Acc_Num_pt_y_PRMC_Pbp->SetName("h2D_Acc_Num_pt_y_PRMC_Pbp"); h2D_Acc_Num_pt_y_PRMC_pPb->SetName("h2D_Acc_Num_pt_y_PRMC_pPb"); h2D_Acc_Num_pt_y_NPMC_Pbp->SetName("h2D_Acc_Num_pt_y_NPMC_Pbp"); h2D_Acc_Num_pt_y_NPMC_pPb->SetName("h2D_Acc_Num_pt_y_NPMC_pPb"); //////////////////////////////////////////////// ////// read in Efficiency file // *** without pt weight TFile *fEffPRPbp = new TFile("../002_Efficiency_zVtx_embedded/EffCounting_8rap9pt2gev_PRMCpythia_Pbp_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1.root"); TFile *fEffPRpPb = new TFile("../002_Efficiency_zVtx_embedded/EffCounting_8rap9pt2gev_PRMCpythia_pPb_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1.root"); TFile *fEffNPPbp = new TFile("../002_Efficiency_zVtx_embedded/EffCounting_8rap9pt2gev_NPMCpythia_Pbp_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1.root"); TFile *fEffNPpPb = new TFile("../002_Efficiency_zVtx_embedded/EffCounting_8rap9pt2gev_NPMCpythia_pPb_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1.root"); /* /// *** with pt weight TFile *fEffPRPbp = new TFile("../001_Acceptance_weight_8rap9pt2gev/EffCounting_8rap9pt2gev_PRMCpythia_Pbp_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1_kyo01.root"); TFile *fEffPRpPb = new TFile("../001_Acceptance_weight_8rap9pt2gev/EffCounting_8rap9pt2gev_PRMCpythia_pPb_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1_kyo01.root"); TFile *fEffNPPbp = new TFile("../001_Acceptance_weight_8rap9pt2gev/EffCounting_8rap9pt2gev_NPMCpythia_Pbp_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1_kyo01.root"); TFile *fEffNPpPb = new TFile("../001_Acceptance_weight_8rap9pt2gev/EffCounting_8rap9pt2gev_NPMCpythia_pPb_useCtErr_1_useDataDriven_1_useZvtxStep1_0_Step2_1_kyo01.root"); */ TH2D* h2D_Eff_pt_y_PRMC_Pbp = (TH2D*)fEffPRPbp->Get("h2D_Eff_pt_y"); //weighted! TH2D* h2D_Eff_pt_y_PRMC_pPb = (TH2D*)fEffPRpPb->Get("h2D_Eff_pt_y"); TH2D* h2D_Eff_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Eff_pt_y"); //unweighted! TH2D* h2D_Eff_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Eff_pt_y"); //TH2D* h2D_Eff_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Eff_noWeight_pt_y"); //unweighted! //TH2D* h2D_Eff_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Eff_noWeight_pt_y"); h2D_Eff_pt_y_PRMC_Pbp->SetName("h2D_Eff_pt_y_PRMC_Pbp"); h2D_Eff_pt_y_PRMC_pPb->SetName("h2D_Eff_pt_y_PRMC_pPb"); h2D_Eff_pt_y_NPMC_Pbp->SetName("h2D_Eff_pt_y_NPMC_Pbp"); h2D_Eff_pt_y_NPMC_pPb->SetName("h2D_Eff_pt_y_NPMC_pPb"); cout << "4 Eff TH2D : "<<h2D_Eff_pt_y_PRMC_Pbp<<" "<<h2D_Eff_pt_y_PRMC_pPb<<" "<<h2D_Eff_pt_y_NPMC_Pbp<<" "<<h2D_Eff_pt_y_NPMC_pPb<<endl; TH2D* h2D_Eff_Den_pt_y_PRMC_Pbp = (TH2D*)fEffPRPbp->Get("h2D_Den_pt_y"); TH2D* h2D_Eff_Den_pt_y_PRMC_pPb = (TH2D*)fEffPRpPb->Get("h2D_Den_pt_y"); TH2D* h2D_Eff_Den_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Den_pt_y"); TH2D* h2D_Eff_Den_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Den_pt_y"); //TH2D* h2D_Eff_Den_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Den_noWeight_pt_y"); //TH2D* h2D_Eff_Den_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Den_noWeight_pt_y"); h2D_Eff_Den_pt_y_PRMC_Pbp->SetName("h2D_Eff_Den_pt_y_PRMC_Pbp"); h2D_Eff_Den_pt_y_PRMC_pPb->SetName("h2D_Eff_Den_pt_y_PRMC_pPb"); h2D_Eff_Den_pt_y_NPMC_Pbp->SetName("h2D_Eff_Den_pt_y_NPMC_Pbp"); h2D_Eff_Den_pt_y_NPMC_pPb->SetName("h2D_Eff_Den_pt_y_NPMC_pPb"); TH2D* h2D_Eff_Num_pt_y_PRMC_Pbp = (TH2D*)fEffPRPbp->Get("h2D_Num_pt_y"); TH2D* h2D_Eff_Num_pt_y_PRMC_pPb = (TH2D*)fEffPRpPb->Get("h2D_Num_pt_y"); TH2D* h2D_Eff_Num_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Num_pt_y"); TH2D* h2D_Eff_Num_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Num_pt_y"); //TH2D* h2D_Eff_Num_pt_y_NPMC_Pbp = (TH2D*)fEffNPPbp->Get("h2D_Num_noWeight_pt_y"); //TH2D* h2D_Eff_Num_pt_y_NPMC_pPb = (TH2D*)fEffNPpPb->Get("h2D_Num_noWeight_pt_y"); h2D_Eff_Num_pt_y_PRMC_Pbp->SetName("h2D_Eff_Num_pt_y_PRMC_Pbp"); h2D_Eff_Num_pt_y_PRMC_pPb->SetName("h2D_Eff_Num_pt_y_PRMC_pPb"); h2D_Eff_Num_pt_y_NPMC_Pbp->SetName("h2D_Eff_Num_pt_y_NPMC_Pbp"); h2D_Eff_Num_pt_y_NPMC_pPb->SetName("h2D_Eff_Num_pt_y_NPMC_pPb"); //////////////////////////////////////////////// ////// read in fromfit file TFile* fFitPbp = new TFile("./2Dhist_fitRes_8rap9pt2gev_Pbp.root"); TFile* fFitpPb = new TFile("./2Dhist_fitRes_8rap9pt2gev_pPb.root"); TH2D* h2D_fit_pt_y_PR_Pbp = (TH2D*)fFitPbp->Get("h2D_nPrompt"); TH2D* h2D_fit_pt_y_NP_Pbp = (TH2D*)fFitPbp->Get("h2D_nNonprompt"); TH2D* h2D_fit_pt_y_nSig_Pbp = (TH2D*)fFitPbp->Get("h2D_nSig"); TH2D* h2D_fit_pt_y_nBkg_Pbp = (TH2D*)fFitPbp->Get("h2D_nBkg"); TH2D* h2D_fit_pt_y_bFrac_Pbp = (TH2D*)fFitPbp->Get("h2D_bFraction"); TH2D* h2D_fit_pt_y_ctErrmin_Pbp = (TH2D*)fFitPbp->Get("h2D_ctErrmin"); TH2D* h2D_fit_pt_y_ctErrmax_Pbp = (TH2D*)fFitPbp->Get("h2D_ctErrmax"); TH2D* h2D_fit_pt_y_PR_pPb = (TH2D*)fFitpPb->Get("h2D_nPrompt"); TH2D* h2D_fit_pt_y_NP_pPb = (TH2D*)fFitpPb->Get("h2D_nNonprompt"); TH2D* h2D_fit_pt_y_nSig_pPb = (TH2D*)fFitpPb->Get("h2D_nSig"); TH2D* h2D_fit_pt_y_nBkg_pPb = (TH2D*)fFitpPb->Get("h2D_nBkg"); TH2D* h2D_fit_pt_y_bFrac_pPb = (TH2D*)fFitpPb->Get("h2D_bFraction"); TH2D* h2D_fit_pt_y_ctErrmin_pPb = (TH2D*)fFitpPb->Get("h2D_ctErrmin"); TH2D* h2D_fit_pt_y_ctErrmax_pPb = (TH2D*)fFitpPb->Get("h2D_ctErrmax"); h2D_fit_pt_y_PR_Pbp->SetName("h2D_fit_pt_y_PR_Pbp"); h2D_fit_pt_y_PR_pPb->SetName("h2D_fit_pt_y_PR_pPb"); h2D_fit_pt_y_NP_Pbp->SetName("h2D_fit_pt_y_NP_Pbp"); h2D_fit_pt_y_NP_pPb->SetName("h2D_fit_pt_y_NP_pPb"); h2D_fit_pt_y_nSig_Pbp->SetName("h2D_fit_pt_y_nSig_Pbp"); h2D_fit_pt_y_nSig_pPb->SetName("h2D_fit_pt_y_nSig_pPb"); h2D_fit_pt_y_nBkg_Pbp->SetName("h2D_fit_pt_y_nBkg_Pbp"); h2D_fit_pt_y_nBkg_pPb->SetName("h2D_fit_pt_y_nBkg_pPb"); h2D_fit_pt_y_bFrac_Pbp->SetName("h2D_fit_pt_y_bFrac_Pbp"); h2D_fit_pt_y_bFrac_pPb->SetName("h2D_fit_pt_y_bFrac_pPb"); h2D_fit_pt_y_ctErrmin_Pbp->SetName("h2D_fit_pt_y_ctErrmin_Pbp"); h2D_fit_pt_y_ctErrmin_pPb->SetName("h2D_fit_pt_y_ctErrmin_pPb"); h2D_fit_pt_y_ctErrmax_Pbp->SetName("h2D_fit_pt_y_ctErrmax_Pbp"); h2D_fit_pt_y_ctErrmax_pPb->SetName("h2D_fit_pt_y_ctErrmax_pPb"); cout << "4 yield TH2D : "<<h2D_fit_pt_y_PR_Pbp<<" "<<h2D_fit_pt_y_PR_pPb<<" "<<h2D_fit_pt_y_NP_Pbp<<" "<<h2D_fit_pt_y_NP_pPb<<endl; cout << "2 nSig TH2D : "<<h2D_fit_pt_y_nSig_Pbp<<" "<<h2D_fit_pt_y_nSig_pPb<<endl; cout << "2 nBkg TH2D : "<<h2D_fit_pt_y_nBkg_Pbp<<" "<<h2D_fit_pt_y_nBkg_pPb<<endl; cout << "2 bFrac TH2D : "<<h2D_fit_pt_y_bFrac_Pbp<<" "<<h2D_fit_pt_y_bFrac_pPb<<endl; cout << "2 ctErrmin TH2D : "<<h2D_fit_pt_y_ctErrmin_Pbp<<" "<<h2D_fit_pt_y_ctErrmin_pPb<<endl; cout << "2 ctErrmax TH2D : "<<h2D_fit_pt_y_ctErrmax_Pbp<<" "<<h2D_fit_pt_y_ctErrmax_pPb<<endl; //////////////////////////////////////////////// ////// data corrected yield = rawYield/(Acc*Eff) TH2D* h2D_corrY_PR_Pbp = (TH2D*)h2D_fit_pt_y_PR_Pbp->Clone("h2D_corrY_PR_Pbp"); h2D_corrY_PR_Pbp->SetName("h2D_corrY_PR_Pbp"); h2D_corrY_PR_Pbp->Divide(h2D_Acc_pt_y_PRMC_Pbp); h2D_corrY_PR_Pbp->Divide(h2D_Eff_pt_y_PRMC_Pbp); TH2D* h2D_corrY_NP_Pbp = (TH2D*)h2D_fit_pt_y_NP_Pbp->Clone("h2D_corrY_NP_Pbp"); h2D_corrY_NP_Pbp->SetName("h2D_corrY_NP_Pbp"); h2D_corrY_NP_Pbp->Divide(h2D_Acc_pt_y_NPMC_Pbp); h2D_corrY_NP_Pbp->Divide(h2D_Eff_pt_y_NPMC_Pbp); TH2D* h2D_corrY_PR_pPb = (TH2D*)h2D_fit_pt_y_PR_pPb->Clone("h2D_corrY_PR_pPb"); h2D_corrY_PR_pPb->SetName("h2D_corrY_PR_pPb"); h2D_corrY_PR_pPb->Divide(h2D_Acc_pt_y_PRMC_pPb); h2D_corrY_PR_pPb->Divide(h2D_Eff_pt_y_PRMC_pPb); TH2D* h2D_corrY_NP_pPb = (TH2D*)h2D_fit_pt_y_NP_pPb->Clone("h2D_corrY_NP_pPb"); h2D_corrY_NP_pPb->SetName("h2D_corrY_NP_pPb"); h2D_corrY_NP_pPb->Divide(h2D_Acc_pt_y_NPMC_pPb); h2D_corrY_NP_pPb->Divide(h2D_Eff_pt_y_NPMC_pPb); //////////////////////////////////////////////// ////// MC corrected yield RECO/(Acc*Eff) TH2D* h2D_MCcorrY_PR_Pbp = (TH2D*)h2D_Eff_Num_pt_y_PRMC_Pbp->Clone("h2D_MCcorrY_PR_Pbp"); h2D_MCcorrY_PR_Pbp->SetName("h2D_MCcorrY_PR_Pbp"); h2D_MCcorrY_PR_Pbp->Divide(h2D_Acc_pt_y_PRMC_Pbp); h2D_MCcorrY_PR_Pbp->Divide(h2D_Eff_pt_y_PRMC_Pbp); TH2D* h2D_MCcorrY_NP_Pbp = (TH2D*)h2D_Eff_Num_pt_y_NPMC_Pbp->Clone("h2D_MCcorrY_NP_Pbp"); h2D_MCcorrY_NP_Pbp->SetName("h2D_MCcorrY_NP_Pbp"); h2D_MCcorrY_NP_Pbp->Divide(h2D_Acc_pt_y_NPMC_Pbp); h2D_MCcorrY_NP_Pbp->Divide(h2D_Eff_pt_y_NPMC_Pbp); TH2D* h2D_MCcorrY_PR_pPb = (TH2D*)h2D_Eff_Num_pt_y_PRMC_pPb->Clone("h2D_MCcorrY_PR_pPb"); h2D_MCcorrY_PR_pPb->SetName("h2D_MCcorrY_PR_pPb"); h2D_MCcorrY_PR_pPb->Divide(h2D_Acc_pt_y_PRMC_pPb); h2D_MCcorrY_PR_pPb->Divide(h2D_Eff_pt_y_PRMC_pPb); TH2D* h2D_MCcorrY_NP_pPb = (TH2D*)h2D_Eff_Num_pt_y_NPMC_pPb->Clone("h2D_MCcorrY_NP_pPb"); h2D_MCcorrY_NP_pPb->SetName("h2D_MCcorrY_NP_pPb"); h2D_MCcorrY_NP_pPb->Divide(h2D_Acc_pt_y_NPMC_pPb); h2D_MCcorrY_NP_pPb->Divide(h2D_Eff_pt_y_NPMC_pPb); //////////////////////////////////////////////// ////// save as a root file TFile *outFile = new TFile(Form("total2Dhist_%s_noPtWeight.root",dirName),"RECREATE"); std::cout << "dirName: " << dirName << std::endl; cout << "total2Dhist_"<<dirName<<"_noPtWeight.root has been created :) " <<endl; outFile->cd(); //Acc h2D_Acc_pt_y_PRMC_Pbp->Write(); h2D_Acc_pt_y_PRMC_pPb->Write(); h2D_Acc_pt_y_NPMC_Pbp->Write(); h2D_Acc_pt_y_NPMC_pPb->Write(); //Eff h2D_Eff_pt_y_PRMC_Pbp->Write(); h2D_Eff_pt_y_PRMC_pPb->Write(); h2D_Eff_pt_y_NPMC_Pbp->Write(); h2D_Eff_pt_y_NPMC_pPb->Write(); //raw yield h2D_fit_pt_y_PR_Pbp->Write(); h2D_fit_pt_y_PR_pPb->Write(); h2D_fit_pt_y_NP_Pbp->Write(); h2D_fit_pt_y_NP_pPb->Write(); //corrYield h2D_corrY_PR_Pbp->Write(); h2D_corrY_PR_pPb->Write(); h2D_corrY_NP_Pbp->Write(); h2D_corrY_NP_pPb->Write(); // DIRECTORY : num, den distributions for acc & eff TDirectoryFile *otherMCInfo = new TDirectoryFile("otherMCInfo","otherMCInfo"); otherMCInfo->cd(); // acc den & num h2D_Acc_Den_pt_y_PRMC_Pbp->Write(); h2D_Acc_Den_pt_y_PRMC_pPb->Write(); h2D_Acc_Den_pt_y_NPMC_Pbp->Write(); h2D_Acc_Den_pt_y_NPMC_pPb->Write(); h2D_Acc_Num_pt_y_PRMC_Pbp->Write(); h2D_Acc_Num_pt_y_PRMC_pPb->Write(); h2D_Acc_Num_pt_y_NPMC_Pbp->Write(); h2D_Acc_Num_pt_y_NPMC_pPb->Write(); // eff den & num h2D_Eff_Den_pt_y_PRMC_Pbp->Write(); h2D_Eff_Den_pt_y_PRMC_pPb->Write(); h2D_Eff_Den_pt_y_NPMC_Pbp->Write(); h2D_Eff_Den_pt_y_NPMC_pPb->Write(); h2D_Eff_Num_pt_y_PRMC_Pbp->Write(); h2D_Eff_Num_pt_y_PRMC_pPb->Write(); h2D_Eff_Num_pt_y_NPMC_Pbp->Write(); h2D_Eff_Num_pt_y_NPMC_pPb->Write(); // MC corrYield h2D_MCcorrY_PR_Pbp->Write(); h2D_MCcorrY_PR_pPb->Write(); h2D_MCcorrY_NP_Pbp->Write(); h2D_MCcorrY_NP_pPb->Write(); otherMCInfo->Write(); // DIRECTORY : other information for fittng outFile->cd(); TDirectoryFile *otherFitInfo = new TDirectoryFile("otherFitInfo","otherFitInfo"); otherFitInfo->cd(); h2D_fit_pt_y_nSig_Pbp->Write(); h2D_fit_pt_y_nSig_pPb->Write(); h2D_fit_pt_y_nBkg_Pbp->Write(); h2D_fit_pt_y_nBkg_pPb->Write(); h2D_fit_pt_y_bFrac_Pbp->Write(); h2D_fit_pt_y_bFrac_pPb->Write(); h2D_fit_pt_y_ctErrmin_Pbp->Write(); h2D_fit_pt_y_ctErrmin_pPb->Write(); h2D_fit_pt_y_ctErrmax_Pbp->Write(); h2D_fit_pt_y_ctErrmax_pPb->Write(); otherFitInfo->Write(); outFile->Close(); return 0; } // end of main func
void Slimmer(TString InputCfAName, TString output_filename) { TChain * chainA = new TChain("/configurableAnalysis/eventA"); TChain * chainB = new TChain("/configurableAnalysis/eventB"); chainA->Add(InputCfAName); chainB->Add(InputCfAName); InitializeA(chainA); InitializeB(chainB); chainA->SetBranchStatus("*",0); chainB->SetBranchStatus("*",0); chainA->SetBranchStatus("els_conversion_dist",1); chainA->SetBranchStatus("els_conversion_dcot",1); chainA->SetBranchStatus("PU_TrueNumInteractions",1); chainA->SetBranchStatus("rho_kt6PFJetsForIsolation2011",1); chainA->SetBranchStatus("els_PFphotonIsoR03",1); chainA->SetBranchStatus("els_PFneutralHadronIsoR03",1); chainA->SetBranchStatus("els_PFchargedHadronIsoR03",1); chainA->SetBranchStatus("els_hasMatchedConversion",1); chainB->SetBranchStatus("mus_charge",1); chainB->SetBranchStatus("mus_pt",1); chainB->SetBranchStatus("mus_eta",1); chainB->SetBranchStatus("mus_et",1); chainB->SetBranchStatus("mus_phi",1); chainB->SetBranchStatus("mus_px",1); chainB->SetBranchStatus("mus_py",1); chainB->SetBranchStatus("mus_pz",1); chainB->SetBranchStatus("mus_tk_chi2",1); chainB->SetBranchStatus("mus_tk_ndof",1); chainB->SetBranchStatus("mus_tk_numvalhits",1); chainB->SetBranchStatus("mus_tk_numvalPixelhits",1); chainB->SetBranchStatus("mus_tk_px",1); chainB->SetBranchStatus("mus_tk_py",1); chainB->SetBranchStatus("mus_tk_pz",1); chainB->SetBranchStatus("mus_tk_pt",1); chainB->SetBranchStatus("mus_tk_ptErr",1); chainB->SetBranchStatus("mus_tk_numpixelWthMeasr",1); chainB->SetBranchStatus("mus_tk_vx",1); chainB->SetBranchStatus("mus_tk_vy",1); chainB->SetBranchStatus("mus_tk_vz",1); chainB->SetBranchStatus("mus_tk_d0dum",1); chainB->SetBranchStatus("mus_tk_phi",1); chainB->SetBranchStatus("mus_cm_pt",1); chainB->SetBranchStatus("mus_cm_ptErr",1); chainB->SetBranchStatus("mus_cm_chi2",1); chainB->SetBranchStatus("mus_cm_ndof",1); chainB->SetBranchStatus("mus_stamu_pt",1); chainB->SetBranchStatus("mus_stamu_ptErr",1); chainB->SetBranchStatus("mus_tIso",1); chainB->SetBranchStatus("mus_cIso",1); chainB->SetBranchStatus("mus_energy",1); chainB->SetBranchStatus("mus_ecalIso",1); chainB->SetBranchStatus("mus_hcalIso",1); chainB->SetBranchStatus("mus_ecalvetoDep",1); chainB->SetBranchStatus("mus_hcalvetoDep",1); chainB->SetBranchStatus("mus_id_GlobalMuonPromptTight",1); chainB->SetBranchStatus("mus_id_AllTrackerMuons",1); chainB->SetBranchStatus("mus_id_AllGlobalMuons",1); chainB->SetBranchStatus("mus_isTrackerMuon",1); chainB->SetBranchStatus("mus_isGlobalMuon",1); chainB->SetBranchStatus("mus_num_matches",1); chainB->SetBranchStatus("mus_isPFMuon",1); chainB->SetBranchStatus("mus_numberOfMatchedStations",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumChargedHadronPt",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumChargedParticlePt",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumNeutralHadronEt",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumNeutralHadronEtHighThreshold",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumPhotonEt",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumPhotonEtHighThreshold",1); chainB->SetBranchStatus("mus_pfIsolationR03_sumPUPt",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumChargedHadronPt",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumChargedParticlePt",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumNeutralHadronEt",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumNeutralHadronEtHighThreshold",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumPhotonEt",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumPhotonEtHighThreshold",1); chainB->SetBranchStatus("mus_pfIsolationR04_sumPUPt",1); chainB->SetBranchStatus("mus_dB",1); chainB->SetBranchStatus("pfcand_pdgId",1); chainB->SetBranchStatus("pfcand_particleId",1); chainB->SetBranchStatus("pfcand_pt",1); chainB->SetBranchStatus("pfcand_pz",1); chainB->SetBranchStatus("pfcand_px",1); chainB->SetBranchStatus("pfcand_py",1); chainB->SetBranchStatus("pfcand_eta",1); chainB->SetBranchStatus("pfcand_phi",1); chainB->SetBranchStatus("pfcand_theta",1); chainB->SetBranchStatus("pfcand_energy",1); chainB->SetBranchStatus("pfcand_charge",1); chainB->SetBranchStatus("pf_mus_pt",1); chainB->SetBranchStatus("pf_mus_eta",1); chainB->SetBranchStatus("pf_mus_et",1); chainB->SetBranchStatus("pf_mus_tk_chi2",1); chainB->SetBranchStatus("pf_mus_tk_ndof",1); chainB->SetBranchStatus("pf_mus_tk_numvalhits",1); chainB->SetBranchStatus("pf_mus_tk_numvalPixelhits",1); chainB->SetBranchStatus("pf_mus_tk_pt",1); chainB->SetBranchStatus("pf_mus_tk_ptErr",1); chainB->SetBranchStatus("pf_mus_cm_pt",1); chainB->SetBranchStatus("pf_mus_cm_ptErr",1); chainB->SetBranchStatus("pf_mus_cm_chi2",1); chainB->SetBranchStatus("pf_mus_cm_ndof",1); chainB->SetBranchStatus("pf_mus_stamu_pt",1); chainB->SetBranchStatus("pf_mus_stamu_ptErr",1); chainB->SetBranchStatus("pf_mus_tIso",1); chainB->SetBranchStatus("pf_mus_cIso",1); chainB->SetBranchStatus("pf_mus_energy",1); chainB->SetBranchStatus("pf_mus_ecalIso",1); chainB->SetBranchStatus("pf_mus_hcalIso",1); chainB->SetBranchStatus("pf_mus_tk_d0dum",1); chainB->SetBranchStatus("pf_mus_tk_phi",1); chainB->SetBranchStatus("pf_mus_phi",1); chainB->SetBranchStatus("pf_mus_px",1); chainB->SetBranchStatus("pf_mus_py",1); chainB->SetBranchStatus("pf_mus_pz",1); chainB->SetBranchStatus("pf_mus_id_GlobalMuonPromptTight",1); chainB->SetBranchStatus("pf_mus_charge",1); chainB->SetBranchStatus("pf_mus_num_matches",1); chainB->SetBranchStatus("pf_mus_tk_numpixelWthMeasr",1); chainB->SetBranchStatus("pf_mus_tk_vz",1); chainB->SetBranchStatus("mus_tk_LayersWithMeasurement",1); chainB->SetBranchStatus("pf_mus_isTrackerMuon",1); chainB->SetBranchStatus("pf_mus_isGlobalMuon",1); chainB->SetBranchStatus("pf_mus_chargedHadronIso",1); chainB->SetBranchStatus("pf_mus_neutralHadronIso",1); chainB->SetBranchStatus("pf_mus_photonIso",1); chainB->SetBranchStatus("els_pt",1); chainB->SetBranchStatus("els_ptError",1); chainB->SetBranchStatus("els_n_inner_layer"); chainB->SetBranchStatus("els_px",1); chainB->SetBranchStatus("els_py",1); chainB->SetBranchStatus("els_pz",1); chainB->SetBranchStatus("els_et",1); chainB->SetBranchStatus("els_eta",1); chainB->SetBranchStatus("els_phi",1); chainB->SetBranchStatus("els_charge",1); chainB->SetBranchStatus("els_isEB",1); chainB->SetBranchStatus("els_isEE",1); chainB->SetBranchStatus("els_simpleEleId70relIso",1); chainB->SetBranchStatus("els_simpleEleId70cIso",1); chainB->SetBranchStatus("els_simpleEleId80cIso",1); chainB->SetBranchStatus("els_simpleEleId80relIso",1); chainB->SetBranchStatus("els_simpleEleId85cIso",1); chainB->SetBranchStatus("els_simpleEleId85relIso",1); chainB->SetBranchStatus("els_simpleEleId90cIso",1); chainB->SetBranchStatus("els_simpleEleId90relIso",1); chainB->SetBranchStatus("els_simpleEleId95cIso",1); chainB->SetBranchStatus("els_simpleEleId95relIso",1); chainB->SetBranchStatus("els_tIso",1); chainB->SetBranchStatus("els_cIso",1); chainB->SetBranchStatus("els_hcalIso",1); chainB->SetBranchStatus("els_ecalIso",1); chainB->SetBranchStatus("els_d0dum",1); chainB->SetBranchStatus("els_tk_phi",1); chainB->SetBranchStatus("els_tk_pt",1); chainB->SetBranchStatus("els_tk_pz",1); chainB->SetBranchStatus("els_robustTightId",1); chainB->SetBranchStatus("els_dr03EcalRecHitSumEt",1); chainB->SetBranchStatus("els_dr03TkSumPt",1); chainB->SetBranchStatus("els_dr03HcalTowerSumEt",1); chainB->SetBranchStatus("els_sigmaIEtaIEta",1); chainB->SetBranchStatus("els_dPhiIn",1); chainB->SetBranchStatus("els_dEtaIn",1); chainB->SetBranchStatus("els_dPhiOut",1); chainB->SetBranchStatus("els_dEtaOut",1); chainB->SetBranchStatus("els_scEta",1); chainB->SetBranchStatus("els_hadOverEm",1); chainB->SetBranchStatus("els_isEB",1); chainB->SetBranchStatus("els_isEE",1); chainB->SetBranchStatus("els_energy",1); chainB->SetBranchStatus("els_scEnergy",1); chainB->SetBranchStatus("els_scE2x5Max",1); chainB->SetBranchStatus("els_scE5x5",1); chainB->SetBranchStatus("els_scE1x5",1); chainB->SetBranchStatus("els_dr03HcalDepth1TowerSumEt",1); chainB->SetBranchStatus("els_dr03HcalDepth2TowerSumEt",1); chainB->SetBranchStatus("els_eOverPIn",1); chainB->SetBranchStatus("els_numlosthits",1); chainB->SetBranchStatus("els_vx",1); chainB->SetBranchStatus("els_vy",1); chainB->SetBranchStatus("els_vz",1); chainB->SetBranchStatus("els_caloEnergy",1); chainB->SetBranchStatus("pf_els_pt",1); chainB->SetBranchStatus("pf_els_ptError",1); chainB->SetBranchStatus("pf_els_n_inner_layer"); chainB->SetBranchStatus("pf_els_px",1); chainB->SetBranchStatus("pf_els_py",1); chainB->SetBranchStatus("pf_els_pz",1); chainB->SetBranchStatus("pf_els_et",1); chainB->SetBranchStatus("pf_els_eta",1); chainB->SetBranchStatus("pf_els_phi",1); chainB->SetBranchStatus("pf_els_charge",1); chainB->SetBranchStatus("pf_els_isEB",1); chainB->SetBranchStatus("pf_els_isEE",1); chainB->SetBranchStatus("pf_els_simpleEleId70relIso",1); chainB->SetBranchStatus("pf_els_simpleEleId70cIso",1); chainB->SetBranchStatus("pf_els_simpleEleId80cIso",1); chainB->SetBranchStatus("pf_els_simpleEleId80relIso",1); chainB->SetBranchStatus("pf_els_simpleEleId85cIso",1); chainB->SetBranchStatus("pf_els_simpleEleId85relIso",1); chainB->SetBranchStatus("pf_els_simpleEleId90cIso",1); chainB->SetBranchStatus("pf_els_simpleEleId90relIso",1); chainB->SetBranchStatus("pf_els_simpleEleId95cIso",1); chainB->SetBranchStatus("pf_els_simpleEleId95relIso",1); chainB->SetBranchStatus("pf_els_tIso",1); chainB->SetBranchStatus("pf_els_cIso",1); chainB->SetBranchStatus("pf_els_hcalIso",1); chainB->SetBranchStatus("pf_els_ecalIso",1); chainB->SetBranchStatus("pf_els_d0dum",1); chainB->SetBranchStatus("pf_els_tk_phi",1); chainB->SetBranchStatus("pf_els_robustTightId",1); chainB->SetBranchStatus("pf_els_dr03EcalRecHitSumEt",1); chainB->SetBranchStatus("pf_els_dr03TkSumPt",1); chainB->SetBranchStatus("pf_els_dr03HcalTowerSumEt",1); chainB->SetBranchStatus("pf_els_sigmaIEtaIEta",1); chainB->SetBranchStatus("pf_els_dPhiIn",1); chainB->SetBranchStatus("pf_els_dEtaIn",1); chainB->SetBranchStatus("pf_els_dPhiOut",1); chainB->SetBranchStatus("pf_els_dEtaOut",1); chainB->SetBranchStatus("pf_els_scEta",1); chainB->SetBranchStatus("pf_els_hadOverEm",1); chainB->SetBranchStatus("pf_els_isEB",1); chainB->SetBranchStatus("pf_els_isEE",1); chainB->SetBranchStatus("pf_els_energy",1); chainB->SetBranchStatus("pf_els_scEnergy",1); chainB->SetBranchStatus("pf_els_scE2x5Max",1); chainB->SetBranchStatus("pf_els_scE5x5",1); chainB->SetBranchStatus("pf_els_scE1x5",1); chainB->SetBranchStatus("pf_els_dr03HcalDepth1TowerSumEt",1); chainB->SetBranchStatus("pf_els_dr03HcalDepth2TowerSumEt",1); chainB->SetBranchStatus("pf_els_eOverPIn",1); chainB->SetBranchStatus("pf_els_numlosthits",1); chainB->SetBranchStatus("pf_els_vx",1); chainB->SetBranchStatus("pf_els_vy",1); chainB->SetBranchStatus("pf_els_vz",1); chainB->SetBranchStatus("pf_els_chargedHadronIso",1); chainB->SetBranchStatus("pf_els_neutralHadronIso",1); chainB->SetBranchStatus("pf_els_photonIso",1); chainB->SetBranchStatus("jets_AK5PFclean_rawPt",1); chainB->SetBranchStatus("jets_AK5PFclean_et",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_TC_highPur",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_TC_highEff",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_secVertexHighPur",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_secVertexHighEff",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_secVertexCombined",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_jetProb",1); chainB->SetBranchStatus("jets_AK5PFclean_btag_jetBProb",1); chainB->SetBranchStatus("jets_AK5PFclean_jetCharge",1); chainB->SetBranchStatus("jets_AK5PFclean_partonFlavour",1); chainB->SetBranchStatus("jets_AK5PFclean_parton_Id",1); chainB->SetBranchStatus("jets_AK5PFclean_parton_motherId",1); chainB->SetBranchStatus("jets_AK5PFclean_energy",1); chainB->SetBranchStatus("jets_AK5PFclean_pt",1); chainB->SetBranchStatus("jets_AK5PFclean_px",1); chainB->SetBranchStatus("jets_AK5PFclean_py",1); chainB->SetBranchStatus("jets_AK5PFclean_gen_pt",1); chainB->SetBranchStatus("jets_AK5PFclean_gen_phi",1); chainB->SetBranchStatus("jets_AK5PFclean_pz",1); chainB->SetBranchStatus("jets_AK5PFclean_eta",1); chainB->SetBranchStatus("jets_AK5PFclean_ehf",1); chainB->SetBranchStatus("jets_AK5PFclean_phi",1); chainB->SetBranchStatus("jets_AK5PFclean_neutralEmE",1); chainB->SetBranchStatus("jets_AK5PFclean_chgEmE",1); chainB->SetBranchStatus("jets_AK5PFclean_neutralHadE",1); chainB->SetBranchStatus("jets_AK5PFclean_chgHadE",1); chainB->SetBranchStatus("jets_AK5PFclean_mu_Mult",1); chainB->SetBranchStatus("jets_AK5PFclean_neutral_Mult",1); chainB->SetBranchStatus("jets_AK5PFclean_chg_Mult",1); chainB->SetBranchStatus("jets_AK5PFclean_corrFactorRaw",1); chainB->SetBranchStatus("jets_AK5PFclean_photonEnergy",1); chainB->SetBranchStatus("jets_AK5PF_et",1); chainB->SetBranchStatus("jets_AK5PF_btag_TC_highPur",1); chainB->SetBranchStatus("jets_AK5PF_btag_TC_highEff",1); chainB->SetBranchStatus("jets_AK5PF_btag_secVertexHighPur",1); chainB->SetBranchStatus("jets_AK5PF_btag_secVertexHighEff",1); chainB->SetBranchStatus("jets_AK5PF_btag_secVertexCombined",1); chainB->SetBranchStatus("jets_AK5PF_btag_jetProb",1); chainB->SetBranchStatus("jets_AK5PF_btag_jetBProb",1); chainB->SetBranchStatus("jets_AK5PF_jetCharge",1); chainB->SetBranchStatus("jets_AK5PF_partonFlavour",1); chainB->SetBranchStatus("jets_AK5PF_parton_Id",1); chainB->SetBranchStatus("jets_AK5PF_parton_motherId",1); chainB->SetBranchStatus("jets_AK5PF_energy",1); chainB->SetBranchStatus("jets_AK5PF_pt",1); chainB->SetBranchStatus("jets_AK5PF_px",1); chainB->SetBranchStatus("jets_AK5PF_py",1); chainB->SetBranchStatus("jets_AK5PF_gen_pt",1); chainB->SetBranchStatus("jets_AK5PF_gen_phi",1); chainB->SetBranchStatus("jets_AK5PF_pz",1); chainB->SetBranchStatus("jets_AK5PF_eta",1); chainB->SetBranchStatus("jets_AK5PF_ehf",1); chainB->SetBranchStatus("jets_AK5PF_phi",1); chainB->SetBranchStatus("jets_AK5PF_neutralEmE",1); chainB->SetBranchStatus("jets_AK5PF_chgEmE",1); chainB->SetBranchStatus("jets_AK5PF_neutralHadE",1); chainB->SetBranchStatus("jets_AK5PF_chgHadE",1); chainB->SetBranchStatus("jets_AK5PF_mu_Mult",1); chainB->SetBranchStatus("jets_AK5PF_neutral_Mult",1); chainB->SetBranchStatus("jets_AK5PF_chg_Mult",1); chainB->SetBranchStatus("jets_AK5PF_corrFactorRaw",1); chainB->SetBranchStatus("jets_AK5PF_photonEnergy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_px",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_py",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_pz",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_energy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_phi",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_eta",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_index",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT10_nconstituents",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_px",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_py",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_pz",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_energy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_phi",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_eta",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_index",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT15_nconstituents",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_px",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_py",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_pz",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_energy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_phi",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_eta",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_index",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT20_nconstituents",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_px",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_py",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_pz",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_energy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_phi",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_eta",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_index",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT25_nconstituents",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_px",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_py",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_pz",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_energy",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_phi",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_eta",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_index",1); chainB->SetBranchStatus("fastjets_AK5PFclean_R1p2_R0p5pT30_nconstituents",1); chainB->SetBranchStatus("pfmets_et",1); chainB->SetBranchStatus("pfmets_ex",1); chainB->SetBranchStatus("pfmets_ey",1); chainB->SetBranchStatus("pfmets_phi",1); chainB->SetBranchStatus("pfmets_sumEt",1); chainB->SetBranchStatus("pfmets_gen_et",1); chainB->SetBranchStatus("pfmets_gen_phi",1); chainB->SetBranchStatus("pfTypeImets_et",1); chainB->SetBranchStatus("pfTypeImets_ex",1); chainB->SetBranchStatus("pfTypeImets_ey",1); chainB->SetBranchStatus("pfTypeImets_phi",1); chainB->SetBranchStatus("pfTypeImets_sumEt",1); chainB->SetBranchStatus("pfTypeImets_gen_et",1); chainB->SetBranchStatus("pfTypeImets_gen_phi",1); chainB->SetBranchStatus("pv_x",1); chainB->SetBranchStatus("pv_y",1); chainB->SetBranchStatus("pv_z",1); chainB->SetBranchStatus("pv_tracksSize",1); chainB->SetBranchStatus("pv_ndof",1); chainB->SetBranchStatus("pv_isFake",1); chainB->SetBranchStatus("Npv",1); chainB->SetBranchStatus("run",1); chainB->SetBranchStatus("event",1); chainB->SetBranchStatus("lumiblock",1); chainB->SetBranchStatus("bunchCrossing",1); chainB->SetBranchStatus("beamSpot_y",1); chainB->SetBranchStatus("beamSpot_x",1); chainB->SetBranchStatus("weight",1); chainB->SetBranchStatus("model_params",1); // Make the new file TFile *newFile = new TFile(output_filename.Data(),"RECREATE"); TDirectoryFile *dir = new TDirectoryFile("configurableAnalysis","configurableAnalysis"); dir->cd(); TTree *newtreeA = chainA->CloneTree(0); TTree *newtreeB = chainB->CloneTree(0); Int_t nentries = (Int_t)chainB->GetEntries(); for (int iEnt = 0; iEnt<nentries; iEnt++) { chainA->GetEntry(iEnt); chainB->GetEntry(iEnt); newtreeA->Fill(); newtreeB->Fill(); } newtreeA->AutoSave(); newtreeB->AutoSave(); newFile->Write(); newFile->Close(); }
void plotROC(TString input1, TString label1, TString input2 , TString label2, TString input3, TString label3, TString input4, TString label4, TString input5, TString label5 ){ gROOT->SetStyle("Plain"); gStyle->SetPadGridX(0); gStyle->SetPadGridY(0); gStyle->SetOptStat(0); TCanvas *cROC = new TCanvas("cROC","cROC", 700, 700); cROC->SetTickx(1); cROC->SetTicky(1); TLegend *leg = new TLegend(0.15625,0.321654,0.4765625,0.603839,NULL,"brNDC"); leg->SetBorderSize(0); leg->SetTextSize(0.035); leg->SetLineColor(1); leg->SetLineStyle(1); leg->SetLineWidth(1); leg->SetFillColor(0); leg->SetFillStyle(0); //TFile * _file0 = new TFile("TMVA_sL_optimized.root"); //TFile * _file1 = new TFile ("TMVA_QCD_BBvsGSP_fat.root"); TFile * file1 = new TFile(input1); file1->cd(); TDirectoryFile * d = (TDirectoryFile *)file1->Get("Method_BDT/BDTG"); d->cd(); //cROC->cd(); MVA_BDTG_rejBvsS->SetTitle(""); MVA_BDTG_rejBvsS->SetLineColor(kBlue+1); MVA_BDTG_rejBvsS->SetLineWidth(3); MVA_BDTG_rejBvsS->Draw(); leg->AddEntry(MVA_BDTG_rejBvsS, label1); if(input2!=""){ TFile * file2 = new TFile(input2); file2->cd(); TDirectoryFile * d2 = file2->Get("Method_BDT/BDTG"); d2->cd(); MVA_BDTG_rejBvsS->SetLineColor(kGreen+2); MVA_BDTG_rejBvsS->SetLineWidth(3); MVA_BDTG_rejBvsS->Draw("same"); leg->AddEntry(MVA_BDTG_rejBvsS, label2); } if(input3!=""){ TFile * file3 = new TFile(input3); file3->cd(); TDirectoryFile * d3 = file3->Get("Method_BDT/BDTG"); d3->cd(); MVA_BDTG_rejBvsS->SetLineColor(kRed+2); MVA_BDTG_rejBvsS->SetLineWidth(3); MVA_BDTG_rejBvsS->Draw("same"); leg->AddEntry(MVA_BDTG_rejBvsS, label3); } if(input4!=""){ TFile * file4 = new TFile(input4); file4->cd(); TDirectoryFile * d4 = file4->Get("Method_BDT/BDTG"); d4->cd(); MVA_BDTG_rejBvsS->SetLineColor(kOrange+2); MVA_BDTG_rejBvsS->SetLineWidth(3); MVA_BDTG_rejBvsS->Draw("same"); leg->AddEntry(MVA_BDTG_rejBvsS, label4); } if(input5!=""){ TFile * file5 = new TFile(input5); file5->cd(); MVA_BDTG_rejBvsS->SetLineColor(kPink+2); MVA_BDTG_rejBvsS->SetLineWidth(3); TDirectoryFile * d5 = file5->Get("Method_BDT/BDTG"); d5->cd(); MVA_BDTG_rejBvsS->Draw("same"); leg->AddEntry(MVA_BDTG_rejBvsS, label5); } leg->Draw(); cROC->Print("roc_.png"); }