void langaus() { // Fill Histogram Int_t data[100] = {0,0,0,0,0,0,2,6,11,18,18,55,90,141,255,323,454,563,681, 737,821,796,832,720,637,558,519,460,357,291,279,241,212, 153,164,139,106,95,91,76,80,80,59,58,51,30,49,23,35,28,23, 22,27,27,24,20,16,17,14,20,12,12,13,10,17,7,6,12,6,12,4, 9,9,10,3,4,5,2,4,1,5,5,1,7,1,6,3,3,3,4,5,4,4,2,2,7,2,4}; TH1F *hSNR = new TH1F("snr","Signal-to-noise",400,0,400); for (Int_t i=0; i<100; i++) hSNR->Fill(i,data[i]); // Fitting SNR histo printf("Fitting...\n"); // Setting fit range and start values Double_t fr[2]; Double_t sv[4], pllo[4], plhi[4], fp[4], fpe[4]; fr[0]=0.3*hSNR->GetMean(); fr[1]=3.0*hSNR->GetMean(); pllo[0]=0.5; pllo[1]=5.0; pllo[2]=1.0; pllo[3]=0.4; plhi[0]=5.0; plhi[1]=50.0; plhi[2]=1000000.0; plhi[3]=5.0; sv[0]=1.8; sv[1]=20.0; sv[2]=50000.0; sv[3]=3.0; Double_t chisqr; Int_t ndf; TF1 *fitsnr = langaufit(hSNR,fr,sv,pllo,plhi,fp,fpe,&chisqr,&ndf); Double_t SNRPeak, SNRFWHM; langaupro(fp,SNRPeak,SNRFWHM); printf("Fitting done\nPlotting results...\n"); // Global style settings gStyle->SetOptStat(1111); gStyle->SetOptFit(111); gStyle->SetLabelSize(0.03,"x"); gStyle->SetLabelSize(0.03,"y"); hSNR->GetXaxis()->SetRange(0,70); hSNR->Draw(); fitsnr->Draw("lsame"); }
void langaus() { // Fill Histogram TFile *f=new TFile("fitInputs.root"); TH1F *hSNR = (TH1F*)f->Get("hxsobs"); // Fitting SNR histo printf("Fitting...\n"); // Setting fit range and start values Double_t fr[2]; Double_t sv[4], pllo[4], plhi[4], fp[4], fpe[4]; fr[0]=0.3*hSNR->GetMean(); fr[1]=3.0*hSNR->GetMean(); pllo[0]=0.5; pllo[1]=5.0; pllo[2]=1.0; pllo[3]=0.4; plhi[0]=5.0; plhi[1]=50.0; plhi[2]=1000000.0; plhi[3]=5.0; sv[0]=1.8; sv[1]=20.0; sv[2]=50000.0; sv[3]=3.0; Double_t chisqr; Int_t ndf; TF1 *fitsnr = langaufit(hSNR,fr,sv,pllo,plhi,fp,fpe,&chisqr,&ndf); Double_t SNRPeak, SNRFWHM; langaupro(fp,SNRPeak,SNRFWHM); printf("Fitting done\nPlotting results...\n"); // Global style settings gStyle->SetOptStat(1111); gStyle->SetOptFit(111); gStyle->SetLabelSize(0.03,"x"); gStyle->SetLabelSize(0.03,"y"); hSNR->GetXaxis()->SetRange(0,70); hSNR->Draw(); fitsnr->Draw("lsame"); }