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),
113 _ownedClonedPdfSet(
"ownedClonePdfSet"),
114 _ownedClonedModelSet(
"ownedCloneModelSet"),
117 _cloneModel(nullptr),
120 _windowParam(
"windowParam",
"Convolution window parameter",
this,
false),
121 _verboseThresh(2000),
131 if (
proto->_useWindow) {
145 _convIntConfig(
other._convIntConfig),
149 _origModel(
"origModel",
this,
other._origModel),
150 _ownedClonedPdfSet(
"ownedClonePdfSet"),
151 _ownedClonedModelSet(
"ownedCloneModelSet"),
154 _cloneModel(nullptr),
155 _useWindow(
other._useWindow),
156 _windowScale(
other._windowScale),
157 _windowParam(
"windowParam",
this,
other._windowParam),
158 _verboseThresh(
other._verboseThresh),
159 _doProf(
other._doProf),
160 _callHist(
other._callHist)
248 coutW(Integration) <<
"RooNumConvolution::evaluate(" <<
GetName() <<
") WARNING convolution integral at x=" <<
x
249 <<
" required " <<
_integrand->numCall() <<
" function evaluations" << std::endl ;
304 coutE(InputArguments) <<
"RooNumConvolution::setCallWarning(" <<
GetName() <<
") ERROR: threshold must be positive, value unchanged" << std::endl ;
351 os <<
indent <<
"RooNumConvolution begin cache" << std::endl ;
359 os <<
indent <<
"RooNumConvolution end cache" << std::endl ;
static void indent(ostringstream &buf, int indent_level)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
void SetName(const char *name) override
Set the name of the TNamed.
void printCompactTree(const char *indent="", const char *fileName=nullptr, const char *namePat=nullptr, RooAbsArg *client=nullptr)
Print tree structure of expression tree on stdout, or to file if filename is specified.
Abstract container object that can hold multiple RooAbsArg objects.
virtual void removeAll()
Remove all arguments from our set, deleting them if we own them.
const RooArgSet * nset() const
Abstract base class for objects that represent a real value and implements functionality common to al...
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursiveStep) override
Function that is called at the end of redirectServers().
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
bool setLabel(const char *label, bool printError=true) override
Set value by specifying the name of the desired state.
void removeAll() override
Remove all argument inset using remove(const RooAbsArg&).
bool add(const RooAbsArg &var, bool valueServer, bool shapeServer, bool silent)
Overloaded RooCollection_t::add() method insert object into set and registers object as server to own...
RooCustomizer is a factory class to produce clones of a prototype composite PDF object with the same ...
Numeric 1-dimensional convolution operator PDF.
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
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.
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.
RooCategory & method1DOpen()
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.
double max(const char *rname=nullptr) const
Query upper limit of range. This requires the payload to be RooAbsRealLValue or derived.
const T & arg() const
Return reference to object held in proxy.
double min(const char *rname=nullptr) const
Query lower limit of range. This requires the payload to be RooAbsRealLValue or derived.
2-D histogram with a float per channel (see TH1 documentation)
Int_t Fill(Double_t) override
Invalid Fill method.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.