32 if (fFirstEval && ParamsAreEqual()) {
33 oocoutW(fNullParameters,InputArguments)
34 <<
"Same RooArgSet used for null and alternate, so you must explicitly SetNullParameters and SetAlternateParameters or the likelihood ratio will always be 1."
40 std::unique_ptr<RooArgSet>
nullObs{fNullPdf->getObservables(
data)};
42 std::unique_ptr<RooArgSet>
altObs{fAltPdf->getObservables(
data)};
51 bool reuse = (fReuseNll || fgAlwaysReuseNll) ;
55 std::unique_ptr<RooArgSet>
allParams{fNullPdf->getParameters(
data)};
57 fNllNull = std::unique_ptr<RooAbsReal>{fNullPdf->createNLL(
data, CloneData(
false), Constrain(*
allParams), GlobalObservables(fGlobalObs), ConditionalObservables(fConditionalObs))};
61 fNllNull->setData(
data,
false) ;
65 std::unique_ptr<RooArgSet>
attachedSet{fNllNull->getVariables()};
68 double nullNLL = fNllNull->getVal();
80 std::unique_ptr<RooArgSet>
allParams{fAltPdf->getParameters(
data)};
82 fNllAlt = std::unique_ptr<RooAbsReal>{fAltPdf->createNLL(
data, CloneData(
false), Constrain(*
allParams), GlobalObservables(fGlobalObs), ConditionalObservables(fConditionalObs))};
86 fNllAlt->setData(
data,
false) ;
89 attachedSet = std::unique_ptr<RooArgSet>{fNllAlt->getVariables()};
91 double altNLL = fNllAlt->getVal();
107 if( fDetailedOutputEnabled ) {
108 if( !fDetailedOutput ) {
109 fDetailedOutput = std::make_unique<RooArgSet>( *(
new RooRealVar(
"nullNLL",
"null NLL",0)),
"detailedOut_SLRTS" );
110 fDetailedOutput->add( *(
new RooRealVar(
"altNLL",
"alternate NLL",0)) );
112 fDetailedOutput->setRealValue(
"nullNLL",
nullNLL );
113 fDetailedOutput->setRealValue(
"altNLL",
altNLL );