import ROOT,time,math ROOT.gROOT.ProcessLine(".x rootlogon.C") rand=ROOT.TRandom3() rand.SetSeed(int(time.time())) c1=ROOT.TCanvas("c","roofit gauss test",1200,600) c1.Divide(2,1) tuple=ROOT.TNtuple('gauss','','x') tuple_half=ROOT.TNtuple('gauss','','x') tuple_weighted=ROOT.TNtuple('gauss weighted','','x:amp') for i in range(1000): x=rand.Gaus(0,1) tuple.Fill(x) if i%2==0: tuple_weighted.Fill(x,2) tuple_half.Fill(x) x=ROOT.RooRealVar('x','x',-20,20) amp=ROOT.RooRealVar('amp','amp',0,120) mu=ROOT.RooRealVar('mu','mu',4,-20,20) sigma=ROOT.RooRealVar('sigma','sigma',5,-100,100) varset=ROOT.RooArgSet() varset.add(x) varset_weighted=ROOT.RooArgSet() varset_weighted.add(x) varset_weighted.add(amp) dataset=ROOT.RooDataSet('dataset','dataset',tuple,varset) dataset_half=ROOT.RooDataSet('dataset_half','dataset_half',tuple_half,varset) dataset_weighted=ROOT.RooDataSet('dataset_weighted','dataset weighted',tuple_weighted,varset_weighted,'','amp') pdf=ROOT.RooGaussian('gaus','gaus',x,mu,sigma) mus=[] muerr=[] sig=[] sigerr=[] pdf.fitTo(dataset,ROOT.RooFit.Save()) mus.append(mu.getVal()) muerr.append(mu.getError()) sig.append(sigma.getVal()) sigerr.append(sigma.getError()) print '' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '' pdf.fitTo(dataset_half,ROOT.RooFit.Save()) mus.append(mu.getVal()) muerr.append(mu.getError()) sig.append(sigma.getVal()) sigerr.append(sigma.getError()) print '' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '' pdf.fitTo(dataset_weighted,ROOT.RooFit.SumW2Error(False),ROOT.RooFit.Save()) mus.append(mu.getVal()) muerr.append(mu.getError()) sig.append(sigma.getVal()) sigerr.append(sigma.getError()) print '' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '******************************************************************************' print '' pdf.fitTo(dataset_weighted,ROOT.RooFit.SumW2Error(True),ROOT.RooFit.Save()) mus.append(mu.getVal()) muerr.append(mu.getError()) sig.append(sigma.getVal()) sigerr.append(sigma.getError()) print mus print muerr print sig print sigerr