library: libRooFit #include "RooSimultaneous.h"

# RooSimultaneous

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

## class RooSimultaneous : public RooAbsPdf

| Inheritance Chart:
`TObject`
| <- | `TNamed`
`RooPrintable`
| <- | `RooAbsArg`
| <- | `RooAbsReal`
| <- | `RooAbsPdf`
| <- | `RooSimultaneous` |

        protected:

          virtual RooAbsGenContext* genContext(const RooArgSet& vars, const RooDataSet* prototype = 0, const RooArgSet* auxProto = 0, Bool_t verbose = kFALSE) const
                   virtual RooPlot* plotOn(RooPlot* frame, RooLinkedList& cmdList) const
                     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)

        public:

                                        RooSimultaneous()
                                        RooSimultaneous(const char* name, const char* title, RooAbsCategoryLValue& indexCat)
                                        RooSimultaneous(const char* name, const char* title, const RooArgList& pdfList, RooAbsCategoryLValue& indexCat)
                                        RooSimultaneous(const RooSimultaneous& other, const char* name = "0")
                                virtual ~RooSimultaneous()
                                 Bool_t addPdf(const RooAbsPdf& pdf, const char* catLabel)
                       virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName = "0") const
                         static TClass* Class()
                       virtual TObject* clone(const char* newname) const
                       virtual Double_t evaluate() const
                       virtual Double_t expectedEvents(const RooArgSet* nset = 0) const
          virtual RooAbsPdf::ExtendMode extendMode() const
                         virtual Bool_t forceAnalyticalInt(const RooAbsArg&) const
                          virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& numVars, const RooArgSet* normSet, const char* rangeName = "0") const
                             RooAbsPdf* getPdf(const char* catName) const
                  const RooAbsCategory& indexCat() const
                        virtual TClass* IsA() const
                       virtual RooPlot* plotOn(RooPlot* frame, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg(), const RooCmdArg& arg3 = RooCmdArg(), const RooCmdArg& arg4 = RooCmdArg(), const RooCmdArg& arg5 = RooCmdArg(), const RooCmdArg& arg6 = RooCmdArg(), const RooCmdArg& arg7 = RooCmdArg(), const RooCmdArg& arg8 = RooCmdArg(), const RooCmdArg& arg9 = RooCmdArg(), const RooCmdArg& arg10 = RooCmdArg()) const
                       virtual RooPlot* plotOn(RooPlot* frame, Option_t* drawOptions, Double_t scaleFactor = 1.0, RooAbsReal::ScaleType stype = Relative, const RooAbsData* projData = 0, const RooArgSet* projSet = 0, Double_t precision = 1e-3, Bool_t shiftToZero = kFALSE, const RooArgSet* projDataSet = 0, Double_t rangeLo = 0, Double_t rangeHi = 0, RooCurve::WingMode wmode = RooCurve::Extended) const
                         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 _plotCoefNormSet
               const TNamed* _plotCoefNormRange
          RooNormListManager _normListMgr        Component normalization list manager
            RooCategoryProxy _indexCat           Index category
                       TList _pdfProxyList       List of PDF proxies (named after applicable category state)
                       Int_t _numPdf             Number of registered PDFs
                      Bool_t _anyCanExtend       Flag set if all component PDFs are extendable
                      Bool_t _anyMustExtend      Flag set if all component PDFs are extendable

## Class Description

RooSimultaneous(const char *name, const char *title, RooAbsCategoryLValue& indexCat) : RooAbsPdf(name,title), _plotCoefNormSet("plotCoefNormSet","plotCoefNormSet",this,kFALSE,kFALSE), _normListMgr(10), _indexCat("indexCat","Index category",this,indexCat), _numPdf(0), _anyCanExtend(kFALSE), _anyMustExtend(kFALSE)

     Constructor from index category. PDFs associated with indexCat
     states can be added after construction with the addPdf() function.

     RooSimultaneous can function without having a PDF associated
     with every single state. The normalization in such cases is taken
     from the number of registered PDFs, but getVal() will assert if
     when called for an unregistered index state.

RooSimultaneous(const char *name, const char *title, const RooArgList& pdfList, RooAbsCategoryLValue& indexCat) : RooAbsPdf(name,title), _plotCoefNormSet("plotCoefNormSet","plotCoefNormSet",this,kFALSE,kFALSE), _normListMgr(10), _indexCat("indexCat","Index category",this,indexCat), _numPdf(0), _anyCanExtend(kFALSE), _anyMustExtend(kFALSE)

     Constructor from index category and full list of PDFs.
     In this constructor form, a PDF must be supplied for each indexCat state
     to avoid ambiguities. The PDFS are associated in order with the state of the
     index category as listed by the index categories type iterator.

     PDFs may not overlap (i.e. share any variables) with the index category

RooSimultaneous(const RooSimultaneous& other, const char* name) : RooAbsPdf(other,name), _plotCoefNormSet("plotCoefNormSet",this,other._plotCoefNormSet), _normListMgr(other._normListMgr), _indexCat("indexCat",this,other._indexCat), _numPdf(other._numPdf), _anyCanExtend(other._anyCanExtend), _anyMustExtend(other._anyMustExtend)

     Copy constructor

~RooSimultaneous()

     Destructor

RooAbsPdf* getPdf(const char* catName) const

     Retrieve the proxy by index name

Bool_t addPdf(const RooAbsPdf& pdf, const char* catLabel)

     Associate given PDF with index category state label 'catLabel'.
     The names state must be already defined in the index category

     RooSimultaneous can function without having a PDF associated
     with every single state. The normalization in such cases is taken
     from the number of registered PDFs, but getVal() will assert if
     when called for an unregistered index state.

     PDFs may not overlap (i.e. share any variables) with the index category

Double_t evaluate() const

     Return the current value:
     the value of the PDF associated with the current index category state

Double_t expectedEvents(const RooArgSet* nset) const

     Return the number of expected events:
     the number of expected events of the PDF associated with the current index category state

Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName) const

     Distributed integration implementation

Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* /*rangeName*/) const

     Return analytical integral defined by given scenario code

Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t /*isRecursive*/)

RooPlot* plotOn(RooPlot *frame, RooLinkedList& cmdList) const

     New experimental plotOn() with varargs...

RooPlot* plotOn(RooPlot *frame, Option_t* drawOptions, Double_t scaleFactor, ScaleType stype, const RooAbsData* projData, const RooArgSet* projSet, Double_t /*precision*/, Bool_t /*shiftToZero*/, const RooArgSet* /*projDataSet*/, Double_t /*rangeLo*/, Double_t /*rangeHi*/, RooCurve::WingMode /*wmode*/) const

     Forward to new implementation

void selectNormalization(const RooArgSet* normSet, Bool_t /*force*/)

void selectNormalizationRange(const char* normRange, Bool_t /*force*/)

RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype, const RooArgSet* auxProto, Bool_t verbose) const

### Inline Functions

                  RooSimultaneous RooSimultaneous(const RooSimultaneous& other, const char* name = "0")
                         TObject* clone(const char* newname) const
                           Bool_t selfNormalized() const
            RooAbsPdf::ExtendMode extendMode() const
                           Bool_t forceAnalyticalInt(const RooAbsArg&) const
            const RooAbsCategory& indexCat() const
                         RooPlot* plotOn(RooPlot* frame, RooLinkedList& cmdList) 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:15:17 2005
Copyright (c) 2000-2005, Regents of the University of California *