Logo ROOT  
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 "TList.h"
22 #include "RooArgSet.h"
23 #include "RooArgList.h"
24 #include "RooAbsData.h"
25 #include <list>
26 
27 class RooSimultaneous ;
28 class RooAbsPdf ;
29 class RooCategory ;
30 class RooSuperCategory ;
31 
32 class RooSimPdfBuilder : public TObject {
33 public:
34 
35  RooSimPdfBuilder(const RooArgSet& pdfProtoList) ;
37 
39 
40  RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooArgSet& dependents,
41  const RooArgSet* auxSplitCats=0, Bool_t verbose=kFALSE) ;
42 
43  RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooAbsData* dataSet,
44  const RooArgSet& auxSplitCats, Bool_t verbose=kFALSE) {
45  return buildPdf(buildConfig,*dataSet->get(),&auxSplitCats,verbose) ;
46  }
47 
48  RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooArgSet& dependents,
49  const RooArgSet& auxSplitCats, Bool_t verbose=kFALSE) {
50  return buildPdf(buildConfig,dependents,&auxSplitCats,verbose) ;
51  }
52 
53  RooSimultaneous* buildPdf(const RooArgSet& buildConfig, const RooAbsData* dataSet,
54  const RooArgSet* auxSplitCats=0, Bool_t verbose=kFALSE) {
55  return buildPdf(buildConfig,*dataSet->get(),auxSplitCats,verbose) ;
56  }
57 
58  const RooArgSet& splitLeafList() { return _splitNodeList; }
59 
60  void addSpecializations(const RooArgSet& specSet) ;
61 
62 protected:
63 
64  RooArgSet _protoPdfSet ; // Set of prototype PDFS
65 
66  RooArgSet _compSplitCatSet ; // List of owned composite splitting categories
67  RooArgSet _splitNodeListOwned ; // List of all split nodes
68  RooArgSet _splitNodeList ; // List of owned split nodes
69  TList _retiredCustomizerList ; // Retired customizer from previous builds (own their PDF branch nodes)
70 
71  std::list<RooSimultaneous*> _simPdfList ; // The simpdfs that we built
72  std::list<RooSuperCategory*> _fitCatList ; // The supercategories that we built
73 
74 
75 private:
76  RooSimPdfBuilder(const RooSimPdfBuilder&) ; // No copying allowed
77 
78 protected:
79  ClassDef(RooSimPdfBuilder,0) // RooSimultaneous PDF Builder (obsolete)
80 };
81 
82 #endif
RooAbsData
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:49
RooArgSet.h
RooSimPdfBuilder::RooSimPdfBuilder
RooSimPdfBuilder(const RooArgSet &pdfProtoList)
Definition: RooSimPdfBuilder.cxx:465
RooSimPdfBuilder::_splitNodeListOwned
RooArgSet _splitNodeListOwned
Definition: RooSimPdfBuilder.h:67
RooSimPdfBuilder::RooSimPdfBuilder
RooSimPdfBuilder(const RooSimPdfBuilder &)
RooSimPdfBuilder
This tool has now been superseded by RooSimWSTool
Definition: RooSimPdfBuilder.h:32
TList.h
RooSimPdfBuilder::createProtoBuildConfig
RooArgSet * createProtoBuildConfig()
Make RooArgSet of configuration objects.
Definition: RooSimPdfBuilder.cxx:479
RooSimPdfBuilder::_retiredCustomizerList
TList _retiredCustomizerList
Definition: RooSimPdfBuilder.h:69
bool
RooSimPdfBuilder::buildPdf
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
Definition: RooSimPdfBuilder.h:53
RooSimPdfBuilder::_fitCatList
std::list< RooSuperCategory * > _fitCatList
Definition: RooSimPdfBuilder.h:72
RooSimPdfBuilder::splitLeafList
const RooArgSet & splitLeafList()
Definition: RooSimPdfBuilder.h:58
RooSimPdfBuilder::addSpecializations
void addSpecializations(const RooArgSet &specSet)
Definition: RooSimPdfBuilder.cxx:499
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
RooSimPdfBuilder::buildPdf
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
Initialize needed components.
Definition: RooSimPdfBuilder.cxx:509
RooAbsData::get
virtual const RooArgSet * get() const
Definition: RooAbsData.h:92
RooSimPdfBuilder::_protoPdfSet
RooArgSet _protoPdfSet
Definition: RooSimPdfBuilder.h:64
RooSimPdfBuilder::_simPdfList
std::list< RooSimultaneous * > _simPdfList
Definition: RooSimPdfBuilder.h:71
RooSimPdfBuilder::_compSplitCatSet
RooArgSet _compSplitCatSet
Definition: RooSimPdfBuilder.h:66
RooSimPdfBuilder::buildPdf
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
Definition: RooSimPdfBuilder.h:43
RooSimPdfBuilder::~RooSimPdfBuilder
~RooSimPdfBuilder()
Definition: RooSimPdfBuilder.cxx:1058
RooAbsData.h
TObject.h
RooSimPdfBuilder::_splitNodeList
RooArgSet _splitNodeList
Definition: RooSimPdfBuilder.h:68
RooCategory
RooCategory is an object to represent discrete states.
Definition: RooCategory.h:27
RooSuperCategory
The RooSuperCategory can join several RooAbsCategoryLValue objects into a single category.
Definition: RooSuperCategory.h:27
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
genreflex::verbose
bool verbose
Definition: rootcling_impl.cxx:133
RooAbsPdf
Definition: RooAbsPdf.h:43
RooSimPdfBuilder::buildPdf
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
Definition: RooSimPdfBuilder.h:48
RooSimultaneous
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
Definition: RooSimultaneous.h:37
RooArgList.h
Rtypes.h
TList
A doubly linked list.
Definition: TList.h:44
RooArgSet
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:29