#ifndef ROO_GEN_CATEGORY
#define ROO_GEN_CATEGORY
#include "RooAbsCategory.h"
#include "RooSuperCategory.h"
#include "RooCategoryProxy.h"
#include "RooCatType.h"
#include "TString.h"
class TObject ;
#include "TMethodCall.h"
class RooGenCategory : public RooAbsCategory {
public:
  
  inline RooGenCategory() { }
  RooGenCategory(const char *name, const char *title, void* userFunc, RooArgSet& catList);
  RooGenCategory(const RooGenCategory& other, const char *name=0) ;
  virtual TObject* clone(const char* newname) const { return new RooGenCategory(*this,newname); }
  virtual ~RooGenCategory();
  
  virtual void printToStream(ostream& os, PrintOption opt=Standard, TString indent= "") const ;
  
  virtual Bool_t readFromStream(istream& is, Bool_t compact, Bool_t verbose=kFALSE) ;
  virtual void writeToStream(ostream& os, Bool_t compact) const ;
protected:
  void initialize() ;
  TString evalUserFunc(RooArgSet *vars) ;
  void updateIndexList() ;
  
  RooSuperCategory _superCat ;    
  RooCategoryProxy _superCatProxy ; 
  Int_t *_map ;                   
  TString      _userFuncName ; 
  TMethodCall* _userFunc;      
  Long_t _userArgs[1];         
                                 
  virtual RooCatType evaluate() const ; 
  ClassDef(RooGenCategory,1) 
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.