48 _xf(
"!xf",
"xf",this,false,false),
49 _ixf(
"!ixf",
"ixf",this),
54 std::string pname=
Form(
"%s_product",
name) ;
56 std::unique_ptr<RooFormulaVar> XF;
58 std::string formula=
Form(
"pow((@0-@1),%d)*@2",
_order) ;
61 XF = std::make_unique<RooFormulaVar>(pname.c_str(),formula.c_str(),
RooArgList(
x,*mom1,func)) ;
66 std::string formula=
Form(
"pow(@0,%d)*@1",
_order) ;
67 XF = std::make_unique<RooFormulaVar>(pname.c_str(),formula.c_str(),
RooArgSet(
x,func)) ;
72 XF->specialIntegratorConfig(
true)->method1D().setLabel(
"RooBinIntegrator");
75 std::unique_ptr<RooAbsReal> intXF{XF->createIntegral(
x)};
91 Int_t orderIn,
bool centr,
bool takeRoot,
bool intNSet) :
93 _xf(
"!xf",
"xf",this,false,false),
94 _ixf(
"!ixf",
"ixf",this),
101 std::string pname=
Form(
"%s_product",
name) ;
102 std::unique_ptr<RooFormulaVar> XF;
104 std::string formula=
Form(
"pow((@0-@1),%d)*@2",
_order) ;
107 XF = std::make_unique<RooFormulaVar>(pname.c_str(),formula.c_str(),
RooArgList(
x,*mom1,func)) ;
110 _mean.setArg(*mom1) ;
112 std::string formula=
Form(
"pow(@0,%d)*@1",
_order) ;
113 XF = std::make_unique<RooFormulaVar>(pname.c_str(),formula.c_str(),
RooArgSet(
x,func)) ;
118 XF->specialIntegratorConfig(
true)->method1D().setLabel(
"RooBinIntegrator");
122 if (intNSet) intSet.
add(
_nset,
true) ;
124 std::unique_ptr<RooAbsReal> intXF{XF->createIntegral(intSet, &
_nset)};
130 _ixf.setArg(*intXF) ;
143 _xf(
"xf",this,other._xf),
144 _ixf(
"ixf",this,other._ixf),
145 _if(
"if",this,other._if)
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
RooExpensiveObjectCache & expensiveObjectCache() const
virtual void setExpensiveObjectCache(RooExpensiveObjectCache &cache)
bool addOwnedComponents(const RooAbsCollection &comps)
Take ownership of the contents of 'comps'.
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
RooRealProxy _mean
Mean (if calculated for central moment)
Int_t _order
Moment order.
Int_t _takeRoot
Return n-order root of moment.
RooSetProxy _nset
Normalization set (optional)
Abstract base class for objects that represent a real value and implements functionality common to al...
RooFit::OwningPtr< RooAbsReal > createIntegral(const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}) const
Create an object that represents the integral of the function over one or more observables listed in ...
RooAbsMoment * mean(RooRealVar &obs)
virtual bool isBinnedDistribution(const RooArgSet &) const
Tests if the distribution is binned. Unless overridden by derived classes, this always returns false.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
bool add(const RooAbsArg &var, bool valueServer, bool shapeServer, bool silent)
Overloaded RooCollection_t::add() method insert object into set and registers object as server to own...
double evaluate() const override
Calculate value.
RooRealProxy _if
Int(F(x))dx ;.
RooRealProxy _ixf
Int(X*F(X))dx ;.
Performs hybrid numerical/analytical integrals of RooAbsReal objects.
void setCacheNumeric(bool flag)
Variable that can be changed from the outside.
const char * GetName() const override
Returns name of object.