ROOT  6.06/09
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>
25 class RooSimultaneous ;
26 class RooAbsPdf ;
27 class RooCategory ;
28 class RooSuperCategory ;
29 
30 class RooSimPdfBuilder : public TObject {
31 public:
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 
56  const RooArgSet& splitLeafList() { return _splitNodeList; }
57 
58  void addSpecializations(const RooArgSet& specSet) ;
59 
60 protected:
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 
73 private:
74  RooSimPdfBuilder(const RooSimPdfBuilder&) ; // No copying allowed
75 
76 protected:
77  ClassDef(RooSimPdfBuilder,0) // RooSimultaneous PDF Builder (obsolete)
78 };
79 
80 #endif
std::list< RooSimultaneous * > _simPdfList
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
#define ClassDef(name, id)
Definition: Rtypes.h:254
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
RooArgSet _splitNodeListOwned
virtual const RooArgSet * get() const
Definition: RooAbsData.h:77
A doubly linked list.
Definition: TList.h:47
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
Initialize needed components.
bool verbose
RooArgSet _splitNodeList
std::list< RooSuperCategory * > _fitCatList
RooArgSet _compSplitCatSet
void addSpecializations(const RooArgSet &specSet)
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
Mother of all ROOT objects.
Definition: TObject.h:58
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Definition: RooAbsPdf.h:41
RooArgSet _protoPdfSet
const RooArgSet & splitLeafList()
RooSimPdfBuilder(const RooArgSet &pdfProtoList)
RooArgSet * createProtoBuildConfig()
Make RooArgSet of configuration objects.