64 _actualVars(
"actualVars",
"Variables used by PDF expression",this),
79 const char* inFormula,
const RooArgList& dependents) :
81 _actualVars(
"actualVars",
"Variables used by PDF expression",this),
97 _actualVars(
"actualVars",this,other._actualVars),
98 _formExpr(other._formExpr)
109 const_cast<std::unique_ptr<RooFormula>&
>(
_formula).reset(
130 if (normSet !=
nullptr && normSet !=
_normSet)
131 throw std::logic_error(
"Got conflicting normSets");
134 inputData.
spans[
this] = results;
176 return _formula->changeDependents(newServerList,mustReplaceAll,nameChange);
191 os <<
" --- RooGenericPdf --- " << endl ;
205 os <<
"formula=\"" <<
_formExpr <<
"\" " ;
216 coutE(InputArguments) <<
"RooGenericPdf::readFromStream(" <<
GetName() <<
"): can't read in compact mode" << endl ;
static void indent(ostringstream &buf, int indent_level)
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects.
RooArgSet const * _normSet
Normalization integral (owned by _normMgr)
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Print multi line detailed information of this RooAbsPdf.
const RooArgSet * nset() const
Double_t traceEval(const RooArgSet *set) const
Calculate current value of object, with error tracing wrapper.
Double_t getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooGenericPdf is a concrete implementation of a probability density function, which takes a RooArgLis...
void computeBatch(cudaStream_t *, double *output, size_t nEvents, RooFit::Detail::DataMap const &) const
Base function for computing multiple values of a RooAbsReal.
void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Print info about this object to the specified stream.
const RooArgList & dependents() const
Bool_t setFormula(const char *formula)
Change formula expression to given expression.
double evaluate() const
Calculate current value of this object.
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Write object contents to given stream.
void printMetaArgs(std::ostream &os) const
Add formula expression as meta argument in printing interface.
std::unique_ptr< RooFormula > _formula
virtual Bool_t redirectServersHook(const RooAbsCollection &newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
Propagate server changes to embedded formula object.
RooSpan< double > evaluateSpan(RooBatchCompute::RunContext &inputData, const RooArgSet *normSet) const
Evaluate this formula for values found in inputData.
virtual Bool_t isValidReal(Double_t value, Bool_t printError) const
Check if given value is valid.
RooFormula & formula() const
TString _formExpr
Formula engine.
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Read object contents from given stream.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE) override
Reimplementation of standard RooArgList::add()
A simple container to hold a batch of data values.
TString readLine()
Read an entire line from the stream and return as TString This method recognizes the use of '\' in th...
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
const char * Data() const
This struct enables passing computation data around between elements of a computation graph.
std::map< RooFit::Detail::DataKey, RooSpan< const double > > spans
Once an object has computed its value(s), the span pointing to the results is registered here.
static void output(int code)