Esempio n. 1
0
//______________________________________________________________________________
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
Esempio n. 3
0
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();

}
Esempio n. 4
0
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");
}