17 #ifndef ROO_PDF_CUSTOMIZER
18 #define ROO_PDF_CUSTOMIZER
27 class RooAbsCategoryLValue ;
28 class RooAbsCategory ;
32 class RooCustomizer :
public TNamed,
public RooPrintable {
37 RooCustomizer(
const RooAbsArg& pdf,
const RooAbsCategoryLValue& masterCat, RooArgSet& splitLeafListOwned, RooArgSet* splitLeafListAll=0) ;
38 RooCustomizer(
const RooAbsArg& pdf,
const char* name) ;
39 virtual ~RooCustomizer() ;
41 void setOwning(Bool_t flag) {
46 void splitArgs(
const RooArgSet& argSet,
const RooAbsCategory& splitCat) ;
47 void splitArg(
const RooAbsArg& arg,
const RooAbsCategory& splitCat) ;
48 void replaceArg(
const RooAbsArg& orig,
const RooAbsArg& subst) ;
49 RooAbsArg* build(
const char* masterCatState, Bool_t verbose=kFALSE) ;
50 RooAbsArg* build(Bool_t verbose=kFALSE) ;
52 const RooArgSet& cloneBranchList()
const {
54 return *_cloneBranchList ;
56 const RooArgSet& cloneLeafList()
const {
58 return *_cloneNodeListOwned ;
62 virtual void printName(std::ostream& os)
const ;
63 virtual void printTitle(std::ostream& os)
const ;
64 virtual void printClassName(std::ostream& os)
const ;
65 virtual void printArgs(std::ostream& os)
const ;
66 virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent=
"")
const;
68 inline virtual void Print(Option_t *options= 0)
const {
70 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
74 void setCloneBranchSet(RooArgSet& cloneBranchSet) ;
77 class CustIFace :
public RooFactoryWSTool::IFace {
79 virtual ~CustIFace() {} ;
80 std::string create(RooFactoryWSTool& ft,
const char* typeName,
const char* instanceName, std::vector<std::string> args) ;
85 RooCustomizer(
const RooCustomizer&) ;
88 RooAbsArg* doBuild(
const char* masterCatState, Bool_t verbose) ;
97 TList _replaceArgList ;
98 TList _replaceSubList ;
101 RooAbsArg* _masterPdf ;
102 RooAbsCategoryLValue* _masterCat ;
104 RooArgSet _masterBranchList ;
105 RooArgSet _masterLeafList ;
107 RooArgSet _internalCloneBranchList ;
108 RooArgSet* _cloneBranchList ;
111 RooArgSet* _cloneNodeListAll ;
112 RooArgSet* _cloneNodeListOwned ;
114 ClassDef(RooCustomizer,0)