Hello,
I’m encountering a problem using RooFit in ROOT-5.28.00. I’m trying to define a extended LL fit model being the sum of a CrystalBall and an exponential but the fits don’t work and I’m getting strange messages such as :
“RooAddPdf::Trial_TotModel[ Trial_SigPdf + Trial_BkgPdf ] = [#0] WARNING:InputArguments – RooExtendPdf::expectedEvents(Trial_SigPdf) WARNING: RooExtendPdf needs non-null normalization set to calculate fraction in range 0x1f4a5f0. Results may be nonsensical
[#0] WARNING:Eval – RooExtendPdf(Trial_SigPdf) WARNING: nExpected = 100 / 0 for nset = ()
[#0] WARNING:InputArguments – RooExtendPdf::expectedEvents(Trial_BkgPdf) WARNING: RooExtendPdf needs non-null normalization set to calculate fraction in range 0x1f4a5f0. Results may be nonsensical
[#0] ERROR:Eval – RooAbsReal::logEvalError(Trial_TotModel) evaluation error,
origin : RooAddPdf::Trial_TotModel[ Trial_SigPdf + Trial_BkgPdf ]
message : p.d.f value is Not-a-Number (-nan), forcing value to zero
server values: !refCoefNorm=(), !pdfs=(Trial_SigPdf = 0,Trial_BkgPdf = 7.38906), !coefficients=()”
Could anyone please give me some help on that ? I’ve put a minimal example.
Thank you in advance, Olivier.
//Minimal example :
//--------------------------------
RooWorkspace * rooWorkspace = new RooWorkspace(“workspace”);
RooRealVar * x = new RooRealVar(“x”,“x”,0.,200.);
rooWorkspace->import(*x);
//Models for the trials
//Model function
RooRealVar Trial_mean2(“Trial_mean2”,“Trial_mean2”,9.5,7,12);
RooRealVar Trial_ResSigma(“Trial_ResSigma”,“Trial_ResSigma”,2.3,0., 10.);
RooRealVar Trial_alfa (“Trial_alfa”,“Trial_alfa”,1.6,0.1,10.);
RooRealVar Trial_n(“Trial_n”,“Trial_n”,2.3,0.1,10.);
RooCBShape* Trial_ResModel= new RooCBShape (“Trial_ResModel”,“Trial_ResModel”,*x, Trial_mean2, Trial_ResSigma, Trial_alfa, Trial_n);
//By default, background is modeled by an exponential
RooRealVar Trial_bgExpParam(“Trial_bgExpParam”, “Trial_bgExpParam”,0.02,0.,0.5);
RooExponential * Trial_BkgModel = new RooExponential(“Trial_BkgModel”,“Trial_BkgModel”,*x,Trial_bgExpParam);
x->setRange(“integralRange”, 8., 11.); //define the signal range
RooRealVar* Trial_Nsig= new RooRealVar (“Trial_Nsig”,“Trial_Nsig”, 100., 1.,1e4);
RooRealVar* Trial_Nbkg= new RooRealVar (“Trial_Nbkg”,“Trial_Nbkg”, 50. , 1.,1e4);
RooExtendPdf* Trial_ExtendedSigPdf = new RooExtendPdf(“Trial_SigPdf”,“Trial_SigPdf”, *Trial_ResModel,Trial_Nsig, “integralRange”);
RooExtendPdf Trial_ExtendedBkgPdf = new RooExtendPdf(“Trial_BkgPdf”,“Trial_BkgPdf”, *Trial_BkgModel,Trial_Nbkg, “integralRange”);
RooAddPdf Trial_TotModel = new RooAddPdf(“Trial_TotModel”,“Trial_TotModel”,RooArgList(*Trial_ExtendedSigPdf,*Trial_ExtendedBkgPdf));
rooWorkspace->import(*Trial_TotModel);
rooWorkspace->Print();