72using std::endl, std::ostream;
110 _origVar(
"origVar",
"Original Convolution variable",this,convVar),
111 _origPdf(
"origPdf",
"Original Input PDF",this,inPdf),
112 _origModel(
"origModel",
"Original Resolution model",this,resmodel),
120 _windowParam(
"windowParam",
"Convolution window parameter",this,false),
126 _convIntConfig.method1D().setLabel(
"RooAdaptiveGaussKronrodIntegrator1D") ;
127 _convIntConfig.method1DOpen().setLabel(
"RooAdaptiveGaussKronrodIntegrator1D") ;
131 if (
proto->_useWindow) {
248 coutW(Integration) <<
"RooNumConvolution::evaluate(" <<
GetName() <<
") WARNING convolution integral at x=" <<
x
249 <<
" required " <<
_integrand->numCall() <<
" function evaluations" << std::endl ;
262 bool nameChange,
bool isRecursive)
304 coutE(InputArguments) <<
"RooNumConvolution::setCallWarning(" <<
GetName() <<
") ERROR: threshold must be positive, value unchanged" << std::endl ;
331 nbinCall,0,nCallHigh) ;
351 os <<
indent <<
"RooNumConvolution begin cache" << std::endl ;
359 os <<
indent <<
"RooNumConvolution end cache" << std::endl ;
int Int_t
Signed integer 4 bytes (int).
static void indent(ostringstream &buf, int indent_level)
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
friend class RooAbsCollection
RooAbsReal()
coverity[UNINIT_CTOR] Default constructor
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursiveStep) override
Function that is called at the end of redirectServers().
RooCustomizer is a factory class to produce clones of a prototype composite PDF object with the same ...
void setCloneBranchSet(RooArgSet &cloneBranchSet)
Releases ownership of list of cloned branch nodes.
void replaceArg(const RooAbsArg &orig, const RooAbsArg &subst)
Replace any occurrence of arg 'orig' with arg 'subst'.
RooAbsArg * build(const char *masterCatState, bool verbose=false)
Build a clone of the prototype executing all registered 'replace' rules and 'split' rules for the mas...
void clearConvolutionWindow()
Removes previously defined convolution window, reverting to convolution from -inf to +inf.
RooArgSet _ownedClonedModelSet
Owning set of cloned model components.
std::unique_ptr< RooAbsIntegrator > _integrator
! Numeric integrator of convolution integrand
RooAbsReal * _cloneModel
Pointer to cloned model.
void setCallProfiling(bool flag, Int_t nbinX=40, Int_t nbinCall=40, Int_t nCallHigh=1000)
Activate call profile if flag is set to true.
~RooNumConvolution() override
Destructor.
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursive) override
Intercept server redirects. Throw away cache, as figuring out redirections on the cache is an unsolva...
void initialize() const
One-time initialization of object.
RooRealProxy _origVar
Original convolution variable.
Int_t _verboseThresh
Call count threshold for verbose printing.
RooConvIntegrandBinding * _integrand
! Binding of Convolution Integrand function
RooRealProxy _origPdf
Original input PDF.
void printCompactTreeHook(std::ostream &os, const char *indent="") override
Hook function to intercept printCompactTree() calls so that it can print out the content of its priva...
double evaluate() const override
Calculate convolution integral.
RooListProxy _windowParam
Holder for optional convolution integration window scaling parameter.
double _windowScale
Scale factor for window parameter.
RooArgSet _ownedClonedPdfSet
Owning set of cloned PDF components.
bool _doProf
Switch to activate profiling option.
RooAbsReal * _cloneVar
Pointer to cloned convolution variable.
RooRealProxy _origModel
Original resolution model.
RooAbsReal * _clonePdf
Pointer to cloned PDF.
RooNumIntConfig & convIntConfig()
void setCallWarning(Int_t threshold=2000)
Activate warning messages if number of function calls needed for evaluation of convolution integral e...
RooNumIntConfig _convIntConfig
Configuration of numeric convolution integral ;.
RooAbsReal & model() const
TH2 * _callHist
! Histogram recording number of calls per convolution integral calculation
bool _useWindow
Switch to activate window convolution.
void setConvolutionWindow(RooAbsReal ¢erParam, RooAbsReal &widthParam, double widthScaleFactor=1)
Restrict convolution integral to finite range [ x - C - S*W, x - C + S*W ] where x is current value o...
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.
std::unique_ptr< RooAbsIntegrator > createIntegrator(RooAbsFunc &func, const RooNumIntConfig &config, int ndim=0, bool isBinned=false) const
Construct a numeric integrator instance that operates on function 'func' and is configured with 'conf...
static RooNumIntFactory & instance()
Static method returning reference to singleton instance of factory.
static constexpr double infinity()
Return internal infinity representation.
Variable that can be changed from the outside.
2-D histogram with a float per channel (see TH1 documentation)
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.