
ProfileLikelihoodTestStat is an implementation of the TestStatistic interface that calculates the profile likelihood ratio at a particular parameter point given a dataset. It does not constitute a statistical test, for that one may either use:
| RooFitResult* | GetMinNLL() |
| const RooArgSet* | fCachedBestFitParams | |
| RooArgSet | fConditionalObs | conditional observables |
| RooArgSet* | fDetailedOutput | ! |
| bool | fDetailedOutputEnabled | |
| bool | fDetailedOutputWithErrorsAndPulls | |
| Bool_t | fLOffset | |
| RooAbsData* | fLastData | |
| RooStats::ProfileLikelihoodTestStat::LimitType | fLimitType | |
| TString | fMinimizer | |
| RooAbsReal* | fNll | ! |
| RooAbsPdf* | fPdf | |
| Int_t | fPrintLevel | |
| Bool_t | fReuseNll | |
| Bool_t | fSigned | |
| Int_t | fStrategy | |
| Double_t | fTolerance | |
| TString | fVarName | |
| static Bool_t | fgAlwaysReuseNll |

LM use default copy constructor and assignment copying the pointers. Is this what we want ?
{fLimitType = (flag ? oneSided : twoSided);}void SetOneSidedDiscovery(Bool_t flag=true) {fOneSidedDiscovery = flag;}
{fSigned = flag;}Main interface to evaluate the test statistic on a dataset
Returns detailed output. The value returned by this function is updated after each call to Evaluate(). The returned RooArgSet contains the following: <ul> <li> the minimum nll, fitstatus and convergence quality for each fit </li> <li> for each fit and for each non-constant parameter, the value, error and pull of the parameter are stored </li> </ul>
set the conditional observables which will be used when creating the NLL so the pdf's will not be normalized on the conditional observables when computing the NLL
{fConditionalObs.removeAll(); fConditionalObs.add(set);}const bool PValueIsRightTail(void) { return false; } // overwrites default