11#ifndef ROOMOMENTMORPHFUNCND
12#define ROOMOMENTMORPHFUNCND
61 Grid2(std::vector<RooAbsBinning *>
const &binnings)
63 for (
unsigned int i = 0; i < binnings.size(); i++) {
76 mutable std::vector<RooAbsBinning *>
_grid;
78 mutable std::map<std::vector<int>,
int>
_pdfMap;
80 mutable std::vector<std::vector<double>>
_nref;
94 std::unique_ptr<RooAbsReal>
_sum;
110 const Grid2 &referenceGrid, Setting setting);
139 std::unique_ptr<RooAbsArg>
148 void findShape(
const std::vector<double> &
x)
const;
162 mutable std::unique_ptr<TMatrixD>
_M;
163 mutable std::unique_ptr<TMatrixD>
_MSqr;
171 inline int sij(
const int &i,
const int &j)
const {
return (i *
_obsList.size() + j); }
RooCollectionProxy< RooArgList > RooListProxy
RooCollectionProxy< RooArgSet > RooSetProxy
void findShape(const std::vector< double > &x) const
**void setPdfMode(bool flag=true)
CacheElem * getCache(const RooArgSet *nset) const
RooAbsReal * sumFunc(const RooArgSet *nset)
std::vector< int > _squareIdx
std::unique_ptr< RooAbsArg > compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext &ctx) const override
bool setBinIntegrator(RooArgSet &allVars)
std::unique_ptr< TMatrixD > _MSqr
RooObjCacheManager _cacheMgr
! Transient cache manager
std::unique_ptr< TMatrixD > _M
int sij(const int &i, const int &j) const
RooArgSet * _curNormSet
! Transient cache manager
void useHorizontalMorphing(bool val)
std::vector< std::vector< double > > _squareVec
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
TVectorT< Double_t > TVectorD
Abstract base class for RooRealVar binning definitions.
virtual RooAbsBinning * clone(const char *name=nullptr) const =0
Abstract base class for objects that represent a real value and implements functionality common to al...
virtual double getValV(const RooArgSet *normalisationSet=nullptr) const
Return value of object.
RooAbsReal()
coverity[UNINIT_CTOR] Default constructor
virtual double evaluate() const =0
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Meta object that tracks value changes in a given set of RooAbsArgs by registering itself as value cli...
Helper compute-graph node that exposes one of the morph mixing fractions to the RooFit::Evaluator.
TObject * clone(const char *newname) const override
const RooMomentMorphFuncND * _parent
! morph that owns the cache (not owned)
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
void calculateFractions(const RooMomentMorphFuncND &self, bool verbose=true) const
std::unique_ptr< RooChangeTracker > _tracker
std::unique_ptr< RooAbsReal > _sum
RooArgList containedArgs(Action) override
CacheElem(std::unique_ptr< RooAbsReal > &&sumFunc, std::unique_ptr< RooChangeTracker > &&tracker, const RooArgList &flist)
std::vector< int > _nnuis
Grid2(const RooAbsBinning &binning_x, const RooAbsBinning &binning_y)
void addBinning(const RooAbsBinning &binning)
std::vector< RooAbsBinning * > _grid
Grid2(std::vector< RooAbsBinning * > const &binnings)
std::map< std::vector< int >, int > _pdfMap
Grid2(const RooAbsBinning &binning_x)
Grid2(const RooAbsBinning &binning_x, const RooAbsBinning &binning_y, const RooAbsBinning &binning_z)
std::vector< std::vector< double > > _nref
void addPdf(const RooAbsReal &func, int bin_x)
TObject * clone(const char *newname) const override
void setMode(const Setting &setting)
~RooMomentMorphFuncND() override
Implementation of a RooCacheManager<RooAbsCacheElement> that specializes in the storage of cache elem...
Variable that can be changed from the outside.
Mother of all ROOT objects.
TObject()
TObject constructor.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...