Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooNumGenConfig.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * File: $Id$
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_NUM_GEN_CONFIG
17 #define ROO_NUM_GEN_CONFIG
18 
19 #include "TObject.h"
20 #include "RooCategory.h"
21 #include "RooLinkedList.h"
22 class RooNumGenFactory ;
23 class RooAbsNumGenerator ;
24 
25 class RooNumGenConfig : public TObject, public RooPrintable {
26 public:
27 
28  RooNumGenConfig();
29  RooNumGenConfig(const RooNumGenConfig& other) ;
30  RooNumGenConfig& operator=(const RooNumGenConfig& other) ;
31  virtual ~RooNumGenConfig();
32 
33  // Return selected integration techniques for 1,2,N dimensional integrals
34  RooCategory& method1D(Bool_t cond, Bool_t cat) ;
35  RooCategory& method2D(Bool_t cond, Bool_t cat) ;
36  RooCategory& methodND(Bool_t cond, Bool_t cat) ;
37  const RooCategory& method1D(Bool_t cond, Bool_t cat) const ;
38  const RooCategory& method2D(Bool_t cond, Bool_t cat) const ;
39  const RooCategory& methodND(Bool_t cond, Bool_t cat) const ;
40 
41 
42  static RooNumGenConfig& defaultConfig() ;
43 
44  Bool_t addConfigSection(const RooAbsNumGenerator* proto, const RooArgSet& defaultConfig) ;
45  const RooArgSet& getConfigSection(const char* name) const ;
46  RooArgSet& getConfigSection(const char* name) ;
47 
48  void printMultiline(std::ostream &os, Int_t content, Bool_t verbose, TString indent= "") const;
49 
50  inline virtual void Print(Option_t *options= 0) const {
51  printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
52  }
53  virtual StyleOption defaultPrintStyle(Option_t* opt) const ;
54 
55 
56 protected:
57 
58  RooCategory _method1D ; // Selects integration method for 1D p.d.f.s
59  RooCategory _method1DCat ; // Selects integration method for 1D p.d.f.s with categories
60  RooCategory _method1DCond ; // Selects integration method for 1D conditional p.d.f.s
61  RooCategory _method1DCondCat ; // Selects integration method for 1D conditional p.d.f.s with categories
62 
63  RooCategory _method2D ; // Selects integration method for 2D p.d.f.s
64  RooCategory _method2DCat ; // Selects integration method for 2D p.d.f.s with categories
65  RooCategory _method2DCond ; // Selects integration method for 2D conditional p.d.f.s
66  RooCategory _method2DCondCat ; // Selects integration method for 2D conditional p.d.f.s with categories
67 
68  RooCategory _methodND ; // Selects integration method for ND p.d.f.s
69  RooCategory _methodNDCat ; // Selects integration method for ND p.d.f.s with categories
70  RooCategory _methodNDCond ; // Selects integration method for ND conditional p.d.f.s
71  RooCategory _methodNDCondCat ; // Selects integration method for ND conditional p.d.f.s with categories
72 
73  RooLinkedList _configSets ; // List of configuration sets for individual integration methods
74 
75  ClassDef(RooNumGenConfig,1) // Numeric (MC) Event generator configuration
76 };
77 
78 #endif
79 
80