void mySelector::Terminate() { // The Terminate() function is the last function to be called during // a query. It always runs on the client, it can be used to present // the results graphically or save the results to file. TString option = GetOption(); TString output = "gr_"; output += option; output += ".root"; TFile *hfile = new TFile(output,"RECREATE","FONLL CCbar cross section"); hfile->cd(); const Int_t npoint = eventnumber; Float_t x[npoint]; Float_t y[npoint]; Float_t ylow[npoint]; Float_t yup[npoint]; for(int i=0;i<npoint;i++) { x[i] = Pt[i]; y[i] = Central[i]; ylow[i] = Down[i]; yup[i] = Up[i]; } //TGraph *grFONLLD0 = new TGraph(npoint,Pt,Central); TDirectoryFile *ratioErr = new TDirectoryFile(option,"ratio error of scale pp500 to pp200 "); ratioErr->SetName(option); ratioErr->Add(hRatio); TGraph *grFONLLRatio = new TGraph(npoint,x,y); grFONLLRatio->SetName("grFONLLRatio"); TGraph *grFONLLRatio_u = new TGraph(npoint,x,yup); grFONLLRatio_u->SetName("grFONLLRatio_u"); TGraph *grFONLLRatio_d = new TGraph(npoint,x,ylow); grFONLLRatio_d->SetName("grFONLLRatio_d"); grFONLLRatio->Print(); ///grFONLLRatio->Write(); ratioErr->Add(grFONLLRatio); grFONLLRatio_u->Print(); //grFONLLRatio_u->Write(); ratioErr->Add(grFONLLRatio_u); grFONLLRatio_d->Print(); //grFONLLRatio_d->Write(); ratioErr->Add(grFONLLRatio_d); ratioErr->Write(); hfile->Print(); hfile->Close(); tNow.Set(); cout<<"----------End of job----------"<<endl; tNow.Print(); }
/////// 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