#ifndef ROOSTATS_MaxLikelihoodEstimateTestStat
#define ROOSTATS_MaxLikelihoodEstimateTestStat
#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif
#ifndef ROO_NLL_VAR
#include "RooNLLVar.h"
#endif
#include "RooFitResult.h"
#include "RooStats/TestStatistic.h"
#include "RooAbsPdf.h"
#include "RooRealVar.h"
namespace RooStats {
class MaxLikelihoodEstimateTestStat: public TestStatistic {
public:
MaxLikelihoodEstimateTestStat() :
fPdf(NULL),fParameter(NULL), fUpperLimit(true)
{
}
MaxLikelihoodEstimateTestStat(RooAbsPdf& pdf, RooRealVar& parameter) :
fPdf(&pdf),fParameter(¶meter), fUpperLimit(true)
{
}
virtual Double_t Evaluate(RooAbsData& data, RooArgSet& ) {
RooFit::MsgLevel msglevel = RooMsgService::instance().globalKillBelow();
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL);
RooAbsReal* nll = fPdf->createNLL(data, RooFit::CloneData(false));
RooAbsReal* profile = nll->createProfile(RooArgSet());
profile->getVal();
RooArgSet* vars = profile->getVariables();
RooMsgService::instance().setGlobalKillBelow(msglevel);
double ret = vars->getRealValue(fParameter->GetName());
delete vars;
delete nll;
delete profile;
return ret;
}
virtual const TString GetVarName() const {
TString varName = Form("Maximum Likelihood Estimate of %s",fParameter->GetName());
return varName;
}
virtual void PValueIsRightTail(bool isright) { fUpperLimit = isright; }
virtual bool PValueIsRightTail(void) const { return fUpperLimit; }
private:
RooAbsPdf *fPdf;
RooRealVar *fParameter;
bool fUpperLimit;
protected:
ClassDef(MaxLikelihoodEstimateTestStat,1)
};
}
#endif
MaxLikelihoodEstimateTestStat.h:1 MaxLikelihoodEstimateTestStat.h:2 MaxLikelihoodEstimateTestStat.h:3 MaxLikelihoodEstimateTestStat.h:4 MaxLikelihoodEstimateTestStat.h:5 MaxLikelihoodEstimateTestStat.h:6 MaxLikelihoodEstimateTestStat.h:7 MaxLikelihoodEstimateTestStat.h:8 MaxLikelihoodEstimateTestStat.h:9 MaxLikelihoodEstimateTestStat.h:10 MaxLikelihoodEstimateTestStat.h:11 MaxLikelihoodEstimateTestStat.h:12 MaxLikelihoodEstimateTestStat.h:13 MaxLikelihoodEstimateTestStat.h:14 MaxLikelihoodEstimateTestStat.h:15 MaxLikelihoodEstimateTestStat.h:16 MaxLikelihoodEstimateTestStat.h:17 MaxLikelihoodEstimateTestStat.h:18 MaxLikelihoodEstimateTestStat.h:19 MaxLikelihoodEstimateTestStat.h:20 MaxLikelihoodEstimateTestStat.h:21 MaxLikelihoodEstimateTestStat.h:22 MaxLikelihoodEstimateTestStat.h:23 MaxLikelihoodEstimateTestStat.h:24 MaxLikelihoodEstimateTestStat.h:25 MaxLikelihoodEstimateTestStat.h:26 MaxLikelihoodEstimateTestStat.h:27 MaxLikelihoodEstimateTestStat.h:28 MaxLikelihoodEstimateTestStat.h:29 MaxLikelihoodEstimateTestStat.h:30 MaxLikelihoodEstimateTestStat.h:31 MaxLikelihoodEstimateTestStat.h:32 MaxLikelihoodEstimateTestStat.h:33 MaxLikelihoodEstimateTestStat.h:34 MaxLikelihoodEstimateTestStat.h:35 MaxLikelihoodEstimateTestStat.h:36 MaxLikelihoodEstimateTestStat.h:37 MaxLikelihoodEstimateTestStat.h:38 MaxLikelihoodEstimateTestStat.h:39 MaxLikelihoodEstimateTestStat.h:40 MaxLikelihoodEstimateTestStat.h:41 MaxLikelihoodEstimateTestStat.h:42 MaxLikelihoodEstimateTestStat.h:43 MaxLikelihoodEstimateTestStat.h:44 MaxLikelihoodEstimateTestStat.h:45 MaxLikelihoodEstimateTestStat.h:46 MaxLikelihoodEstimateTestStat.h:47 MaxLikelihoodEstimateTestStat.h:48 MaxLikelihoodEstimateTestStat.h:49 MaxLikelihoodEstimateTestStat.h:50 MaxLikelihoodEstimateTestStat.h:51 MaxLikelihoodEstimateTestStat.h:52 MaxLikelihoodEstimateTestStat.h:53 MaxLikelihoodEstimateTestStat.h:54 MaxLikelihoodEstimateTestStat.h:55 MaxLikelihoodEstimateTestStat.h:56 MaxLikelihoodEstimateTestStat.h:57 MaxLikelihoodEstimateTestStat.h:58 MaxLikelihoodEstimateTestStat.h:59 MaxLikelihoodEstimateTestStat.h:60 MaxLikelihoodEstimateTestStat.h:61 MaxLikelihoodEstimateTestStat.h:62 MaxLikelihoodEstimateTestStat.h:63 MaxLikelihoodEstimateTestStat.h:64 MaxLikelihoodEstimateTestStat.h:65 MaxLikelihoodEstimateTestStat.h:66 MaxLikelihoodEstimateTestStat.h:67 MaxLikelihoodEstimateTestStat.h:68 MaxLikelihoodEstimateTestStat.h:69 MaxLikelihoodEstimateTestStat.h:70 MaxLikelihoodEstimateTestStat.h:71 MaxLikelihoodEstimateTestStat.h:72 MaxLikelihoodEstimateTestStat.h:73 MaxLikelihoodEstimateTestStat.h:74 MaxLikelihoodEstimateTestStat.h:75 MaxLikelihoodEstimateTestStat.h:76 MaxLikelihoodEstimateTestStat.h:77 MaxLikelihoodEstimateTestStat.h:78 MaxLikelihoodEstimateTestStat.h:79 MaxLikelihoodEstimateTestStat.h:80 MaxLikelihoodEstimateTestStat.h:81 MaxLikelihoodEstimateTestStat.h:82 MaxLikelihoodEstimateTestStat.h:83 MaxLikelihoodEstimateTestStat.h:84 MaxLikelihoodEstimateTestStat.h:85 MaxLikelihoodEstimateTestStat.h:86 MaxLikelihoodEstimateTestStat.h:87 MaxLikelihoodEstimateTestStat.h:88 MaxLikelihoodEstimateTestStat.h:89 MaxLikelihoodEstimateTestStat.h:90 MaxLikelihoodEstimateTestStat.h:91 MaxLikelihoodEstimateTestStat.h:92 MaxLikelihoodEstimateTestStat.h:93 MaxLikelihoodEstimateTestStat.h:94 MaxLikelihoodEstimateTestStat.h:95 MaxLikelihoodEstimateTestStat.h:96 MaxLikelihoodEstimateTestStat.h:97 MaxLikelihoodEstimateTestStat.h:98 MaxLikelihoodEstimateTestStat.h:99 MaxLikelihoodEstimateTestStat.h:100 MaxLikelihoodEstimateTestStat.h:101 MaxLikelihoodEstimateTestStat.h:102 MaxLikelihoodEstimateTestStat.h:103 MaxLikelihoodEstimateTestStat.h:104 MaxLikelihoodEstimateTestStat.h:105 MaxLikelihoodEstimateTestStat.h:106 MaxLikelihoodEstimateTestStat.h:107 MaxLikelihoodEstimateTestStat.h:108 MaxLikelihoodEstimateTestStat.h:109 MaxLikelihoodEstimateTestStat.h:110 MaxLikelihoodEstimateTestStat.h:111