50 _varList(
"varList",
"List of variables",
this),
51 _pdfList(
"pdfList",
"List of pdfs",
this),
74 _varList(
"varList",
"List of variables",
this),
75 _pdfList(
"pdfList",
"List of pdfs",
this),
91 coutE(InputArguments) <<
"RooMomentMorph::ctor(" <<
GetName() <<
") ERROR: mref " <<
mref->GetName() <<
" is not of type RooAbsReal" << std::endl ;
92 throw std::string(
"RooPolyMorh::ctor() ERROR mref is not of type RooAbsReal") ;
95 coutW(InputArguments) <<
"RooMomentMorph::ctor(" <<
GetName() <<
") WARNING mref point " << i <<
" is not a constant, taking a snapshot of its value" << std::endl ;
111 _varList(
"varList",
this,
other._varList),
112 _pdfList(
"pdfList",
this,
other._pdfList),
114 _setting(
other._setting),
115 _useHorizMorph(
other._useHorizMorph)
138 coutE(InputArguments) <<
"RooMomentMorph::initialize(" <<
GetName() <<
") ERROR: nPdf != nRefPoints" << std::endl ;
148 dm[i] = (*_mref)[i]-(*_mref)[0];
150 if (i>0) M(0,i) = 0.;
154 M(i,
j) = std::pow(dm[i],(
double)
j);
163 std::unique_ptr<RooChangeTracker> &&
tracker,
182 std::vector<RooAbsReal*>
myrms(
nVar,null);
183 std::vector<RooAbsReal*>
mypos(
nVar,null);
197 std::string
fracName =
"frac_" + std::to_string(i);
202 if (i<
nPdf) coefList.
add(*frac);
223 mom->setLocalNoDirtyInhibit(
true) ;
224 mom->mean()->setLocalNoDirtyInhibit(
true) ;
254 std::string
pdfName =
"pdf_" + std::to_string(i);
303 cache->calculateFractions(*
this,
false);
333 if (cache->
_tracker->hasChanged(
true)) {
346 if (cache->
_tracker->hasChanged(
true)) {
357 return static_cast<RooRealVar*
>(_frac.at(i)) ;
364 return static_cast<RooRealVar*
>(_frac.at(i)) ;
373 double dm =
self.m - (*
self._mref)[0];
385 if (verbose) { std::cout <<
ffrac << std::endl; }
392 switch (
self._setting) {
427 if (frac(i)->getVal() < 0)
428 const_cast<RooRealVar *
>(frac(i))->setVal(0.);
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
TMatrixT< Double_t > TMatrixD
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
Storage_t::size_type size() const
bool addTyped(const RooAbsCollection &list, bool silent=false)
Adds elements of a given RooAbsCollection to the container if they match the specified type.
Abstract interface for all probability density functions.
double getValV(const RooArgSet *set=nullptr) const override
Return current value, normalized by integrating over the observables in nset.
const RooArgSet * nset() const
Abstract base class for objects that represent a real value and implements functionality common to al...
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
Calculates the sum of a set of RooAbsReal terms, or when constructed with two sets,...
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Int_t setObj(const RooArgSet *nset, T *obj, const TNamed *isetRangeName=nullptr)
Setter function without integration set.
T * getObj(const RooArgSet *nset, Int_t *sterileIndex=nullptr, const TNamed *isetRangeName=nullptr)
Getter function without integration set.
Represents a constant real-valued object.
RooCustomizer is a factory class to produce clones of a prototype composite PDF object with the same ...
RooLinearVar is the most general form of a derived real-valued object that can be used by RooRealInte...
RooArgList containedArgs(Action) override
CacheElem(std::unique_ptr< RooAbsPdf > &&sumPdf, std::unique_ptr< RooChangeTracker > &&tracker, const RooArgList &flist)
RooRealVar * frac(Int_t i)
void calculateFractions(const RooMomentMorph &self, bool verbose=true) const
std::unique_ptr< RooAbsPdf > _sumPdf
std::unique_ptr< RooChangeTracker > _tracker
RooObjCacheManager _cacheMgr
friend class CacheElem
Current normalization set.
~RooMomentMorph() override
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
RooMomentMorph()
coverity[UNINIT_CTOR]
RooAbsPdf * sumPdf(const RooArgSet *nset)
Int_t ij(const Int_t &i, const Int_t &j) const
RooArgSet * _curNormSet
The cache manager.
int idxmin(const double &m) const
int idxmax(const double &m) const
double getValV(const RooArgSet *set=nullptr) const override
Special version of getVal() overrides RooAbsReal::getVal() to save value of current normalization set...
CacheElem * getCache(const RooArgSet *nset) const
Variable that can be changed from the outside.
void setVal(double value) override
Set value of variable to 'value'.
const T & arg() const
Return reference to object held in proxy.
const char * GetName() const override
Returns name of object.
constexpr Double_t PiOver2()