Logo ROOT   6.16/01
Reference Guide
RooSimPdfBuilder.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooSimPdfBuilder.h,v 1.13 2007/05/11 10:14:56 verkerke Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_SIM_PDF_BUILDER
17#define ROO_SIM_PDF_BUILDER
18
19#include "Rtypes.h"
20#include "TObject.h"
21#include "RooArgSet.h"
22#include "RooArgList.h"
23#include "RooAbsData.h"
24#include <list>
25class RooSimultaneous ;
26class RooAbsPdf ;
27class RooCategory ;
28class RooSuperCategory ;
29
30class RooSimPdfBuilder : public TObject {
31public:
32
33 RooSimPdfBuilder(const RooArgSet& pdfProtoList) ;
35
37
38 RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooArgSet& dependents,
39 const RooArgSet* auxSplitCats=0, Bool_t verbose=kFALSE) ;
40
41 RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooAbsData* dataSet,
42 const RooArgSet& auxSplitCats, Bool_t verbose=kFALSE) {
43 return buildPdf(buildConfig,*dataSet->get(),&auxSplitCats,verbose) ;
44 }
45
46 RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooArgSet& dependents,
47 const RooArgSet& auxSplitCats, Bool_t verbose=kFALSE) {
48 return buildPdf(buildConfig,dependents,&auxSplitCats,verbose) ;
49 }
50
51 RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooAbsData* dataSet,
52 const RooArgSet* auxSplitCats=0, Bool_t verbose=kFALSE) {
53 return buildPdf(buildConfig,*dataSet->get(),auxSplitCats,verbose) ;
54 }
55
57
58 void addSpecializations(const RooArgSet& specSet) ;
59
60protected:
61
62 RooArgSet _protoPdfSet ; // Set of prototype PDFS
63
64 RooArgSet _compSplitCatSet ; // List of owned composite splitting categories
65 RooArgSet _splitNodeListOwned ; // List of all split nodes
66 RooArgSet _splitNodeList ; // List of owned split nodes
67 TList _retiredCustomizerList ; // Retired customizer from previous builds (own their PDF branch nodes)
68
69 std::list<RooSimultaneous*> _simPdfList ; // The simpdfs that we built
70 std::list<RooSuperCategory*> _fitCatList ; // The supercategories that we built
71
72
73private:
74 RooSimPdfBuilder(const RooSimPdfBuilder&) ; // No copying allowed
75
76protected:
77 ClassDef(RooSimPdfBuilder,0) // RooSimultaneous PDF Builder (obsolete)
78};
79
80#endif
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:324
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:37
virtual const RooArgSet * get() const
Definition: RooAbsData.h:79
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Definition: RooAbsPdf.h:41
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooCategory represents a fundamental (non-derived) discrete value object.
Definition: RooCategory.h:24
RooArgSet _compSplitCatSet
RooArgSet _protoPdfSet
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
std::list< RooSuperCategory * > _fitCatList
RooArgSet _splitNodeList
std::list< RooSimultaneous * > _simPdfList
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
Initialize needed components.
RooArgSet * createProtoBuildConfig()
Make RooArgSet of configuration objects.
void addSpecializations(const RooArgSet &specSet)
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
RooArgSet _splitNodeListOwned
const RooArgSet & splitLeafList()
RooSimPdfBuilder(const RooArgSet &pdfProtoList)
RooSimPdfBuilder(const RooSimPdfBuilder &)
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
RooSuperCategory consolidates several RooAbsCategoryLValue objects into a single category.
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37