12 #ifndef ROOSTATS_MinNLLTestStat
13 #define ROOSTATS_MinNLLTestStat
53 class MinNLLTestStat :
public TestStatistic{
60 MinNLLTestStat(RooAbsPdf& pdf) {
61 fProflts =
new ProfileLikelihoodTestStat(pdf);
64 MinNLLTestStat(
const MinNLLTestStat& rhs) : TestStatistic(rhs), fProflts(0) {
65 RooAbsPdf * pdf = rhs.fProflts->GetPdf();
66 if (pdf) fProflts =
new ProfileLikelihoodTestStat(*pdf);
69 MinNLLTestStat & operator=(
const MinNLLTestStat& rhs) {
70 if (
this == &rhs)
return *
this;
71 RooAbsPdf * pdf = rhs.fProflts->GetPdf();
72 if (fProflts)
delete fProflts;
74 if (pdf) fProflts =
new ProfileLikelihoodTestStat(*pdf);
78 virtual ~MinNLLTestStat() {
82 void SetOneSided(Bool_t flag=
true) {fProflts->SetOneSided(flag);}
83 void SetOneSidedDiscovery(Bool_t flag=
true) {fProflts->SetOneSidedDiscovery(flag);}
84 void SetReuseNLL(Bool_t flag) { fProflts->SetReuseNLL(flag); }
85 void SetMinimizer(
const char* minimizer){ fProflts->SetMinimizer(minimizer); }
86 void SetStrategy(Int_t strategy){ fProflts->SetStrategy(strategy); }
87 void SetTolerance(
double tol){ fProflts->SetTolerance(tol); }
88 void SetPrintLevel(Int_t printlevel){ fProflts->SetPrintLevel(printlevel); }
89 void SetLOffset(Bool_t flag=kTRUE) { fProflts->SetLOffset(flag) ; }
92 virtual Double_t Evaluate(RooAbsData& data, RooArgSet& paramsOfInterest) {
93 return fProflts->EvaluateProfileLikelihood(1, data, paramsOfInterest);
96 virtual void EnableDetailedOutput(
bool e=
true ) { fProflts->EnableDetailedOutput(e); }
98 virtual const RooArgSet* GetDetailedOutput(
void)
const {
104 return fProflts->GetDetailedOutput();
107 virtual void SetVarName(
const char* name) { fProflts->SetVarName(name); }
109 virtual const TString GetVarName()
const {
return fProflts->GetVarName(); }
112 ProfileLikelihoodTestStat* fProflts;
115 ClassDef(MinNLLTestStat,1)