#include "TSpectrum2.h" #include "Riostream.h" #include "TH2F.h" #include "TCanvas.h" #include "TSpectrum2Fit.h" #include "TFile.h" void fit_peak(Int_t nbinsx,Int_t xmin,Int_t xmax, Int_t nbinsy, Int_t ymin, Int_t ymax){ TSpectrum2* s= new TSpectrum2(20,1); //searching TFile* f=new TFile("histo.root"); TH2F* histo; histo=(TH2F*)f->Get("ht;1"); Int_t val=s->Search(histo,3.,"",0.2); Int_t n=s->GetNPeaks(); cout<Print(); out.close(); */ Float_t ** source = new float *[nbinsx]; Float_t ** dest = new float *[nbinsx]; for (Int_t i=0;iGetBinContent(i+1,j+1); if(source[i][j]>10){count=count+1; //out<<" ("<GetPositionX(); PosY=s->GetPositionY(); cout<<"positions acquired"<SetFitParameters(xmin, xmax-1,ymin, ymax-1, 1000, 0.1, pfit->kFitOptimChiCounts,pfit->kFitAlphaHalving,pfit->kFitPower2,pfit->kFitTaylorOrderFirst); pfit->SetPeakParameters(2, kFALSE,2 , kFALSE, 0, kTRUE, PosX, (Bool_t *) FixPosX, PosY, (Bool_t *) FixPosY, PosX, (Bool_t *) FixPosX, PosY, (Bool_t *) FixPosY, Amp, (Bool_t *) FixAmp, AmpXY, (Bool_t *) FixAmp, AmpXY, (Bool_t *) FixAmp); pfit->SetBackgroundParameters(0,kFALSE,0,kTRUE,0,kTRUE); cout<<"fit parameters set!"<FitAwmi(source); cout<<"fit performed!"<SetBinContent(i+1,j+1,source[i][j]); } } histo->Draw("SURF"); out.close(); }