17 #ifndef ROO_CMD_CONFIG
18 #define ROO_CMD_CONFIG
27 class RooCmdConfig :
public TObject {
30 RooCmdConfig(
const char* methodName);
31 RooCmdConfig(
const RooCmdConfig& other) ;
34 void setVerbose(Bool_t flag) {
39 void allowUndefined(Bool_t flag=kTRUE) {
42 _allowUndefined = flag ;
44 void defineDependency(
const char* refArgName,
const char* neededArgName) ;
45 void defineMutex(
const char* argName1,
const char* argName2) ;
46 void defineMutex(
const char* argName1,
const char* argName2,
const char* argName3) ;
47 void defineMutex(
const char* argName1,
const char* argName2,
const char* argName3,
const char* argName4) ;
48 void defineMutex(
const char* argName1,
const char* argName2,
const char* argName3,
const char* argName4,
const char* argName5) ;
49 void defineRequiredArgs(
const char* argName1,
const char* argName2=0,
50 const char* argName3=0,
const char* argName4=0,
51 const char* argName5=0,
const char* argName6=0,
52 const char* argName7=0,
const char* argName8=0) ;
54 Bool_t defineInt(
const char* name,
const char* argName, Int_t intNum, Int_t defValue=0) ;
55 Bool_t defineDouble(
const char* name,
const char* argName, Int_t doubleNum, Double_t defValue=0.) ;
56 Bool_t defineString(
const char* name,
const char* argName, Int_t stringNum,
const char* defValue=
"",Bool_t appendMode=kFALSE) ;
57 Bool_t defineObject(
const char* name,
const char* argName, Int_t setNum,
const TObject* obj=0, Bool_t isArray=kFALSE) ;
58 Bool_t defineSet(
const char* name,
const char* argName, Int_t setNum,
const RooArgSet* set=0) ;
60 Bool_t process(
const RooCmdArg& arg) ;
61 Bool_t process(
const RooCmdArg& arg1,
const RooCmdArg& arg2,
62 const RooCmdArg& arg3=RooCmdArg::none(),
const RooCmdArg& arg4=RooCmdArg::none(),
63 const RooCmdArg& arg5=RooCmdArg::none(),
const RooCmdArg& arg6=RooCmdArg::none(),
64 const RooCmdArg& arg7=RooCmdArg::none(),
const RooCmdArg& arg8=RooCmdArg::none()) ;
65 Bool_t process(
const RooLinkedList& argList) ;
67 Int_t getInt(
const char* name, Int_t defaultValue=0) ;
68 Double_t getDouble(
const char* name, Double_t defaultValue=0) ;
69 const char* getString(
const char* name,
const char* defaultValue=
"",Bool_t convEmptyToNull=kFALSE) ;
70 TObject* getObject(
const char* name, TObject* obj=0) ;
71 RooArgSet* getSet(
const char* name, RooArgSet* set=0) ;
72 const RooLinkedList& getObjectList(
const char* name) ;
74 Bool_t ok(Bool_t verbose)
const ;
76 const char* missingArgs()
const ;
78 RooLinkedList filterCmdList(RooLinkedList& cmdInList,
const char* cmdNameList, Bool_t removeFromInList=kTRUE) ;
79 void stripCmdList(RooLinkedList& cmdList,
const char* cmdsToPurge) ;
80 Bool_t hasProcessed(
const char* cmdName)
const ;
85 static Int_t decodeIntOnTheFly(
const char* callerID,
const char* cmdArgName, Int_t intIdx, Int_t defVal,
const RooCmdArg& arg1,
86 const RooCmdArg& arg2=RooCmdArg(),
const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),
87 const RooCmdArg& arg5=RooCmdArg(),
const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),
88 const RooCmdArg& arg8=RooCmdArg(),
const RooCmdArg& arg9=RooCmdArg()) ;
90 static std::string decodeStringOnTheFly(
const char* callerID,
const char* cmdArgName, Int_t intIdx,
const char* defVal,
const RooCmdArg& arg1,
91 const RooCmdArg& arg2=RooCmdArg(),
const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),
92 const RooCmdArg& arg5=RooCmdArg(),
const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),
93 const RooCmdArg& arg8=RooCmdArg(),
const RooCmdArg& arg9=RooCmdArg()) ;
95 static TObject* decodeObjOnTheFly(
const char* callerID,
const char* cmdArgName, Int_t objIdx, TObject* defVal,
const RooCmdArg& arg1,
96 const RooCmdArg& arg2=RooCmdArg(),
const RooCmdArg& arg3=RooCmdArg(),
const RooCmdArg& arg4=RooCmdArg(),
97 const RooCmdArg& arg5=RooCmdArg(),
const RooCmdArg& arg6=RooCmdArg(),
const RooCmdArg& arg7=RooCmdArg(),
98 const RooCmdArg& arg8=RooCmdArg(),
const RooCmdArg& arg9=RooCmdArg()) ;
106 Bool_t _allowUndefined ;
131 ClassDef(RooCmdConfig,0)