import ROOT,random sigma=20 mpv=3*sigma scale=0.5 hrange=1000 hist=ROOT.TH1D('hist','hist',500,0,hrange) hist2=ROOT.TH1D('hist2','hist2',500,0,hrange) #hist2.SetLineColor(ROOT.kRed) func=ROOT.TF1("func","TMath::Landau(x,"+str(mpv)+","+str(sigma)+")",0,hrange) for i in range(1000): rand=func.GetRandom(0,hrange) hist.Fill(rand) hist2.Fill(rand*scale) fitfunc=ROOT.TF1("fitfunc","TMath::Landau(x,[0],[1],0)*[2]") fitfunc.SetParName(0,'MPV') fitfunc.SetParName(1,'Sigma') fitfunc.SetParName(2,'Const') canv=ROOT.TCanvas('c','c',500,1000) canv.Divide(1,2) canv.cd(1) hist.Draw() fitfunc.SetParameter(0,mpv) fitfunc.SetParameter(1,sigma) fitfunc.SetParameter(2,hist.GetMaximum()) hist.Fit(fitfunc,"Q","",0,hrange) print 'MPV unscaled:',fitfunc.GetParameter(0) print 'Sigma unscaled:',fitfunc.GetParameter(1) canv.cd(2) hist2.Draw() fitfunc.SetParameter(0,mpv*scale) fitfunc.SetParameter(1,sigma*scale) fitfunc.SetParameter(2,hist2.GetMaximum()) hist2.Fit(fitfunc,"Q","",0,hrange) print 'MPV scaled:',fitfunc.GetParameter(0) print 'Sigma scaled:',fitfunc.GetParameter(1) canv.Update() u=raw_input('done?')