Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User

RooFit Toolkit for Data Modeling
#include "RooSimultaneous.hh"

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) const virtual Double_t expectedEvents(const RooArgSet& nset) 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 facilitates simultaneous fitting of multiple PDFs
 to subsets of a given dataset.

 The class takes an index category, which is interpreted as
 the data subset indicator, and a list of PDFs, each associated
 with a state of the index category. RooSimultaneous always returns
 the value of the PDF that is associated with the current value
 of the index category

 Extended likelihood fitting is supported if all components support
 extended likelihood mode. As for the returned probability density,
 the expected number of events for the PDF associated with the current
 state of the index category is returned.

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:
 If the index is in nset, then return the sum of the expected events of all components,
 otherwise return 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
                     Double_t expectedEvents(const RooArgSet& nset) 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 CVS Update: v 1.62 2005/12/01 16:10:20 wverkerke Top
Copyright © 2000-2005 University of California, Stanford University

Page maintained by Wouter Verkerke and David Kirkby

SourceForge.net Logo