16 #ifndef ROO_MULTI_CAT_ITER
17 #define ROO_MULTI_CAT_ITER
24 class RooAbsCategoryLValue ;
26 typedef TIterator* pTIterator ;
27 typedef RooAbsCategoryLValue* pRooCategory ;
29 class RooMultiCatIter :
public TIterator {
32 RooMultiCatIter(
const RooArgSet& catList,
const char* rangeName=0) ;
33 RooMultiCatIter(
const RooMultiCatIter& other) ;
34 virtual ~RooMultiCatIter() ;
37 virtual const TCollection* GetCollection()
const ;
38 virtual TObject* Next() ;
39 virtual void Reset() ;
40 virtual bool operator!=(
const TIterator &aIter)
const ;
41 virtual TObject *operator*()
const ;
45 TIterator& operator=(
const TIterator&) {
return *this ; }
47 void initialize(
const RooArgSet& catList) ;
48 TObjString* compositeLabel() ;
51 pTIterator* _iterList ;
52 pRooCategory* _catPtrList ;
53 RooCatType* _curTypeList ;
56 TObjString _compositeLabel ;
60 ClassDef(RooMultiCatIter,0)