library: libRooFit #include "RooAddPdf.h" |
RooAddPdf
class description - source file - inheritance tree (.pdf)
protected:
virtual RooAbsGenContext* genContext(const RooArgSet& vars, const RooDataSet* prototype = 0, const RooArgSet* auxProto = 0, Bool_t verbose = kFALSE) const
virtual void operModeHook()
virtual Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
virtual void selectNormalization(const RooArgSet* depSet = 0, Bool_t force = kFALSE)
virtual void selectNormalizationRange(const char* rangeName = "0", Bool_t force = kFALSE)
void syncCoefProjList(const RooArgSet* nset, const RooArgSet* iset = 0, const char* rangeName = "0") const
void syncSuppNormList(const RooArgSet* nset, const char* rangeName) const
void updateCoefCache(const RooArgSet* nset, const char* rangeName) const
public:
RooAddPdf(const char* name, const char* title)
RooAddPdf(const char* name, const char* title, RooAbsPdf& pdf1, RooAbsPdf& pdf2, RooAbsReal& coef1)
RooAddPdf(const char* name, const char* title, const RooArgList& pdfList)
RooAddPdf(const char* name, const char* title, const RooArgList& pdfList, const RooArgList& coefList)
RooAddPdf(const RooAddPdf& other, const char* name = "0")
virtual ~RooAddPdf()
virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName = "0") const
virtual Bool_t checkObservables(const RooArgSet* nset) const
static TClass* Class()
virtual TObject* clone(const char* newname) const
const RooArgList& coefList() const
virtual Double_t evaluate() const
virtual Double_t expectedEvents(const RooArgSet* nset = 0) const
virtual RooAbsPdf::ExtendMode extendMode() const
void fixCoefNormalization(const RooArgSet& refCoefNorm)
void fixCoefRange(const char* rangeName)
virtual Bool_t forceAnalyticalInt(const RooAbsArg&) const
virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& numVars, const RooArgSet* normSet, const char* rangeName = "0") const
virtual TClass* IsA() const
const RooArgList& pdfList() const
virtual void resetErrorCounters(Int_t resetValue = 10)
virtual Bool_t selfNormalized() const
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
RooSetProxy _refCoefNorm
TNamed* _refCoefRangeName
Bool_t _projectCoefs
RooNormListManager _projListMgr
RooArgList* _pdfProjList
RooNormListManager _suppListMgr
RooArgSet* _lastSupNormSet
Double_t* _coefCache
RooAICRegistry _codeReg Registry of component analytical integration codes
RooListProxy _pdfList List of component PDFs
RooListProxy _coefList List of coefficients
RooArgList* _snormList List of supplemental normalization factors
TIterator* _pdfIter ! Iterator over PDF list
TIterator* _coefIter ! Iterator over coefficient list
Bool_t _haveLastCoef Flag indicating if last PDFs coefficient was supplied in the ctor
Bool_t _allExtendable Flag indicating if all PDF components are extendable
Int_t _coefErrCount ! Coefficient error counter
RooAddPdf(const char *name, const char *title) :
RooAbsPdf(name,title),
_refCoefNorm("refCoefNorm","Reference coefficient normalization set",this,kFALSE,kFALSE),
_refCoefRangeName(0),
_projectCoefs(kFALSE),
_projListMgr(10),
_pdfProjList(0),
_suppListMgr(10),
_lastSupNormSet(0),
_codeReg(10),
_pdfList("pdfList","List of PDFs",this),
_coefList("coefList","List of coefficients",this),
_haveLastCoef(kFALSE),
_allExtendable(kTRUE)
Dummy constructor
RooAddPdf(const char *name, const char *title,
RooAbsPdf& pdf1, RooAbsPdf& pdf2, RooAbsReal& coef1) :
RooAbsPdf(name,title),
_refCoefNorm("refCoefNorm","Reference coefficient normalization set",this,kFALSE,kFALSE),
_refCoefRangeName(0),
_projectCoefs(kFALSE),
_projListMgr(10),
_pdfProjList(0),
_suppListMgr(10),
_lastSupNormSet(0),
_codeReg(10),
_pdfList("pdfProxyList","List of PDFs",this),
_coefList("coefList","List of coefficients",this),
_haveLastCoef(kFALSE),
_allExtendable(kFALSE)
Special constructor with two PDFs and one coefficient (most frequent use case)
RooAddPdf(const char *name, const char *title, const RooArgList& pdfList, const RooArgList& coefList) :
RooAbsPdf(name,title),
_refCoefNorm("refCoefNorm","Reference coefficient normalization set",this,kFALSE,kFALSE),
_refCoefRangeName(0),
_projectCoefs(kFALSE),
_projListMgr(10),
_pdfProjList(0),
_suppListMgr(10),
_lastSupNormSet(0),
_codeReg(10),
_pdfList("pdfProxyList","List of PDFs",this),
_coefList("coefList","List of coefficients",this),
_haveLastCoef(kFALSE),
_allExtendable(kFALSE)
Generic constructor from list of PDFs and list of coefficients.
Each pdf list element (i) is paired with coefficient list element (i).
The number of coefficients must be either equal to the number of PDFs,
in which case extended MLL fitting is enabled, or be one less.
All PDFs must inherit from RooAbsPdf. All coefficients must inherit from RooAbsReal
RooAddPdf(const char *name, const char *title, const RooArgList& pdfList) :
RooAbsPdf(name,title),
_refCoefNorm("refCoefNorm","Reference coefficient normalization set",this,kFALSE,kFALSE),
_projectCoefs(kFALSE),
_projListMgr(10),
_pdfProjList(0),
_suppListMgr(10),
_lastSupNormSet(0),
_codeReg(10),
_pdfList("pdfProxyList","List of PDFs",this),
_coefList("coefList","List of coefficients",this),
_haveLastCoef(kFALSE),
_allExtendable(kTRUE)
Generic constructor from list of extended PDFs. There are no coefficients as the expected
number of events from each components determine the relative weight of the PDFs.
All PDFs must inherit from RooAbsPdf.
RooAddPdf(const RooAddPdf& other, const char* name) :
RooAbsPdf(other,name),
_refCoefNorm("refCoefNorm",this,other._refCoefNorm),
_refCoefRangeName((TNamed*)other._refCoefRangeName),
_projectCoefs(other._projectCoefs),
_projListMgr(other._projListMgr),
_pdfProjList(0),
_suppListMgr(other._projListMgr),
_lastSupNormSet(0),
_codeReg(other._codeReg),
_pdfList("pdfProxyList",this,other._pdfList),
_coefList("coefList",this,other._coefList),
_haveLastCoef(other._haveLastCoef),
_allExtendable(other._allExtendable)
Copy constructor
~RooAddPdf()
Destructor
void fixCoefNormalization(const RooArgSet& refCoefNorm)
void fixCoefRange(const char* rangeName)
void syncCoefProjList(const RooArgSet* nset, const RooArgSet* iset, const char* rangeName) const
cout << "syncCoefProjList called rangeName = " << (rangeName?rangeName:"<null>") << endl ;
void syncSuppNormList(const RooArgSet* nset, const char* /*rangeName*/) const
Update the list of supplemental normalization objects
void updateCoefCache(const RooArgSet* nset, const char* rangeName) const
cout << "RAP::updateCC rangeName = " << (rangeName?rangeName:"<null>") << endl ;
Double_t evaluate() const
Calculate the current value
void resetErrorCounters(Int_t resetValue)
Reset error counter to given value, limiting the number
of future error messages for this pdf to 'resetValue'
Bool_t checkObservables(const RooArgSet* nset) const
Check if PDF is valid for given normalization set.
Coeffient and PDF must be non-overlapping, but pdf-coefficient
pairs may overlap each other
Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars,
const RooArgSet* normSet, const char* rangeName) const
Determine which part (if any) of given integral can be performed analytically.
If any analytical integration is possible, return integration scenario code
RooAddPdf queries each component PDF for its analytical integration capability of the requested
set ('allVars'). It finds the largest common set of variables that can be integrated
by all components. If such a set exists, it reconfirms that each component is capable of
analytically integrating the common set, and combines the components individual integration
codes into a single integration code valid for RooAddPdf.
Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName) const
Return analytical integral defined by given scenario code
Double_t expectedEvents(const RooArgSet* nset) const
Return the number of expected events, which is either the sum of all coefficients
or the sum of the components extended terms
void selectNormalization(const RooArgSet* depSet, Bool_t force)
Ignore automatic adjustments if an explicit reference normalization has been selected
void selectNormalizationRange(const char* rangeName, Bool_t force)
Ignore automatic adjustments if an explicit reference range has been selected
RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype,
const RooArgSet* auxProto, Bool_t verbose) const
Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t /*isRecursive*/)
void operModeHook()
Inline Functions
TObject* clone(const char* newname) const
Bool_t forceAnalyticalInt(const RooAbsArg&) const
Bool_t selfNormalized() const
RooAbsPdf::ExtendMode extendMode() const
const RooArgList& pdfList() const
const RooArgList& coefList() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Last update: Tue Jun 28 18:10:47 2005
Copyright (c) 2000-2005, Regents of the University of California *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.