00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef ROO_CODE_FACTORY
00018 #define ROO_CODE_FACTORY
00019
00020 #include "TNamed.h"
00021 #include "RooArgSet.h"
00022 #include "RooPrintable.h"
00023 #include "RooFactoryWSTool.h"
00024
00025 class RooAbsReal ;
00026 class RooAbsPdf ;
00027
00028 class RooClassFactory : public TNamed, public RooPrintable {
00029
00030 public:
00031
00032
00033 RooClassFactory() ;
00034 virtual ~RooClassFactory() ;
00035
00036 static RooAbsReal* makeFunctionInstance(const char* className, const char* name, const char* expression, const RooArgList& vars, const char* intExpression=0) ;
00037 static RooAbsReal* makeFunctionInstance(const char* name, const char* expression, const RooArgList& vars, const char* intExpression=0) ;
00038
00039 static RooAbsPdf* makePdfInstance(const char* className, const char* name, const char* expression, const RooArgList& vars, const char* intExpression=0) ;
00040 static RooAbsPdf* makePdfInstance(const char* name, const char* expression, const RooArgList& vars, const char* intExpression=0) ;
00041
00042 static Bool_t makeAndCompilePdf(const char* name, const char* expression, const RooArgList& vars, const char* intExpression=0) ;
00043 static Bool_t makeAndCompileFunction(const char* name, const char* expression, const RooArgList& args, const char* intExpression=0) ;
00044
00045 static Bool_t makePdf(const char* name, const char* realArgNames=0, const char* catArgNames=0,
00046 const char* expression="1.0", Bool_t hasAnaInt=kFALSE, Bool_t hasIntGen=kFALSE, const char* intExpression=0) ;
00047 static Bool_t makeFunction(const char* name, const char* realArgNames=0, const char* catArgNames=0,
00048 const char* expresion="1.0", Bool_t hasAnaInt=kFALSE, const char* intExpression=0) ;
00049 static Bool_t makeClass(const char* className, const char* name, const char* realArgNames=0, const char* catArgNames=0,
00050 const char* expression="1.0", Bool_t hasAnaInt=kFALSE, Bool_t hasIntGen=kFALSE, const char* intExpression=0) ;
00051
00052 class ClassFacIFace : public RooFactoryWSTool::IFace {
00053 public:
00054 std::string create(RooFactoryWSTool& ft, const char* typeName, const char* instanceName, std::vector<std::string> args) ;
00055 } ;
00056
00057 protected:
00058
00059
00060
00061 RooClassFactory(const RooClassFactory&) ;
00062
00063 ClassDef(RooClassFactory,0)
00064 } ;
00065
00066 #endif