13 Int_t nbins1 = h1->GetNbinsX();
14 Int_t nbins2 = h2->GetNbinsX();
15 Double_t binwidth1 = h1->GetBinWidth(1);
16 Double_t binwidth2 = h2->GetBinWidth(1);
18 if ( nbins1!=nbins2 || binwidth1!=binwidth2 ) {
19 cout <<
"Histos do not have the same binning, do not seem compatible" << endl;
27 for (
Int_t i=1; i<=nbins1; i++) {
28 binwidth = h1->GetBinWidth(i);
29 xlow = h1->GetBinLowEdge(i);
32 limits[nbins1] = xlow + binwidth;
34 TH1D *hMultiply =
new TH1D(
"hMultiply",
"hMultiply",nbins1,limits);
37 for (
Int_t ibin=1; ibin<=nbins1; ibin++) {
38 value = h1->GetBinContent(ibin) * h2->GetBinContent(ibin);
39 err = value * TMath::Sqrt( (h1->GetBinError(ibin)/h1->GetBinContent(ibin)) * (h1->GetBinError(ibin)/h1->GetBinContent(ibin)) +
40 (h2->GetBinError(ibin)/h2->GetBinContent(ibin)) * (h2->GetBinError(ibin)/h2->GetBinContent(ibin)) );
41 hMultiply->SetBinContent(ibin,value);
42 hMultiply->SetBinError(ibin,err);
45 return (
TH1*)hMultiply;
52 const char* recolhc10d3histoname=
"RECPIDpt",
53 const char* simuAcclhc10d3filename=
"Distributions.root",
54 const char* simuAcclhc10d3histoname=
"MCAccpt",
55 const char* simuLimAcclhc10d4filename=
"",
56 const char* simuLimAcclhc10d4histoname=
"MCLimAccpt",
57 const char* simuAcclhc10d4filename=
"",
58 const char* simuAcclhc10d4histoname=
"MCAccpt",
59 const char* outfilename=
"ComputeEfficiencyInputFromTwoSteps.root")
62 TFile *recolhc10d3file =
new TFile(recolhc10d3filename,
"read");
63 TH1D *hrecolhc10d3 = (
TH1D*)recolhc10d3file->Get(recolhc10d3histoname);
65 TFile *simuAcclhc10d3file =
new TFile(simuAcclhc10d3filename,
"read");
66 TH1D *hsimuAcclhc10d3 = (
TH1D*)simuAcclhc10d3file->Get(simuAcclhc10d3histoname);
68 TFile *simuLimAcclhc10d4file =
new TFile(simuLimAcclhc10d4filename,
"read");
69 TH1D *hsimuLimAcclhc10d4 = (
TH1D*)simuLimAcclhc10d4file->Get(simuLimAcclhc10d4histoname);
71 TFile *simuAcclhc10d4file =
new TFile(simuAcclhc10d4filename,
"read");
72 TH1D *hsimuAcclhc10d4 = (
TH1D*)simuAcclhc10d4file->Get(simuAcclhc10d4histoname);
75 TFile *out =
new TFile(outfilename,
"recreate");
77 hRecoPIDCorr->SetNameTitle(
"hRecoPIDCorr",
"hRecoPIDCorr");
79 hSimuCorr->SetNameTitle(
"hSimuCorr",
"hSimuCorr");
82 hRecoPIDCorr->Write();