library: libRooFit
#include "RooAddPdf.h"

RooAddPdf


class description - source file - inheritance tree (.pdf)

class RooAddPdf : public RooAbsPdf

Inheritance Chart:
TObject
<-
TNamed
RooPrintable
<-
RooAbsArg
<-
RooAbsReal
<-
RooAbsPdf
<-
RooAddPdf

    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 RooArgSet* snset, 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) const virtual Double_t expectedEvents(const RooArgSet& nset) 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)

Data Members


    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

Class Description


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 RooArgSet* snset, 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
                     Double_t expectedEvents(const RooArgSet& nset) 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: Thu Dec 8 21:17:01 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.