61 RooAbsGenContext(model,vars,prototype,auxProto,verbose), _pdfVarsOwned(0), _modelVarsOwned(0)
63 cxcoutI(Generation) <<
"RooConvGenContext::ctor() setting up special generator context for analytical convolution p.d.f. " << model.
GetName()
64 <<
" for generation of observable(s) " << vars << endl ;
69 coutE(Generation) <<
"RooConvGenContext::RooConvGenContext(" <<
GetName() <<
") Couldn't deep-clone PDF, abort," << endl ;
78 throw std::runtime_error(
"RooConvGenContext only works with convolution variables of type RooRealVar.");
89 coutE(Generation) <<
"RooConvGenContext::RooConvGenContext(" <<
GetName() <<
") Couldn't deep-clone resolution model, abort," << endl ;
98 throw std::runtime_error(
"RooConvGenContext only works with convolution variables of type RooRealVar.");
100 convV->removeRange();
141 cxcoutI(Generation) <<
"RooConvGenContext::ctor() setting up special generator context for numeric convolution p.d.f. " << model.
GetName()
142 <<
" for generation of observable(s) " << vars << endl ;
181 cxcoutI(Generation) <<
"RooConvGenContext::ctor() setting up special generator context for fft convolution p.d.f. " << model.
GetName()
182 <<
" for generation of observable(s) " << vars << endl ;
334 os <<
indent <<
"--- RooConvGenContext ---" << endl ;
335 os <<
indent <<
"List of component generators" << endl ;
static void indent(ostringstream &buf, int indent_level)
RooAbsAnaConvPdf is the base class for PDFs that represent a physics model that can be analytically c...
virtual Bool_t changeModel(const RooResolutionModel &newModel)
Change the current resolution model to newModel.
virtual RooAbsGenContext * genContext(const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t verbose=kFALSE) const
Create a generator context for this p.d.f.
RooAbsRealLValue * convVar()
Retrieve the convolution variable.
RooArgSet * getObservables(const RooArgSet &set, Bool_t valueOnly=kTRUE) const
Given a set of possible observables, return the observables that this PDF depends on.
virtual Bool_t replace(const RooAbsArg &var1, const RooAbsArg &var2)
Replace var1 with var2 and return kTRUE for success.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
void assign(const RooAbsCollection &other) const
Sets the value, cache and constant attribute of any argument in our set that also appears in the othe...
virtual Bool_t addOwned(RooAbsArg &var, Bool_t silent=kFALSE)
Add an argument and transfer the ownership to the collection.
bool selectCommon(const RooAbsCollection &refColl, RooAbsCollection &outColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
RooAbsArg * find(const char *name) const
Find object with given name in list.
RooAbsGenContext is the abstract base class for generator contexts of RooAbsPdf objects.
virtual void attach(const RooArgSet ¶ms)
Interface to attach given parameters to object in this context.
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Interface for multi-line printing.
virtual void initGenerator(const RooArgSet &theEvent)
Interface function to initialize context for generation for given set of observables.
virtual void generateEvent(RooArgSet &theEvent, Int_t remaining)=0
virtual void setProtoDataOrder(Int_t *lut)
Set the traversal order of prototype data to that in the lookup tables passed as argument.
virtual RooAbsGenContext * genContext(const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t verbose=kFALSE) const
Interface function to create a generator context from a p.d.f.
virtual Bool_t isValidReal(Double_t value, Bool_t printError=kFALSE) const
Check if given value is valid.
Double_t getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooArgSet * snapshot(bool deepCopy=true) const
Use RooAbsCollection::snapshot(), but return as RooArgSet.
RooConvGenContext is an efficient implementation of the generator context specific for RooAbsAnaConvP...
virtual ~RooConvGenContext()
Destructor.
RooArgSet * _modelCloneSet
RooArgSet * _modelVarsOwned
RooConvGenContext(const RooFFTConvPdf &model, const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t _verbose=kFALSE)
Constructor for specialized generator context for FFT numerical convolutions.
RooAbsGenContext * _pdfGen
RooAbsGenContext * _modelGen
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Print the details of this generator context.
RooArgSet * _pdfVarsOwned
virtual void generateEvent(RooArgSet &theEvent, Int_t remaining)
Generate a single event.
virtual void initGenerator(const RooArgSet &theEvent)
One-time initialization of generator context, attaches the context to the supplied event container.
virtual void attach(const RooArgSet ¶ms)
Attach given set of arguments to internal clones of pdf and resolution model.
virtual void setProtoDataOrder(Int_t *lut)
Set the traversal order for events in the prototype dataset The argument is a array of integers with ...
RooDataSet is a container class to hold unbinned data.
virtual const RooArgSet * get(Int_t index) const override
Return RooArgSet with coordinates of event 'index'.
PDF for the numerical (FFT) convolution of two PDFs.
Numeric 1-dimensional convolution operator PDF.
RooNumConvolution & conv() const
RooAbsReal & cloneModel() const
RooRealVar & cloneVar() const
RooAbsReal & clonePdf() const
RooRealVar represents a variable that can be changed from the outside.
void removeRange(const char *name=0)
Remove range limits for binning with given name. Empty name means default range.
virtual void setVal(Double_t value)
Set value of variable to 'value'.
RooResolutionModel is the base class for PDFs that represent a resolution model that can be convolute...
virtual void changeBasis(RooFormulaVar *basis)
Change the basis function we convolute with.
RooAbsRealLValue & convVar() const
Return the convolution variable of the resolution model.
const T & arg() const
Return reference to object held in proxy.
RooTruthModel is an implementation of RooResolution model that provides a delta-function resolution m...
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
virtual const char * GetName() const
Returns name of object.
TString & Append(const char *cs)