Ejemplo n.º 1
0
#Initialize Components
from P2VV.RooFitWrappers import buildPdf, Component
mumuMassSigComp = Component('mumuSig', ( mumuSig.pdf(), ), Yield = ( 27000.,                        0., sigData.sumEntries() ) )
#mumuMassBkgComp = Component('mumuBkg', ( mumuBkg.pdf(), ), Yield = ( sigData.sumEntries() - 27000., 0., sigData.sumEntries() ) )

#Build mumu Mass Pdf
#mumuMassPdf = buildPdf(Components = ( mumuMassSigComp, mumuMassBkgComp ), Observables = (mumuMass, ), Name='mumuMassPdf'  )
mumuMassPdf = buildPdf(Components = ( mumuMassSigComp, ), Observables = (mumuMass, ), Name='mumuMassPdf'  )

#Fit
#ws.var('m_bkg_arg').setRange(-1e-4,.5) 
fitResult = mumuMassPdf.fitTo( sigData, SumW2Error = False, Save = True, **fitOpts )
fitResult.PrintSpecial( text = True )

#Plot
mumuMassPlot = mumuMass.frame(60)

#sigArgs = {'Components':'sig_mumu', 'LineColor':kRed,     'LineStyle':10, 'LineWidth':3}
#bkgArgs = {'Components':'bkg_mumu', 'LineColor':kGreen+3, 'LineStyle': 2, 'LineWidth':3}

if drawTotalDists :
    data.plotOn( mumuMassPlot, MarkerStyle = kFullCircle, MarkerSize = 0.5, MarkerColor = kRed, LineWidth = 2, LineColor = kRed )
sigData.plotOn( mumuMassPlot, MarkerStyle = kFullCircle, MarkerSize = 0.5, LineWidth = 2)
mumuMassPdf.plotOn(mumuMassPlot, LineWidth = 3)
#mumuMassPdf.plotOn(mumuMassPlot, **sigArgs)
#mumuMassPdf.plotOn(mumuMassPlot, **bkgArgs)

binWidth = ( mumuMassPlot.GetXaxis().GetXmax() - mumuMassPlot.GetXaxis().GetXmin() ) / float( mumuMassPlot.GetNbinsX() )
mumuMassPlot.SetXTitle('m(#mu^{+}#mu^{-}) [MeV/c^{2}]')
mumuMassPlot.SetYTitle('Candidates / (%.2g MeV/c^{2})' % binWidth )
mumuMassPlot.SetMinimum(0.)