#include "TF1.h" #include "TH1.h" #include "TFile.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TMultiGraph.h" #include "TCanvas.h" #include "TPad.h" #include "TLegend.h" #include "TLatex.h" #include "TLine.h" #include "TNtuple.h" #include "TFitter.h" #include "TFitResult.h" #include "myAnaConsts.h" #include "massfitting.C" #include TH1D* hD0DcaMCPSignal; TH1D* hD0DcaMCNPSignal; TH1D* hD0DcaData; void dcaFittingOptimal() { std::unique_ptr f1 = std::unique_ptr(new TFile("npd0ana_dca_hists.root")); for(int iMva=0; iMva<1; iMva++) { int label = 40 + 2*iMva; TH1D* hMassData = (TH1D*) f1->Get(Form("hMassDataD0mva%d", label)); TH1D* hMassMCNPD0 = (TH1D*) f1->Get(Form("hMassMCNPD0mva%d", label)); TH1D* hMassMCNPD0All = (TH1D*) f1->Get(Form("hMassMCNPD0Allmva%d", label)); TH1D* hMassMCPD0 = (TH1D*) f1->Get(Form("hMassMCPD0mva%d", label)); TH1D* hMassMCPD0All = (TH1D*) f1->Get(Form("hMassMCPD0Allmva%d", label)); double massBinWidth = hMassData->GetBinWidth(1); /* hMassData->Scale(1./massBinWidth); hMassMCNPD0->Scale(1./massBinWidth); hMassMCNPD0All->Scale(1./massBinWidth); hMassMCPD0->Scale(1./massBinWidth); hMassMCPD0All->Scale(1./massBinWidth); */ TLatex ltx; ltx.SetTextSize(0.04); TCanvas cMass("cMass", "", 550, 450); cMass.SetLeftMargin(0.16); cMass.SetBottomMargin(0.16); TF1 f = massfitting(hMassData, hMassMCNPD0, hMassMCNPD0All, Form("mva%d", iMva)); hMassData->SetTitle(";Mass (GeV);Entries / 5 MeV"); hMassData->Draw("E P"); TLegend lgdMass(0.6, 0.7, 0.9, 0.9); lgdMass.AddEntry(hMassData, "Data", "p"); lgdMass.AddEntry(&f, "Fitting", "l"); lgdMass.Draw(); ltx.DrawLatexNDC(0.35, 0.8, Form("MVA > %.2f", 0.4+0.02*iMva)); ltx.DrawLatexNDC(0.55, 0.55, "4 < pT < 5GeV |y|<1"); } }