CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/HiggsAnalysis/CombinedLimit/interface/ProfiledLikelihoodRatioTestStat.h

Go to the documentation of this file.
00001 #ifndef HiggsAnalysis_CombinedLimit_ProfiledLikelihoodRatioTestStat_h
00002 #define HiggsAnalysis_CombinedLimit_ProfiledLikelihoodRatioTestStat_h
00003 
00004 #include <memory>
00005 #include <RooAbsPdf.h>
00006 #include <RooAbsData.h>
00007 #include <RooArgSet.h>
00008 #include <RooStats/TestStatistic.h>
00009 
00010 class ProfiledLikelihoodRatioTestStat : public RooStats::TestStatistic {
00011     public:
00012         ProfiledLikelihoodRatioTestStat(RooAbsPdf &pdfNull, RooAbsPdf &pdfAlt, const RooArgSet *nuisances, const RooArgSet & paramsNull = RooArgSet(), const RooArgSet & paramsAlt = RooArgSet()) : 
00013             pdfNull_(&pdfNull), pdfAlt_(&pdfAlt),
00014             paramsNull_(pdfNull_->getVariables()), 
00015             paramsAlt_(pdfAlt_->getVariables()) 
00016         {
00017             snapNull_.addClone(paramsNull);
00018             snapAlt_.addClone(paramsAlt);
00019             if (nuisances) nuisances_.addClone(*nuisances);
00020         }
00021 
00022         virtual Double_t Evaluate(RooAbsData& data, RooArgSet& nullPOI) ;
00023 
00024         virtual const TString GetVarName() const {
00025             return TString::Format("-log(%s/%s)", pdfNull_->GetName(), pdfAlt_->GetName()); 
00026         }
00027 
00028     private:
00029         RooAbsPdf *pdfNull_, *pdfAlt_;
00030         RooArgSet snapNull_, snapAlt_; 
00031         RooArgSet nuisances_; 
00032         std::auto_ptr<RooArgSet> paramsNull_, paramsAlt_;
00033 }; // TestSimpleStatistics
00034 
00035 
00036 #endif