71using std::endl, std::ostream;
95 _basis = static_cast<RooFormulaVar*>(other._basis->Clone()) ;
146 coutE(InputArguments) <<
"RooResolutionModel::convolution(" <<
GetName() <<
"," <<
this
147 <<
") convolution parameter of basis function and PDF don't match" << std::endl
148 <<
"basis->findServer(0) = " << inBasis->
findServer(0) << std::endl
149 <<
"x.absArg() = " <<
x.absArg() << std::endl ;
154 coutE(InputArguments) <<
"RooResolutionModel::convolution(" <<
GetName() <<
"," <<
this
155 <<
") basis function '" << inBasis->
GetTitle() <<
"' is not supported." << std::endl ;
160 newName.
Append(
"_conv_") ;
169 newTitle.
Append(
" convoluted with basis function ") ;
269 _basis->redirectServers(newServerList,mustReplaceAll,nameChange) ;
292 _norm->leafNodeServerList(&list) ;
308 <<
"): norm(" <<
_norm <<
") = " <<
_norm->getVal() << std::endl ;
328 os <<
indent <<
"--- RooResolutionModel ---" << std::endl;
329 os <<
indent <<
"basis function = " ;
333 os <<
"<none>" << std::endl ;
int Int_t
Signed integer 4 bytes (int).
static void indent(ostringstream &buf, int indent_level)
void removeServer(RooAbsArg &server, bool force=false)
Unregister another RooAbsArg as a server to us, ie, declare that we no longer depend on its value and...
static bool _verboseDirty
void clearValueDirty() const
const RefCountList_t & servers() const
List of all servers of this object.
void addServer(RooAbsArg &server, bool valueProp=true, bool shapeProp=false, std::size_t refCount=1)
Register another RooAbsArg as a server to us, ie, declare that we depend on it.
bool isValueDirty() const
void clearShapeDirty() const
RooAbsArg()
Default constructor.
friend class RooAbsCollection
RooAbsArg * findServer(const char *name) const
Return server of this with name name. Returns nullptr if not found.
RooAbsArg * find(const char *name) const
Find object with given name in list.
virtual bool syncNormalization(const RooArgSet *dset, bool adjustProxies=true) const
Verify that the normalization integral cached with this PDF is valid for given set of normalization o...
double getValV(const RooArgSet *set=nullptr) const override
Return current value, normalized by integrating over the observables in nset.
void printMultiline(std::ostream &os, Int_t contents, bool verbose=false, TString indent="") const override
Print multi line detailed information of this RooAbsPdf.
RooAbsReal * _norm
! Normalization integral (owned by _normMgr)
RooAbsPdf()
Default constructor.
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursiveStep) override
Hook function intercepting redirectServer calls.
static Int_t _verboseEval
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
double _value
Cache for current value of object.
virtual double evaluate() const =0
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Variable that can be changed from the outside.
~RooResolutionModel() override
Destructor.
double getValV(const RooArgSet *nset=nullptr) const override
Modified version of RooAbsPdf::getValF().
virtual void changeBasis(RooFormulaVar *basis)
Change the basis function we convolute with.
virtual Int_t basisCode(const char *name) const =0
virtual RooResolutionModel * convolution(RooFormulaVar *basis, RooAbsArg *owner) const
Instantiate a clone of this resolution model representing a convolution with given basis function.
double getNorm(const RooArgSet *nset=nullptr) const override
Return the integral of this PDF over all elements of 'nset'.
static RooFormulaVar * identity()
Return identity formula pointer.
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursive) override
Forward redirectServers call to our basis function, which is not connected to either resolution model...
const RooRealVar & basisConvVar() const
Return the convolution variable of the selection basis function.
bool _ownBasis
Flag indicating ownership of _basis.
virtual void normLeafServerList(RooArgSet &list) const
Floating point error checking and tracing for given float value.
void printMultiline(std::ostream &os, Int_t content, bool verbose=false, TString indent="") const override
Print info about this object to the specified stream.
Int_t _basisCode
Identifier code for selected basis function.
TObject * clone(const char *newname=nullptr) const override=0
RooResolutionModel()=default
RooFormulaVar * _basis
Basis function convolved with this resolution model.
const RooFormulaVar & basis() const
RooTemplateProxy< RooAbsRealLValue > x
Dependent/convolution variable.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
const char * Data() const
TString & Append(const char *cs)