Logo ROOT   6.18/05
Reference Guide
RooSuperCategory.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooSuperCategory.h,v 1.17 2007/05/11 09:11:30 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_SUPER_CATEGORY
17#define ROO_SUPER_CATEGORY
18
19class TObject ;
21#include "RooCatType.h"
22#include "RooArgSet.h"
23#include "RooSetProxy.h"
24
25
27public:
28 // Constructors etc.
30 RooSuperCategory(const char *name, const char *title, const RooArgSet& inputCatList);
31 RooSuperCategory(const RooSuperCategory& other, const char *name=0) ;
32 virtual TObject* clone(const char* newname) const { return new RooSuperCategory(*this,newname); }
33 virtual ~RooSuperCategory();
34
35 virtual Bool_t setIndex(Int_t index, Bool_t printError=kTRUE) ;
36 virtual Bool_t setLabel(const char* label, Bool_t printError=kTRUE) ;
37
38 // Printing interface (human readable)
39 virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const ;
40
41 // I/O streaming interface (machine readable)
42 virtual Bool_t readFromStream(std::istream& is, Bool_t compact, Bool_t verbose=kFALSE) ;
43 virtual void writeToStream(std::ostream& os, Bool_t compact) const ;
44
45 TIterator* MakeIterator() const ;
46 const RooArgSet& inputCatList() const { return _catSet ; }
47
48 virtual Bool_t inRange(const char* rangeName) const ;
49 virtual Bool_t hasRange(const char* rangeName) const ;
50
51protected:
52
53 Bool_t setType(const RooCatType* type, Bool_t prinError=kTRUE) ;
54 void updateIndexList() ;
55 TString currentLabel() const ;
56
57 RooSetProxy _catSet ; // Set of input category
58 TIterator* _catIter ; //! Iterator over set of input categories
59
60 virtual RooCatType evaluate() const ;
61
62 ClassDef(RooSuperCategory,1) // Lvalue product operator for catategory lvalues
63};
64
65#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:326
static void indent(ostringstream &buf, int indent_level)
char name[80]
Definition: TGX11.cxx:109
int type
Definition: TGX11.cxx:120
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
TIterator * createIterator(Bool_t dir=kIterForward) const R__SUGGEST_ALTERNATIVE("begin()
TIterator-style iteration over contained elements.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooCatType is an auxilary class for RooAbsCategory and defines a a single category state.
Definition: RooCatType.h:22
RooSetProxy is the concrete proxy for RooArgSet objects.
Definition: RooSetProxy.h:24
RooSuperCategory can join several RooAbsCategoryLValue objects into a single category.
virtual Bool_t inRange(const char *rangeName) const
Return true of all of the input category states are in the given range.
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Write object contents to given stream.
TString currentLabel() const
Return the name of the current state, constructed from the state names of the input categories.
virtual Bool_t setIndex(Int_t index, Bool_t printError=kTRUE)
Set the value of the super category by specifying the state index code by setting the states of the c...
Bool_t setType(const RooCatType *type, Bool_t prinError=kTRUE)
Set the value of the super category by specifying the state object by setting the state names of the ...
virtual ~RooSuperCategory()
Destructor.
virtual Bool_t setLabel(const char *label, Bool_t printError=kTRUE)
Set the value of the super category by specifying the state name by setting the state names of the co...
TIterator * MakeIterator() const
Make an iterator over all state permutations of the input categories of this supercategory.
const RooArgSet & inputCatList() const
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Read object contents from given stream.
TIterator * _catIter
RooSetProxy _catSet
virtual TObject * clone(const char *newname) const
virtual Bool_t hasRange(const char *rangeName) const
Return true if any of the input categories has a range named 'rangeName'.
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Print the state of this object to the specified output stream.
void updateIndexList()
Update the list of possible states of this super category.
virtual RooCatType evaluate() const
Iterator over set of input categories.
Iterator abstract base class.
Definition: TIterator.h:30
Mother of all ROOT objects.
Definition: TObject.h:37
Basic string class.
Definition: TString.h:131