Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooClassFactory Class Reference

Similar to TTree::MakeClass(), generates skeleton code for RooAbsPdf and RooAbsReal functions given a list of input parameter names.

The factory can also compile the generated code on the fly, and on request also immediate instantiate objects.

Definition at line 27 of file RooClassFactory.h.

Static Public Member Functions

static bool makeAndCompileFunction (std::string const &name, std::string const &expression, const RooArgList &args, std::string const &intExpression="")
 Write, compile and load code for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.
 
static bool makeAndCompilePdf (std::string const &name, std::string const &expression, const RooArgList &vars, std::string const &intExpression="")
 
static bool makeClass (std::string const &baseName, const std::string &className, std::string const &realArgNames="", std::string const &catArgNames="", std::string const &expression="1.0", bool hasAnaInt=false, bool hasIntGen=false, std::string const &intExpression="")
 Write code for a 'baseName' implementation with class name 'className', taking RooAbsReal arguments with names listed in argNames and RooAbsCategory arguments with names listed in catArgNames as constructor arguments (use a comma separated list for multiple arguments).
 
static bool makeFunction (std::string const &name, std::string const &realArgNames="", std::string const &catArgNames="", std::string const &expression="1.0", bool hasAnaInt=false, std::string const &intExpression="")
 Write code for a RooAbsReal implementation with class name 'name', taking RooAbsReal arguments with names listed in argNames and RooAbsCategory arguments with names listed in catArgNames as constructor arguments (use a comma separated list for multiple arguments).
 
static RooAbsRealmakeFunctionInstance (std::string const &className, std::string const &name, std::string const &expression, const RooArgList &vars, std::string const &intExpression="")
 Write, compile and load code and instantiate object for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.
 
static RooAbsRealmakeFunctionInstance (std::string const &name, std::string const &expression, const RooArgList &vars, std::string const &intExpression="")
 Write, compile and load code and instantiate object for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.
 
static bool makePdf (std::string const &name, std::string const &realArgNames="", std::string const &catArgNames="", std::string const &expression="1.0", bool hasAnaInt=false, bool hasIntGen=false, std::string const &intExpression="")
 Write code for a RooAbsPdf implementation with class name 'name'.
 
static RooAbsPdfmakePdfInstance (std::string const &className, std::string const &name, std::string const &expression, const RooArgList &vars, std::string const &intExpression="")
 Write, compile and load code and instantiate object for a RooAbsPdf implementation with class name 'name', taking all elements of 'vars' as constructor arguments.
 
static RooAbsPdfmakePdfInstance (std::string const &name, std::string const &expression, const RooArgList &vars, std::string const &intExpression="")
 Write, compile and load code and instantiate object for a RooAbsPdf implementation.
 

#include <RooClassFactory.h>

Member Function Documentation

◆ makeAndCompileFunction()

bool RooClassFactory::makeAndCompileFunction ( std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Write, compile and load code for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'. You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral.

Definition at line 218 of file RooClassFactory.cxx.

◆ makeAndCompilePdf()

bool RooClassFactory::makeAndCompilePdf ( std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Definition at line 199 of file RooClassFactory.cxx.

◆ makeClass()

bool RooClassFactory::makeClass ( std::string const &  baseName,
const std::string &  className,
std::string const &  realArgNames = "",
std::string const &  catArgNames = "",
std::string const &  expression = "1.0",
bool  hasAnaInt = false,
bool  hasIntGen = false,
std::string const &  intExpression = "" 
)
static

Write code for a 'baseName' implementation with class name 'className', taking RooAbsReal arguments with names listed in argNames and RooAbsCategory arguments with names listed in catArgNames as constructor arguments (use a comma separated list for multiple arguments).

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'. Skeleton code for handling of analytical integrals is added if hasAnaInt is true. You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral. Skeleton code for internal event generation is added if hasIntGen is true

Definition at line 451 of file RooClassFactory.cxx.

◆ makeFunction()

bool RooClassFactory::makeFunction ( std::string const &  name,
std::string const &  argNames = "",
std::string const &  catArgNames = "",
std::string const &  expression = "1.0",
bool  hasAnaInt = false,
std::string const &  intExpression = "" 
)
static

Write code for a RooAbsReal implementation with class name 'name', taking RooAbsReal arguments with names listed in argNames and RooAbsCategory arguments with names listed in catArgNames as constructor arguments (use a comma separated list for multiple arguments).

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'. Skeleton code for handling of analytical integrals is added if hasAnaInt is true. You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral.

Definition at line 358 of file RooClassFactory.cxx.

◆ makeFunctionInstance() [1/2]

RooAbsReal * RooClassFactory::makeFunctionInstance ( std::string const &  className,
std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Write, compile and load code and instantiate object for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'.

The returned object is an instance of the object you just defined connected to the variables listed in 'vars'. The name of the object is 'name', its class name Roo<name>Class.

This function is an effective compiled replacement of RooFormulaVar

You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral.

Definition at line 275 of file RooClassFactory.cxx.

◆ makeFunctionInstance() [2/2]

RooAbsReal * RooClassFactory::makeFunctionInstance ( std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Write, compile and load code and instantiate object for a RooAbsReal implementation with class name 'name', taking all elements of 'vars' as constructor arguments.

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'.

The returned object is an instance of the object you just defined connected to the variables listed in 'vars'. The name of the object is 'name', its class name Roo<name>Class.

This function is an effective compiled replacement of RooFormulaVar

You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral.

Definition at line 244 of file RooClassFactory.cxx.

◆ makePdf()

bool RooClassFactory::makePdf ( std::string const &  name,
std::string const &  argNames = "",
std::string const &  catArgNames = "",
std::string const &  expression = "1.0",
bool  hasAnaInt = false,
bool  hasIntGen = false,
std::string const &  intExpression = "" 
)
static

Write code for a RooAbsPdf implementation with class name 'name'.

The difference to makePdf() is the base class of the written class (RooAbsPdf instead of RooAbsReal).

See also
RooClassFactory::makePdf(const char*, const char*, std::string const &, const char*, RooArgList const&, bool, bool, const char*)

Definition at line 335 of file RooClassFactory.cxx.

◆ makePdfInstance() [1/2]

RooAbsPdf * RooClassFactory::makePdfInstance ( std::string const &  className,
std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Write, compile and load code and instantiate object for a RooAbsPdf implementation with class name 'name', taking all elements of 'vars' as constructor arguments.

The initial value expression is taken to be 'expression' which can be any one-line C++ expression in terms of variables that occur in 'vars'.

The returned object is an instance of the object you just defined connected to the variables listed in 'vars'. The name of the object is 'name', its class name Roo<name>Class.

This function is an effective compiled replacement of RooGenericPdf

You can add optional expressions for analytical integrals to be advertised by your class in the syntax "<intObsName>:<CPPAnaIntExpression>;<intObsName,intObsName>:<CPPAnaIntExpression>" where "<intObsName>" a name of the observable integrated over and "<CPPAnaIntExpression>" is the C++ expression that calculates that integral.

Definition at line 320 of file RooClassFactory.cxx.

◆ makePdfInstance() [2/2]

RooAbsPdf * RooClassFactory::makePdfInstance ( std::string const &  name,
std::string const &  expression,
const RooArgList vars,
std::string const &  intExpression = "" 
)
static

Write, compile and load code and instantiate object for a RooAbsPdf implementation.

The difference to makeFunctionInstance() is the base class of the written class (RooAbsPdf instead of RooAbsReal).

See also
RooClassFactory::makeFunctionInstance(const char*, const char*, RooArgList const&, const char*)

Definition at line 289 of file RooClassFactory.cxx.


The documentation for this class was generated from the following files: