void drawEFF() { std::string wp = "LOOSE"; std::string j1 = ""; std::string flav = "beauty"; std::string typ = "2011FINALCSV_NEW"; // std::string typ = "2011FINALCSV"; std::string eff = "results/SF_"+j1+wp+"_"+typ+"_"+flav+".root"; std::string off = "results/SF_OFFICIAL2011_"+wp+"_CSV.root"; gROOT->SetBatch(); gROOT->SetStyle("Plain"); gStyle->SetOptStat(0); gROOT->ProcessLine(".x def.C"); gROOT->ProcessLine(".x common.C"); TCanvas *c1 = new TCanvas("c1","c1",0,0,600,500); c1->SetGrid(1); std::string csv = "#bf{CSVL}"; if( wp == "MEDIUM" ) csv = "#bf{CSVM}"; if( wp == "TIGHT" ) csv = "#bf{CSVT}"; TFile *feff = TFile::Open(eff.c_str()); TH1F *hEFFMC, *hEFFDATA; TPolyLine *hEFFMCSYS, *hEFFDATASYS; hEFFMC = (TH1F*)feff->Get("hEFFMC"); hEFFMCSYS = (TPolyLine*)feff->Get("hEFFMCSYS"); hEFFDATA = (TH1F*)feff->Get("hEFFDATA"); hEFFDATASYS = (TPolyLine*)feff->Get("hEFFDATASYS"); TFile *foff = TFile::Open(off.c_str()); TH1F *hEFFMC_OFF, *hEFFDATA_OFF; TPolyLine *hEFFMCSYS_OFF, *hEFFDATASYS_OFF; hEFFMC_OFF = (TH1F*)foff->Get("OFF_EFFMC"); hEFFMCSYS_OFF = (TPolyLine*)foff->Get("OFF_EFFSYSMC"); hEFFDATA_OFF = (TH1F*)foff->Get("OFF_EFFDATA"); hEFFDATASYS_OFF = (TPolyLine*)foff->Get("OFF_EFFSYSDATA"); if( flav == "beauty" ) hEFFMC->GetYaxis()->SetTitle("b-tagging efficiency"); else hEFFMC->GetYaxis()->SetTitle("c-tagging efficiency"); hEFFMC->SetMarkerSize(0.8); hEFFMC->GetXaxis()->SetTitle("P_{T} [TeV]"); if( flav == "beauty" ) hEFFDATA->GetYaxis()->SetTitle("b-tagging efficiency"); else hEFFDATA->GetYaxis()->SetTitle("c-tagging efficiency"); hEFFDATA->SetMarkerSize(0.8); hEFFMC->Draw("e1p"); hEFFMC->GetXaxis()->SetMoreLogLabels(); if( flav == "beauty" ) { if( wp == "LOOSE" ) hEFFMC->GetYaxis()->SetRangeUser(0.5,1.0); if( wp == "MEDIUM" ) hEFFMC->GetYaxis()->SetRangeUser(0.3,0.9); if( wp == "TIGHT" ) hEFFMC->GetYaxis()->SetRangeUser(0.1,0.7); } else { if( wp == "LOOSE" ) hEFFMC->GetYaxis()->SetRangeUser(0.,0.8); if( wp == "MEDIUM" ) hEFFMC->GetYaxis()->SetRangeUser(0.,0.6); if( wp == "TIGHT" ) hEFFMC->GetYaxis()->SetRangeUser(0.,0.15); } hEFFMCSYS->Draw("fSAME"); hEFFMC->Draw("e1p same"); hEFFMC_OFF->SetMarkerSize(0.8); hEFFMC_OFF->SetMarkerStyle(23); hEFFMC_OFF->SetMarkerColor(kRed); hEFFMC_OFF->SetLineColor(kRed); hEFFMC_OFF->Draw("p same"); hEFFMCSYS_OFF->Draw("lSAME"); TLegend *leg; leg = new TLegend(0.35,0.45,0.70,0.20); leg->SetFillColor(253); leg->SetBorderSize(0); TLatex *legl = new TLatex(); legl->SetNDC(); legl->SetTextAlign(22); legl->SetTextFont(63); legl->SetTextSizePixels(30); legl->DrawLatex(0.55,0.85,csv.c_str()); TLatex *legl2 = new TLatex(); legl2->SetNDC(); legl2->SetTextAlign(22); legl2->SetTextFont(63); legl2->SetTextSizePixels(30); legl2->DrawLatex(0.80,0.85,"MC"); leg->AddEntry(hEFFMC,"Efficiency","p"); leg->AddEntry(hEFFMC,"stat","l"); leg->AddEntry(hEFFMCSYS,"stat #oplus syst","f"); leg->AddEntry(hEFFMC_OFF,"Efficiency (LT BTV-12-001)","p"); leg->AddEntry(hEFFMCSYS_OFF,"stat #oplus syst (LT BTV-12-001)","f"); leg->Draw(); c1->SetLogx(1); c1->Print("pics/EFFMC.eps"); c1->Clear(); hEFFDATA->Draw("e1p"); hEFFDATA->GetXaxis()->SetMoreLogLabels(); if( flav == "beauty" ) { if( wp == "LOOSE" ) hEFFDATA->GetYaxis()->SetRangeUser(0.5,1.0); if( wp == "MEDIUM" ) hEFFDATA->GetYaxis()->SetRangeUser(0.3,0.9); if( wp == "TIGHT" ) hEFFDATA->GetYaxis()->SetRangeUser(0.1,0.7); } else { if( wp == "LOOSE" ) hEFFDATA->GetYaxis()->SetRangeUser(0.,0.8); if( wp == "MEDIUM" ) hEFFDATA->GetYaxis()->SetRangeUser(0.,0.6); if( wp == "TIGHT" ) hEFFDATA->GetYaxis()->SetRangeUser(0.,0.15); } hEFFDATASYS->Draw("fSAME"); hEFFDATA->Draw("e1p same"); hEFFDATA_OFF->SetMarkerSize(0.8); hEFFDATA_OFF->SetMarkerStyle(23); hEFFDATA_OFF->SetMarkerColor(kRed); hEFFDATA_OFF->SetLineColor(kRed); hEFFDATA_OFF->Draw("p same"); hEFFDATASYS_OFF->Draw("lSAME"); TLegend *legD; legD = new TLegend(0.35,0.45,0.70,0.20); legD->SetFillColor(253); legD->SetBorderSize(0); TLatex *legd = new TLatex(); legd->SetNDC(); legd->SetTextAlign(22); legd->SetTextFont(63); legd->SetTextSizePixels(30); legd->DrawLatex(0.55,0.85,csv.c_str()); TLatex *legd2 = new TLatex(); legd2->SetNDC(); legd2->SetTextAlign(22); legd2->SetTextFont(63); legd2->SetTextSizePixels(30); legd2->DrawLatex(0.80,0.85,"Data"); legD->AddEntry(hEFFDATA,"Efficiency","p"); legD->AddEntry(hEFFDATA,"stat","l"); legD->AddEntry(hEFFDATASYS,"stat #oplus syst","f"); legD->AddEntry(hEFFDATA_OFF,"Efficiency (LT BTV-12-001)","p"); legD->AddEntry(hEFFDATASYS_OFF,"stat #oplus syst (LT BTV-12-001)","f"); legD->Draw(); c1->SetLogx(1); c1->Print("pics/EFFDATA.eps"); c1->Clear(); gApplication->Terminate(); }
void PlotTrkPt() { gROOT->LoadMacro("$LOCAL/include/TUntilsOpHisto.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsAliFigs.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsPlotStd.h"); SetStyle(); //============================================================================= TFile *file = TFile::Open("data/AnalysisResults_vac_JetR05_skTR01.root", "READ"); TH2D *hTrkPtEtaVac = (TH2D*)file->Get("hTrkPtEta"); hTrkPtEtaVac->SetName("hTrkPtEtaVac"); hTrkPtEtaVac->SetDirectory(0); file->Close(); file = TFile::Open("data/AnalysisResults_med_JetR05_skTR01.root", "READ"); TH2D *hTrkPtEtaMed = (TH2D*)file->Get("hTrkPtEta"); hTrkPtEtaMed->SetName("hTrkPtEtaMed"); hTrkPtEtaMed->SetDirectory(0); file->Close(); //============================================================================= TH1D *hTrkPtVac = hTrkPtEtaVac->ProjectionX("hTrkPtVac"); TH1D *hTrkPtMed = hTrkPtEtaMed->ProjectionX("hTrkPtMed"); hTrkPtVac->Rebin(10); hTrkPtVac->Scale(1./5.); hTrkPtMed->Rebin(10); hTrkPtMed->Scale(1./5.); //============================================================================= TH1F *hfm = 0; TCanvas *can = 0; TLegend *leg = 0; TLatex *tex = 0; TLine *line = 0; const Float_t dflx = 0., dfux = 300.; const Float_t dfly = 8e-13, dfuy = 8e2; const Float_t dlsx = 0.05, dlsy = 0.05; const Float_t dtsx = 0.06, dtsy = 0.06; const Float_t dtox = 1.10, dtoy = 1.00; const TString stnx = "#it{p}_{T} (GeV/#it{c})"; const TString stny = "d#sigma/d#it{p}_{T} (mb/GeV/#it{c})"; TH1D *hSE = new TH1D("hSE", "", 10., 0., 10.); hSE->SetLineWidth(2); hSE->SetLineColor(wcl[0]); hSE->SetMarkerStyle(wmk[0]); hSE->SetMarkerColor(wcl[0]); TH1D *hME = new TH1D("hME", "", 10., 0., 10.); hME->SetLineWidth(2); hME->SetLineColor(wcl[0]); hME->SetMarkerStyle(wmk[2]); hME->SetMarkerColor(wcl[0]); //============================================================================= can = MakeCanvas("TrkPt"); can->SetGridx(); can->SetGridy(); can->SetLogy(); hfm = can->DrawFrame(dflx, dfly, dfux, dfuy); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hTrkPtVac, wcl[3], wmk[0], "SAME"); DrawHisto(hTrkPtMed, wcl[1], wmk[0], "SAME"); leg = new TLegend(0.62, 0.72, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(hTrkPtVac, "Vacuum", "LP")->SetTextSizePixels(24); leg->AddEntry(hTrkPtMed, "Medium", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, 2.76 TeV, |#eta|<2.6"); CanvasEnd(can); //============================================================================= const Double_t dBins[] = { 0., 5., 10., 20., 30., 50., 80., 120., 160., 200., 250., 300., 400., 500. }; const Int_t nBins = sizeof(dBins) / sizeof(Double_t) - 1; TH1D *hTrkPtVacRB = hTrkPtVac->Rebin(nBins, "hTrkPtVacRB", dBins); TH1D *hTrkPtMedRB = hTrkPtMed->Rebin(nBins, "hTrkPtMedRB", dBins); hTrkPtMedRB->Divide(hTrkPtVacRB); can = MakeCanvas("TrkPtRAA"); can->SetGridx(); can->SetGridy(); hfm = can->DrawFrame(dflx, 0., dfux, 2.); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, stnx, "#it{R}_{AA}"); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hTrkPtMedRB, wcl[0], wmk[0], "SAME"); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, 2.76 TeV, |#eta|<2.6"); CanvasEnd(can); //============================================================================= return; }
void PlotJetRAA() { gROOT->LoadMacro("$LOCAL/include/TUntilsOpHisto.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsAliFigs.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsPlotStd.h"); SetStyle(); //============================================================================= TFile *file = TFile::Open("data/incl/AnalysisOutputs_jet_py8_JetR05_SjeR01.root", "READ"); TH1D *h5py8 = (TH1D*)file->Get("hJet"); h5py8->SetName("h5py8"); h5py8->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_py6_JetR05_SjeR01.root", "READ"); TH1D *h5py6 = (TH1D*)file->Get("hJet"); h5py6->SetName("h5py6"); h5py6->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_qpy_JetR05_SjeR01.root", "READ"); TH1D *h5qpy = (TH1D*)file->Get("hJet"); h5qpy->SetName("h5qpy"); h5qpy->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_vac_JetR05_SjeR01.root", "READ"); TH1D *h5vac = (TH1D*)file->Get("hJet"); h5vac->SetName("h5vac"); h5vac->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_med_JetR05_SjeR01.root", "READ"); TH1D *h5med = (TH1D*)file->Get("hJet"); h5med->SetName("h5med"); h5med->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_py8_JetR04_SjeR01.root", "READ"); TH1D *h4py8 = (TH1D*)file->Get("hJet"); h4py8->SetName("h4py8"); h4py8->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_py6_JetR04_SjeR01.root", "READ"); TH1D *h4py6 = (TH1D*)file->Get("hJet"); h4py6->SetName("h4py6"); h4py6->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_qpy_JetR04_SjeR01.root", "READ"); TH1D *h4qpy = (TH1D*)file->Get("hJet"); h4qpy->SetName("h4qpy"); h4qpy->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_vac_JetR04_SjeR01.root", "READ"); TH1D *h4vac = (TH1D*)file->Get("hJet"); h4vac->SetName("h4vac"); h4vac->SetDirectory(0); file->Close(); file = TFile::Open("data/incl/AnalysisOutputs_jet_med_JetR04_SjeR01.root", "READ"); TH1D *h4med = (TH1D*)file->Get("hJet"); h4med->SetName("h4med"); h4med->SetDirectory(0); file->Close(); //============================================================================= TH1F *hfm = 0; TCanvas *can = 0; TLegend *leg = 0; TLatex *tex = 0; TLine *line = 0; const Float_t dflx = -40., dfux = 200.; const Float_t dfly = 8e-10, dfuy = 8e3; const Float_t dlsx = 0.05, dlsy = 0.05; const Float_t dtsx = 0.06, dtsy = 0.06; const Float_t dtox = 1.10, dtoy = 1.00; const TString stnx = "#it{p}_{T,jet}^{ch} (GeV/#it{c})"; const TString stny = "d#sigma/d#it{p}_{T} (mb/GetV/#it{c})"; TH1D *hSE = new TH1D("hSE", "", 10., 0., 10.); hSE->SetLineWidth(2); hSE->SetLineColor(wcl[0]); hSE->SetMarkerStyle(wmk[0]); hSE->SetMarkerColor(wcl[0]); TH1D *hME = new TH1D("hME", "", 10., 0., 10.); hME->SetLineWidth(2); hME->SetLineColor(wcl[0]); hME->SetMarkerStyle(wmk[2]); hME->SetMarkerColor(wcl[0]); //============================================================================= can = MakeCanvas("Jet5"); can->SetGridx(); can->SetGridy(); can->SetLogy(); hfm = can->DrawFrame(0., 8e-13, 500., 8e3); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, "#it{p}_{T,jet} (GeV/#it{c})", "d#sigma/d#it{p}_{T} (mb/GeV/#it{c})"); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(h5py8, wcl[3], wmk[0], "SAME"); DrawHisto(h5qpy, wcl[1], wmk[0], "SAME"); DrawHisto(h5med, wcl[5], wmk[0], "SAME"); leg = new TLegend(0.62, 0.64, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(h5py8, "PYTHIA 8", "LP")->SetTextSizePixels(24); leg->AddEntry(h5qpy, "Q-PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(h5med, "JEWEL+PYTHIA", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, jet anti-#it{k}_{T}, #it{R}=0.5, |#eta_{jet}|<1"); CanvasEnd(can); //============================================================================= can = MakeCanvas("Jet4"); can->SetGridx(); can->SetGridy(); can->SetLogy(); hfm = can->DrawFrame(0., 8e-13, 500., 8e3); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, "#it{p}_{T,jet} (GeV/#it{c})", "d#sigma/d#it{p}_{T} (mb/GeV/#it{c})"); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(h4py8, wcl[3], wmk[0], "SAME"); DrawHisto(h4qpy, wcl[1], wmk[0], "SAME"); DrawHisto(h4med, wcl[5], wmk[0], "SAME"); leg = new TLegend(0.62, 0.64, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(h4py8, "PYTHIA 8", "LP")->SetTextSizePixels(24); leg->AddEntry(h4qpy, "Q-PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(h4med, "JEWEL+PYTHIA", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, jet anti-#it{k}_{T}, #it{R}=0.4, |#eta_{jet}|<1"); CanvasEnd(can); //============================================================================= const Double_t dBin[] = { 0., 10., 20., 30., 40., 50., 60., 80., 100., 120., 150., 200., 250., 300., 350., 400., 500. }; const Int_t nBin = sizeof(dBin) / sizeof(Double_t) -1; TH1D *h5py8rb = h5py8->Rebin(nBin, "h5py8rb", dBin); TH1D *h4py8rb = h4py8->Rebin(nBin, "h4py8rb", dBin); TH1D *h5py6rb = h5py6->Rebin(nBin, "h5py6rb", dBin); TH1D *h4py6rb = h4py6->Rebin(nBin, "h4py6rb", dBin); TH1D *h5qpyrb = h5qpy->Rebin(nBin, "h5qpyrb", dBin); TH1D *h4qpyrb = h4qpy->Rebin(nBin, "h4qpyrb", dBin); TH1D *h5vacrb = h5vac->Rebin(nBin, "h5vacrb", dBin); TH1D *h4vacrb = h4vac->Rebin(nBin, "h4vacrb", dBin); TH1D *h5medrb = h5med->Rebin(nBin, "h5medrb", dBin); TH1D *h4medrb = h4med->Rebin(nBin, "h4medrb", dBin); //============================================================================= TH1D *hRpy8 = (TH1D*)h4py8rb->Clone("hRpy8"); hRpy8->Divide(h5py8rb); TH1D *hRqpy = (TH1D*)h4qpyrb->Clone("hRqpy"); hRqpy->Divide(h5qpyrb); TH1D *hRmed = (TH1D*)h4medrb->Clone("hRmed"); hRmed->Divide(h5medrb); //============================================================================= can = MakeCanvas("JetR"); can->SetGridx(); can->SetGridy(); hfm = can->DrawFrame(0., 0.4, 500., 1.5); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, "#it{p}_{T,jet} (GeV/#it{c})", "Ratio: #it{R}=0.4 / #it{R}=0.5"); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hRpy8, wcl[3], wmk[0], "SAME"); DrawHisto(hRqpy, wcl[1], wmk[0], "SAME"); DrawHisto(hRmed, wcl[5], wmk[0], "SAME"); leg = new TLegend(0.62, 0.64, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(hRpy8, "PYTHIA 8", "LP")->SetTextSizePixels(24); leg->AddEntry(hRqpy, "Q-PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(hRmed, "JEWEL+PYTHIA", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, Jets anti-#it{k}_{T}, |#eta_{jet}|<1"); CanvasEnd(can); //============================================================================= TH1D *h5qpyRAA = (TH1D*)h5qpyrb->Clone("h5qpyRAA"); h5qpyRAA->Divide(h5py6rb); TH1D *h5medRAA = (TH1D*)h5medrb->Clone("h5medRAA"); h5medRAA->Divide(h5vacrb); TH1D *h4qpyRAA = (TH1D*)h4qpyrb->Clone("h4qpyRAA"); h4qpyRAA->Divide(h4py6rb); TH1D *h4medRAA = (TH1D*)h4medrb->Clone("h4medRAA"); h4medRAA->Divide(h4vacrb); can = MakeCanvas("JetRAA"); can->SetGridx(); can->SetGridy(); hfm = can->DrawFrame(0., 0., 500., 1.2); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, "#it{p}_{T,jet} (GeV/#it{c})", "#it{R}_{AA}"); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(h5qpyRAA, wcl[1], wmk[0], "SAME"); DrawHisto(h5medRAA, wcl[5], wmk[0], "SAME"); DrawHisto(h4qpyRAA, wcl[1], wmk[2], "SAME"); DrawHisto(h4medRAA, wcl[5], wmk[2], "SAME"); leg = new TLegend(0.48, 0.56, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(h5qpyRAA, "#it{R}=0.5, Q-PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(h4qpyRAA, "#it{R}=0.4, Q-PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(h5medRAA, "#it{R}=0.5, JEWEL+PYTHIA", "LP")->SetTextSizePixels(24); leg->AddEntry(h4medRAA, "#it{R}=0.4, JEWEL+PYTHIA", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, Jet anti-#it{k}_{T}, |#eta_{jet}|<1"); CanvasEnd(can); //============================================================================= return; }
void combine() { gROOT->SetBatch(1); SetPlotStyle(); std::string tag = "CSVM"; std::string tagName = "CSVv2M"; // std::string tag = "CMVAT"; // std::string tagName = "cMVAv2T"; // const int nPT = 15; /* const int nPT = 14; std::string pt[nPT] = { "pt20t30", "pt30t40", "pt40t50", "pt50t60", "pt60t70", "pt70t80", "pt80t100", "pt100t120", "pt120t160", "pt160t210", "pt210t260", "pt260t320", "pt320t400", "pt400t500" // "pt500t670" };*/ /* const int nPT = 7; std::string pt[nPT] = { "pt30t50", "pt50t70", "pt70t100", "pt100t140", "pt140t200", "pt200t300", "pt300t670" };*/ /* const int nPT = 5; std::string pt[nPT] = { "pt200t220", "pt220t250", "pt250t300", "pt300t400", "pt400t650" };*/ const int nPT = 5; std::string pt[nPT] = { "pt30t80", "pt80t140", "pt140t180", "pt180t240", "pt240t420" }; /* int ptb[nPT+1] = { 30,50,70,100,140,200,300,670 };*/ /* int ptb[nPT+1] = { 200,220,250,300,400,650 };*/ int ptb[nPT+1] = { 30,80,140,180,240,420 }; float xbins[nPT]; for(int j=0;j<=nPT;j++) { xbins[j] = ptb[j]/1000.; } TH1F *h_SF = new TH1F("h_SF","h_SF",nPT,xbins); TH1F *h_SF_TOTAL_UP = new TH1F("h_SF_TOTAL_UP","h_SF_TOTAL_UP",nPT,xbins); TH1F *h_SF_TOTAL_DOWN = new TH1F("h_SF_TOTAL_DOWN","h_SF_TOTAL_DOWN",nPT,xbins); TH1F *h_frb = new TH1F("h_frb","h_frb",nPT,xbins); TH1F *h_frb_TOTAL_UP = new TH1F("h_frb_TOTAL_UP","h_frb_TOTAL_UP",nPT,xbins); TH1F *h_frb_TOTAL_DOWN = new TH1F("h_frb_TOTAL_DOWN","h_frb_TOTAL_DOWN",nPT,xbins); TH1F *h_frc = new TH1F("h_frc","h_frc",nPT,xbins); TH1F *h_frc_TOTAL_UP = new TH1F("h_frc_TOTAL_UP","h_frc_TOTAL_UP",nPT,xbins); TH1F *h_frc_TOTAL_DOWN = new TH1F("h_frc_TOTAL_DOWN","h_frc_TOTAL_DOWN",nPT,xbins); TH1F *h_frl = new TH1F("h_frl","h_frl",nPT,xbins); TH1F *h_frl_TOTAL_UP = new TH1F("h_frl_TOTAL_UP","h_frl_TOTAL_UP",nPT,xbins); TH1F *h_frl_TOTAL_DOWN = new TH1F("h_frl_TOTAL_DOWN","h_frl_TOTAL_DOWN",nPT,xbins); TH1F *h_frb_tag = new TH1F("h_frb_tag","h_frb_tag",nPT,xbins); TH1F *h_frb_tag_TOTAL_UP = new TH1F("h_frb_tag_TOTAL_UP","h_frb_tag_TOTAL_UP",nPT,xbins); TH1F *h_frb_tag_TOTAL_DOWN = new TH1F("h_frb_tag_TOTAL_DOWN","h_frb_tag_TOTAL_DOWN",nPT,xbins); TH1F *h_frc_tag = new TH1F("h_frc_tag","h_frc_tag",nPT,xbins); TH1F *h_frc_tag_TOTAL_UP = new TH1F("h_frc_tag_TOTAL_UP","h_frc_tag_TOTAL_UP",nPT,xbins); TH1F *h_frc_tag_TOTAL_DOWN = new TH1F("h_frc_tag_TOTAL_DOWN","h_frc_tag_TOTAL_DOWN",nPT,xbins); TH1F *h_frl_tag = new TH1F("h_frl_tag","h_frl_tag",nPT,xbins); TH1F *h_frl_tag_TOTAL_UP = new TH1F("h_frl_tag_TOTAL_UP","h_frl_tag_TOTAL_UP",nPT,xbins); TH1F *h_frl_tag_TOTAL_DOWN = new TH1F("h_frl_tag_TOTAL_DOWN","h_frl_tag_TOTAL_DOWN",nPT,xbins); std::string head = "CSV;OperatingPoint,measurementType,sysType,jetFlavor,etaMin,etaMax,ptMin,ptMax,discrMin,discrMax,formula"; std::string fname = "results/CSV_13TEV_"+SFver+"_"+tagName+"_LT.csv"; std::ofstream sfComb(fname.c_str()); sfComb << head << std::endl; std::vector<std::vector<float> > Comb_sigma_syst; std::vector<std::vector<std::string> > Comb_sigma_syst_name; std::vector<float> Comb_sf; std::vector<int> Comb_op; std::vector<std::string> Comb_type; std::vector<int> Comb_flav; std::vector<float> Comb_etaMin; std::vector<float> Comb_etaMax; std::vector<float> Comb_discMin; std::vector<float> Comb_discMax; std::vector<int> Comb_ptMin; std::vector<int> Comb_ptMax; for(int ipt=0;ipt<nPT;ipt++) { if( tag == "CSVL" || tag == "CMVAL" ) Comb_op.push_back(0); else if( tag == "CSVM" || tag == "CMVAM" ) Comb_op.push_back(1); else if( tag == "CSVT" || tag == "CMVAT" ) Comb_op.push_back(2); Comb_type.push_back("lt"); Comb_flav.push_back(0); Comb_etaMin.push_back(0.0); Comb_etaMax.push_back(2.4); Comb_discMin.push_back(0.0); Comb_discMax.push_back(1.0); std::vector<int> run; std::vector<float> sf; std::vector<float> frb; std::vector<float> frbTag; std::vector<float> frc; std::vector<float> frcTag; std::vector<float> frl; std::vector<float> frlTag; int idxNom = -666; for(int is=0;is<=2;is++) // FIXME !!! { std::string prefix; if( is == 0 ) prefix = "results_"+tag+"_MJBOOSTS1_SUB/"; else if( is == 1 ) prefix = "results_"+tag+"_MJBOOSTS2_SUB/"; // if( is == 0 ) prefix = "results/"; // if( is == 0 ) prefix = "results_"+tag+"_MJ/"; // else if( is == 1 ) prefix = "results_"+tag+"_MJAWAY/"; // else if( is == 2 ) prefix = "results_"+tag+"_MJ1/"; // else if( is == 2 ) prefix = "results_"+tag+"_MJIAWAY/"; else continue; // read result files std::string fname = prefix+pt[ipt]+"_"+tag+".csv"; std::ifstream f(fname.c_str()); if( !f.is_open() ) continue; std::cout << fname << std::endl; int iline = 0; while( !f.eof() ) { std::string line; f >> line; if( iline == 0 ) {iline++; continue;} std::stringstream ss(line); std::string item; int idx = 0; while( std::getline(ss,item,',') ) { int run_v = -1; if( idx == 3 ) run_v = atoi(item.c_str()); if( is == 0 && idx == 3 && run_v == 0 ) idxNom = iline-1; if( (iline == 1 && is == 1) || (iline == 1 && is == 2) || (iline == 1 && is == 3) || is == 0 ) { if( is == 1 ) run_v = 200; if( is == 2 ) run_v = 201; if( is == 3 ) run_v = 202; if( idx == 3 ) run.push_back(run_v); if( idx == 24 ) { sf.push_back(atof(item.c_str())); // FIXME IF FORMAT CHANGES } if( idx == 14 ) frb.push_back(atof(item.c_str())); if( idx == 15 ) frbTag.push_back(atof(item.c_str())); if( idx == 16 ) frc.push_back(atof(item.c_str())); if( idx == 17 ) frcTag.push_back(atof(item.c_str())); if( idx == 18 ) frl.push_back(atof(item.c_str())); if( idx == 19 ) frlTag.push_back(atof(item.c_str())); if( iline == 1 && is == 0 && (run_v < 100 || run_v >= 666) ) { if( idx == 0 ) Comb_ptMin.push_back(atoi(item.c_str())); if( idx == 1 ) Comb_ptMax.push_back(atoi(item.c_str())); } } idx++; } iline++; } f.close(); } // do calculations int nRES = run.size(); float sigma_syst_up = 0.; float sigma_syst_down = 0.; float sigma_total_up = 0.; float sigma_total_down = 0.; float sigma_stat = 0.; float sf_stat_sum = 0.; float istat = 0; float frb_sigma_total_up = 0.; float frb_sigma_total_down = 0.; float frc_sigma_total_up = 0.; float frc_sigma_total_down = 0.; float frl_sigma_total_up = 0.; float frl_sigma_total_down = 0.; float frb_sigma_syst_up = 0.; float frb_sigma_syst_down = 0.; float frc_sigma_syst_up = 0.; float frc_sigma_syst_down = 0.; float frl_sigma_syst_up = 0.; float frl_sigma_syst_down = 0.; float frb_tag_sigma_total_up = 0.; float frb_tag_sigma_total_down = 0.; float frc_tag_sigma_total_up = 0.; float frc_tag_sigma_total_down = 0.; float frl_tag_sigma_total_up = 0.; float frl_tag_sigma_total_down = 0.; float frb_tag_sigma_syst_up = 0.; float frb_tag_sigma_syst_down = 0.; float frc_tag_sigma_syst_up = 0.; float frc_tag_sigma_syst_down = 0.; float frl_tag_sigma_syst_up = 0.; float frl_tag_sigma_syst_down = 0.; float frb_stat_sum = 0.; float sigma_frb_stat = 0.; float frc_stat_sum = 0.; float sigma_frc_stat = 0.; float frl_stat_sum = 0.; float sigma_frl_stat = 0.; float frbTag_stat_sum = 0.; float sigma_frbTag_stat = 0.; float frcTag_stat_sum = 0.; float sigma_frcTag_stat = 0.; float frlTag_stat_sum = 0.; float sigma_frlTag_stat = 0.; std::vector<float> sigma_syst_sep; std::vector<std::string> sigma_syst_name; float sigma_syst_add = 0.; float frb_sigma_syst_add = 0.; float frc_sigma_syst_add = 0.; float frl_sigma_syst_add = 0.; float frb_tag_sigma_syst_add = 0.; float frc_tag_sigma_syst_add = 0.; float frl_tag_sigma_syst_add = 0.; std::vector<float> frb_sigma_syst_sep; std::vector<float> frc_sigma_syst_sep; std::vector<float> frl_sigma_syst_sep; std::vector<float> frb_tag_sigma_syst_sep; std::vector<float> frc_tag_sigma_syst_sep; std::vector<float> frl_tag_sigma_syst_sep; std::vector<std::string> frb_sigma_syst_name; std::vector<std::string> frc_sigma_syst_name; std::vector<std::string> frl_sigma_syst_name; std::vector<std::string> frb_tag_sigma_syst_name; std::vector<std::string> frc_tag_sigma_syst_name; std::vector<std::string> frl_tag_sigma_syst_name; for(int i=0;i<nRES;i++) { if( i == idxNom ) { sigma_syst_sep.push_back(sf[idxNom]); sigma_syst_name.push_back(getSysName(run[i])); continue; } if( run[i] < 666 ) { float delta = sf[idxNom]-sf[i]; bool isUp = (delta < 0); float err = delta*delta; if( run[i] < 100 ) { if( isUp ) sigma_syst_up += err; else sigma_syst_down += err; } if( run[i] >= 100 && run[i] <= 202 ) { sigma_syst_up += pow(delta,2); sigma_syst_down += pow(delta,2); } if( run[i] < 100 ) { if( isUp ) sigma_syst_sep.push_back(sf[idxNom]+sqrt(err)); else sigma_syst_sep.push_back(sf[idxNom]-sqrt(err)); sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { sigma_syst_add += pow(delta,2); } // frb float delta_frb = frb[idxNom]-frb[i]; bool isUp_frb = (delta_frb < 0); float err_frb = delta_frb*delta_frb; if( isUp_frb ) frb_sigma_syst_up += err_frb; else frb_sigma_syst_down += err_frb; if( run[i] < 100 ) { if( isUp_frb ) frb_sigma_syst_sep.push_back(frb[idxNom]+sqrt(err_frb)); else frb_sigma_syst_sep.push_back(frb[idxNom]-sqrt(err_frb)); frb_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frb_sigma_syst_add += pow(delta_frb,2); } // frbTag float delta_frb_tag = frbTag[idxNom]-frbTag[i]; bool isUp_frb_tag = (delta_frb_tag < 0); float err_frb_tag = delta_frb_tag*delta_frb_tag; if( isUp_frb_tag ) frb_tag_sigma_syst_up += err_frb_tag; else frb_tag_sigma_syst_down += err_frb_tag; if( run[i] < 100 ) { if( isUp_frb_tag ) frb_tag_sigma_syst_sep.push_back(frbTag[idxNom]+sqrt(err_frb_tag)); else frb_tag_sigma_syst_sep.push_back(frbTag[idxNom]-sqrt(err_frb_tag)); frb_tag_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frb_tag_sigma_syst_add += pow(delta_frb_tag,2); } // frc float delta_frc = frc[idxNom]-frc[i]; bool isUp_frc = (delta_frc < 0); float err_frc = delta_frc*delta_frc; if( isUp_frc ) frc_sigma_syst_up += err_frc; else frc_sigma_syst_down += err_frc; if( run[i] < 100 ) { if( isUp_frc ) frc_sigma_syst_sep.push_back(frc[idxNom]+sqrt(err_frc)); else frc_sigma_syst_sep.push_back(frc[idxNom]-sqrt(err_frc)); frc_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frc_sigma_syst_add += pow(delta_frc,2); } // frcTag float delta_frc_tag = frcTag[idxNom]-frcTag[i]; bool isUp_frc_tag = (delta_frc_tag < 0); float err_frc_tag = delta_frc_tag*delta_frc_tag; if( isUp_frc_tag ) frc_tag_sigma_syst_up += err_frc_tag; else frc_tag_sigma_syst_down += err_frc_tag; if( run[i] < 100 ) { if( isUp_frc_tag ) frc_tag_sigma_syst_sep.push_back(frcTag[idxNom]+sqrt(err_frc_tag)); else frc_tag_sigma_syst_sep.push_back(frcTag[idxNom]-sqrt(err_frc_tag)); frc_tag_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frc_tag_sigma_syst_add += pow(delta_frc_tag,2); } // frl float delta_frl = frl[idxNom]-frl[i]; bool isUp_frl = (delta_frl < 0); float err_frl = delta_frl*delta_frl; if( isUp_frl ) frl_sigma_syst_up += err_frl; else frl_sigma_syst_down += err_frl; if( run[i] < 100 ) { if( isUp_frl ) frl_sigma_syst_sep.push_back(frl[idxNom]+sqrt(err_frl)); else frl_sigma_syst_sep.push_back(frl[idxNom]-sqrt(err_frl)); frl_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frl_sigma_syst_add += pow(delta_frl,2); } // frlTag float delta_frl_tag = frlTag[idxNom]-frlTag[i]; bool isUp_frl_tag = (delta_frl_tag < 0); float err_frl_tag = delta_frl_tag*delta_frl_tag; if( isUp_frl_tag ) frl_tag_sigma_syst_up += err_frl_tag; else frl_tag_sigma_syst_down += err_frl_tag; if( run[i] < 100 ) { if( isUp_frl_tag ) frl_tag_sigma_syst_sep.push_back(frlTag[idxNom]+sqrt(err_frl_tag)); else frl_tag_sigma_syst_sep.push_back(frlTag[idxNom]-sqrt(err_frl_tag)); frl_tag_sigma_syst_name.push_back(getSysName(run[i])); } if( run[i] >= 100 && run[i] <= 202 ) { frl_tag_sigma_syst_add += pow(delta_frl_tag,2); } } else { sf_stat_sum += sf[i]; frb_stat_sum += frb[i]; frc_stat_sum += frc[i]; frl_stat_sum += frl[i]; frbTag_stat_sum += frbTag[i]; frcTag_stat_sum += frcTag[i]; frlTag_stat_sum += frlTag[i]; istat++; } } sigma_syst_add = sqrt(sigma_syst_add); frb_sigma_syst_add = sqrt(frb_sigma_syst_add); frc_sigma_syst_add = sqrt(frc_sigma_syst_add); frl_sigma_syst_add = sqrt(frl_sigma_syst_add); frb_tag_sigma_syst_add = sqrt(frb_tag_sigma_syst_add); frc_tag_sigma_syst_add = sqrt(frc_tag_sigma_syst_add); frl_tag_sigma_syst_add = sqrt(frl_tag_sigma_syst_add); Comb_sf.push_back(sf[idxNom]); sf_stat_sum /= istat; frb_stat_sum /= istat; frc_stat_sum /= istat; frl_stat_sum /= istat; frbTag_stat_sum /= istat; frcTag_stat_sum /= istat; frlTag_stat_sum /= istat; float sfcbsys = 0.; // add Cb systematics if( inclCB ) { float cb = getCb(tag,"bjet",ipt+1); // float cb = getCb(tag,"bjet",ipt+1+1); //FIXME if include 20-30 bin float cbsys = (1-cb)*0.5/cb; sfcbsys = pow(cbsys*sf[idxNom],2); sigma_syst_up += sfcbsys; sigma_syst_down += sfcbsys; } // add add // sigma_syst_up += sigma_syst_add*sigma_syst_add; // sigma_syst_down += sigma_syst_add*sigma_syst_add; for(int i=0;i<istat;i++) { sigma_stat += pow(sf_stat_sum-sf[i],2)/istat; sigma_frb_stat += pow(frb_stat_sum-frb[i],2)/istat; sigma_frc_stat += pow(frc_stat_sum-frc[i],2)/istat; sigma_frl_stat += pow(frl_stat_sum-frl[i],2)/istat; sigma_frbTag_stat += pow(frbTag_stat_sum-frbTag[i],2)/istat; sigma_frcTag_stat += pow(frcTag_stat_sum-frcTag[i],2)/istat; sigma_frlTag_stat += pow(frlTag_stat_sum-frlTag[i],2)/istat; } sigma_stat = sqrt(sigma_stat); sigma_frb_stat = sqrt(sigma_frb_stat); sigma_frc_stat = sqrt(sigma_frc_stat); sigma_frl_stat = sqrt(sigma_frl_stat); sigma_frbTag_stat = sqrt(sigma_frbTag_stat); sigma_frcTag_stat = sqrt(sigma_frcTag_stat); sigma_frlTag_stat = sqrt(sigma_frlTag_stat); sigma_syst_up = sqrt(sigma_syst_up); sigma_syst_down = sqrt(sigma_syst_down); frb_sigma_syst_up = sqrt(frb_sigma_syst_up); frb_sigma_syst_down = sqrt(frb_sigma_syst_down); frc_sigma_syst_up = sqrt(frc_sigma_syst_up); frc_sigma_syst_down = sqrt(frc_sigma_syst_down); frl_sigma_syst_up = sqrt(frl_sigma_syst_up); frl_sigma_syst_down = sqrt(frl_sigma_syst_down); frb_tag_sigma_syst_up = sqrt(frb_tag_sigma_syst_up); frb_tag_sigma_syst_down = sqrt(frb_tag_sigma_syst_down); frc_tag_sigma_syst_up = sqrt(frc_tag_sigma_syst_up); frc_tag_sigma_syst_down = sqrt(frc_tag_sigma_syst_down); frl_tag_sigma_syst_up = sqrt(frl_tag_sigma_syst_up); frl_tag_sigma_syst_down = sqrt(frl_tag_sigma_syst_down); sigma_total_up = sqrt(sigma_stat*sigma_stat+sigma_syst_up*sigma_syst_up); sigma_total_down = sqrt(sigma_stat*sigma_stat+sigma_syst_down*sigma_syst_down); frb_sigma_total_up = sqrt(sigma_frb_stat*sigma_frb_stat+frb_sigma_syst_up*frb_sigma_syst_up); frb_sigma_total_down = sqrt(sigma_frb_stat*sigma_frb_stat+frb_sigma_syst_down*frb_sigma_syst_down); frc_sigma_total_up = sqrt(sigma_frc_stat*sigma_frc_stat+frc_sigma_syst_up*frc_sigma_syst_up); frc_sigma_total_down = sqrt(sigma_frc_stat*sigma_frc_stat+frc_sigma_syst_down*frc_sigma_syst_down); frl_sigma_total_up = sqrt(sigma_frl_stat*sigma_frl_stat+frl_sigma_syst_up*frl_sigma_syst_up); frl_sigma_total_down = sqrt(sigma_frl_stat*sigma_frl_stat+frl_sigma_syst_down*frl_sigma_syst_down); frb_tag_sigma_total_up = sqrt(sigma_frbTag_stat*sigma_frbTag_stat+frb_tag_sigma_syst_up*frb_tag_sigma_syst_up); frb_tag_sigma_total_down = sqrt(sigma_frbTag_stat*sigma_frbTag_stat+frb_tag_sigma_syst_down*frb_tag_sigma_syst_down); frc_tag_sigma_total_up = sqrt(sigma_frcTag_stat*sigma_frcTag_stat+frc_tag_sigma_syst_up*frc_tag_sigma_syst_up); frc_tag_sigma_total_down = sqrt(sigma_frcTag_stat*sigma_frcTag_stat+frc_tag_sigma_syst_down*frc_tag_sigma_syst_down); frl_tag_sigma_total_up = sqrt(sigma_frlTag_stat*sigma_frlTag_stat+frl_tag_sigma_syst_up*frl_tag_sigma_syst_up); frl_tag_sigma_total_down = sqrt(sigma_frlTag_stat*sigma_frlTag_stat+frl_tag_sigma_syst_down*frl_tag_sigma_syst_down); float SF = sf[idxNom]; float SF_STAT = SF+sigma_stat; float SF_SYST_UP = SF+sigma_syst_up; float SF_SYST_DOWN = SF-sigma_syst_down; float SF_TOTAL_UP = SF+sigma_total_up; float SF_TOTAL_DOWN = SF-sigma_total_down; h_SF->SetBinContent(ipt+1,SF); h_SF->SetBinError(ipt+1,sigma_stat); h_SF_TOTAL_UP->SetBinContent(ipt+1,SF_TOTAL_UP); h_SF_TOTAL_DOWN->SetBinContent(ipt+1,SF_TOTAL_DOWN); float FRB = frb[idxNom]; float FRB_STAT = FRB+sigma_frb_stat; float FRB_SYST_UP = FRB+frb_sigma_syst_up; float FRB_SYST_DOWN = FRB-frb_sigma_syst_down; float FRB_TOTAL_UP = FRB+frb_sigma_total_up; float FRB_TOTAL_DOWN = FRB-frb_sigma_total_down; h_frb->SetBinContent(ipt+1,FRB); h_frb->SetBinError(ipt+1,sigma_frb_stat); h_frb_TOTAL_UP->SetBinContent(ipt+1,FRB_TOTAL_UP); h_frb_TOTAL_DOWN->SetBinContent(ipt+1,FRB_TOTAL_DOWN); float FRC = frc[idxNom]; float FRC_STAT = FRC+sigma_frc_stat; float FRC_SYST_UP = FRC+frc_sigma_syst_up; float FRC_SYST_DOWN = FRC-frc_sigma_syst_down; float FRC_TOTAL_UP = FRC+frc_sigma_total_up; float FRC_TOTAL_DOWN = FRC-frc_sigma_total_down; h_frc->SetBinContent(ipt+1,FRC); h_frc->SetBinError(ipt+1,sigma_frc_stat); h_frc_TOTAL_UP->SetBinContent(ipt+1,FRC_TOTAL_UP); h_frc_TOTAL_DOWN->SetBinContent(ipt+1,FRC_TOTAL_DOWN); float FRL = frl[idxNom]; float FRL_STAT = FRL+sigma_frl_stat; float FRL_SYST_UP = FRL+frl_sigma_syst_up; float FRL_SYST_DOWN = FRL-frl_sigma_syst_down; float FRL_TOTAL_UP = FRL+frl_sigma_total_up; float FRL_TOTAL_DOWN = FRL-frl_sigma_total_down; h_frl->SetBinContent(ipt+1,FRL); h_frl->SetBinError(ipt+1,sigma_frl_stat); h_frl_TOTAL_UP->SetBinContent(ipt+1,FRL_TOTAL_UP); h_frl_TOTAL_DOWN->SetBinContent(ipt+1,FRL_TOTAL_DOWN); float FRB_TAG = frbTag[idxNom]; float FRB_TAG_STAT = FRB_TAG+sigma_frbTag_stat; float FRB_TAG_SYST_UP = FRB_TAG+frb_tag_sigma_syst_up; float FRB_TAG_SYST_DOWN = FRB_TAG-frb_tag_sigma_syst_down; float FRB_TAG_TOTAL_UP = FRB_TAG+frb_tag_sigma_total_up; float FRB_TAG_TOTAL_DOWN = FRB_TAG-frb_tag_sigma_total_down; h_frb_tag->SetBinContent(ipt+1,FRB_TAG); h_frb_tag->SetBinError(ipt+1,sigma_frbTag_stat); h_frb_tag_TOTAL_UP->SetBinContent(ipt+1,FRB_TAG_TOTAL_UP); h_frb_tag_TOTAL_DOWN->SetBinContent(ipt+1,FRB_TAG_TOTAL_DOWN); float FRC_TAG = frcTag[idxNom]; float FRC_TAG_STAT = FRC_TAG+sigma_frcTag_stat; float FRC_TAG_SYST_UP = FRC_TAG+frc_tag_sigma_syst_up; float FRC_TAG_SYST_DOWN = FRC_TAG-frc_tag_sigma_syst_down; float FRC_TAG_TOTAL_UP = FRC_TAG+frc_tag_sigma_total_up; float FRC_TAG_TOTAL_DOWN = FRC_TAG-frc_tag_sigma_total_down; h_frc_tag->SetBinContent(ipt+1,FRC_TAG); h_frc_tag->SetBinError(ipt+1,sigma_frcTag_stat); h_frc_tag_TOTAL_UP->SetBinContent(ipt+1,FRC_TAG_TOTAL_UP); h_frc_tag_TOTAL_DOWN->SetBinContent(ipt+1,FRC_TAG_TOTAL_DOWN); float FRL_TAG = frlTag[idxNom]; float FRL_TAG_STAT = FRL_TAG+sigma_frlTag_stat; float FRL_TAG_SYST_UP = FRL_TAG+frl_tag_sigma_syst_up; float FRL_TAG_SYST_DOWN = FRL_TAG-frl_tag_sigma_syst_down; float FRL_TAG_TOTAL_UP = FRL_TAG+frl_tag_sigma_total_up; float FRL_TAG_TOTAL_DOWN = FRL_TAG-frl_tag_sigma_total_down; h_frl_tag->SetBinContent(ipt+1,FRL_TAG); h_frl_tag->SetBinError(ipt+1,sigma_frlTag_stat); h_frl_tag_TOTAL_UP->SetBinContent(ipt+1,FRL_TAG_TOTAL_UP); h_frl_tag_TOTAL_DOWN->SetBinContent(ipt+1,FRL_TAG_TOTAL_DOWN); // additional uncertainties // stat sigma_syst_name.push_back("up_statistic"); sigma_syst_sep.push_back(SF+sigma_stat); sigma_syst_name.push_back("down_statistic"); sigma_syst_sep.push_back(SF-sigma_stat); // cb sigma_syst_name.push_back("up_cb"); sigma_syst_sep.push_back(SF+sqrt(sfcbsys)); sigma_syst_name.push_back("down_cb"); sigma_syst_sep.push_back(SF-sqrt(sfcbsys)); // add sigma_syst_name.push_back("up_add"); sigma_syst_sep.push_back(SF+sigma_syst_add); sigma_syst_name.push_back("down_add"); sigma_syst_sep.push_back(SF-sigma_syst_add); // total sigma_syst_name.push_back("up"); sigma_syst_sep.push_back(SF_TOTAL_UP); sigma_syst_name.push_back("down"); sigma_syst_sep.push_back(SF_TOTAL_DOWN); Comb_sigma_syst.push_back(sigma_syst_sep); Comb_sigma_syst_name.push_back(sigma_syst_name); } // draw SF TCanvas *c1 = new TCanvas("c1","c1",0,0,600,500); c1->SetGrid(1); std::string csv = "#bf{"+tagName+"}"; const int np = 2*(nPT+2)+1; double xp_sysTot_SF[np]; double yp_sysTot_SF[np]; for(int k=0;k<nPT+2;k++) { float addw = h_SF->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_SF->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_SF[k] = addw + h_SF->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_SF[k] = h_SF_TOTAL_UP->GetBinContent(ib); yp_sysTot_SF[nPT+2+k] = h_SF_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_SF[nPT+2+k] = xp_sysTot_SF[nPT+2-k-1]; } xp_sysTot_SF[np-1] = xp_sysTot_SF[0]; yp_sysTot_SF[np-1] = yp_sysTot_SF[0]; TPolyLine *sysTot_SF = new TPolyLine(np,xp_sysTot_SF,yp_sysTot_SF); sysTot_SF->SetFillColor(kYellow); if( !doSFc ) h_SF->GetYaxis()->SetTitle("SF_{b}"); else h_SF->GetYaxis()->SetTitle("SF_{c}"); h_SF->GetXaxis()->SetTitle("p_{T} [TeV]"); h_SF->SetMarkerSize(0.8); h_SF->Draw("e1p"); h_SF->GetXaxis()->SetMoreLogLabels(); h_SF->GetXaxis()->SetNoExponent(); h_SF->GetYaxis()->SetRangeUser(0.40,1.30); sysTot_SF->Draw("fSAME"); h_SF->Draw("e1p same"); TLegend *leg; leg = new TLegend(0.35,0.45,0.70,0.20); leg->SetFillColor(253); leg->SetBorderSize(0); TLatex *legl = new TLatex(); legl->SetNDC(); legl->SetTextAlign(22); legl->SetTextFont(63); legl->SetTextSizePixels(30); legl->DrawLatex(0.55,0.82,csv.c_str()); leg->AddEntry(h_SF,"Scale factor","p"); leg->AddEntry(h_SF,"stat","l"); leg->AddEntry(sysTot_SF,"stat #oplus syst","f"); c1->RedrawAxis("g"); leg->Draw(); // c1->SetLogx(1); // TLatex *lab = CMSLABEL(); // lab->Draw("same"); TLatex *tex = new TLatex(0.1969,0.906825,"CMS"); tex->SetNDC(); tex->SetTextAlign(13); tex->SetTextFont(61); tex->SetTextSize(0.07475); tex->SetLineWidth(2); tex->Draw(); TLatex *tex2 = new TLatex(0.1969,0.817125,"Preliminary"); tex2->SetNDC(); tex2->SetTextAlign(13); tex2->SetTextFont(52); tex2->SetTextSize(0.05681); tex2->SetLineWidth(2); tex2->Draw(); TLatex *text1 = new TLatex(0.98,0.95125,"#sqrt{s} = 13 TeV, 25 ns"); text1->SetNDC(); text1->SetTextAlign(31); text1->SetTextFont(42); text1->SetTextSize(0.04875); text1->SetLineWidth(2); text1->Draw(); std::string picname = "pics/SF_"+tag+".eps"; c1->Print(picname.c_str()); c1->Clear(); delete sysTot_SF; delete c1; delete leg; delete legl; // draw fractions noTag TCanvas *c2 = new TCanvas("c2","c2",0,0,600,500); c2->SetGrid(1); // frb double xp_sysTot_FRB[np]; double yp_sysTot_FRB[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frb->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frb->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRB[k] = addw + h_frb->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRB[k] = h_frb_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRB[nPT+2+k] = h_frb_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRB[nPT+2+k] = xp_sysTot_FRB[nPT+2-k-1]; } xp_sysTot_FRB[np-1] = xp_sysTot_FRB[0]; yp_sysTot_FRB[np-1] = yp_sysTot_FRB[0]; TPolyLine *sysTot_FRB = new TPolyLine(np,xp_sysTot_FRB,yp_sysTot_FRB); sysTot_FRB->SetFillColor(kRed); sysTot_FRB->SetLineColor(kRed); // sysTot_FRB->SetFillStyle(0); // frc double xp_sysTot_FRC[np]; double yp_sysTot_FRC[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frc->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frc->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRC[k] = addw + h_frc->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRC[k] = h_frc_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRC[nPT+2+k] = h_frc_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRC[nPT+2+k] = xp_sysTot_FRC[nPT+2-k-1]; } xp_sysTot_FRC[np-1] = xp_sysTot_FRC[0]; yp_sysTot_FRC[np-1] = yp_sysTot_FRC[0]; TPolyLine *sysTot_FRC = new TPolyLine(np,xp_sysTot_FRC,yp_sysTot_FRC); sysTot_FRC->SetFillColor(kGreen); sysTot_FRC->SetLineColor(kGreen); // sysTot_FRC->SetFillStyle(0); // frl double xp_sysTot_FRL[np]; double yp_sysTot_FRL[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frl->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frl->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRL[k] = addw + h_frl->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRL[k] = h_frl_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRL[nPT+2+k] = h_frl_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRL[nPT+2+k] = xp_sysTot_FRL[nPT+2-k-1]; } xp_sysTot_FRL[np-1] = xp_sysTot_FRL[0]; yp_sysTot_FRL[np-1] = yp_sysTot_FRL[0]; TPolyLine *sysTot_FRL = new TPolyLine(np,xp_sysTot_FRL,yp_sysTot_FRL); sysTot_FRL->SetFillColor(kBlue); sysTot_FRL->SetLineColor(kBlue); h_frb->GetYaxis()->SetTitle("Fit fraction"); h_frb->GetXaxis()->SetTitle("p_{T} [TeV]"); h_frb->SetMarkerSize(1.0); h_frc->SetMarkerSize(1.0); h_frl->SetMarkerSize(1.0); h_frb->SetMarkerStyle(20); h_frc->SetMarkerStyle(22); h_frl->SetMarkerStyle(24); h_frb->SetMarkerColor(0); h_frc->SetMarkerColor(0); h_frl->SetMarkerColor(0); h_frb->SetLineColor(0); h_frc->SetLineColor(0); h_frl->SetLineColor(0); h_frb->Draw("e1p"); h_frc->Draw("e1p same"); h_frl->Draw("e1p same"); h_frb->GetXaxis()->SetMoreLogLabels(); h_frb->GetXaxis()->SetNoExponent(); h_frb->GetYaxis()->SetRangeUser(0.00,1.50); sysTot_FRB->Draw("fSAME"); sysTot_FRC->Draw("fSAME"); sysTot_FRL->Draw("fSAME"); h_frb->Draw("e1p same"); h_frc->Draw("e1p same"); h_frl->Draw("e1p same"); TLegend *leg2; leg2 = new TLegend(0.70,0.85,0.95,0.70); leg2->SetFillColor(253); leg2->SetBorderSize(0); TLatex *legl2 = new TLatex(); legl2->SetNDC(); legl2->SetTextAlign(22); legl2->SetTextFont(63); legl2->SetTextSizePixels(30); // legl2->DrawLatex(0.55,0.82,csv.c_str()); legl2->DrawLatex(0.55,0.82,"Pre-tag"); TH1D *h_frb_clone = (TH1D*)h_frb->Clone("h_frb_clone"); TH1D *h_frc_clone = (TH1D*)h_frc->Clone("h_frc_clone"); TH1D *h_frl_clone = (TH1D*)h_frl->Clone("h_frl_clone"); h_frb_clone->SetMarkerColor(2); h_frc_clone->SetMarkerColor(3); h_frl_clone->SetMarkerColor(4); h_frb_clone->SetLineColor(2); h_frc_clone->SetLineColor(3); h_frl_clone->SetLineColor(4); leg2->AddEntry(h_frb_clone,"b-jets","lp"); leg2->AddEntry(h_frc_clone,"c-jets","lp"); leg2->AddEntry(h_frl_clone,"udsg-jets","lp"); c2->RedrawAxis("g"); leg2->Draw(); c2->SetLogx(1); tex->Draw(); tex2->Draw(); text1->Draw(); picname = "pics/Fr_noTag.eps"; c2->Print(picname.c_str()); c2->Clear(); // draw fractions Tag TCanvas *c3 = new TCanvas("c3","c3",0,0,600,500); c3->SetGrid(1); // frb double xp_sysTot_FRB_TAG[np]; double yp_sysTot_FRB_TAG[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frb_tag->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frb_tag->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRB_TAG[k] = addw + h_frb_tag->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRB_TAG[k] = h_frb_tag_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRB_TAG[nPT+2+k] = h_frb_tag_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRB_TAG[nPT+2+k] = xp_sysTot_FRB_TAG[nPT+2-k-1]; } xp_sysTot_FRB_TAG[np-1] = xp_sysTot_FRB_TAG[0]; yp_sysTot_FRB_TAG[np-1] = yp_sysTot_FRB_TAG[0]; TPolyLine *sysTot_FRB_TAG = new TPolyLine(np,xp_sysTot_FRB_TAG,yp_sysTot_FRB_TAG); sysTot_FRB_TAG->SetFillColor(kRed); sysTot_FRB_TAG->SetLineColor(kRed); // frc double xp_sysTot_FRC_TAG[np]; double yp_sysTot_FRC_TAG[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frc_tag->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frc_tag->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRC_TAG[k] = addw + h_frc_tag->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRC_TAG[k] = h_frc_tag_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRC_TAG[nPT+2+k] = h_frc_tag_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRC_TAG[nPT+2+k] = xp_sysTot_FRC_TAG[nPT+2-k-1]; } xp_sysTot_FRC_TAG[np-1] = xp_sysTot_FRC_TAG[0]; yp_sysTot_FRC_TAG[np-1] = yp_sysTot_FRC_TAG[0]; TPolyLine *sysTot_FRC_TAG = new TPolyLine(np,xp_sysTot_FRC_TAG,yp_sysTot_FRC_TAG); sysTot_FRC_TAG->SetFillColor(kGreen); sysTot_FRC_TAG->SetLineColor(kGreen); // frl double xp_sysTot_FRL_TAG[np]; double yp_sysTot_FRL_TAG[np]; for(int k=0;k<nPT+2;k++) { float addw = h_frl_tag->GetBinWidth(k)/2.0; if( k == 0 ) addw = 0.0; if( k == nPT+1 ) addw = h_frl_tag->GetBinWidth(k-1); int ib = k+1; if( k > 0 ) ib--; if( k == nPT+1 ) ib--; xp_sysTot_FRL_TAG[k] = addw + h_frl_tag->GetXaxis()->GetBinLowEdge(ib); yp_sysTot_FRL_TAG[k] = h_frl_tag_TOTAL_UP->GetBinContent(ib); yp_sysTot_FRL_TAG[nPT+2+k] = h_frl_tag_TOTAL_DOWN->GetBinContent(nPT-(ib-1)); } for(int k=0;k<nPT+2;k++) { xp_sysTot_FRL_TAG[nPT+2+k] = xp_sysTot_FRL_TAG[nPT+2-k-1]; } xp_sysTot_FRL_TAG[np-1] = xp_sysTot_FRL_TAG[0]; yp_sysTot_FRL_TAG[np-1] = yp_sysTot_FRL_TAG[0]; TPolyLine *sysTot_FRL_TAG = new TPolyLine(np,xp_sysTot_FRL_TAG,yp_sysTot_FRL_TAG); sysTot_FRL_TAG->SetFillColor(kBlue); sysTot_FRL_TAG->SetLineColor(kBlue); h_frb_tag->GetYaxis()->SetTitle("Fit fraction"); h_frb_tag->GetXaxis()->SetTitle("p_{T} [TeV]"); h_frb_tag->SetMarkerSize(1.0); h_frc_tag->SetMarkerSize(1.0); h_frl_tag->SetMarkerSize(1.0); h_frb_tag->SetMarkerStyle(20); h_frc_tag->SetMarkerStyle(22); h_frl_tag->SetMarkerStyle(24); h_frb_tag->SetMarkerColor(0); h_frc_tag->SetMarkerColor(0); h_frl_tag->SetMarkerColor(0); h_frb_tag->SetLineColor(0); h_frc_tag->SetLineColor(0); h_frl_tag->SetLineColor(0); h_frb_tag->Draw("e1p"); h_frc_tag->Draw("e1p same"); h_frl_tag->Draw("e1p same"); h_frb_tag->GetXaxis()->SetMoreLogLabels(); h_frb_tag->GetXaxis()->SetNoExponent(); h_frb_tag->GetYaxis()->SetRangeUser(0.00,1.50); sysTot_FRB_TAG->Draw("fSAME"); sysTot_FRC_TAG->Draw("fSAME"); sysTot_FRL_TAG->Draw("fSAME"); h_frb_tag->Draw("e1p same"); h_frc_tag->Draw("e1p same"); h_frl_tag->Draw("e1p same"); TLegend *leg3; leg3 = new TLegend(0.70,0.85,0.95,0.70); leg3->SetFillColor(253); leg3->SetBorderSize(0); TLatex *legl3 = new TLatex(); legl3->SetNDC(); legl3->SetTextAlign(22); legl3->SetTextFont(63); legl3->SetTextSizePixels(30); legl3->DrawLatex(0.55,0.82,csv.c_str()); TH1D *h_frb_tag_clone = (TH1D*)h_frb_tag->Clone("h_frb_tag_clone"); TH1D *h_frc_tag_clone = (TH1D*)h_frc_tag->Clone("h_frc_tag_clone"); TH1D *h_frl_tag_clone = (TH1D*)h_frl_tag->Clone("h_frl_tag_clone"); h_frb_tag_clone->SetMarkerColor(2); h_frc_tag_clone->SetMarkerColor(3); h_frl_tag_clone->SetMarkerColor(4); h_frb_tag_clone->SetLineColor(2); h_frc_tag_clone->SetLineColor(3); h_frl_tag_clone->SetLineColor(4); leg3->AddEntry(h_frb_tag_clone,"b-jets","lp"); leg3->AddEntry(h_frc_tag_clone,"c-jets","lp"); leg3->AddEntry(h_frl_tag_clone,"udsg-jets","lp"); c3->RedrawAxis("g"); leg3->Draw(); c3->SetLogx(1); tex->Draw(); tex2->Draw(); text1->Draw(); picname = "pics/Fr_"+tag+".eps"; c3->Print(picname.c_str()); c3->Clear(); std::ofstream fsf("results/SFSYS.tex"); std::string header = "\n \ \\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \n \
void PlotNsjMedian() { gROOT->LoadMacro("$LOCAL/include/TUntilsOpHisto.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsAliFigs.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsPlotStd.h"); SetStyle(); //============================================================================= TFile *file = TFile::Open("data/AnalysisOutputs_Nsj.root", "READ"); TList *listPy8R4S1 = (TList*)file->Get("list_py8_JetR04_SjeR01"); TList *listPy8R4S2 = (TList*)file->Get("list_py8_JetR04_SjeR02"); TList *listPy8R4S3 = (TList*)file->Get("list_py8_JetR04_SjeR03"); TList *listPy8R5S1 = (TList*)file->Get("list_py8_JetR05_SjeR01"); TList *listPy8R5S2 = (TList*)file->Get("list_py8_JetR05_SjeR02"); TList *listPy8R5S3 = (TList*)file->Get("list_py8_JetR05_SjeR03"); TList *listPy8R5S4 = (TList*)file->Get("list_py8_JetR05_SjeR04"); TList *listVacR4S1 = (TList*)file->Get("list_vac_JetR04_SjeR01"); TList *listVacR4S2 = (TList*)file->Get("list_vac_JetR04_SjeR02"); TList *listVacR4S3 = (TList*)file->Get("list_vac_JetR04_SjeR03"); TList *listVacR5S1 = (TList*)file->Get("list_vac_JetR05_SjeR01"); TList *listVacR5S2 = (TList*)file->Get("list_vac_JetR05_SjeR02"); TList *listVacR5S3 = (TList*)file->Get("list_vac_JetR05_SjeR03"); TList *listVacR5S4 = (TList*)file->Get("list_vac_JetR05_SjeR04"); TList *listMedR4S1 = (TList*)file->Get("list_med_JetR04_SjeR01"); TList *listMedR4S2 = (TList*)file->Get("list_med_JetR04_SjeR02"); TList *listMedR4S3 = (TList*)file->Get("list_med_JetR04_SjeR03"); TList *listMedR5S1 = (TList*)file->Get("list_med_JetR05_SjeR01"); TList *listMedR5S2 = (TList*)file->Get("list_med_JetR05_SjeR02"); TList *listMedR5S3 = (TList*)file->Get("list_med_JetR05_SjeR03"); TList *listMedR5S4 = (TList*)file->Get("list_med_JetR05_SjeR04"); file->Close(); TH1D *hPy8R4S1 = (TH1D*)listPy8R4S1->FindObject("hJetNsj_Median"); hPy8R4S1->SetName("hPy8R4S1"); TH1D *hPy8R4S2 = (TH1D*)listPy8R4S2->FindObject("hJetNsj_Median"); hPy8R4S2->SetName("hPy8R4S2"); TH1D *hPy8R4S3 = (TH1D*)listPy8R4S3->FindObject("hJetNsj_Median"); hPy8R4S3->SetName("hPy8R4S3"); TH1D *hPy8R5S1 = (TH1D*)listPy8R5S1->FindObject("hJetNsj_Median"); hPy8R5S1->SetName("hPy8R5S1"); TH1D *hPy8R5S2 = (TH1D*)listPy8R5S2->FindObject("hJetNsj_Median"); hPy8R5S2->SetName("hPy8R5S2"); TH1D *hPy8R5S3 = (TH1D*)listPy8R5S3->FindObject("hJetNsj_Median"); hPy8R5S3->SetName("hPy8R5S3"); TH1D *hPy8R5S4 = (TH1D*)listPy8R5S4->FindObject("hJetNsj_Median"); hPy8R5S4->SetName("hPy8R5S4"); TH1D *hVacR4S1 = (TH1D*)listVacR4S1->FindObject("hJetNsj_Median"); hVacR4S1->SetName("hVacR4S1"); TH1D *hVacR4S2 = (TH1D*)listVacR4S2->FindObject("hJetNsj_Median"); hVacR4S2->SetName("hVacR4S2"); TH1D *hVacR4S3 = (TH1D*)listVacR4S3->FindObject("hJetNsj_Median"); hVacR4S3->SetName("hVacR4S3"); TH1D *hVacR5S1 = (TH1D*)listVacR5S1->FindObject("hJetNsj_Median"); hVacR5S1->SetName("hVacR5S1"); TH1D *hVacR5S2 = (TH1D*)listVacR5S2->FindObject("hJetNsj_Median"); hVacR5S2->SetName("hVacR5S2"); TH1D *hVacR5S3 = (TH1D*)listVacR5S3->FindObject("hJetNsj_Median"); hVacR5S3->SetName("hVacR5S3"); TH1D *hVacR5S4 = (TH1D*)listVacR5S4->FindObject("hJetNsj_Median"); hVacR5S4->SetName("hVacR5S4"); TH1D *hMedR4S1 = (TH1D*)listMedR4S1->FindObject("hJetNsj_Median"); hMedR4S1->SetName("hMedR4S1"); TH1D *hMedR4S2 = (TH1D*)listMedR4S2->FindObject("hJetNsj_Median"); hMedR4S2->SetName("hMedR4S2"); TH1D *hMedR4S3 = (TH1D*)listMedR4S3->FindObject("hJetNsj_Median"); hMedR4S3->SetName("hMedR4S3"); TH1D *hMedR5S1 = (TH1D*)listMedR5S1->FindObject("hJetNsj_Median"); hMedR5S1->SetName("hMedR5S1"); TH1D *hMedR5S2 = (TH1D*)listMedR5S2->FindObject("hJetNsj_Median"); hMedR5S2->SetName("hMedR5S2"); TH1D *hMedR5S3 = (TH1D*)listMedR5S3->FindObject("hJetNsj_Median"); hMedR5S3->SetName("hMedR5S3"); TH1D *hMedR5S4 = (TH1D*)listMedR5S4->FindObject("hJetNsj_Median"); hMedR5S4->SetName("hMedR5S4"); //============================================================================= TH1F *hfm = 0; TCanvas *can = 0; TLegend *leg = 0; TLatex *tex = 0; TLine *line = 0; const Float_t dflx = 0., dfux = 500.; const Float_t dfly = 0., dfuy = 15.; const Float_t dlsx = 0.05, dlsy = 0.05; const Float_t dtsx = 0.06, dtsy = 0.06; const Float_t dtox = 1.10, dtoy = 1.00; const TString stnx = "#it{p}_{T,jet} (GeV/#it{c})"; const TString stny = "Number of sub-jets: median"; TH1D *hSE = new TH1D("hSE", "", 10., 0., 10.); hSE->SetLineWidth(2); hSE->SetLineColor(wcl[0]); hSE->SetMarkerStyle(wmk[0]); hSE->SetMarkerColor(wcl[0]); TH1D *hME = new TH1D("hME", "", 10., 0., 10.); hME->SetLineWidth(2); hME->SetLineColor(wcl[0]); hME->SetMarkerStyle(wmk[2]); hME->SetMarkerColor(wcl[0]); //============================================================================= can = MakeCanvas("NsjPy8R04_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hPy8R4S1, wcl[1], wmk[0], "SAME"); DrawHisto(hPy8R4S2, wcl[3], wmk[0], "SAME"); DrawHisto(hPy8R4S3, wcl[4], wmk[0], "SAME"); leg = new TLegend(0.68, 0.66, 0.98, 0.90); SetupLegend(leg); leg->AddEntry(hPy8R4S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hPy8R4S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hPy8R4S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA 8, tune 4C, pp #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.4, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= can = MakeCanvas("NsjPy8R05_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hPy8R5S1, wcl[1], wmk[0], "SAME"); DrawHisto(hPy8R5S2, wcl[3], wmk[0], "SAME"); DrawHisto(hPy8R5S3, wcl[4], wmk[0], "SAME"); DrawHisto(hPy8R5S4, wcl[2], wmk[0], "SAME"); leg = new TLegend(0.58, 0.74, 0.98, 0.90); SetupLegend(leg); leg->SetNColumns(2); leg->AddEntry(hPy8R5S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hPy8R5S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hPy8R5S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->AddEntry(hPy8R5S4, "#it{R}_{sub}=0.4", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA 8, tune 4C, pp #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.5, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= can = MakeCanvas("NsjVacR04_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hVacR4S1, wcl[1], wmk[0], "SAME"); DrawHisto(hVacR4S2, wcl[3], wmk[0], "SAME"); DrawHisto(hVacR4S3, wcl[4], wmk[0], "SAME"); leg = new TLegend(0.68, 0.66, 0.98, 0.90); SetupLegend(leg); leg->AddEntry(hVacR4S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hVacR4S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hVacR4S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, vacuum, #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.4, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= can = MakeCanvas("NsjVacR05_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hVacR5S1, wcl[1], wmk[0], "SAME"); DrawHisto(hVacR5S2, wcl[3], wmk[0], "SAME"); DrawHisto(hVacR5S3, wcl[4], wmk[0], "SAME"); DrawHisto(hVacR5S4, wcl[2], wmk[0], "SAME"); leg = new TLegend(0.58, 0.74, 0.98, 0.90); SetupLegend(leg); leg->SetNColumns(2); leg->AddEntry(hVacR5S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hVacR5S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hVacR5S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->AddEntry(hVacR5S4, "#it{R}_{sub}=0.4", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, vacuum, #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.5, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= can = MakeCanvas("NsjMedR04_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hMedR4S1, wcl[1], wmk[0], "SAME"); DrawHisto(hMedR4S2, wcl[3], wmk[0], "SAME"); DrawHisto(hMedR4S3, wcl[4], wmk[0], "SAME"); leg = new TLegend(0.68, 0.66, 0.98, 0.90); SetupLegend(leg); leg->AddEntry(hMedR4S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hMedR4S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hMedR4S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, medium, #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.4, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= can = MakeCanvas("NsjMedR05_Median"); can->SetGridx(); can->SetGridy(); //can->SetLogy(); hfm = can->DrawFrame(dflx,dfly,dfux,dfuy); SetupFrame(hfm,dlsx,dlsy,dtsx,dtsy,dtox,dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawHisto(hMedR5S1, wcl[1], wmk[0], "SAME"); DrawHisto(hMedR5S2, wcl[3], wmk[0], "SAME"); DrawHisto(hMedR5S3, wcl[4], wmk[0], "SAME"); DrawHisto(hMedR5S4, wcl[2], wmk[0], "SAME"); leg = new TLegend(0.58, 0.74, 0.98, 0.90); SetupLegend(leg); leg->SetNColumns(2); leg->AddEntry(hMedR5S1, "#it{R}_{sub}=0.1", "LP")->SetTextSizePixels(24); leg->AddEntry(hMedR5S2, "#it{R}_{sub}=0.2", "LP")->SetTextSizePixels(24); leg->AddEntry(hMedR5S3, "#it{R}_{sub}=0.3", "LP")->SetTextSizePixels(24); leg->AddEntry(hMedR5S4, "#it{R}_{sub}=0.4", "LP")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "PYTHIA+JEWEL, medium, #sqrt{#it{s}_{NN}}=2.76 TeV"); tex->DrawLatex(0.16, 0.84, "Jet: anti-#it{k}_{T}, #it{R}=0.5, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.76, "Sub-jet: #it{k}_{T}"); CanvasEnd(can); //============================================================================= return; }
void PlotDrmCorr() { gROOT->LoadMacro("$LOCAL/include/TUntilsOpHisto.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsAliFigs.h"); gROOT->LoadMacro("$LOCAL/include/TUntilsPlotStd.h"); SetStyle(); const TString sJetTag = "120<#it{p}_{T,jet}<150 GeV/#it{c}"; //============================================================================= TFile *file = TFile::Open("data/mass/AnalysisOutputs_Dsm_py8_JetR05_SjeR01.root", "READ"); TH2D *h5py8 = (TH2D*)file->Get("hDfrDdm120"); h5py8->SetName("h5py8"); h5py8->SetDirectory(0); file->Close(); file = TFile::Open("data/mass/AnalysisOutputs_Dsm_qpy_JetR05_SjeR01.root", "READ"); TH2D *h5qpy = (TH2D*)file->Get("hDfrDdm120"); h5qpy->SetName("h5qpy"); h5qpy->SetDirectory(0); file->Close(); file = TFile::Open("data/mass/AnalysisOutputs_Dsm_med_JetR05_SjeR01.root", "READ"); TH2D *h5med = (TH2D*)file->Get("hDfrDdm120"); h5med->SetName("h5med"); h5med->SetDirectory(0); file->Close(); file = TFile::Open("data/mass/AnalysisOutputs_Dsm_py8_JetR04_SjeR01.root", "READ"); TH2D *h4py8 = (TH2D*)file->Get("hDfrDdm120"); h4py8->SetName("h4py8"); h4py8->SetDirectory(0); file->Close(); file = TFile::Open("data/mass/AnalysisOutputs_Dsm_qpy_JetR04_SjeR01.root", "READ"); TH2D *h4qpy = (TH2D*)file->Get("hDfrDdm120"); h4qpy->SetName("h4qpy"); h4qpy->SetDirectory(0); file->Close(); file = TFile::Open("data/mass/AnalysisOutputs_Dsm_med_JetR04_SjeR01.root", "READ"); TH2D *h4med = (TH2D*)file->Get("hDfrDdm120"); h4med->SetName("h4med"); h4med->SetDirectory(0); file->Close(); //============================================================================= const Double_t dBin[] = { 0., 0.1, 0.3, 0.5, 0.8, 1.2 }; const Int_t nBin = sizeof(dBin) / sizeof(Double_t) -1; h5py8->RebinX(50); h4py8->RebinX(50); h5qpy->RebinX(50); h4qpy->RebinX(50); h5med->RebinX(50); h4med->RebinX(50); TH1D *h5py8M = SetRMS(h5py8,"h5py8M"); TH1D *h4py8M = SetRMS(h4py8,"h4py8M"); TH1D *h5qpyM = SetRMS(h5qpy,"h5qpyM"); TH1D *h4qpyM = SetRMS(h4qpy,"h4qpyM"); TH1D *h5medM = SetRMS(h5med,"h5medM"); TH1D *h4medM = SetRMS(h4med,"h4medM"); TGraph *g5py8 = new TGraph(h5py8M); TGraph *g4py8 = new TGraph(h4py8M); TGraph *g5qpy = new TGraph(h5qpyM); TGraph *g4qpy = new TGraph(h4qpyM); TGraph *g5med = new TGraph(h5medM); TGraph *g4med = new TGraph(h4medM); //============================================================================= TH1F *hfm = 0; TCanvas *can = 0; TLegend *leg = 0; TLatex *tex = 0; TLine *line = 0; const Float_t dflx = 0.2, dfux = 1.; const Float_t dfly = 2., dfuy = 15.; const Float_t dlsx = 0.05, dlsy = 0.05; const Float_t dtsx = 0.06, dtsy = 0.06; const Float_t dtox = 1.10, dtoy = 1.00; const TString stnx = "#it{R}(sj^{1st},sj^{2nd})"; const TString stny = "#sigma(m_{jet}-m_{sj}) (GeV/#it{c}^{2})"; TH1D *hSE = new TH1D("hSE", "", 10., 0., 10.); hSE->SetLineWidth(2); hSE->SetLineColor(wcl[0]); hSE->SetMarkerStyle(wmk[0]); hSE->SetMarkerColor(wcl[0]); TH1D *hME = new TH1D("hME", "", 10., 0., 10.); hME->SetLineWidth(2); hME->SetLineColor(wcl[0]); hME->SetMarkerStyle(wmk[2]); hME->SetMarkerColor(wcl[0]); //============================================================================= can = MakeCanvas("Jet5py8DrmRMS"); can->SetGridx(); can->SetGridy(); hfm = can->DrawFrame(dflx, dfly, dfux, dfuy); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawGraph(g5py8, wcl[3], "C"); DrawGraph(g5qpy, wcl[1], "C"); DrawGraph(g5med, wcl[5], "C"); leg = new TLegend(0.62, 0.64, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(g5py8, "PYTHIA 8", "L")->SetTextSizePixels(24); leg->AddEntry(g5qpy, "Q-PYTHIA", "L")->SetTextSizePixels(24); leg->AddEntry(g5med, "JEWEL+PYTHIA", "L")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, Jet #it{R}=0.5, anti-#it{k}_{T}, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.84, sJetTag.Data()); CanvasEnd(can); //============================================================================= can = MakeCanvas("Jet4py8DrmRMS"); can->SetGridx(); can->SetGridy(); hfm = can->DrawFrame(dflx, dfly, dfux, dfuy); SetupFrame(hfm, dlsx, dlsy, dtsx, dtsy, dtox, dtoy, stnx, stny); hfm->GetXaxis()->SetNdivisions(510); hfm->GetYaxis()->SetNdivisions(510); DrawGraph(g4py8, wcl[3], "C"); DrawGraph(g4qpy, wcl[1], "C"); DrawGraph(g4med, wcl[5], "C"); leg = new TLegend(0.62, 0.64, 0.98, 0.88); SetupLegend(leg); leg->AddEntry(g4py8, "PYTHIA 8", "L")->SetTextSizePixels(24); leg->AddEntry(g4qpy, "Q-PYTHIA", "L")->SetTextSizePixels(24); leg->AddEntry(g4med, "JEWEL+PYTHIA", "L")->SetTextSizePixels(24); leg->Draw(); tex = new TLatex(); tex->SetNDC(); tex->SetTextSizePixels(24); tex->DrawLatex(0.16, 0.92, "2.76 TeV, Jet #it{R}=0.4, anti-#it{k}_{T}, |#eta_{jet}|<1"); tex->DrawLatex(0.16, 0.84, sJetTag.Data()); CanvasEnd(can); //============================================================================= return; }