#ifndef RooStats_ProfileLikelihoodCalculator
#include "RooStats/ProfileLikelihoodCalculator.h"
#endif
#ifndef RooStats_RooStatsUtils
#include "RooStats/RooStatsUtils.h"
#endif
#include "RooStats/LikelihoodInterval.h"
#include "RooStats/HypoTestResult.h"
#include "RooFitResult.h"
#include "RooRealVar.h"
#include "RooProfileLL.h"
#include "RooNLLVar.h"
#include "RooGlobalFunc.h"
ClassImp(RooStats::ProfileLikelihoodCalculator) ;
using namespace RooFit;
using namespace RooStats;
ProfileLikelihoodCalculator::ProfileLikelihoodCalculator() :
CombinedCalculator() {
}
ProfileLikelihoodCalculator::ProfileLikelihoodCalculator(RooWorkspace& ws, RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest,
Double_t size, RooArgSet* nullParams, RooArgSet* altParams) :
CombinedCalculator(ws,data,pdf, paramsOfInterest, size, nullParams, altParams)
{}
ProfileLikelihoodCalculator::ProfileLikelihoodCalculator(RooAbsData& data, RooAbsPdf& pdf, RooArgSet& paramsOfInterest,
Double_t size, RooArgSet* nullParams, RooArgSet* altParams):
CombinedCalculator(data,pdf, paramsOfInterest, size, nullParams, altParams)
{}
ProfileLikelihoodCalculator::~ProfileLikelihoodCalculator(){
}
ConfInterval* ProfileLikelihoodCalculator::GetInterval() const {
RooAbsPdf* pdf = fWS->pdf(fPdfName);
RooAbsData* data = fWS->data(fDataName);
if (!data || !pdf || !fPOI) return 0;
RooArgSet* constrainedParams = pdf->getParameters(*data);
RemoveConstantParameters(constrainedParams);
RooAbsReal* nll = pdf->createNLL(*data, CloneData(kTRUE), Constrain(*constrainedParams));
RooAbsReal* profile = nll->createProfile(*fPOI);
profile->addOwnedComponents(*nll) ;
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL) ;
profile->getVal();
RooMsgService::instance().setGlobalKillBelow(RooFit::DEBUG) ;
LikelihoodInterval* interval
= new LikelihoodInterval("LikelihoodInterval", profile, fPOI);
interval->SetConfidenceLevel(1.-fSize);
delete constrainedParams;
return interval;
}
HypoTestResult* ProfileLikelihoodCalculator::GetHypoTest() const {
RooAbsPdf* pdf = fWS->pdf(fPdfName);
RooAbsData* data = fWS->data(fDataName);
if (!data || !pdf) return 0;
RooArgSet* constrainedParams = pdf->getParameters(*data);
RemoveConstantParameters(constrainedParams);
RooFitResult* fit = pdf->fitTo(*data,Extended(kFALSE), Constrain(*constrainedParams),Strategy(0),Hesse(kFALSE),Save(kTRUE),PrintLevel(-1));
fit->Print();
Double_t NLLatMLE= fit->minNll();
TIter it = fNullParams->createIterator();
RooRealVar *myarg;
RooRealVar *mytarget;
while ((myarg = (RooRealVar *)it.Next())) {
if(!myarg) continue;
mytarget = fWS->var(myarg->GetName());
if(!mytarget) continue;
mytarget->setVal( myarg->getVal() );
mytarget->setConstant(kTRUE);
cout << "setting null parameter:" << endl;
mytarget->Print();
}
RooFitResult* fit2 = pdf->fitTo(*data,Extended(kFALSE),Constrain(*constrainedParams),Hesse(kFALSE),Strategy(0), Minos(kFALSE), Save(kTRUE),PrintLevel(-1));
Double_t NLLatCondMLE= fit2->minNll();
fit2->Print();
HypoTestResult* htr =
new HypoTestResult("ProfileLRHypoTestResult",
SignificanceToPValue(sqrt( 2*(NLLatCondMLE-NLLatMLE))), 0 );
delete constrainedParams;
return htr;
}
ProfileLikelihoodCalculator.cxx:1 ProfileLikelihoodCalculator.cxx:2 ProfileLikelihoodCalculator.cxx:3 ProfileLikelihoodCalculator.cxx:4 ProfileLikelihoodCalculator.cxx:5 ProfileLikelihoodCalculator.cxx:6 ProfileLikelihoodCalculator.cxx:7 ProfileLikelihoodCalculator.cxx:8 ProfileLikelihoodCalculator.cxx:9 ProfileLikelihoodCalculator.cxx:10 ProfileLikelihoodCalculator.cxx:11 ProfileLikelihoodCalculator.cxx:12 ProfileLikelihoodCalculator.cxx:13 ProfileLikelihoodCalculator.cxx:14 ProfileLikelihoodCalculator.cxx:15 ProfileLikelihoodCalculator.cxx:16 ProfileLikelihoodCalculator.cxx:17 ProfileLikelihoodCalculator.cxx:18 ProfileLikelihoodCalculator.cxx:19 ProfileLikelihoodCalculator.cxx:20 ProfileLikelihoodCalculator.cxx:21 ProfileLikelihoodCalculator.cxx:22 ProfileLikelihoodCalculator.cxx:23 ProfileLikelihoodCalculator.cxx:24 ProfileLikelihoodCalculator.cxx:25 ProfileLikelihoodCalculator.cxx:26 ProfileLikelihoodCalculator.cxx:27 ProfileLikelihoodCalculator.cxx:28 ProfileLikelihoodCalculator.cxx:29 ProfileLikelihoodCalculator.cxx:30 ProfileLikelihoodCalculator.cxx:31 ProfileLikelihoodCalculator.cxx:32 ProfileLikelihoodCalculator.cxx:33 ProfileLikelihoodCalculator.cxx:34 ProfileLikelihoodCalculator.cxx:35 ProfileLikelihoodCalculator.cxx:36 ProfileLikelihoodCalculator.cxx:37 ProfileLikelihoodCalculator.cxx:38 ProfileLikelihoodCalculator.cxx:39 ProfileLikelihoodCalculator.cxx:40 ProfileLikelihoodCalculator.cxx:41 ProfileLikelihoodCalculator.cxx:42 ProfileLikelihoodCalculator.cxx:43 ProfileLikelihoodCalculator.cxx:44 ProfileLikelihoodCalculator.cxx:45 ProfileLikelihoodCalculator.cxx:46 ProfileLikelihoodCalculator.cxx:47 ProfileLikelihoodCalculator.cxx:48 ProfileLikelihoodCalculator.cxx:49 ProfileLikelihoodCalculator.cxx:50 ProfileLikelihoodCalculator.cxx:51 ProfileLikelihoodCalculator.cxx:52 ProfileLikelihoodCalculator.cxx:53 ProfileLikelihoodCalculator.cxx:54 ProfileLikelihoodCalculator.cxx:55 ProfileLikelihoodCalculator.cxx:56 ProfileLikelihoodCalculator.cxx:57 ProfileLikelihoodCalculator.cxx:58 ProfileLikelihoodCalculator.cxx:59 ProfileLikelihoodCalculator.cxx:60 ProfileLikelihoodCalculator.cxx:61 ProfileLikelihoodCalculator.cxx:62 ProfileLikelihoodCalculator.cxx:63 ProfileLikelihoodCalculator.cxx:64 ProfileLikelihoodCalculator.cxx:65 ProfileLikelihoodCalculator.cxx:66 ProfileLikelihoodCalculator.cxx:67 ProfileLikelihoodCalculator.cxx:68 ProfileLikelihoodCalculator.cxx:69 ProfileLikelihoodCalculator.cxx:70 ProfileLikelihoodCalculator.cxx:71 ProfileLikelihoodCalculator.cxx:72 ProfileLikelihoodCalculator.cxx:73 ProfileLikelihoodCalculator.cxx:74 ProfileLikelihoodCalculator.cxx:75 ProfileLikelihoodCalculator.cxx:76 ProfileLikelihoodCalculator.cxx:77 ProfileLikelihoodCalculator.cxx:78 ProfileLikelihoodCalculator.cxx:79 ProfileLikelihoodCalculator.cxx:80 ProfileLikelihoodCalculator.cxx:81 ProfileLikelihoodCalculator.cxx:82 ProfileLikelihoodCalculator.cxx:83 ProfileLikelihoodCalculator.cxx:84 ProfileLikelihoodCalculator.cxx:85 ProfileLikelihoodCalculator.cxx:86 ProfileLikelihoodCalculator.cxx:87 ProfileLikelihoodCalculator.cxx:88 ProfileLikelihoodCalculator.cxx:89 ProfileLikelihoodCalculator.cxx:90 ProfileLikelihoodCalculator.cxx:91 ProfileLikelihoodCalculator.cxx:92 ProfileLikelihoodCalculator.cxx:93 ProfileLikelihoodCalculator.cxx:94 ProfileLikelihoodCalculator.cxx:95 ProfileLikelihoodCalculator.cxx:96 ProfileLikelihoodCalculator.cxx:97 ProfileLikelihoodCalculator.cxx:98 ProfileLikelihoodCalculator.cxx:99 ProfileLikelihoodCalculator.cxx:100 ProfileLikelihoodCalculator.cxx:101 ProfileLikelihoodCalculator.cxx:102 ProfileLikelihoodCalculator.cxx:103 ProfileLikelihoodCalculator.cxx:104 ProfileLikelihoodCalculator.cxx:105 ProfileLikelihoodCalculator.cxx:106 ProfileLikelihoodCalculator.cxx:107 ProfileLikelihoodCalculator.cxx:108 ProfileLikelihoodCalculator.cxx:109 ProfileLikelihoodCalculator.cxx:110 ProfileLikelihoodCalculator.cxx:111 ProfileLikelihoodCalculator.cxx:112 ProfileLikelihoodCalculator.cxx:113 ProfileLikelihoodCalculator.cxx:114 ProfileLikelihoodCalculator.cxx:115 ProfileLikelihoodCalculator.cxx:116 ProfileLikelihoodCalculator.cxx:117 ProfileLikelihoodCalculator.cxx:118 ProfileLikelihoodCalculator.cxx:119 ProfileLikelihoodCalculator.cxx:120 ProfileLikelihoodCalculator.cxx:121 ProfileLikelihoodCalculator.cxx:122 ProfileLikelihoodCalculator.cxx:123 ProfileLikelihoodCalculator.cxx:124 ProfileLikelihoodCalculator.cxx:125 ProfileLikelihoodCalculator.cxx:126 ProfileLikelihoodCalculator.cxx:127 ProfileLikelihoodCalculator.cxx:128 ProfileLikelihoodCalculator.cxx:129 ProfileLikelihoodCalculator.cxx:130 ProfileLikelihoodCalculator.cxx:131 ProfileLikelihoodCalculator.cxx:132 ProfileLikelihoodCalculator.cxx:133 ProfileLikelihoodCalculator.cxx:134 ProfileLikelihoodCalculator.cxx:135 ProfileLikelihoodCalculator.cxx:136 ProfileLikelihoodCalculator.cxx:137 ProfileLikelihoodCalculator.cxx:138 ProfileLikelihoodCalculator.cxx:139 ProfileLikelihoodCalculator.cxx:140 ProfileLikelihoodCalculator.cxx:141 ProfileLikelihoodCalculator.cxx:142 ProfileLikelihoodCalculator.cxx:143 ProfileLikelihoodCalculator.cxx:144 ProfileLikelihoodCalculator.cxx:145 ProfileLikelihoodCalculator.cxx:146 ProfileLikelihoodCalculator.cxx:147 ProfileLikelihoodCalculator.cxx:148 ProfileLikelihoodCalculator.cxx:149 ProfileLikelihoodCalculator.cxx:150 ProfileLikelihoodCalculator.cxx:151 ProfileLikelihoodCalculator.cxx:152 ProfileLikelihoodCalculator.cxx:153 ProfileLikelihoodCalculator.cxx:154 ProfileLikelihoodCalculator.cxx:155 ProfileLikelihoodCalculator.cxx:156 ProfileLikelihoodCalculator.cxx:157 ProfileLikelihoodCalculator.cxx:158 ProfileLikelihoodCalculator.cxx:159 ProfileLikelihoodCalculator.cxx:160 ProfileLikelihoodCalculator.cxx:161 ProfileLikelihoodCalculator.cxx:162 ProfileLikelihoodCalculator.cxx:163 ProfileLikelihoodCalculator.cxx:164 ProfileLikelihoodCalculator.cxx:165 ProfileLikelihoodCalculator.cxx:166 ProfileLikelihoodCalculator.cxx:167 ProfileLikelihoodCalculator.cxx:168 ProfileLikelihoodCalculator.cxx:169 ProfileLikelihoodCalculator.cxx:170 ProfileLikelihoodCalculator.cxx:171 ProfileLikelihoodCalculator.cxx:172 ProfileLikelihoodCalculator.cxx:173 ProfileLikelihoodCalculator.cxx:174 ProfileLikelihoodCalculator.cxx:175 ProfileLikelihoodCalculator.cxx:176 ProfileLikelihoodCalculator.cxx:177 ProfileLikelihoodCalculator.cxx:178 ProfileLikelihoodCalculator.cxx:179 ProfileLikelihoodCalculator.cxx:180 ProfileLikelihoodCalculator.cxx:181 ProfileLikelihoodCalculator.cxx:182