14 #if !defined(R__ALPHA) && !defined(R__SOLARIS) && !defined(R__ACC) && !defined(R__FBSD) 40 double sb2 = sigma_b*sigma_b;
45 double bpsb2 = b + sb2;
48 double za2 = 2.*( (spb)*
std::log( ( spb)*(bpsb2)/(b2+ spb*sb2) ) -
49 (b2/sb2) *
std::log(1. + ( sb2 * s)/(b * bpsb2) ) );
54 double za2 = 2.*( (s+
b) *
std::log(1. + s/b) -s );
71 const std::type_info &
id =
typeid(pdf);
75 for (
int i = 0,
n = list.getSize(); i <
n; ++i) {
90 for (
int ic = 0, nc = cat->
numBins((
const char *)0); ic < nc; ++ic) {
94 if (catPdf != 0)
FactorizePdf(observables, *catPdf, obsTerms, constraints);
100 if (!constraints.
contains(pdf)) constraints.
add(pdf);
120 if(constraints.
getSize() == 0) {
121 oocoutW((
TObject *)0,
Eval) <<
"RooStatsUtils::MakeNuisancePdf - no constraints found on nuisance parameters in the input model" << endl;
123 }
else if(constraints.
getSize() == 1) {
139 const std::type_info &
id =
typeid(pdf);
146 for (
int i = 0,
n = list.getSize(); i <
n; ++i) {
149 if(newPdfi !=
NULL) newList.add(*newPdfi);
152 if(newList.getSize() == 0)
return NULL;
154 else if(newList.getSize() == 1)
return dynamic_cast<RooAbsPdf *>(newList.at(0)->clone(
TString::Format(
"%s_unconstrained",
155 newList.at(0)->GetName())));
165 assert(uPdf !=
NULL); assert(extended_term !=
NULL); assert(iter->
Next() ==
NULL);
179 for (
int ic = 0, nc = cat->
numBins((
const char *)
NULL); ic < nc; ++ic) {
185 if (newPdf ==
NULL) {
delete cat;
return NULL; }
186 pdfList.
add(*newPdf);
202 if(!unconstrainedPdf) {
203 oocoutE((
TObject *)
NULL,
InputArguments) <<
"RooStats::MakeUnconstrainedPdf - invalid observable list passed (observables not found in original pdf) or invalid pdf passed (without observables)" << endl;
207 return unconstrainedPdf;
222 std::map<TString, Double_t> fVarVals;
226 BranchStore(
const vector <TString> ¶ms = vector <TString>(),
double _inval = -999.) : fTree(0) {
228 for(
unsigned int i = 0;i<params.size();i++)
229 fVarVals[params[i]] = _inval;
234 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();it++) {
235 TBranch *br = fTree->GetBranch( it->first );
241 void AssignToTTree(TTree &myTree) {
243 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();it++) {
244 const TString&
name = it->first;
245 myTree.Branch( name, &fVarVals[name],
TString::Format(
"%s/D", name.Data()));
249 for(std::map<TString, Double_t>::iterator it = fVarVals.begin();it!=fVarVals.end();it++) {
250 const TString&
name = it->first;
251 fVarVals[
name] = fInval;
258 return new BranchStore;
278 return new BranchStore(V);
283 bs->AssignToTTree(myTree);
285 for(
int entry = 0;entry<data.
numEntries();entry++) {
310 TTree* myTree =
new TTree(name, desc);
320 for (
int i = 0; i< l.
getSize(); ++i) {
virtual const char * GetTitle() const
Returns title of object.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
RooAbsPdf * GetPdf() const
get model PDF (return NULL if pdf has not been specified or does not exist)
TIterator * serverIterator() const
Bool_t hasError(Bool_t allowZero=kTRUE) const
RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name)
RooProdPdf is an efficient implementation of a product of PDFs of the form.
const RooAbsCategoryLValue & indexCat() const
Bool_t contains(const RooAbsArg &var) const
virtual TObject * clone(const char *newname=0) const =0
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 * getPdf(const char *catName) const
Return the p.d.f associated with the given index category name.
Iterator abstract base class.
void FactorizePdf(const RooArgSet &observables, RooAbsPdf &pdf, RooArgList &obsTerms, RooArgList &constraints)
RooAbsArg * first() const
RooAbsPdf * StripConstraints(RooAbsPdf &pdf, const RooArgSet &observables)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
TIterator * createIterator(Bool_t dir=kIterForward) const
std::vector< std::vector< double > > Data
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
RooRealVar represents a fundamental (non-derived) real valued object.
RooAbsPdf * MakeUnconstrainedPdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name=NULL)
Bool_t hasAsymError(Bool_t allowZero=kTRUE) const
virtual Int_t numBins(const char *rangeName) const
Returm the number of fit bins ( = number of types )
virtual Int_t numEntries() const
BranchStore * CreateBranchStore(const RooDataSet &data)
void SetName(const char *name)
Set the name of the TNamed.
void PrintListContent(const RooArgList &l, std::ostream &os=std::cout)
#define NamespaceImp(name)
virtual const char * GetName() const
Returns name of object.
RooDataSet is a container class to hold unbinned data.
Double_t getAsymErrorHi() const
void UseNLLOffset(bool on)
const RooArgSet * GetObservables() const
get RooArgSet for observables (return NULL if not existing)
Namespace for the RooStats classes.
virtual void ResetAddress()
Reset the address of the branch.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
virtual TObject * Clone(const char *newname=0) const
Make a clone of an object using the Streamer facility.
virtual void printName(std::ostream &os) const
Return collection name.
Mother of all ROOT objects.
Double_t getAsymErrorLo() const
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
void FillTree(TTree &myTree, const RooDataSet &data)
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 TObject * Next()=0
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
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 const char * getLabel() const
Return label string of current state.
RooLinkedListIter iterator(Bool_t dir=kIterForward) const
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
const RooArgList & pdfList() const
A TTree is a list of TBranches.
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset...
virtual const RooArgSet * get(Int_t index) const
Return RooArgSet with coordinates of event 'index'.
virtual void printValue(std::ostream &os) const
Print value of collection, i.e.
RooLinkedListIter is the TIterator implementation for RooLinkedList.
Double_t getError() const
virtual Double_t getValV(const RooArgSet *nset=0) const
Return value of variable.