double Integral(TH1F* Hist, double xmin1, double xmax1){ TAxis *axis = Hist->GetXaxis(); int bmin1 = axis->FindBin(xmin1); int bmax1 = axis->FindBin(xmax1); double integral1 = Hist->Integral(bmin1,bmax1); return integral1; } void poisson(){ TFile *f3 = new TFile("Med0_04GeV_4Quartz2000Ev10MCell.root"); f3->ls(); TH1F * h3 = (TH1F*)f3->Get("ParCell"); //gStyle->SetOptStat(1100); gStyle->SetOptFit(1); TCanvas* c2= new TCanvas("c2"," ",900,900); h3->Draw(); int integral0 = Integral(h3, -10, 60); int integral1 = Integral(h3, 1050, 1600); int integral2 = Integral(h3, 2400, 3200); int integral3 = Integral(h3, 3800, 4650); int integral4 = Integral(h3, 4800, 6050); int integral5 = Integral(h3, 6800, 7500); int integral6 = Integral(h3, 8400, 9000); int integral7 = Integral(h3, 9900, 10400); TH2F * hn = new TH2F("hn", "",10, 0,10, 1000, 0, 5000); int sum = integral0 +integral1 +integral2 +integral3 +integral4 +integral5 +integral6 +integral7; int a0 = 0; int a1 = 1; int a2 = 2; int a3 = 3; int a4 = 4; int a5 = 5; int a6 = 6; int a7 = 7; hn->Fill(a0, integral0); hn->Fill(a1, integral1); hn->Fill(a2, integral2); hn->Fill(a3, integral3); hn->Fill(a4, integral4); hn->Fill(a5, integral5); hn->Fill(a6, integral6); hn->Fill(a7,integral7); hn->SetMarkerStyle(20); hn->SetMarkerSize(0.5); TCanvas* c3= new TCanvas("c3"," ",900,900); TF1 *fit = new TF1("fit","[0]*TMath::Poisson(x,[1])",0,8); //TF1 *fit = new TF1("fit","gaus",0,8); //TF1 *fit = new TF1("fit","( (TMath::Exp(-[1]) * TMath::Power([1],x) ) / TMath::Gamma(x+1.0))",0.1,7); hn->Fit("fit"); hn->Draw(); }