7#ifndef ROOMOMENTMORPHND
8#define ROOMOMENTMORPHND
51 Grid2(std::vector<RooAbsBinning *>
const &binnings)
53 for (
unsigned int i = 0; i < binnings.size(); i++) {
66 mutable std::vector<RooAbsBinning *>
_grid;
68 mutable std::map<std::vector<int>,
int>
_pdfMap;
70 mutable std::vector<std::vector<double>>
_nref;
102 const Grid2 &referenceGrid,
const Setting &setting);
125 void findShape(
const std::vector<double> &
x)
const;
138 mutable std::unique_ptr<TMatrixD>
_M;
139 mutable std::unique_ptr<TMatrixD>
_MSqr;
#define ClassDefOverride(name, id)
RooAbsBinning is the abstract base class for RooRealVar binning definitions.
virtual RooAbsBinning * clone(const char *name=nullptr) const =0
RooAbsCacheElement is the abstract base class for objects to be stored in RooAbsCache cache manager o...
Int_t getSize() const
Return the number of elements in the collection.
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
RooAbsPdf()
Default constructor.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
RooAddPdf is an efficient implementation of a sum of PDFs of the form.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooChangeTracker is a meta object that tracks value changes in a given set of RooAbsArgs by registeri...
RooChangeTracker * _tracker
CacheElem(RooAbsPdf &sumPdf, RooChangeTracker &tracker, const RooArgList &flist)
void calculateFractions(const RooMomentMorphND &self, bool verbose=true) const
RooArgList containedArgs(Action) override
Grid2(const RooAbsBinning &binning_x, const RooAbsBinning &binning_y, const RooAbsBinning &binning_z)
Grid2(std::vector< RooAbsBinning * > const &binnings)
std::map< std::vector< int >, int > _pdfMap
Grid2(const RooAbsBinning &binning_x)
void addBinning(const RooAbsBinning &binning)
std::vector< RooAbsBinning * > _grid
Grid2(const RooAbsBinning &binning_x, const RooAbsBinning &binning_y)
std::vector< int > _nnuis
void addPdf(const RooAbsPdf &pdf, int bin_x)
std::vector< std::vector< double > > _nref
void useHorizontalMorphing(bool val)
std::vector< int > _squareIdx
CacheElem * getCache(const RooArgSet *nset) const
bool setBinIntegrator(RooArgSet &allVars)
RooObjCacheManager _cacheMgr
! Transient cache manager
RooArgSet * _curNormSet
! Transient cache manager
std::unique_ptr< TMatrixD > _M
std::vector< std::vector< double > > _squareVec
void initializeObservables(const RooArgList &obsList)
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
bool selfNormalized() const override
Shows if a PDF is self-normalized, which means that no attempt is made to add a normalization term.
void setMode(const Setting &setting)
int sij(const int &i, const int &j) const
virtual double getVal(const RooArgSet *set=nullptr) const
void findShape(const std::vector< double > &x) const
RooAbsPdf * sumPdf(const RooArgSet *nset)
void initializeParameters(const RooArgList &parList)
~RooMomentMorphND() override
TObject * clone(const char *newname) const override
std::unique_ptr< TMatrixD > _MSqr
Class RooObjCacheManager is an implementation of class RooCacheManager<RooAbsCacheElement> and specia...
RooRealVar represents a variable that can be changed from the outside.
Mother of all ROOT objects.