14#if !defined(R__ALPHA) && !defined(R__SOLARIS) && !defined(R__ACC) && !defined(R__FBSD)
41 double sb2 = sigma_b*sigma_b;
46 double bpsb2 =
b + sb2;
49 double za2 = 2.*( (spb)*
std::log( ( spb)*(bpsb2)/(b2+ spb*sb2) ) -
50 (b2/sb2) *
std::log(1. + ( sb2 *
s)/(
b * bpsb2) ) );
72 const std::type_info &
id =
typeid(pdf);
76 for (
int i = 0,
n = list.
getSize(); i <
n; ++i) {
91 for (
int ic = 0, nc = cat->
numBins((
const char *)0); ic < nc; ++ic) {
95 if (catPdf != 0)
FactorizePdf(observables, *catPdf, obsTerms, constraints);
101 if (!constraints.
contains(pdf)) constraints.
add(pdf);
121 if(constraints.
getSize() == 0) {
122 oocoutW((
TObject *)0,
Eval) <<
"RooStatsUtils::MakeNuisancePdf - no constraints found on nuisance parameters in the input model" << endl;
124 }
else if(constraints.
getSize() == 1) {
140 const std::type_info &
id =
typeid(pdf);
147 for (
int i = 0,
n = list.
getSize(); i <
n; ++i) {
150 if(newPdfi != NULL) newList.
add(*newPdfi);
153 if(newList.
getSize() == 0)
return NULL;
166 assert(uPdf != NULL); assert(extended_term != NULL); assert(iter->
Next() == NULL);
170 if(newUPdf == NULL)
return NULL;
180 for (
int ic = 0, nc = cat->
numBins((
const char *)NULL); ic < nc; ++ic) {
186 if (newPdf == NULL) {
delete cat;
return NULL; }
187 pdfList.
add(*newPdf);
203 if(!unconstrainedPdf) {
204 oocoutE((
TObject *)NULL,
InputArguments) <<
"RooStats::MakeUnconstrainedPdf - invalid observable list passed (observables not found in original pdf) or invalid pdf passed (without observables)" << endl;
208 return unconstrainedPdf;
214 oocoutE((
TObject *)NULL,
InputArguments) <<
"RooStatsUtils::MakeUnconstrainedPdf - invalid input model: missing pdf and/or observables" << endl;
223 std::map<TString, Double_t> fVarVals;
227 BranchStore(
const vector <TString> ¶ms = vector <TString>(),
double _inval = -999.) : fTree(0) {
229 for(
unsigned int i = 0;i<params.size();i++)
230 fVarVals[params[i]] = _inval;
235 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();++it) {
242 void AssignToTTree(
TTree &myTree) {
244 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();++it) {
250 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();++it) {
252 fVarVals[
name] = fInval;
259 return new BranchStore;
279 return new BranchStore(V);
284 bs->AssignToTTree(myTree);
286 for(
int entry = 0;entry<data.
numEntries();entry++) {
321 for (
int i = 0; i<
l.getSize(); ++i) {
#define NamespaceImp(name)
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
Bool_t dependsOn(const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0, Bool_t valueOnly=kFALSE) const
Test whether we depend on (ie, are served by) any object in the specified collection.
virtual TObject * Clone(const char *newname=0) const
Make a clone of an object using the Streamer facility.
TIterator * serverIterator() const R__SUGGEST_ALTERNATIVE("Use servers() and begin()
virtual TObject * clone(const char *newname=0) const =0
void SetName(const char *name)
Set the name of the TNamed.
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
virtual void setBin(Int_t ibin, const char *rangeName=0)
Set category to i-th fit bin, which is the i-th registered state.
virtual Int_t numBins(const char *rangeName) const
Returm the number of fit bins ( = number of types )
virtual const char * getLabel() const
Return label string of current state.
Bool_t contains(const RooAbsArg &var) const
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
RooAbsArg * first() const
RooLinkedListIter iterator(Bool_t dir=kIterForward) const R__SUGGEST_ALTERNATIVE("begin()
TIterator-style iteration over contained elements.
TIterator * createIterator(Bool_t dir=kIterForward) const R__SUGGEST_ALTERNATIVE("begin()
TIterator-style iteration over contained elements.
virtual Int_t numEntries() const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooDataSet is a container class to hold unbinned data.
virtual const RooArgSet * get(Int_t index) const override
Return RooArgSet with coordinates of event 'index'.
RooExtendPdf is a wrapper around an existing PDF that adds a parameteric extended likelihood term to ...
A wrapper around TIterator derivatives.
TObject * Next() override
RooProdPdf is an efficient implementation of a product of PDFs of the form.
const RooArgList & pdfList() const
RooRealVar represents a variable that can be changed from the outside.
Double_t getAsymErrorLo() const
Bool_t hasAsymError(Bool_t allowZero=kTRUE) const
Double_t getAsymErrorHi() const
virtual Double_t getValV(const RooArgSet *nset=0) const
Return value of variable.
Bool_t hasError(Bool_t allowZero=kTRUE) const
Double_t getError() const
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
const RooAbsCategoryLValue & indexCat() const
RooAbsPdf * getPdf(const char *catName) const
Return the p.d.f associated with the given index category name.
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
const RooArgSet * GetObservables() const
get RooArgSet for observables (return NULL if not existing)
RooAbsPdf * GetPdf() const
get model PDF (return NULL if pdf has not been specified or does not exist)
A TTree is a list of TBranches.
virtual void ResetAddress()
Reset the address of the branch.
Iterator abstract base class.
virtual TObject * Next()=0
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
A TTree represents a columnar dataset.
virtual Int_t Fill()
Fill all branches.
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.
Namespace for the RooStats classes.
Double_t AsimovSignificance(Double_t s, Double_t b, Double_t sigma_b=0.0)
Compute the Asimov Median significance for a Poisson process with s = expected number of signal event...
TTree * GetAsTTree(TString name, TString desc, const RooDataSet &data)
RooAbsPdf * MakeUnconstrainedPdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name=NULL)
void FillTree(TTree &myTree, const RooDataSet &data)
BranchStore * CreateBranchStore(const RooDataSet &data)
RooAbsPdf * StripConstraints(RooAbsPdf &pdf, const RooArgSet &observables)
RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name)
void FactorizePdf(const RooArgSet &observables, RooAbsPdf &pdf, RooArgList &obsTerms, RooArgList &constraints)
RooStatsConfig & GetGlobalRooStatsConfig()
Retrieve the config object which can be used to set flags for things like offsetting the likelihood o...
void UseNLLOffset(bool on)
Use an offset in NLL calculations.
bool IsNLLOffset()
Test of RooStats should by default offset NLL calculations.
void PrintListContent(const RooArgList &l, std::ostream &os=std::cout)
static constexpr double s