CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SimplerLikelihoodRatioTestStat.h
Go to the documentation of this file.
1 #ifndef HiggsAnalysis_CombinedLimit_SimplerLikelihoodRatioTestStat_h
2 #define HiggsAnalysis_CombinedLimit_SimplerLikelihoodRatioTestStat_h
3 #include <memory>
4 #include <stdexcept>
5 
6 #include <RooAbsPdf.h>
7 #include <RooAbsData.h>
8 #include <RooArgSet.h>
9 #include <RooStats/TestStatistic.h>
10 
11 class SimplerLikelihoodRatioTestStat : public RooStats::TestStatistic {
12  public:
13  SimplerLikelihoodRatioTestStat(RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt, const RooArgSet & paramsNull = RooArgSet(), const RooArgSet & paramsAlt = RooArgSet()) :
14  pdfNull_(&pdfNull), pdfAlt_(&pdfAlt),
15  paramsNull_(pdfNull_->getVariables()),
16  paramsAlt_(pdfAlt_->getVariables())
17  {
18  snapNull_.addClone(paramsNull);
19  snapAlt_.addClone(paramsAlt);
20  }
21 
22  virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullPOI)
23  {
24  if (data.numEntries() != 1) throw std::invalid_argument("HybridNew::TestSimpleStatistics: dataset doesn't have exactly 1 entry.");
25  const RooArgSet *entry = data.get(0);
26  *paramsNull_ = *entry;
28  *paramsNull_ = nullPOI;
29  double nullNLL = pdfNull_->getVal();
30 
31  *paramsAlt_ = *entry;
33  double altNLL = pdfAlt_->getVal();
34 
35  return -log(nullNLL/altNLL);
36  }
37 
38  virtual const TString GetVarName() const {
39  return TString::Format("-log(%s/%s)", pdfNull_->GetName(), pdfAlt_->GetName());
40  }
41 
42  private:
43  RooAbsPdf *pdfNull_, *pdfAlt_;
44  RooArgSet snapNull_, snapAlt_;
45  std::auto_ptr<RooArgSet> paramsNull_, paramsAlt_;
46 }; // TestSimpleStatistics
47 
48 #endif
virtual const TString GetVarName() const
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
virtual Double_t Evaluate(RooAbsData &data, RooArgSet &nullPOI)
SimplerLikelihoodRatioTestStat(RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt, const RooArgSet &paramsNull=RooArgSet(), const RooArgSet &paramsAlt=RooArgSet())
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82