void plotMk_1D_cosBY() { #include #include gROOT->Reset(); // Root macro to produce D mass momentum plots //##################################################################### // Input files TString filename_BpBm("histo_1D_cosBY_BpBm.root"); TString filename_B0B0("histo_1D_cosBY_B0B0.root"); TString filename_cc("histo_1D_cosBY_cc.root"); TString filename_uds("histo_1D_cosBY_uds.root"); TString filename_tau("histo_1D_cosBY_tau.root"); TString filename_OnPeak("histo_1D_cosBY_OnPeak.root"); // Info of output files TString outFileName("plot_cosBY_allCut.eps"); TString DMode_D0("cosTheta_B-Dl (D0Kpi)"); TString DMode_Dch("cosTheta_B-Dl (DchKpipi)"); //####################################################################### // Luminosities const double lumi_Run3_OnPeak = 30.630; const double lumi_Run3_OffPeak = 2.394; const double lumi_Run3_BpBm = 164.75; const double lumi_Run3_B0B0 = 116.49; const double lumi_Run3_cc = 44.385; const double lumi_Run3_uds = 59.349; const double lumi_Run3_tau = 74.311; const double conv_OffPeak = lumi_Run3_OnPeak / lumi_Run3_OffPeak; const double conv_BpBm = lumi_Run3_OnPeak / lumi_Run3_BpBm; const double conv_B0B0 = lumi_Run3_OnPeak / lumi_Run3_B0B0; const double conv_cc = lumi_Run3_OnPeak / lumi_Run3_cc; const double conv_uds = lumi_Run3_OnPeak / lumi_Run3_uds; const double conv_tau = lumi_Run3_OnPeak / lumi_Run3_tau; //############################### cout << "start\n"; // Open input files TFile * f_BpBm = new TFile(filename_BpBm); f_BpBm->ls(); TH1F * Dlnu_D0_BpBm = (TH1F *)f_BpBm->Get("Dlnu_D0;1"); TH1F * Dstar_D0_BpBm = (TH1F *)f_BpBm->Get("Dstar_D0;1"); TH1F * D0star_D0_BpBm = (TH1F *)f_BpBm->Get("D0star_D0;1"); TH1F * D1_D0_BpBm = (TH1F *)f_BpBm->Get("D1_D0;1"); TH1F * D1p_D0_BpBm = (TH1F *)f_BpBm->Get("D1p_D0;1"); TH1F * D2star_D0_BpBm = (TH1F *)f_BpBm->Get("D2star_D0;1"); TH1F * DPi_D0_BpBm = (TH1F *)f_BpBm->Get("DPi_D0;1"); TH1F * DstarPi_D0_BpBm = (TH1F *)f_BpBm->Get("DstarPi_D0;1"); TH1F * DiffB_D0_BpBm = (TH1F *)f_BpBm->Get("DiffB_D0;1"); TH1F * CascL_D0_BpBm = (TH1F *)f_BpBm->Get("CascL_D0;1"); TH1F * LMisID_D0_BpBm = (TH1F *)f_BpBm->Get("LMisID_D0;1"); TH1F * Comb_D0_BpBm = (TH1F *)f_BpBm->Get("Comb_D0;1"); TH1F * D0star_Dch_BpBm = (TH1F *)f_BpBm->Get("D0star_Dch;1"); TH1F * D1_Dch_BpBm = (TH1F *)f_BpBm->Get("D1_Dch;1"); TH1F * D1p_Dch_BpBm = (TH1F *)f_BpBm->Get("D1p_Dch;1"); TH1F * D2star_Dch_BpBm = (TH1F *)f_BpBm->Get("D2star_Dch;1"); TH1F * DPi_Dch_BpBm = (TH1F *)f_BpBm->Get("DPi_Dch;1"); TH1F * DstarPi_Dch_BpBm = (TH1F *)f_BpBm->Get("DstarPi_Dch;1"); TH1F * DiffB_Dch_BpBm = (TH1F *)f_BpBm->Get("DiffB_Dch;1"); TH1F * CascL_Dch_BpBm = (TH1F *)f_BpBm->Get("CascL_Dch;1"); TH1F * LMisID_Dch_BpBm = (TH1F *)f_BpBm->Get("LMisID_Dch;1"); TH1F * Comb_Dch_BpBm = (TH1F *)f_BpBm->Get("Comb_Dch;1"); TFile * f_B0B0 = new TFile(filename_B0B0); f_B0B0->ls(); TH1F * Dstar_D0_B0B0 = (TH1F *)f_B0B0->Get("Dstar_D0;1"); TH1F * D0star_D0_B0B0 = (TH1F *)f_B0B0->Get("D0star_D0;1"); TH1F * D1_D0_B0B0 = (TH1F *)f_B0B0->Get("D1_D0;1"); TH1F * D1p_D0_B0B0 = (TH1F *)f_B0B0->Get("D1p_D0;1"); TH1F * D2star_D0_B0B0 = (TH1F *)f_B0B0->Get("D2star_D0;1"); TH1F * DPi_D0_B0B0 = (TH1F *)f_B0B0->Get("DPi_D0;1"); TH1F * DstarPi_D0_B0B0 = (TH1F *)f_B0B0->Get("DstarPi_D0;1"); TH1F * DiffB_D0_B0B0 = (TH1F *)f_B0B0->Get("DiffB_D0;1"); TH1F * CascL_D0_B0B0 = (TH1F *)f_B0B0->Get("CascL_D0;1"); TH1F * LMisID_D0_B0B0 = (TH1F *)f_B0B0->Get("LMisID_D0;1"); TH1F * Comb_D0_B0B0 = (TH1F *)f_B0B0->Get("Comb_D0;1"); TH1F * Dlnu_Dch_B0B0 = (TH1F *)f_B0B0->Get("Dlnu_Dch;1"); TH1F * Dstar_Dch_B0B0 = (TH1F *)f_B0B0->Get("Dstar_Dch;1"); TH1F * D0star_Dch_B0B0 = (TH1F *)f_B0B0->Get("D0star_Dch;1"); TH1F * D1_Dch_B0B0 = (TH1F *)f_B0B0->Get("D1_Dch;1"); TH1F * D1p_Dch_B0B0 = (TH1F *)f_B0B0->Get("D1p_Dch;1"); TH1F * D2star_Dch_B0B0 = (TH1F *)f_B0B0->Get("D2star_Dch;1"); TH1F * DPi_Dch_B0B0 = (TH1F *)f_B0B0->Get("DPi_Dch;1"); TH1F * DstarPi_Dch_B0B0 = (TH1F *)f_B0B0->Get("DstarPi_Dch;1"); TH1F * DiffB_Dch_B0B0 = (TH1F *)f_B0B0->Get("DiffB_Dch;1"); TH1F * CascL_Dch_B0B0 = (TH1F *)f_B0B0->Get("CascL_Dch;1"); TH1F * LMisID_Dch_B0B0 = (TH1F *)f_B0B0->Get("LMisID_Dch;1"); TH1F * Comb_Dch_B0B0 = (TH1F *)f_B0B0->Get("Comb_Dch;1"); TFile * f_cc = new TFile(filename_cc); f_cc->ls(); TH1F * RealD_D0_cc = (TH1F *)f_cc->Get("RealD_D0;1"); TH1F * Cont_D0_cc = (TH1F *)f_cc->Get("Cont_D0;1"); TH1F * RealD_Dch_cc = (TH1F *)f_cc->Get("RealD_Dch;1"); TH1F * Cont_Dch_cc = (TH1F *)f_cc->Get("Cont_Dch;1"); TFile * f_uds = new TFile(filename_uds); f_uds->ls(); TH1F * Cont_D0_uds = (TH1F *)f_uds->Get("Cont_D0;1"); TH1F * Cont_Dch_uds = (TH1F *)f_uds->Get("Cont_Dch;1"); TFile * f_tau = new TFile(filename_tau); f_tau->ls(); TH1F * Cont_D0_tau = (TH1F *)f_tau->Get("Cont_D0;1"); TH1F * Cont_Dch_tau = (TH1F *)f_tau->Get("Cont_Dch;1"); TFile * f_OnPeak = new TFile(filename_OnPeak); f_OnPeak->ls(); TH1F * OnPeak_D0 = (TH1F *)f_OnPeak->Get("OnPeak_D0;1"); TH1F * OnPeak_Dch = (TH1F *)f_OnPeak->Get("OnPeak_Dch;1"); // Define combined histograms int nbin = 40; double xmin = -10; double xmax = 5; TH1D *Ddstar_D0 = new TH1D("Ddstar_D0","D mass (D0)",nbin, xmin,xmax); TH1D *DPi_D0 = new TH1D("DPi_D0","D mass (D0)",nbin, xmin,xmax); TH1D *DiffB_D0 = new TH1D("DiffB_D0","D mass (D0)",nbin, xmin,xmax); TH1D *CascL_D0 = new TH1D("CascL_D0","D mass (D0)",nbin, xmin,xmax); TH1D *LMisID_D0 = new TH1D("LMisID_D0","D mass (D0)",nbin, xmin,xmax); TH1D *Comb_D0 = new TH1D("Comb_D0","D mass (D0)",nbin, xmin,xmax); TH1D *Cont_D0 = new TH1D("Cont_D0","D mass (D0)",nbin, xmin,xmax); TH1D *Ddstar_Dch = new TH1D("D2star_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *DPi_Dch = new TH1D("DPi_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *DiffB_Dch = new TH1D("DiffB_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *CascL_Dch = new TH1D("CascL_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *LMisID_Dch = new TH1D("LMisID_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *Comb_Dch = new TH1D("Comb_Dch","D mass (Dch)",nbin, xmin,xmax); TH1D *Cont_Dch = new TH1D("Cont_Dch","D mass (Dch)",nbin, xmin,xmax); for (Int_t i=0;iGetBinContent(i+1) + D1_D0_BpBm->GetBinContent(i+1) + D1p_D0_BpBm->GetBinContent(i+1) + D2star_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(D0star_D0_B0B0->GetBinContent(i+1) + D1_D0_B0B0->GetBinContent(i+1) + D1p_D0_B0B0->GetBinContent(i+1) + D2star_D0_B0B0->GetBinContent(i+1)); Ddstar_D0->SetBinContent(i+1,num_Ddstar); double num_DPi = conv_BpBm*(DPi_D0_BpBm->GetBinContent(i+1) + DstarPi_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(DPi_D0_B0B0->GetBinContent(i+1) + DstarPi_D0_B0B0->GetBinContent(i+1)); DPi_D0->SetBinContent(i+1,num_DPi); double num_DiffB = conv_BpBm*(DiffB_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(DiffB_D0_B0B0->GetBinContent(i+1)); DiffB_D0->SetBinContent(i+1,num_DiffB); double num_CascL = conv_BpBm*(CascL_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(CascL_D0_B0B0->GetBinContent(i+1)); CascL_D0->SetBinContent(i+1,num_CascL); double num_LMisID = conv_BpBm*(LMisID_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(LMisID_D0_B0B0->GetBinContent(i+1)); LMisID_D0->SetBinContent(i+1,num_LMisID); double num_Comb = conv_BpBm*(Comb_D0_BpBm->GetBinContent(i+1)) + conv_B0B0*(Comb_D0_B0B0->GetBinContent(i+1)); Comb_D0->SetBinContent(i+1,num_Comb); double num_Cont = conv_cc*(Cont_D0_cc->GetBinContent(i+1)) + conv_uds*(Cont_D0_uds->GetBinContent(i+1)) + conv_tau*(Cont_D0_tau->GetBinContent(i+1)); Cont_D0->SetBinContent(i+1,num_Cont); double num_Ddstar = conv_BpBm*(D0star_Dch_BpBm->GetBinContent(i+1) + D1_Dch_BpBm->GetBinContent(i+1) + D1p_Dch_BpBm->GetBinContent(i+1) + D2star_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(D0star_Dch_B0B0->GetBinContent(i+1) + D1_Dch_B0B0->GetBinContent(i+1) + D1p_Dch_B0B0->GetBinContent(i+1) + D2star_Dch_B0B0->GetBinContent(i+1)); Ddstar_Dch->SetBinContent(i+1,num_Ddstar); double num_DPi = conv_BpBm*(DPi_Dch_BpBm->GetBinContent(i+1) + DstarPi_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(DPi_Dch_B0B0->GetBinContent(i+1) + DstarPi_Dch_B0B0->GetBinContent(i+1)); DPi_Dch->SetBinContent(i+1,num_DPi); double num_DiffB = conv_BpBm*(DiffB_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(DiffB_Dch_B0B0->GetBinContent(i+1)); DiffB_Dch->SetBinContent(i+1,num_DiffB); double num_CascL = conv_BpBm*(CascL_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(CascL_Dch_B0B0->GetBinContent(i+1)); CascL_Dch->SetBinContent(i+1,num_CascL); double num_LMisID = conv_BpBm*(LMisID_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(LMisID_Dch_B0B0->GetBinContent(i+1)); LMisID_Dch->SetBinContent(i+1,num_LMisID); double num_Comb = conv_BpBm*(Comb_Dch_BpBm->GetBinContent(i+1)) + conv_B0B0*(Comb_Dch_B0B0->GetBinContent(i+1)); Comb_Dch->SetBinContent(i+1,num_Comb); double num_Cont = conv_cc*(Cont_Dch_cc->GetBinContent(i+1)) + conv_uds*(Cont_Dch_uds->GetBinContent(i+1)) + conv_tau*(Cont_Dch_tau->GetBinContent(i+1)); Cont_Dch->SetBinContent(i+1,num_Cont); } // scaling cout << "scaling\n"; Dlnu_D0_BpBm->Scale(conv_BpBm); Dstar_D0_BpBm->Scale(conv_BpBm); Dstar_D0_B0B0->Scale(conv_B0B0); Dlnu_Dch_B0B0->Scale(conv_B0B0); Dstar_Dch_B0B0->Scale(conv_B0B0); RealD_D0_cc->Scale(conv_cc); RealD_Dch_cc->Scale(conv_cc); // set marker and color cout << "setting marker color\n"; OnPeak_D0->SetMarkerStyle(29); Dlnu_D0_BpBm->SetFillColor(2); Dstar_D0_BpBm->SetFillColor(3); Dstar_D0_B0B0->SetFillColor(3); Ddstar_D0->SetFillColor(4); DPi_D0->SetFillColor(5); DiffB_D0->SetFillColor(28); CascL_D0->SetFillColor(41); LMisID_D0->SetFillColor(50); RealD_D0_cc->SetFillColor(21); Comb_D0->SetFillColor(15); Cont_D0->SetFillColor(12); OnPeak_Dch->SetMarkerStyle(29); Dlnu_Dch_B0B0->SetFillColor(2); Dstar_Dch_B0B0->SetFillColor(3); Ddstar_Dch->SetFillColor(4); DPi_Dch->SetFillColor(5); DiffB_Dch->SetFillColor(28); CascL_Dch->SetFillColor(41); LMisID_Dch->SetFillColor(50); RealD_Dch_cc->SetFillColor(21); Comb_Dch->SetFillColor(15); Cont_Dch->SetFillColor(12); // define stack and add histograms cout << "stacking\n"; THStack hs1_D0("hs1_D0", DMode_D0); hs1_D0.Add(Cont_D0); hs1_D0.Add(Comb_D0); hs1_D0.Add(RealD_D0_cc); hs1_D0.Add(LMisID_D0); hs1_D0.Add(CascL_D0); hs1_D0.Add(DiffB_D0); hs1_D0.Add(DPi_D0); hs1_D0.Add(Ddstar_D0); hs1_D0.Add(Dstar_D0_B0B0); hs1_D0.Add(Dstar_D0_BpBm); hs1_D0.Add(Dlnu_D0_BpBm); THStack hs1_Dch("hs1_Dch", DMode_Dch); hs1_Dch.Add(Cont_Dch); hs1_Dch.Add(Comb_Dch); hs1_Dch.Add(RealD_Dch_cc); hs1_Dch.Add(LMisID_Dch); hs1_Dch.Add(CascL_Dch); hs1_Dch.Add(DiffB_Dch); hs1_Dch.Add(DPi_Dch); hs1_Dch.Add(Ddstar_Dch); hs1_Dch.Add(Dstar_Dch_B0B0); hs1_Dch.Add(Dlnu_Dch_B0B0); //################# cout << "plotting\n"; // Create a canvas and plot TCanvas * c_cosBY = new TCanvas("cosBY","cosBY",0,0,600,700); c_cosBY->Divide(1,2); gStyle->SetOptStat(111111); c_cosBY->cd(1); hs1_D0.Draw("HIST"); OnPeak_D0->Draw("e1pSAME"); /* TLegend *legend1_D0 = new TLegend(0.75,0.50,0.90,0.92); legend1_D0->SetTextSize(.02); legend1_D0->SetFillColor(0); TLegendEntry *ple1_D0; ple1_D0 = legend1_D0->AddEntry(OnPeak_D0, "OnPeak data", "P"); ple1_D0 = legend1_D0->AddEntry(BchD_D0, "Bp->Dlnu", "F"); ple1_D0 = legend1_D0->AddEntry(BchDstar_D0, "Bp->D*lnu", "F"); ple1_D0 = legend1_D0->AddEntry(BchD2star_D0, "Bp->D**lnu", "F"); ple1_D0 = legend1_D0->AddEntry(BchDPi_D0, "Bp->D/D* Pilnu", "F"); ple1_D0 = legend1_D0->AddEntry(B0D_D0, "B0->Dlnu", "F"); ple1_D0 = legend1_D0->AddEntry(B0Dstar_D0, "B0->D*lnu", "F"); ple1_D0 = legend1_D0->AddEntry(B0D2star_D0, "B0->D**lnu", "F"); ple1_D0 = legend1_D0->AddEntry(B0DPi_D0, "B0->D/D* Pilnu", "F"); ple1_D0 = legend1_D0 ->AddEntry(notSameB_D0, "D, l not from same B", "F"); ple1_D0 = legend1_D0 ->AddEntry(nonDirect_D0, "l not direct from B", "F"); ple1_D0 = legend1_D0->AddEntry(missID_D0, "Lepton miss ID", "F"); ple1_D0 = legend1_D0->AddEntry(nonBrealD_D0, "non B with real D", "F"); ple1_D0 = legend1_D0 ->AddEntry(DMissReco_D0, "D miss reconstrcted", "F"); ple1_D0 = legend1_D0->AddEntry(nonB_D0, "non B events", "F"); legend1_D0->Draw(); */ c_cosBY->cd(2); hs1_Dch.Draw("HIST"); OnPeak_Dch->Draw("e1pSAME"); c_cosBY->Print(outFileName); }