71using std::endl, std::ostream;
 
   81   : 
RooAbsPdf(
name, title), 
x(
"x", 
"Dependent or convolution variable", 
this, _x), _basisCode(0), _ownBasis(
false)
 
 
  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 ;
 
  169  newTitle.Append(
" convoluted with basis function ") ;
 
 
  328    os << 
indent << 
"--- RooResolutionModel ---" << std::endl;
 
  329    os << 
indent << 
"basis function = " ;
 
  333      os << 
"<none>" << 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.
 
const_iterator begin() const
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
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
cache of the list of proxies. Avoids type casting.
 
bool redirectServers(const RooAbsCollection &newServerList, bool mustReplaceAll=false, bool nameChange=false, bool isRecursionStep=false)
Replace all direct servers of this object with the new servers in newServerList.
 
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
 
void leafNodeServerList(RooAbsCollection *list, const RooAbsArg *arg=nullptr, bool recurseNonDerived=false) const
Fill supplied list with all leaf nodes of the arg tree, starting with ourself as top node.
 
Abstract container object that can hold multiple RooAbsArg objects.
 
Abstract interface for all probability density functions.
 
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.
 
bool redirectServersHook(const RooAbsCollection &newServerList, bool mustReplaceAll, bool nameChange, bool isRecursiveStep) override
The cache manager.
 
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.
 
RooAbsArg * absArg() const
Return pointer to contained argument.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer,...
 
Variable that can be changed from the outside.
 
RooResolutionModel is the base class for PDFs that represent a resolution model that can be convolute...
 
~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.