17#ifndef ROO_PDF_CUSTOMIZER
18#define ROO_PDF_CUSTOMIZER
65 void printName(std::ostream& os)
const override ;
66 void printTitle(std::ostream& os)
const override ;
68 void printArgs(std::ostream& os)
const override ;
83 std::string
create(
RooFactoryWSTool& ft,
const char* typeName,
const char* instanceName, std::vector<std::string> args)
override ;
#define ClassDefOverride(name, id)
static void indent(ostringstream &buf, int indent_level)
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
A space to attach TBranches.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
std::string create(RooFactoryWSTool &ft, const char *typeName, const char *instanceName, std::vector< std::string > args) override
RooCustomizer is a factory class to produce clones of a prototype composite PDF object with the same ...
void printTitle(std::ostream &os) const override
Print title of customizer.
TString _name
Name of this object.
Bool_t _sterile
If true we do not have as associated master category.
TList _splitArgList
List of RooAbsArgs to be split.
void splitArg(const RooAbsArg &arg, const RooAbsCategory &splitCat)
Split all argument 'arg' into individualized clones for each defined state of 'splitCat'.
void setCloneBranchSet(RooArgSet &cloneBranchSet)
Releases ownership of list of cloned branch nodes.
RooArgSet * _cloneNodeListAll
List of all cloned nodes.
void printName(std::ostream &os) const override
Print name of customizer.
void replaceArg(const RooAbsArg &orig, const RooAbsArg &subst)
Replace any occurence of arg 'orig' with arg 'subst'.
RooAbsArg * _masterPdf
Pointer to input p.d.f.
TList _replaceSubList
List of replacement RooAbsArgs.
void Print(Option_t *options=0) const override
Printing interface.
void printArgs(std::ostream &os) const override
Print arguments of customizer, i.e. input p.d.f and input master category (if any)
const RooArgSet & cloneBranchList() const
Return list of cloned branch nodes.
RooArgSet * _cloneBranchList
Pointer to list of cloned branches used.
RooCustomizer(const RooCustomizer &)
~RooCustomizer() override
Destructor.
RooCustomizer(const RooAbsArg &pdf, const RooAbsCategoryLValue &masterCat, RooArgSet &splitLeafListOwned, RooArgSet *splitLeafListAll=0)
Constructor with a prototype and masterCat index category.
void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const override
Print customizer configuration details.
RooArgSet _masterBranchList
List of branch nodes.
RooAbsArg * doBuild(const char *masterCatState, Bool_t verbose)
Back-end implementation of the p.d.f building functionality.
RooArgSet _masterLeafList
List of leaf nodes.
void setOwning(Bool_t flag)
If flag is true, make customizer own all created components.
RooArgSet _internalCloneBranchList
List of branches of internal clone.
void initialize()
Initialize the customizer.
const RooArgSet & cloneLeafList() const
Return list of cloned leaf nodes.
RooAbsCategoryLValue * _masterCat
Pointer to input master category.
void printClassName(std::ostream &os) const override
Print class name of customizer.
Bool_t _owning
If true we own all created components.
void splitArgs(const RooArgSet &argSet, const RooAbsCategory &splitCat)
Split all arguments in 'set' into individualized clones for each defined state of 'splitCat'.
RooAbsArg * build(const char *masterCatState, Bool_t verbose=kFALSE)
Build a clone of the prototype executing all registered 'replace' rules and 'split' rules for the mas...
TList _replaceArgList
List of RooAbsArgs to be replaced.
TList _splitCatList
List of categories to be used for above splits.
RooArgSet * _cloneNodeListOwned
List of owned cloned nodes.
RooPlotable is a 'mix-in' base class that define the standard RooFit plotting and printing methods.
virtual StyleOption defaultPrintStyle(Option_t *opt) const
virtual Int_t defaultPrintContents(Option_t *opt) const
Default choice of contents to be printed (name and value)
static std::ostream & defaultPrintStream(std::ostream *os=0)
Return a reference to the current default stream to use in Print().
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,...
The TNamed class is the base class for all named ROOT classes.