70 static char *strtok_r(
char *s1,
const char *s2,
char **lasts)
76 while(*s1 && strchr(s2, *s1))
81 while(*s1 && !strchr(s2, *s1))
126 _pdfList(
"!pdfs",
"List of PDFs",this),
161 _pdfList(
"!pdfs",
"List of PDFs",this),
182 <<
") multiple components with extended terms detected,"
183 <<
" product will not be extendible." << endl ;
216 _pdfList(
"!pdfs",
"List of PDFs",this),
224 Int_t numExtended(0) ;
229 << arg->
GetName() <<
" is not a PDF, ignored" << endl ;
246 <<
") WARNING: multiple components with extended terms detected,"
247 <<
" product will not be extendible." << endl ;
292 _pdfList(
"!pdfs",
"List of PDFs",this),
346 _pdfList(
"!pdfList",
"List of PDFs",this),
372 _pdfList(
"!pdfs",
"List of PDFs",this),
389 _cacheMgr(other._cacheMgr,this),
390 _genCode(other._genCode),
391 _cutOff(other._cutOff),
392 _pdfList(
"!pdfs",this,other._pdfList),
393 _extendedIndex(other._extendedIndex),
394 _useDefaultGen(other._useDefaultGen),
395 _refRangeName(other._refRangeName),
396 _selfNorm(other._selfNorm),
397 _defNormSet(other._defNormSet)
418 Int_t numExtended(0) ;
440 if (0 == strcmp(carg->
GetName(),
"Conditional")) {
452 tmp->
setName(0 == argType ?
"nset" :
"cset") ;
462 }
else if (0 != strlen(carg->
GetName())) {
470 <<
") WARNING: multiple components with extended terms detected,"
471 <<
" product will not be extendible." << endl ;
536 normSet = (
RooArgSet*) nlIter.next(); partInt && normSet;
539 const Double_t piVal = partInt->
getVal(normSet->getSize() > 0 ? normSet : 0);
542 if (value <=
_cutOff) {
break; }
560 cxcoutD(
Eval) <<
"RooProdPdf::calculate(" <<
GetName() <<
") rearranged product calculation"
578 const Double_t piVal = partInt->
getVal(normSet->getSize() > 0 ? normSet : 0);
613 (pdfNSetOrig = (
RooArgSet*) nIter.next(),
618 if (0 == strcmp(
"nset", pdfNSetOrig->
GetName())) {
621 }
else if (0 == strcmp(
"cset", pdfNSetOrig->
GetName())) {
624 pdfCSet = pdfNSetOrig;
638 pdfAllDeps.
add(*tmp);
648 pdfNormDeps.
add(*tmp2);
652 pdfNormDeps.
add(pdfAllDeps);
675 (termNormDeps = (
RooArgSet*) ldIter.next(),
676 termAllDeps = (
RooArgSet*) laIter.next(),
694 termIntDeps =
new RooArgSet(
"termIntDeps");
697 if (!termIntNoNormDeps) {
698 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
700 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
711 termNormDeps =
new RooArgSet(
"termNormDeps");
712 termAllDeps =
new RooArgSet(
"termAllDeps");
713 termIntDeps =
new RooArgSet(
"termIntDeps");
714 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
720 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
723 normList.
Add(termNormDeps);
724 depAllList.
Add(termAllDeps);
725 intList.
Add(termIntDeps);
726 depIntNoNormList.
Add(termIntNoNormDeps);
733 if (pdfCSet != pdfNSetOrig) {
739 RooArgSet *normDeps, *allDeps, *intNoNormDeps;
746 intNoNormDeps = (
RooArgSet*) innIter.next(),
763 depIntNoNormList.
Delete();
779 Int_t& code,
const char* isetRangeName)
const
787 Int_t sterileIdx(-1);
824 map<string, RooArgSet> ratioTerms;
834 RooArgSet termNSet(*norm), termImpSet(*imps);
845 RooFIter niter = termNSet.fwdIterator();
861 if (!rangeIdentical || 1) {
864 ostringstream str; termImpSet.
printValue(str);
866 ratioTerms[str.str()].add(*ratio);
881 RooArgSet termNSet(*norm), termImpSet(*imps);
887 RooFIter niter = termNSet.fwdIterator();
902 if (!rangeIdentical || 1) {
905 ostringstream str; termImpSet.
printValue(str);
906 ratioTerms[str.str()].add(*ratio);
924 RooArgSet termNSet(*norm), termImpSet(*imps);
927 ostringstream str; termNSet.printValue(str);
928 if (ratioTerms[str.str()].getSize() > 0) {
930 term->
add(ratioTerms[str.str()]);
940 RooArgSet termNSet(*norm), termImpSet(*imps);
943 ostringstream str; termNSet.printValue(str);
944 if (ratioTerms[str.str()].getSize() > 0) {
946 term->
add(ratioTerms[str.str()]);
967 RooArgSet termNSet, termISet, termXSet, termImpSet;
970 termISet.
add(*integ);
974 termXSet.
add(*xdeps);
975 termImpSet.
add(*imps);
984 vector<RooAbsReal*>
func =
processProductTerm(nset, iset, isetRangeName, term, termNSet, termISet, isOwned);
999 RooArgSet compTermSet, compTermNorm, compTermNum, compTermDen;
1010 RooArgSet termNSet, termISet, termXSet, termImpSet;
1011 termISet.
add(*integ);
1012 termNSet.
add(*norm);
1013 termXSet.
add(*xdeps);
1014 termImpSet.
add(*imps);
1029 compTermSet.
add(*func[0]);
1033 compTermNum.
add(*func[1]);
1034 compTermDen.
add(*func[2]);
1053 const std::string prodname =
makeRGPPName(
"SPECPROD", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1057 const std::string intname =
makeRGPPName(
"SPECINT", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1066 RooProduct* prodtmp_num =
new RooProduct(prodname_num.c_str(), prodname_num.c_str(), compTermNum);
1072 RooProduct* prodtmp_den =
new RooProduct(prodname_den.c_str(), prodname_den.c_str(), compTermDen);
1077 string name =
Form(
"SPEC_RATIO(%s,%s)", prodname_num.c_str(), prodname_den.c_str());
1160 list<string> rangeComps ;
1165 char* token = strtok_r(buf,
",",&save) ;
1167 rangeComps.push_back(token) ;
1168 token = strtok_r(0,
",",&save) ;
1174 map<string,RooArgSet> denListList ;
1176 string specIntRange ;
1221 nomList.
add(*funcCust) ;
1223 nomList.
add(*func) ;
1244 origNumTerm.
add(*arg) ;
1252 nomList.
add(origNumTerm) ;
1259 for (list<string>::iterator
iter = rangeComps.begin() ;
iter != rangeComps.end() ; ++
iter) {
1281 RooFIter piter = comps.fwdIterator() ;
1305 partCust = cust.
build() ;
1310 partCust = cust.
build() ;
1320 string name =
Form(
"%s_divided_by_ratio",specializedPartCust->
GetName()) ;
1323 denListList[*
iter].add(*specIntFinal) ;
1344 tmp.add(*specRatio) ;
1356 throw string(
"this should not happen") ;
1360 string name =
Form(
"%s_divided_by_ratio",specInt->GetName()) ;
1362 denListList[*
iter].add(*specIntFinal) ;
1384 for (map<string,RooArgSet>::iterator
iter = denListList.begin() ;
iter != denListList.end() ; ++
iter) {
1389 products.add(*prod_comp) ;
1395 if (specIntDeps.
getSize()>0) {
1404 numerator = numtmp ;
1483 groupedTerms.
Add(group) ;
1504 outerIntDeps.
add(*tmp) ;
1531 if (termNormDeps->
contains(*outerIntDep) ||
1532 termIntDeps->
contains(*outerIntDep) ||
1533 termImpDeps->
contains(*outerIntDep)) {
1548 newGroup->
Add(term2) ;
1552 groupedTerms.
Remove(group) ;
1558 groupedTerms.
Add(newGroup) ;
1584 vector<RooAbsReal*> ret(3) ; ret[0] = 0 ; ret[1] = 0 ; ret[2] = 0 ;
1600 if (nset && termNSet.
getSize()==0) {
1608 if (iset && termISet.
getSize()>0) {
1639 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1666 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1699 name.Append(
"_NORM[") ;
1746 coutE(
Eval) <<
"RooProdPdf::processProductTerm(" <<
GetName() <<
") unidentified term!!!" << endl ;
1757 const RooArgSet& nset,
const char* isetRangeName)
const
1761 std::ostringstream os(pfx);
1769 if (!first) os <<
"_X_";
1806 const RooArgSet* normSet,
const char* rangeName)
const
1811 analVars.
add(allVars) ;
1906 coutE(
Generation) <<
"ERROR: Requesting expected number of events from a RooProdPdf that does not contain an extended p.d.f" << endl ;
1945 std::vector<Int_t> code;
1951 code.push_back(pdfCode);
1953 generateVars.
add(pdfDirect) ;
1958 if (generateVars.
getSize()>0) {
1960 return masterCode+1 ;
1981 if (codeList[i]!=0) {
2004 if (codeList[i]!=0) {
2032 ret.
add(_partList) ;
2035 if (_rearrangedNum) ret.
add(*_rearrangedNum) ;
2036 if (_rearrangedDen) ret.
add(*_rearrangedDen) ;
2049 os << indent <<
"RooProdPdf begin partial integral cache" << endl ;
2055 indent2 +=
Form(
"[%d] ",curElem) ;
2060 if (curElem==maxElem) {
2061 os << indent <<
"RooProdPdf end partial integral cache" << endl ;
2085 if (thePdf)
return kFALSE ;
2102 if (idx<0)
return 0 ;
2126 constraints.
add(*pdf) ;
2142 finalConstraints->
add(*pdf) ;
2145 <<
" as constraint term as it does not share any parameters with the other pdfs in product. "
2146 <<
"To force inclusion in likelihood, add an explicit Constrain() argument for the target parameter" << endl ;
2157 return finalConstraints ;
2174 while((arg=iter.
next())) {
2178 connectedPars->
add(*tmp) ;
2183 return connectedPars ;
2193 if (!stripDisconnected)
return ;
2194 if (!nset || nset->
getSize()==0)
return ;
2215 tostrip.
add(*param) ;
2319 while ((parg=piter.
next())) {
2322 trackNodes.
add(*parg) ;
2329 if (
string(
"nset")==pdf_nset->
GetName() && pdf_nset->
getSize()>0) {
2333 if (
string(
"cset")==pdf_nset->
GetName()) {
2338 coutW(
Optimization) <<
"RooProdPdf::setCacheAndTrackHints(" <<
GetName() <<
") WARNING product pdf does not specify a normalization set for component " << parg->
GetName() << endl ;
2354 if (i>0) os <<
" * " ;
2358 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.
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'.
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
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...
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)
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...
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()
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)
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)
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
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.
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)
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)
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
virtual void initGenerator(Int_t code)
Forward one-time initialization call to component generation initialization methods.