Warning, file /include/root/RooCustomizer.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef ROO_PDF_CUSTOMIZER
0018 #define ROO_PDF_CUSTOMIZER
0019
0020 #include <RooArgList.h>
0021 #include <RooArgSet.h>
0022 #include <RooPrintable.h>
0023
0024 #include <TNamed.h>
0025 #include <TString.h>
0026
0027 #include <vector>
0028 #include <string>
0029
0030 class RooAbsCategoryLValue ;
0031 class RooAbsCategory ;
0032 class RooAbsArg ;
0033 class RooAbsPdf ;
0034
0035
0036 class RooCustomizer {
0037
0038 public:
0039
0040
0041 RooCustomizer(const RooAbsArg& pdf, const RooAbsCategoryLValue& masterCat, RooArgSet& splitLeafListOwned, RooArgSet* splitLeafListAll=nullptr) ;
0042 RooCustomizer(const RooAbsArg& pdf, const char* name) ;
0043
0044
0045 void setOwning(bool flag) {
0046 _owning = flag ;
0047 }
0048
0049 void splitArgs(const RooArgSet& argSet, const RooAbsCategory& splitCat) ;
0050 void splitArg(const RooAbsArg& arg, const RooAbsCategory& splitCat) ;
0051 void replaceArg(const RooAbsArg& orig, const RooAbsArg& subst) ;
0052 RooAbsArg* build(const char* masterCatState, bool verbose=false) ;
0053 RooAbsArg* build(bool verbose=false) ;
0054
0055
0056 const RooArgSet& cloneBranchList() const {
0057 return *_cloneBranchList ;
0058 }
0059
0060 const RooArgSet& cloneLeafList() const {
0061 return *_cloneNodeListOwned ;
0062 }
0063
0064
0065 void printArgs(std::ostream& os) const ;
0066 void printMultiline(std::ostream& os, Int_t content, bool verbose=false, TString indent= "") const;
0067
0068
0069 void setCloneBranchSet(RooArgSet& cloneBranchSet) ;
0070
0071 RooAbsPdf const& pdf() const;
0072
0073 RooCustomizer(const RooCustomizer &) = delete;
0074 RooCustomizer &operator=(const RooCustomizer &) = delete;
0075 RooCustomizer(RooCustomizer &&) = delete;
0076 RooCustomizer &operator=(RooCustomizer &&) = delete;
0077
0078 protected:
0079
0080 void initialize() ;
0081
0082 RooAbsArg* doBuild(const char* masterCatState, bool verbose) ;
0083
0084 bool _sterile ;
0085 bool _owning ;
0086 TString _name ;
0087
0088 RooArgList _splitArgList ;
0089 RooArgList _splitCatList ;
0090
0091 RooArgList _replaceArgList ;
0092 RooArgList _replaceSubList ;
0093
0094
0095 RooAbsArg* _masterPdf ;
0096 RooAbsCategoryLValue* _masterCat = nullptr;
0097
0098 RooArgSet _masterBranchList ;
0099 RooArgSet _masterLeafList ;
0100
0101 RooArgSet _internalCloneBranchList;
0102 RooArgSet* _cloneBranchList = nullptr;
0103
0104
0105 RooArgSet* _cloneNodeListAll = nullptr;
0106 RooArgSet* _cloneNodeListOwned = nullptr;
0107 } ;
0108
0109 #endif