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