16#ifndef ROO_ABS_CATEGORY 
   17#define ROO_ABS_CATEGORY 
   26#ifdef R__LESS_INCLUDES 
   52  const std::map<std::string, value_type>::value_type& 
getOrdinal(
unsigned int n) 
const;
 
   64  bool hasLabel(
const std::string& label)
 const {
 
   84  virtual void printValue(std::ostream& os) 
const ;
 
   95  std::map<std::string, value_type>::const_iterator 
begin()
 const {
 
   99  std::map<std::string, value_type>::const_iterator 
end()
 const {
 
  185  virtual const std::map<std::string, RooAbsCategory::value_type>::value_type& 
defineState(
const std::string& label);
 
  186  virtual const std::map<std::string, RooAbsCategory::value_type>::value_type& 
defineState(
const std::string& label, 
value_type index);
 
#define R__SUGGEST_ALTERNATIVE(ALTERNATIVE)
 
#define ClassDef(name, id)
 
static void indent(ostringstream &buf, int indent_level)
 
typedef void((*Func_t)())
 
Roo1DTable implements a one-dimensional table.
 
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
 
void setShapeDirty()
Notify that a shape-like property (e.g. binning) has changed.
 
Bool_t isShapeDirty() const
 
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
 
void clearShapeDirty() const
 
RooAbsCategory is the base class for objects that represent a discrete value with a finite number of ...
 
virtual void recomputeShape()=0
If a category depends on the shape of others, i.e. its state numbers or names depend on the states of...
 
std::map< std::string, value_type > & stateNames()
Access the map of state names to index numbers.
 
virtual value_type getCurrentIndex() const
Return index number of current state.
 
virtual void copyCache(const RooAbsArg *source, Bool_t valueOnly=kFALSE, Bool_t setValueDirty=kTRUE)
Copy the cached value from given source and raise dirty flag.
 
virtual bool isValid() const
WVE (08/21/01) Probably obsolete now.
 
unsigned int getCurrentOrdinalNumber() const
Return ordinal number of the current state.
 
bool hasLabel(const std::string &label) const
Check if a state with name label exists.
 
virtual const char * getCurrentLabel() const
Return label string of current state.
 
const std::string & lookupName(value_type index) const
Get the name corresponding to the given index.
 
TIterator * typeIterator() const
 
virtual void fillTreeBranch(TTree &t)
Fill tree branches associated with current object with current value.
 
RooCatType * retrieveLegacyState(value_type index) const
Return the legacy RooCatType corresponding to index. If it doesn't exist, create one.
 
Bool_t operator==(value_type index) const
Equality operator with a integer (compares with state index number)
 
virtual void attachToVStore(RooVectorDataStore &vstore)
Attach the category index and label to as branches to the given vector store.
 
Roo1DTable * createTable(const char *label) const
Create a table matching the shape of this category.
 
void defineStateUnchecked(const std::string &label, value_type index)
Internal version of defineState() that does not check if type already exists.
 
virtual ~RooAbsCategory()
Destructor.
 
const RooCatType * defineTypeUnchecked(const char *label, value_type index)
 
Int_t getIndex() const
Retrieve the current index. Use getCurrentIndex() for more clarity.
 
virtual void attachToTree(TTree &t, Int_t bufSize=32000)
Attach the category index and label as branches to the given TTree.
 
value_type nextAvailableStateIndex() const
 
const char * getLabel() const
Retrieve current label. Use getCurrentLabel() for more clarity.
 
virtual Bool_t isIdentical(const RooAbsArg &other, Bool_t assumeSameType=kFALSE) const
 
virtual Bool_t isIntegrationSafeLValue(const RooArgSet *) const
 
RooAbsArg * createFundamental(const char *newname=0) const
Create a RooCategory fundamental object with our properties.
 
Bool_t operator!=(const char *label)
 
std::map< std::string, value_type >::const_iterator end() const
Iterator for category state names. Points to pairs of index and name.
 
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Write object contents to ostream.
 
std::map< std::string, value_type >::const_iterator begin() const
Iterator for category state names. Points to pairs of index and name.
 
virtual const std::map< std::string, RooAbsCategory::value_type >::value_type & defineState(const std::string &label)
Define a new state with given label.
 
virtual void setTreeBranchStatus(TTree &t, Bool_t active)
(De)activate associate tree branch
 
virtual value_type evaluate() const =0
Evaluate the category state and return.
 
int value_type
The type used to denote a specific category state.
 
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Print info about this object to the specified stream.
 
const std::map< std::string, value_type >::value_type & getOrdinal(unsigned int n) const
Return name and index of the nth defined state.
 
std::size_t size() const
Number of states defined.
 
Bool_t operator!=(value_type index)
 
const RooCatType * lookupType(value_type index, Bool_t printError=kFALSE) const
Find our type corresponding to the specified index, or return nullptr for no match.
 
Bool_t operator!=(const RooAbsArg &other)
 
UChar_t _byteValue
Keeps track in which order state numbers have been inserted. Make sure this is updated in recomputeSh...
 
Int_t numTypes(const char *=0) const
Return number of types defined (in range named rangeName if rangeName!=0)
 
std::map< value_type, std::unique_ptr< RooCatType, std::function< void(RooCatType *)> > > _legacyStates
Transient cache for byte values from tree branches.
 
bool hasIndex(value_type index) const
Check if a state with index index exists.
 
virtual void syncCache(const RooArgSet *set=0)
Explicitly synchronize RooAbsCategory internal cache.
 
std::vector< std::string > _insertionOrder
Map state names to index numbers. Make sure state names are updated in recomputeShape().
 
std::map< std::string, value_type > _stateNames
Current category state.
 
const RooCatType * defineType(const char *label)
 
Bool_t isSignType(Bool_t mustHaveZero=kFALSE) const
Determine if category has 2 or 3 states with index values -1,0,1.
 
const std::map< std::string, value_type > & stateNames() const
Access the map of state names to index numbers.
 
virtual void printValue(std::ostream &os) const
Print value (label name)
 
static const decltype(_stateNames) ::value_type & invalidCategory()
Is this category attached to a tree?
 
value_type lookupIndex(const std::string &stateName) const
Find the index number corresponding to the state name.
 
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Read object contents from stream (dummy for now)
 
bool _treeVar
Map holding pointers to RooCatType instances. Only for legacy interface. Don't use if possible.
 
void clearTypes()
Delete all currently defined states.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
RooCatType is an auxilary class for RooAbsCategory and defines a a single category state.
 
RooVectorDataStore uses std::vectors to store data columns.
 
Iterator abstract base class.
 
A TTree represents a columnar dataset.