Logo ROOT   master
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
std::list< RooSimultaneous * > _simPdfList
virtual const RooArgSet * get() const
Definition: RooAbsData.h:87
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet &auxSplitCats, Bool_t verbose=kFALSE)
#define ClassDef(name, id)
Definition: Rtypes.h:322
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooAbsData *dataSet, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
This tool has now been superseded by RooSimWSTool
RooArgSet _splitNodeListOwned
A doubly linked list.
Definition: TList.h:44
RooSimultaneous * buildPdf(const RooArgSet &buildConfig, const RooArgSet &dependents, const RooArgSet *auxSplitCats=0, Bool_t verbose=kFALSE)
Initialize needed components.
RooAbsData is the common abstract base class for binned and unbinned datasets.
Definition: RooAbsData.h:44
RooArgSet _splitNodeList
RooCategory is an object to represent discrete states.
Definition: RooCategory.h:23
std::list< RooSuperCategory * > _fitCatList
const Bool_t kFALSE
Definition: RtypesCore.h:90
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:37
RooAbsPdf, the base class of all PDFs
Definition: RooAbsPdf.h:40
RooArgSet _protoPdfSet
const RooArgSet & splitLeafList()
RooSimPdfBuilder(const RooArgSet &pdfProtoList)
The RooSuperCategory can join several RooAbsCategoryLValue objects into a single category.
RooSimultaneous facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset...
RooArgSet * createProtoBuildConfig()
Make RooArgSet of configuration objects.