Skip to content

[RF] RooFit plotOn issue #9127

@TatianaOvsiannikova

Description

@TatianaOvsiannikova

The versions after 6.18 have strange behavior for plotting components in the fit. The plots for the 6.20.02 and 6.18.0 are in the attachments, and the script to reproduce the issue is below:

import ROOT
from ROOT.RooFit import *
mes= ROOT.RooRealVar("mes","m_{ES} (GeV)",5.265,5.29);
mean=ROOT.RooRealVar("mean","B^{#pm} mass",5.28,5.265,5.29);
width=ROOT.RooRealVar("width","B^{#pm} width",0.0027,0.001,1.);
signal_g=ROOT.RooGaussian("signal_g","signal PDF",mes,mean,width);
bkg_g=ROOT.RooPolynomial("bkg_g","bkg_g",mes) 

nsig=ROOT.RooRealVar("nsig","#signal events",200,0.,1000);
nbkg=ROOT.RooRealVar("nbkg","#background events",40,0.,1000);
model_g=ROOT.RooAddPdf("model_g","g+a",ROOT.RooArgList(signal_g,bkg_g),ROOT.RooArgList(nsig,nbkg));
dataset= model_g.generate(ROOT.RooArgSet(mes),2000) 

sigma1=ROOT.RooRealVar ("sigma1", "sigma1", 0.0015,0.001,1);
sigma2=ROOT.RooRealVar("sigma2", "sigma2",0.0030,0.001,3);
alpha1=ROOT.RooRealVar ("alpha1", "alpha1", 1.5, 0,10);
alpha2=ROOT.RooRealVar ("alpha2", "alpha2", 1.5, 0,10);
n=ROOT.RooRealVar("n", "n", 1.0,0,20);
ratio=ROOT.RooRealVar("ratio", "ratio", 0.1, 0, 1);
p0=ROOT.RooRealVar("p0", "p0", 0.0, 0, 2.0);
N=200
a0=ROOT.RooRealVar ("a0", "a0", 0.166, -100, 100);
a1=ROOT.RooRealVar ("a1", "a1", -0.0027, -10, 10);

bkg=ROOT.RooChebychev("bkg","bkg",mes,ROOT.RooArgList(a0,a1))
myCB1=ROOT.RooCBShape ("CBMass1", "CBMass1", mes, mean, sigma1, alpha1, n);
myCB2=ROOT.RooCBShape ("CBMass2", "CBMass2", mes, mean, sigma2, alpha2, n);
signal=ROOT.RooAddPdf ("signal", "signal", ROOT.RooArgList(myCB1, myCB2), ROOT.RooArgList(ratio));

Nsig= ROOT.RooRealVar ("Nsig", "yield of signal", 200,0.,2000);
Nbkg=  ROOT.RooRealVar("Nbkg", "yield of background",40,0.,2000);
model=  ROOT.RooAddPdf ("model", "signal and background", ROOT.RooArgList(signal, bkg), ROOT.RooArgList(Nsig, Nbkg)); 

r = model.fitTo(dataset) ;

frame=mes.frame(200)
dataset.plotOn(frame, ROOT.RooFit.MarkerStyle ( 20 ),ROOT.RooFit.Binning(200) )
model.plotOn(frame,ROOT.RooFit.Name('signal'),ROOT.RooFit.DrawOption("F"), ROOT.RooFit.FillStyle (1001),ROOT.RooFit.FillColor(ROOT.kRed ), ROOT.RooFit.Components("signal") )#,Components="background")
model.plotOn(frame,ROOT.RooFit.Name("bkg"),ROOT.RooFit.DrawOption("F"), ROOT.RooFit.FillStyle (1001),ROOT.RooFit.FillColor(ROOT.kBlue ), ROOT.RooFit.Components("bkg") )#,Components="background")

Thank you.
componient_draw_issue
componient_draw_old

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions