104 _pdfList(
"!pdfs",
"List of PDFs",this),
139 _pdfList(
"!pdfs",
"List of PDFs",this),
160 <<
") multiple components with extended terms detected,"
161 <<
" product will not be extendible." << endl ;
194 _pdfList(
"!pdfs",
"List of PDFs",this),
202 Int_t numExtended(0) ;
207 << arg->
GetName() <<
" is not a PDF, ignored" << endl ;
224 <<
") WARNING: multiple components with extended terms detected,"
225 <<
" product will not be extendible." << endl ;
269 _pdfList(
"!pdfs",
"List of PDFs",this),
299 _pdfList(
"!pdfList",
"List of PDFs",this),
325 _pdfList(
"!pdfs",
"List of PDFs",this),
342 _cacheMgr(other._cacheMgr,this),
343 _genCode(other._genCode),
344 _cutOff(other._cutOff),
345 _pdfList(
"!pdfs",this,other._pdfList),
346 _extendedIndex(other._extendedIndex),
347 _useDefaultGen(other._useDefaultGen),
348 _refRangeName(other._refRangeName),
349 _selfNorm(other._selfNorm),
350 _defNormSet(other._defNormSet)
371 Int_t numExtended(0) ;
393 if (0 == strcmp(carg->
GetName(),
"Conditional")) {
405 tmp->
setName(0 == argType ?
"nset" :
"cset") ;
415 }
else if (0 != strlen(carg->
GetName())) {
423 <<
") WARNING: multiple components with extended terms detected,"
424 <<
" product will not be extendible." << endl ;
489 normSet = (
RooArgSet*) nlIter.next(); partInt && normSet;
495 if (value <=
_cutOff) {
break; }
513 cxcoutD(
Eval) <<
"RooProdPdf::calculate(" <<
GetName() <<
") rearranged product calculation"
566 (pdfNSetOrig = (
RooArgSet*) nIter.next(),
571 if (0 == strcmp(
"nset", pdfNSetOrig->
GetName())) {
574 }
else if (0 == strcmp(
"cset", pdfNSetOrig->
GetName())) {
577 pdfCSet = pdfNSetOrig;
591 pdfAllDeps.
add(*tmp);
601 pdfNormDeps.
add(*tmp2);
605 pdfNormDeps.
add(pdfAllDeps);
628 (termNormDeps = (
RooArgSet*) ldIter.next(),
629 termAllDeps = (
RooArgSet*) laIter.next(),
647 termIntDeps =
new RooArgSet(
"termIntDeps");
650 if (!termIntNoNormDeps) {
651 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
653 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
664 termNormDeps =
new RooArgSet(
"termNormDeps");
665 termAllDeps =
new RooArgSet(
"termAllDeps");
666 termIntDeps =
new RooArgSet(
"termIntDeps");
667 termIntNoNormDeps =
new RooArgSet(
"termIntNoNormDeps");
673 termIntNoNormDeps->
add(pdfIntNoNormDeps,
kFALSE);
676 normList.
Add(termNormDeps);
677 depAllList.
Add(termAllDeps);
678 intList.
Add(termIntDeps);
679 depIntNoNormList.
Add(termIntNoNormDeps);
686 if (pdfCSet != pdfNSetOrig) {
692 RooArgSet *normDeps, *allDeps, *intNoNormDeps;
699 intNoNormDeps = (
RooArgSet*) innIter.next(),
716 depIntNoNormList.
Delete();
732 Int_t& code,
const char* isetRangeName)
const
740 Int_t sterileIdx(-1);
777 map<string, RooArgSet> ratioTerms;
779 if (1 ==
group->GetSize()) {
787 RooArgSet termNSet(*norm), termImpSet(*imps);
798 RooFIter niter = termNSet.fwdIterator();
814 if (!rangeIdentical || 1) {
817 ostringstream str; termImpSet.
printValue(str);
819 ratioTerms[str.str()].add(*ratio);
834 RooArgSet termNSet(*norm), termImpSet(*imps);
840 RooFIter niter = termNSet.fwdIterator();
855 if (!rangeIdentical || 1) {
858 ostringstream str; termImpSet.
printValue(str);
859 ratioTerms[str.str()].add(*ratio);
871 if (1 ==
group->GetSize()) {
877 RooArgSet termNSet(*norm), termImpSet(*imps);
880 ostringstream str; termNSet.printValue(str);
881 if (ratioTerms[str.str()].getSize() > 0) {
883 term->
add(ratioTerms[str.str()]);
893 RooArgSet termNSet(*norm), termImpSet(*imps);
896 ostringstream str; termNSet.printValue(str);
897 if (ratioTerms[str.str()].getSize() > 0) {
899 term->
add(ratioTerms[str.str()]);
910 if (1 ==
group->GetSize()) {
920 RooArgSet termNSet, termISet, termXSet, termImpSet;
923 termISet.
add(*integ);
927 termXSet.
add(*xdeps);
928 termImpSet.
add(*imps);
937 vector<RooAbsReal*> func =
processProductTerm(nset, iset, isetRangeName, term, termNSet, termISet, isOwned);
952 RooArgSet compTermSet, compTermNorm, compTermNum, compTermDen;
963 RooArgSet termNSet, termISet, termXSet, termImpSet;
964 termISet.
add(*integ);
966 termXSet.
add(*xdeps);
967 termImpSet.
add(*imps);
979 vector<RooAbsReal*> func =
processProductTerm(nset, iset, isetRangeName, term, termNSet, termISet, isOwned,
kTRUE);
982 compTermSet.
add(*func[0]);
986 compTermNum.
add(*func[1]);
987 compTermDen.
add(*func[2]);
1006 const std::string prodname =
makeRGPPName(
"SPECPROD", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1010 const std::string intname =
makeRGPPName(
"SPECINT", compTermSet, outerIntDeps,
RooArgSet(), isetRangeName);
1019 RooProduct* prodtmp_num =
new RooProduct(prodname_num.c_str(), prodname_num.c_str(), compTermNum);
1025 RooProduct* prodtmp_den =
new RooProduct(prodname_den.c_str(), prodname_den.c_str(), compTermDen);
1030 string name =
Form(
"SPEC_RATIO(%s,%s)", prodname_num.c_str(), prodname_den.c_str());
1113 list<string> rangeComps ;
1115 char* buf =
new char[strlen(
_normRange.Data()) + 1] ;
1120 rangeComps.push_back(token) ;
1127 map<string,RooArgSet> denListList ;
1129 string specIntRange ;
1174 nomList.
add(*funcCust) ;
1176 nomList.
add(*func) ;
1197 origNumTerm.
add(*arg) ;
1205 nomList.
add(origNumTerm) ;
1212 for (list<string>::iterator iter = rangeComps.begin() ; iter != rangeComps.end() ; ++iter) {
1258 partCust = cust.
build() ;
1263 partCust = cust.
build() ;
1273 string name =
Form(
"%s_divided_by_ratio",specializedPartCust->
GetName()) ;
1276 denListList[*iter].add(*specIntFinal) ;
1297 tmp.
add(*specRatio) ;
1309 throw string(
"this should not happen") ;
1315 denListList[*iter].add(*specIntFinal) ;
1337 for (map<string,RooArgSet>::iterator iter = denListList.begin() ; iter != denListList.end() ; ++iter) {
1342 products.
add(*prod_comp) ;
1348 if (specIntDeps.
getSize()>0) {
1357 numerator = numtmp ;
1457 outerIntDeps.
add(*tmp) ;
1484 if (termNormDeps->
contains(*outerIntDep) ||
1485 termIntDeps->
contains(*outerIntDep) ||
1486 termImpDeps->
contains(*outerIntDep)) {
1499 tIter2 =
group->fwdIterator() ;
1501 newGroup->
Add(term2) ;
1511 groupedTerms.
Add(newGroup) ;
1537 vector<RooAbsReal*> ret(3) ; ret[0] = 0 ; ret[1] = 0 ; ret[2] = 0 ;
1553 if (nset && termNSet.
getSize()==0) {
1561 if (iset && termISet.
getSize()>0) {
1592 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1619 const std::string
name =
makeRGPPName(
"GENPROJ_",*term,termISet,termNSet,isetRangeName) ;
1652 name.Append(
"_NORM[") ;
1699 coutE(
Eval) <<
"RooProdPdf::processProductTerm(" <<
GetName() <<
") unidentified term!!!" << endl ;
1710 const RooArgSet& nset,
const char* isetRangeName)
const
1714 std::ostringstream os(pfx);
1722 if (!
first) os <<
"_X_";
1759 const RooArgSet* normSet,
const char* rangeName)
const
1764 analVars.
add(allVars) ;
1859 coutE(
Generation) <<
"ERROR: Requesting expected number of events from a RooProdPdf that does not contain an extended p.d.f" << endl ;
1898 std::vector<Int_t> code;
1904 code.push_back(pdfCode);
1906 generateVars.
add(pdfDirect) ;
1911 if (generateVars.
getSize()>0) {
1913 return masterCode+1 ;
1934 if (codeList[i]!=0) {
1957 if (codeList[i]!=0) {
1983 ret.
add(_partList) ;
1986 if (_rearrangedNum) ret.
add(*_rearrangedNum) ;
1987 if (_rearrangedDen) ret.
add(*_rearrangedDen) ;
2000 os << indent <<
"RooProdPdf begin partial integral cache" << endl ;
2003 RooFIter iter = _partList.fwdIterator() ;
2005 TString indent2(indent) ;
2006 indent2 +=
Form(
"[%d] ",curElem) ;
2011 if (curElem==maxElem) {
2012 os << indent <<
"RooProdPdf end partial integral cache" << endl ;
2036 if (thePdf)
return kFALSE ;
2053 if (idx<0)
return 0 ;
2077 constraints.
add(*pdf) ;
2093 finalConstraints->
add(*pdf) ;
2096 <<
" as constraint term as it does not share any parameters with the other pdfs in product. "
2097 <<
"To force inclusion in likelihood, add an explicit Constrain() argument for the target parameter" << endl ;
2108 return finalConstraints ;
2125 while((arg=iter.
next())) {
2129 connectedPars->
add(*tmp) ;
2134 return connectedPars ;
2144 if (!stripDisconnected) return ;
2145 if (!nset || nset->
getSize()==0) return ;
2166 tostrip.
add(*param) ;
2270 while ((parg=piter.
next())) {
2273 trackNodes.
add(*parg) ;
2280 if (
string(
"nset")==pdf_nset->
GetName() && pdf_nset->
getSize()>0) {
2284 if (
string(
"cset")==pdf_nset->
GetName()) {
2289 coutW(
Optimization) <<
"RooProdPdf::setCacheAndTrackHints(" <<
GetName() <<
") WARNING product pdf does not specify a normalization set for component " << parg->
GetName() << endl ;
2305 if (i>0) os <<
" * " ;
2309 if (
string(
"nset")==ncset->
GetName()) {
char * R__STRTOK_R(char *str, const char *delim, char **saveptr)
char * Form(const char *fmt,...)
const std::vector< Int_t > & retrieve(Int_t masterCode) const
Retrieve the array of integer codes associated with the given master code.
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...
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
RooExpensiveObjectCache & expensiveObjectCache() const
RooArgSet * getObservables(const RooArgSet &set, Bool_t valueOnly=kTRUE) const
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.
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.
void setStringAttribute(const Text_t *key, const Text_t *value)
Associate string 'value' to this object under key 'key'.
virtual CacheMode canNodeBeCached() const
virtual TObject * Clone(const char *newname=0) const
Make a clone of an object using the Streamer facility.
virtual void setExpensiveObjectCache(RooExpensiveObjectCache &cache)
const Text_t * getStringAttribute(const Text_t *key) const
Get string attribute mapped under key 'key'.
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 setAttribute(const Text_t *name, Bool_t value=kTRUE)
Set (default) or clear a named boolean attribute of this object.
Bool_t addOwnedComponents(const RooArgSet &comps)
Take ownership of the contents of 'comps'.
Bool_t getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
Bool_t dependsOnValue(const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0) const
RooArgSet * getComponents() const
RooAbsCacheElement is the abstract base class for objects to be stored in RooAbsCache cache manager o...
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects.
virtual void removeAll()
Remove all arguments from our set, deleting them if we own them.
RooAbsCollection * selectCommon(const RooAbsCollection &refColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
Bool_t contains(const RooAbsArg &var) const
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents: An owning collection is returned containing clones o...
virtual Bool_t addOwned(RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
RooFIter fwdIterator() const
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
RooAbsArg * first() const
Bool_t overlaps(const RooAbsCollection &otherColl) const
Check if this and other collection have common entries.
const char * GetName() const
Returns name of object.
void setName(const char *name)
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
RooAbsArg * find(const char *name) const
Find object with given name in list.
virtual void printValue(std::ostream &os) const
Print value of collection, i.e.
RooAbsGenContext is the abstract base class for generator contexts of RooAbsPdf objects.
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
virtual void generateEvent(Int_t code)
Interface for generation of anan event using the algorithm corresponding to the specified code.
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.
TString _normRange
MC generator configuration specific for this object.
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...
Bool_t canBeExtended() const
friend class RooRealIntegral
virtual Double_t getValV(const RooArgSet *set=0) const
Return current value, normalized by integrating over the observables in 'nset'.
const char * normRange() const
virtual Bool_t isDirectGenSafe(const RooAbsArg &arg) const
Check if given observable can be safely generated using the pdfs internal generator mechanism (if tha...
virtual void initGenerator(Int_t code)
Interface for one-time initialization to setup the generator for the specified code.
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual Double_t getMax(const char *name=0) const
virtual Double_t getMin(const char *name=0) const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
virtual std::list< Double_t > * plotSamplingHint(RooAbsRealLValue &, Double_t, Double_t) 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 std::list< Double_t > * binBoundaries(RooAbsRealLValue &, Double_t, Double_t) const
Double_t getVal(const RooArgSet *set=0) const
Evaluate object. Returns either cached value or triggers a recalculation.
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 ...
virtual Bool_t isBinnedDistribution(const RooArgSet &) const
RooAddition calculates the sum of a set of RooAbsReal terms, or when constructed with two sets,...
const RooArgList & list1() const
RooAbsArg * at(Int_t idx) const
Int_t index(const RooAbsArg *arg) const
RooArgSet is a container object that can hold multiple RooAbsArg objects.
virtual Bool_t add(const RooAbsCollection &col, Bool_t silent=kFALSE)
Add a collection of arguments to this collection by calling add() for each element in the source coll...
T * getObj(const RooArgSet *nset, Int_t *sterileIndex=0, const TNamed *isetRangeName=0)
const RooNameSet * nameSet2ByIndex(Int_t index) const
T * getObjByIndex(Int_t index) const
const RooNameSet * nameSet1ByIndex(Int_t index) const
Int_t setObj(const RooArgSet *nset, T *obj, const TNamed *isetRangeName=0)
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
const RooArgSet * getSet(Int_t idx) const
Return RooArgSet stored in slot idx.
Int_t getInt(Int_t idx) const
virtual TObject * clone(const char *newname) const
void replaceArg(const RooAbsArg &orig, const RooAbsArg &subst)
Replace any occurence of arg 'orig' with arg 'subst'.
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...
RooDataSet is a container class to hold unbinned data.
RooGenProdProj is an auxiliary class for RooProdPdf that calculates a general normalized projection o...
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
RooFIter fwdIterator() const
TObject * At(Int_t index) const
Return object stored in sequential position given by index.
void Delete(Option_t *o=0)
Remove all elements in collection and delete all elements NB: Collection does not own elements,...
virtual void Add(TObject *arg)
virtual Bool_t Remove(TObject *arg)
Remove object from collection.
Int_t IndexOf(const char *name) const
Return position of given object in list.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Reimplementation of standard RooArgList::remove()
static const char * str(const TNamed *ptr)
Return C++ string corresponding to given TNamed pointer.
static const TNamed * ptr(const char *stringPtr)
Return a unique TNamed pointer for given C++ string.
RooNameSet is a utility class that stores the names the objects in a RooArget.
RooArgSet * select(const RooArgSet &list) const
Construct a RooArgSet of objects in input 'list' whose names match to those in the internal name list...
virtual ~CacheElem()
Destructor.
virtual void printCompactTreeHook(std::ostream &, const char *, Int_t, Int_t)
Hook function to print cache contents in tree printing of RooProdPdf.
std::unique_ptr< RooAbsReal > _rearrangedNum
std::unique_ptr< RooAbsReal > _rearrangedDen
virtual RooArgList containedArgs(Action)
Return RooAbsArg components contained in the cache.
RooProdPdf is an efficient implementation of a product of PDFs of the form.
void rearrangeProduct(CacheElem &) const
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.
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.
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.
RooArgSet * _curNormSet
Registry of composite direct generator codes.
RooProdPdf()
Default constructor.
virtual Bool_t checkObservables(const RooArgSet *nset) const
Obsolete.
void printMetaArgs(std::ostream &os) const
Customized printing of arguments of a RooProdPdf to more intuitively reflect the contents of the prod...
Double_t evaluate() const
Calculate current value of object.
Bool_t isBinnedDistribution(const RooArgSet &obs) const
If all components that depend on obs are binned that so is the product.
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...
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.
RooAbsReal * specializeIntegral(RooAbsReal &orig, const char *targetRangeName) const
virtual ExtendMode extendMode() const
If this product contains exactly one extendable p.d.f return the extension abilities of that p....
RooObjCacheManager _cacheMgr
virtual void initGenerator(Int_t code)
Forward one-time initialization call to component generation initialization methods.
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_t analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
Return analytical integral defined by given scenario code.
virtual ~RooProdPdf()
Destructor.
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()
RooAbsReal * makeCondPdfRatioCorr(RooAbsReal &term, const RooArgSet &termNset, const RooArgSet &termImpSet, const char *normRange, const char *refRange) const
For single normalization ranges.
RooArgSet * findPdfNSet(RooAbsPdf &pdf) const
Look up user specified normalization set for given input PDF component.
virtual void setCacheAndTrackHints(RooArgSet &)
Label OK'ed components of a RooProdPdf with cache-and-track, and label all RooProdPdf descendants wit...
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...
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...
RooLinkedList _pdfNSetList
friend class RooProdGenContext
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...
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...
RooArgSet * getConnectedParameters(const RooArgSet &observables) const
Return all parameter constraint p.d.f.s on parameters listed in constrainedParams The observables set...
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 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.
RooAbsReal * specializeRatio(RooFormulaVar &input, const char *targetRangeName) const
Bool_t redirectServersHook(const RooAbsCollection &, Bool_t, Bool_t, Bool_t)
Implement support for node removal.
const RooArgList & pdfList() const
void fixRefRange(const char *rangeName)
virtual Bool_t forceAnalyticalInt(const RooAbsArg &dep) const
Force RooRealIntegral to offer all observables for internal integration.
virtual TObject * clone(const char *newname) const
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.
void initializeFromCmdArgList(const RooArgSet &fullPdfSet, const RooLinkedList &l)
Initialize RooProdPdf configuration from given list of RooCmdArg configuration arguments and set of '...
virtual void generateEvent(Int_t code)
Generate a single event with configuration specified by 'code' Defer internal generation to component...
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...
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.
RooProduct a RooAbsReal implementation that represent the product of a given set of other RooAbsReal ...
RooRealIntegral performs hybrid numerical/analytical integrals of RooAbsReal objects.
RooArgSet intVars() const
const RooAbsReal & integrand() const
RooRealVar represents a fundamental (non-derived) real valued object.
The TNamed class is the base class for all named ROOT classes.
virtual const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
R__EXTERN PyObject * gIter
RooConstVar & RooConst(Double_t val)