1 #ifndef HiggsAnalysis_CombinedLimit_SimplerLikelihoodRatioTestStatExt_h
2 #define HiggsAnalysis_CombinedLimit_SimplerLikelihoodRatioTestStatExt_h
27 #include <RooAbsPdf.h>
28 #include <RooAbsData.h>
29 #include <RooSimultaneous.h>
30 #include <RooArgSet.h>
31 #include <RooStats/TestStatistic.h>
41 SimplerLikelihoodRatioTestStatOpt(
const RooArgSet &obs, RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt,
const RooArgSet & paramsNull = RooArgSet(),
const RooArgSet & paramsAlt = RooArgSet(),
bool factorize=
true) ;
45 virtual Double_t
Evaluate(RooAbsData&
data, RooArgSet& nullPOI) ;
48 return TString::Format(
"-log(%s/%s)",
pdfNull_->GetName(),
pdfAlt_->GetName());
79 class SimplerLikelihoodRatioTestStatExt :
public RooStats::TestStatistic {
81 SimplerLikelihoodRatioTestStatExt(
const RooArgSet &obs, RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt,
const RooArgSet & paramsNull = RooArgSet(),
const RooArgSet & paramsAlt = RooArgSet()) ;
83 virtual ~SimplerLikelihoodRatioTestStatExt() ;
85 virtual Double_t Evaluate(RooAbsData&
data, RooArgSet& nullPOI) ;
87 virtual const TString GetVarName()
const {
88 return TString::Format(
"-log(%s/%s)", pdfNull_->GetName(), pdfAlt_->GetName());
92 RooAbsPdf *pdfNull_, *pdfAlt_;
93 RooArgSet snapNull_, snapAlt_;
94 std::auto_ptr<RooArgSet> paramsNull_, paramsAlt_;
95 std::auto_ptr<RooAbsPdf> pdfNullOwned_, pdfAltOwned_;
RooArgList pdfDepObs_
nodes which depend directly on observables, on which one has to do redirectServers ...
std::auto_ptr< RooArgSet > paramsAlt_
double evalSimNLL(RooAbsData &data, RooSimultaneous *pdf, std::vector< RooAbsPdf * > &components)
std::vector< RooAbsPdf * > simPdfComponentsNull_
components of the sim pdfs after factorization, for each bin in sim. category. can contain nulls ...
std::vector< RooAbsPdf * > simPdfComponentsAlt_
std::auto_ptr< RooAbsPdf > pdfNullOwned_
owned copy of the pdfs after factorizing
virtual ~SimplerLikelihoodRatioTestStatOpt()
RooAbsPdf * pdfNull_
pdfs (cloned, and with constraints factorized away)
RooArgSet snapNull_
snapshots of parameters for the two pdfs
RooSimultaneous * simPdfNull_
pdfNull, pdfAlt cast to sympdf (may be null) after factorization
const RooArgSet * obs_
observables (global argset)
RooSimultaneous * simPdfAlt_
RooArgSet pdfCompNull_
snapshot with all branch nodes of the pdfs before factorization
virtual Double_t Evaluate(RooAbsData &data, RooArgSet &nullPOI)
SimplerLikelihoodRatioTestStatOpt(const RooArgSet &obs, RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt, const RooArgSet ¶msNull=RooArgSet(), const RooArgSet ¶msAlt=RooArgSet(), bool factorize=true)
std::auto_ptr< RooArgSet > paramsNull_
parameter sets to apply snapshots to
double evalSimpleNLL(RooAbsData &data, RooAbsPdf *pdf)
std::auto_ptr< RooAbsPdf > pdfAltOwned_
char data[epos_bytes_allocation]
void unrollSimPdf(RooSimultaneous *pdf, std::vector< RooAbsPdf * > &out)
virtual const TString GetVarName() const