69 static char *strtok_r(
char *s1,
const char *s2,
char **lasts)
75 while(*s1 && strchr(s2, *s1))
80 while(*s1 && !strchr(s2, *s1))
125 _pdfList(
"!pdfs",
"List of PDFs",this),
160 _pdfList(
"!pdfs",
"List of PDFs",this),
181 <<
") multiple components with extended terms detected,"
182 <<
" product will not be extendible." << endl ;
215 _pdfList(
"!pdfs",
"List of PDFs",this),
223 Int_t numExtended(0) ;
228 << arg->
GetName() <<
" is not a PDF, ignored" << endl ;
245 <<
") WARNING: multiple components with extended terms detected,"
246 <<
" product will not be extendible." << endl ;
290 _pdfList(
"!pdfs",
"List of PDFs",this),
320 _pdfList(
"!pdfList",
"List of PDFs",this),
346 _pdfList(
"!pdfs",
"List of PDFs",this),
363 _cacheMgr(other._cacheMgr,this),
364 _genCode(other._genCode),
365 _cutOff(other._cutOff),
366 _pdfList(
"!pdfs",this,other._pdfList),
367 _extendedIndex(other._extendedIndex),
368 _useDefaultGen(other._useDefaultGen),
369 _refRangeName(other._refRangeName),
370 _selfNorm(other._selfNorm),
371 _defNormSet(other._defNormSet)
392 Int_t numExtended(0) ;
414 if (0 == strcmp(carg->
GetName(),
"Conditional")) {
426 tmp->
setName(0 == argType ?
"nset" :
"cset") ;
436 }
else if (0 != strlen(carg->
GetName())) {
444 <<
") WARNING: multiple components with extended terms detected,"
445 <<
" product will not be extendible." << endl ;
510 normSet = (
RooArgSet*) nlIter.next(); partInt && normSet;
513 const Double_t piVal = partInt->
getVal(normSet->getSize() > 0 ? normSet : 0);
516 if (value <=
_cutOff) {
break; }
534 cxcoutD(
Eval) <<
"RooProdPdf::calculate(" <<
GetName() <<
") rearranged product calculation"
552 const Double_t piVal = partInt->
getVal(normSet->getSize() > 0 ? normSet : 0);
587 (pdfNSetOrig = (
RooArgSet*) nIter.next(),
592 if (0 == strcmp(
"nset", pdfNSetOrig->
GetName())) {
595 }
else if (0 == strcmp(
"cset", pdfNSetOrig->
GetName())) {
598 pdfCSet = pdfNSetOrig;
612 pdfAllDeps.
add(*tmp);
622 pdfNormDeps.
add(*tmp2);
626 pdfNormDeps.
add(pdfAllDeps);
649 (termNormDeps = (
RooArgSet*) ldIter.next(),
650 termAllDeps = (
RooArgSet*) laIter.next(),
668 termIntDeps =
new RooArgSet(
"termIntDeps");
671 if (!termIntNoNormDeps) {
672 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
674 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
685 termNormDeps =
new RooArgSet(
"termNormDeps");
686 termAllDeps =
new RooArgSet(
"termAllDeps");
687 termIntDeps =
new RooArgSet(
"termIntDeps");
688 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
694 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
697 normList.
Add(termNormDeps);
698 depAllList.
Add(termAllDeps);
699 intList.
Add(termIntDeps);
700 depIntNoNormList.
Add(termIntNoNormDeps);
707 if (pdfCSet != pdfNSetOrig) {
713 RooArgSet *normDeps, *allDeps, *intNoNormDeps;
720 intNoNormDeps = (
RooArgSet*) innIter.next(),
737 depIntNoNormList.
Delete();
753 Int_t& code,
const char* isetRangeName)
const
761 Int_t sterileIdx(-1);
798 map<string, RooArgSet> ratioTerms;
808 RooArgSet termNSet(*norm), termImpSet(*imps);
819 RooFIter niter = termNSet.fwdIterator();
835 if (!rangeIdentical || 1) {
838 ostringstream str; termImpSet.
printValue(str);
840 ratioTerms[str.str()].add(*ratio);
855 RooArgSet termNSet(*norm), termImpSet(*imps);
861 RooFIter niter = termNSet.fwdIterator();
876 if (!rangeIdentical || 1) {
879 ostringstream str; termImpSet.
printValue(str);
880 ratioTerms[str.str()].add(*ratio);
898 RooArgSet termNSet(*norm), termImpSet(*imps);
901 ostringstream str; termNSet.printValue(str);
902 if (ratioTerms[str.str()].getSize() > 0) {
904 term->
add(ratioTerms[str.str()]);
914 RooArgSet termNSet(*norm), termImpSet(*imps);
917 ostringstream str; termNSet.printValue(str);
918 if (ratioTerms[str.str()].getSize() > 0) {
920 term->
add(ratioTerms[str.str()]);
941 RooArgSet termNSet, termISet, termXSet, termImpSet;
944 termISet.
add(*integ);
948 termXSet.
add(*xdeps);
949 termImpSet.
add(*imps);
958 vector<RooAbsReal*>
func =
processProductTerm(nset, iset, isetRangeName, term, termNSet, termISet, isOwned);
973 RooArgSet compTermSet, compTermNorm, compTermNum, compTermDen;
984 RooArgSet termNSet, termISet, termXSet, termImpSet;
985 termISet.
add(*integ);
987 termXSet.
add(*xdeps);
988 termImpSet.
add(*imps);
1003 compTermSet.
add(*func[0]);
1007 compTermNum.
add(*func[1]);
1008 compTermDen.
add(*func[2]);
1027 const std::string prodname =
makeRGPPName(
"SPECPROD", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1031 const std::string intname =
makeRGPPName(
"SPECINT", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1040 RooProduct* prodtmp_num =
new RooProduct(prodname_num.c_str(), prodname_num.c_str(), compTermNum);
1046 RooProduct* prodtmp_den =
new RooProduct(prodname_den.c_str(), prodname_den.c_str(), compTermDen);
1051 string name =
Form(
"SPEC_RATIO(%s,%s)", prodname_num.c_str(), prodname_den.c_str());
1134 list<string> rangeComps ;
1139 char* token = strtok_r(buf,
",",&save) ;
1141 rangeComps.push_back(token) ;
1142 token = strtok_r(0,
",",&save) ;
1148 map<string,RooArgSet> denListList ;
1150 string specIntRange ;
1195 nomList.
add(*funcCust) ;
1197 nomList.
add(*func) ;
1218 origNumTerm.
add(*arg) ;
1226 nomList.
add(origNumTerm) ;
1233 for (list<string>::iterator
iter = rangeComps.begin() ;
iter != rangeComps.end() ; ++
iter) {
1255 RooFIter piter = comps.fwdIterator() ;
1279 partCust = cust.
build() ;
1284 partCust = cust.
build() ;
1294 string name =
Form(
"%s_divided_by_ratio",specializedPartCust->
GetName()) ;
1297 denListList[*
iter].add(*specIntFinal) ;
1318 tmp.add(*specRatio) ;
1330 throw string(
"this should not happen") ;
1334 string name =
Form(
"%s_divided_by_ratio",specInt->GetName()) ;
1336 denListList[*
iter].add(*specIntFinal) ;
1358 for (map<string,RooArgSet>::iterator
iter = denListList.begin() ;
iter != denListList.end() ; ++
iter) {
1363 products.add(*prod_comp) ;
1369 if (specIntDeps.
getSize()>0) {
1378 numerator = numtmp ;
1457 groupedTerms.
Add(group) ;
1478 outerIntDeps.
add(*tmp) ;
1505 if (termNormDeps->
contains(*outerIntDep) ||
1506 termIntDeps->
contains(*outerIntDep) ||
1507 termImpDeps->
contains(*outerIntDep)) {
1522 newGroup->
Add(term2) ;
1526 groupedTerms.
Remove(group) ;
1532 groupedTerms.
Add(newGroup) ;
1558 vector<RooAbsReal*> ret(3) ; ret[0] = 0 ; ret[1] = 0 ; ret[2] = 0 ;
1574 if (nset && termNSet.
getSize()==0) {
1582 if (iset && termISet.
getSize()>0) {
1613 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1640 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1673 name.Append(
"_NORM[") ;
1720 coutE(
Eval) <<
"RooProdPdf::processProductTerm(" <<
GetName() <<
") unidentified term!!!" << endl ;
1731 const RooArgSet& nset,
const char* isetRangeName)
const
1735 std::ostringstream os(pfx);
1743 if (!first) os <<
"_X_";
1780 const RooArgSet* normSet,
const char* rangeName)
const
1785 analVars.
add(allVars) ;
1880 coutE(
Generation) <<
"ERROR: Requesting expected number of events from a RooProdPdf that does not contain an extended p.d.f" << endl ;
1919 std::vector<Int_t> code;
1925 code.push_back(pdfCode);
1927 generateVars.
add(pdfDirect) ;
1932 if (generateVars.
getSize()>0) {
1934 return masterCode+1 ;
1955 if (codeList[i]!=0) {
1978 if (codeList[i]!=0) {
2006 ret.
add(_partList) ;
2009 if (_rearrangedNum) ret.
add(*_rearrangedNum) ;
2010 if (_rearrangedDen) ret.
add(*_rearrangedDen) ;
2023 os << indent <<
"RooProdPdf begin partial integral cache" << endl ;
2029 indent2 +=
Form(
"[%d] ",curElem) ;
2034 if (curElem==maxElem) {
2035 os << indent <<
"RooProdPdf end partial integral cache" << endl ;
2059 if (thePdf)
return kFALSE ;
2076 if (idx<0)
return 0 ;
2100 constraints.
add(*pdf) ;
2116 finalConstraints->
add(*pdf) ;
2119 <<
" as constraint term as it does not share any parameters with the other pdfs in product. "
2120 <<
"To force inclusion in likelihood, add an explicit Constrain() argument for the target parameter" << endl ;
2131 return finalConstraints ;
2148 while((arg=iter.
next())) {
2152 connectedPars->
add(*tmp) ;
2157 return connectedPars ;
2167 if (!stripDisconnected)
return ;
2168 if (!nset || nset->
getSize()==0)
return ;
2189 tostrip.
add(*param) ;
2293 while ((parg=piter.
next())) {
2296 trackNodes.
add(*parg) ;
2303 if (
string(
"nset")==pdf_nset->
GetName() && pdf_nset->
getSize()>0) {
2307 if (
string(
"cset")==pdf_nset->
GetName()) {
2312 coutW(
Optimization) <<
"RooProdPdf::setCacheAndTrackHints(" <<
GetName() <<
") WARNING product pdf does not specify a normalization set for component " << parg->
GetName() << endl ;
2328 if (i>0) os <<
" * " ;
2332 if (
string(
"nset")==ncset->
GetName()) {
Bool_t redirectServersHook(const RooAbsCollection &, Bool_t, Bool_t, Bool_t)
Implement support for node removal.
void setAttribute(const Text_t *name, Bool_t value=kTRUE)
Set (default) or clear a named boolean attribute of this object.
R__EXTERN PyObject * gIter
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
virtual std::list< Double_t > * binBoundaries(RooAbsRealLValue &, Double_t, Double_t) const
virtual Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const
Query internal generation capabilities of component p.d.f.s and aggregate capabilities into master co...
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents: An owning collection is returned containing clones o...
void initializeFromCmdArgList(const RooArgSet &fullPdfSet, const RooLinkedList &l)
Initialize RooProdPdf configuration from given list of RooCmdArg configuration arguments and set of '...
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Bool_t overlaps(const RooAbsCollection &otherColl) const
Check if this and other collection have common entries.
TVector3 cross(const TVector3 &v1, const TVector3 &v2)
virtual Bool_t isBinnedDistribution(const RooArgSet &) const
virtual Bool_t Remove(TObject *arg)
Remove object from collection.
RooAbsCollection * selectCommon(const RooAbsCollection &refColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
virtual Bool_t isDirectGenSafe(const RooAbsArg &arg) const
Forward determination of safety of internal generator code to component p.d.f that would generate the...
const RooNameSet * nameSet2ByIndex(Int_t index) const
virtual Bool_t addOwned(RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
RooProdPdf is an efficient implementation of a product of PDFs of the form.
RooFIter fwdIterator() const
const RooNameSet * nameSet1ByIndex(Int_t index) const
static const char * str(const TNamed *ptr)
Return C++ string corresponding to given TNamed pointer.
RooArgSet * getObservables(const RooArgSet &set, Bool_t valueOnly=kTRUE) const
Int_t index(const RooAbsArg *arg) const
TString _normRange
MC generator configuration specific for this object.
Bool_t contains(const RooAbsArg &var) const
TString integralNameSuffix(const RooArgSet &iset, const RooArgSet *nset=0, const char *rangeName=0, Bool_t omitEmpty=kFALSE) const
Construct string with unique suffix name to give to integral object that encodes integrated observabl...
virtual ~CacheElem()
Destructor.
virtual Double_t getMin(const char *name=0) const
virtual ~RooProdPdf()
Destructor.
Bool_t addOwnedComponents(const RooArgSet &comps)
Take ownership of the contents of 'comps'.
Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &numVars, const RooArgSet *normSet, const char *rangeName=0) const
Determine which part (if any) of given integral can be performed analytically.
virtual void generateEvent(Int_t code)
Generate a single event with configuration specified by 'code' Defer internal generation to component...
virtual TObject * clone(const char *newname) const
RooExpensiveObjectCache & expensiveObjectCache() const
RooAbsReal * specializeRatio(RooFormulaVar &input, const char *targetRangeName) const
virtual std::list< Double_t > * plotSamplingHint(RooAbsRealLValue &obs, Double_t xlo, Double_t xhi) const
Forward the plot sampling hint from the p.d.f. that defines the observable obs.
Bool_t getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
Double_t analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
Return analytical integral defined by given scenario code.
RooAbsReal * makeCondPdfRatioCorr(RooAbsReal &term, const RooArgSet &termNset, const RooArgSet &termImpSet, const char *normRange, const char *refRange) const
For single normalization ranges.
RooArgSet * _curNormSet
Registry of composite direct generator codes.
virtual RooAbsGenContext * genContext(const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t verbose=kFALSE) const
Return generator context optimized for generating events from product p.d.f.s.
const RooArgList & list1() const
friend class RooProdGenContext
virtual RooArgSet * getConstraints(const RooArgSet &observables, RooArgSet &constrainedParams, Bool_t stripDisconnected) const
Return all parameter constraint p.d.f.s on parameters listed in constrainedParams The observables set...
const Text_t * getStringAttribute(const Text_t *key) const
Get string attribute mapped under key 'key'.
const char * Data() const
RooAbsArg * first() const
void setStringAttribute(const Text_t *key, const Text_t *value)
Associate string 'value' to this object under key 'key'.
RooRealIntegral performs hybrid numerical/analytical integrals of RooAbsReal objects The class perfor...
virtual Bool_t isDirectGenSafe(const RooAbsArg &arg) const
Check if given observable can be safely generated using the pdfs internal generator mechanism (if tha...
void printCompactTree(const char *indent="", const char *fileName=0, const char *namePat=0, RooAbsArg *client=0)
Print tree structure of expression tree on stdout, or to file if filename is specified.
virtual void removeAll()
Remove all arguments from our set, deleting them if we own them.
void factorizeProduct(const RooArgSet &normSet, const RooArgSet &intSet, RooLinkedList &termList, RooLinkedList &normList, RooLinkedList &impDepList, RooLinkedList &crossDepList, RooLinkedList &intList) const
Factorize product in irreducible terms for given choice of integration/normalization.
The TNamed class is the base class for all named ROOT classes.
Double_t evaluate() const
Calculate current value of object.
RooAbsReal * _rearrangedNum
T * getObj(const RooArgSet *nset, Int_t *sterileIndex=0, const TNamed *isetRangeName=0)
virtual void printCompactTreeHook(std::ostream &, const char *, Int_t, Int_t)
Hook function to print cache contents in tree printing of RooProdPdf.
std::map< std::string, std::string >::const_iterator iter
Int_t IndexOf(const char *name) const
Return position of given object in list.
Bool_t isBinnedDistribution(const RooArgSet &obs) const
If all components that depend on obs are binned that so is the product.
if on multiple lines(like in C++).**The" * configuration fragment. * * The "import myobject continue
Parses the configuration file.
Bool_t dependsOnValue(const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0) const
Int_t getInt(Int_t idx) const
Double_t getVal(const RooArgSet *set=0) const
RooAbsGenContext is the abstract base class for generator contexts of RooAbsPdf objects.
virtual std::list< Double_t > * binBoundaries(RooAbsRealLValue &, Double_t, Double_t) const
Forward the plot sampling hint from the p.d.f. that defines the observable obs.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
RooArgSet * getParameters(const RooAbsData *data, Bool_t stripDisconnected=kTRUE) const
Create a list of leaf nodes in the arg tree starting with ourself as top node that don't match any of...
RooRealVar represents a fundamental (non-derived) real valued object.
void printMetaArgs(std::ostream &os) const
Customized printing of arguments of a RooProdPdf to more intuitively reflect the contents of the prod...
virtual void Add(TObject *arg)
RooNameSet is a utility class that stores the names the objects in a RooArget.
RooArgSet intVars() const
RooAbsArg * find(const char *name) const
Find object with given name in list.
virtual ExtendMode extendMode() const
If this product contains exactly one extendable p.d.f return the extension abilities of that p...
TPaveLabel title(3, 27.1, 15, 28.7,"ROOT Environment and Tools")
static const TNamed * ptr(const char *stringPtr)
Return a unique TNamed pointer for given C++ string.
virtual void generateEvent(Int_t code)
Interface for generation of anan event using the algorithm corresponding to the specified code...
RooAbsReal * _rearrangedDen
void rearrangeProduct(CacheElem &) const
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Reimplementation of standard RooArgList::remove()
RooAbsCacheElement is the abstract base class for objects to be stored in RooAbsCache cache manager o...
RooObjCacheManager _cacheMgr
char * Form(const char *fmt,...)
RooProdPdf()
Default constructor.
virtual const char * GetName() const
Returns name of object.
virtual std::list< Double_t > * plotSamplingHint(RooAbsRealLValue &, Double_t, Double_t) const
RooArgSet * findPdfNSet(RooAbsPdf &pdf) const
Look up user specified normalization set for given input PDF component.
virtual RooArgList containedArgs(Action)
Return RooAbsArg components contained in the cache.
static void indent(ostringstream &buf, int indent_level)
RooDataSet is a container class to hold unbinned data.
RooProduct a RooAbsReal implementation that represent the product of a given set of other RooAbsReal ...
virtual Bool_t forceAnalyticalInt(const RooAbsArg &dep) const
Force RooRealIntegral to offer all observables for internal integration.
void replaceArg(const RooAbsArg &orig, const RooAbsArg &subst)
Replace any occurence of arg 'orig' with arg 'subst'.
virtual void setExpensiveObjectCache(RooExpensiveObjectCache &cache)
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
const std::vector< Int_t > & retrieve(Int_t masterCode) const
Retrieve the array of integer codes associated with the given master code.
virtual Double_t getValV(const RooArgSet *set=0) const
Return current value, normalizated by integrating over the observables in 'nset'. ...
Int_t store(const std::vector< Int_t > &codeList, RooArgSet *set1=0, RooArgSet *set2=0, RooArgSet *set3=0, RooArgSet *set4=0)
Store given arrays of integer codes, and up to four RooArgSets in the registry (each setX pointer may...
void Delete(Option_t *o=0)
Remove all elements in collection and delete all elements NB: Collection does not own elements...
RooAbsArg * at(Int_t idx) const
const char * normRange() const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
RooFIter fwdIterator() const
void fixRefRange(const char *rangeName)
Bool_t canBeExtended() const
virtual TObject * Clone(const char *newname=0) const
Make a clone of an object using the Streamer facility.
std::string makeRGPPName(const char *pfx, const RooArgSet &term, const RooArgSet &iset, const RooArgSet &nset, const char *isetRangeName) const
Make an appropriate automatic name for a RooGenProdProj object in getPartIntList() ...
double func(double *x, double *p)
TObject * At(Int_t index) const
Return object stored in sequential position given by index.
virtual TObject * clone(const char *newname) const
virtual CacheMode canNodeBeCached() const
RooGenProdProj is an auxiliary class for RooProdPdf that calculates a general normalized projection o...
RooArgSet * getComponents() const
RooArgSet * getConnectedParameters(const RooArgSet &observables) const
Return all parameter constraint p.d.f.s on parameters listed in constrainedParams The observables set...
void getPartIntList(const RooArgSet *nset, const RooArgSet *iset, pRooArgList &partList, pRooLinkedList &nsetList, Int_t &code, const char *isetRangeName=0) const
Return list of (partial) integrals of product terms for integration of p.d.f over observables iset wh...
virtual void getParametersHook(const RooArgSet *, RooArgSet *, Bool_t stripDisconnected) const
virtual Double_t getValV(const RooArgSet *set=0) const
Overload getVal() to intercept normalization set for use in evaluate()
Mother of all ROOT objects.
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects...
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
virtual Double_t getMax(const char *name=0) const
virtual void printValue(std::ostream &os) const
Print object value.
const RooArgSet * getSet(Int_t idx) const
Return RooArgSet stored in slot idx.
void groupProductTerms(RooLinkedList &groupedTerms, RooArgSet &outerIntDeps, const RooLinkedList &terms, const RooLinkedList &norms, const RooLinkedList &imps, const RooLinkedList &ints, const RooLinkedList &cross) const
Group product into terms that can be calculated independently.
virtual void selectNormalizationRange(const char *rangeName=0, Bool_t force=kFALSE)
Interface function used by test statistics to freeze choice of range for interpretation of conditiona...
RooConstVar & RooConst(Double_t val)
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
T * getObjByIndex(Int_t index) const
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
friend class RooRealIntegral
RooAbsArg * build(const char *masterCatState, Bool_t verbose=kFALSE)
Build a clone of the prototype executing all registered 'replace' rules and 'split' rules for the mas...
std::vector< RooAbsReal * > processProductTerm(const RooArgSet *nset, const RooArgSet *iset, const char *isetRangeName, const RooArgSet *term, const RooArgSet &termNSet, const RooArgSet &termISet, Bool_t &isOwned, Bool_t forceWrap=kFALSE) const
Calculate integrals of factorized product terms over observables iset while normalized to observables...
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void initGenerator(Int_t code)
Interface for one-time initialization to setup the generator for the specified code.
virtual Bool_t checkObservables(const RooArgSet *nset) const
Obsolete.
void setName(const char *name)
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.
Double_t calculate(const RooProdPdf::CacheElem &cache, Bool_t verbose=kFALSE) const
Calculate running product of pdfs terms, using the supplied normalization set in 'normSetList' for ea...
virtual Double_t expectedEvents(const RooArgSet *nset) const
Return the expected number of events associated with the extentable input p.d.f in the product...
RooLinkedList _pdfNSetList
const char * content() const
RooAbsReal * specializeIntegral(RooAbsReal &orig, const char *targetRangeName) const
Int_t setObj(const RooArgSet *nset, T *obj, const TNamed *isetRangeName=0)
RooAddition calculates the sum of a set of RooAbsReal terms, or when constructed with two sets...
virtual void setCacheAndTrackHints(RooArgSet &)
Label OK'ed components of a RooProdPdf with cache-and-track, and label all RooProdPdf descendants wit...
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
const RooArgList & pdfList() const
RooArgSet * select(const RooArgSet &list) const
Construct a RooArgSet of objects in input 'list' whose names match to those in the internal name list...
double norm(double *x, double *p)
virtual Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const
Load generatedVars with the subset of directVars that we can generate events for, and return a code t...
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add element to non-owning set.
virtual RooAbsGenContext * genContext(const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t verbose=kFALSE) const
Interface function to create a generator context from a p.d.f.
const char * GetName() const
Returns name of object.
RooAbsReal * createIntegral(const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
Create an object that represents the integral of the function over one or more observables listed in ...
const RooAbsReal & integrand() const
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
virtual void initGenerator(Int_t code)
Forward one-time initialization call to component generation initialization methods.