#ifndef ROO_NUM_GEN_CONFIG
#define ROO_NUM_GEN_CONFIG
#include "TObject.h"
#include "RooCategory.h"
#include "RooLinkedList.h"
class RooNumGenFactory ;
class RooAbsNumGenerator ;
class RooNumGenConfig : public TObject, public RooPrintable {
public:
RooNumGenConfig();
RooNumGenConfig(const RooNumGenConfig& other) ;
RooNumGenConfig& operator=(const RooNumGenConfig& other) ;
virtual ~RooNumGenConfig();
RooCategory& method1D(Bool_t cond, Bool_t cat) ;
RooCategory& method2D(Bool_t cond, Bool_t cat) ;
RooCategory& methodND(Bool_t cond, Bool_t cat) ;
const RooCategory& method1D(Bool_t cond, Bool_t cat) const ;
const RooCategory& method2D(Bool_t cond, Bool_t cat) const ;
const RooCategory& methodND(Bool_t cond, Bool_t cat) const ;
static RooNumGenConfig& defaultConfig() ;
Bool_t addConfigSection(const RooAbsNumGenerator* proto, const RooArgSet& defaultConfig) ;
const RooArgSet& getConfigSection(const char* name) const ;
RooArgSet& getConfigSection(const char* name) ;
void printMultiline(ostream &os, Int_t content, Bool_t verbose, TString indent= "") const;
inline virtual void Print(Option_t *options= 0) const {
printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
}
virtual StyleOption defaultPrintStyle(Option_t* opt) const ;
static void cleanup() ;
protected:
static RooNumGenConfig* _default ;
RooCategory _method1D ;
RooCategory _method1DCat ;
RooCategory _method1DCond ;
RooCategory _method1DCondCat ;
RooCategory _method2D ;
RooCategory _method2DCat ;
RooCategory _method2DCond ;
RooCategory _method2DCondCat ;
RooCategory _methodND ;
RooCategory _methodNDCat ;
RooCategory _methodNDCond ;
RooCategory _methodNDCondCat ;
RooLinkedList _configSets ;
ClassDef(RooNumGenConfig,1)
};
#endif