16#ifndef ROO_ABS_CATEGORY 
   17#define ROO_ABS_CATEGORY 
   39  virtual const char* 
getLabel() 
const ;
 
   56  typeIterator()
 const {
 
   71  virtual void printValue(std::ostream& os) 
const ;
 
   81  std::vector<RooCatType*>::const_iterator 
begin()
 const {
 
   85  std::vector<RooCatType*>::const_iterator 
end()
 const {
 
  153        throw std::logic_error(
"Cannot assign to category iterators from incompatible types.");
 
  157      const std::vector<RooCatType*>* 
_vec;
 
#define ClassDef(name, id)
 
static void indent(ostringstream &buf, int indent_level)
 
Roo1DTable implements a one-dimensional table.
 
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
 
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
 
const std::vector< RooCatType * > * _vec
 
TObject * Next() override
 
const TCollection * GetCollection() const override
 
TObject * operator*() const override
Return current object or nullptr.
 
LegacyIterator & operator=(const LegacyIterator &)=default
 
LegacyIterator(const std::vector< RooCatType * > &vec)
 
TIterator & operator=(const TIterator &other) override
 
RooAbsCategory is the common abstract base class for objects that represent a discrete value with a f...
 
std::vector< RooCatType * > _types
 
std::vector< RooCatType * >::const_iterator begin() const
 
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.
 
const RooCatType * getOrdinal(UInt_t n, const char *rangeName=0) const
Return state definition of ordinal nth defined state, needed by the generator mechanism.
 
TIterator * R__SUGGEST_ALTERNATIVE("Use begin(), end() or range-based for loops.") typeIterator() const
 
Bool_t operator!=(Int_t index)
 
virtual void fillTreeBranch(TTree &t)
Fill tree branches associated with current object with current value.
 
RooCatType _value
Transient cache for byte values from tree branches.
 
std::vector< RooCatType * >::const_iterator end() const
 
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.
 
virtual Bool_t isValid() const
Check if current value is a valid state.
 
virtual ~RooAbsCategory()
Destructor.
 
virtual Int_t getIndex() const
Return index number of current state.
 
virtual void attachToTree(TTree &t, Int_t bufSize=32000)
Attach the category index and label to as branches to the given TTree.
 
virtual const char * getLabel() const
Return label string of current state.
 
Bool_t isValidLabel(const char *label) const
Check if state with given name is defined.
 
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)
 
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Write object contents to ostream.
 
virtual void setTreeBranchStatus(TTree &t, Bool_t active)
(De)activate associate tree branch
 
const RooCatType * defineTypeUnchecked(const char *label, Int_t index)
Internal version of defineType that does not check if type already exists.
 
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.
 
Bool_t operator!=(const RooAbsArg &other)
 
Int_t numTypes(const char *=0) const
Return number of types defined (in range named rangeName if rangeName!=0)
 
virtual Bool_t isIdentical(const RooAbsArg &other, Bool_t assumeSameType=kFALSE)
 
RooCatType traceEval() const
Recalculate current value and check validity of new result.
 
virtual RooCatType evaluate() const =0
 
virtual void syncCache(const RooArgSet *set=0)
Explicitly synchronize RooAbsCategory internal cache.
 
const RooCatType * defineType(const char *label)
Define a new state with given name.
 
Bool_t isSignType(Bool_t mustHaveZero=kFALSE) const
Determine if category has 2 or 3 states with index values -1,0,1.
 
virtual Bool_t traceEvalHook(RooCatType) const
 
virtual void printValue(std::ostream &os) const
Print value (label name)
 
const RooCatType * lookupType(Int_t index, Bool_t printError=kFALSE) const
Find our type corresponding to the specified index, or return 0 for no match.
 
Bool_t operator==(Int_t index) const
Equality operator with a integer (compares with state index number)
 
Bool_t isValidIndex(Int_t index) const
Check if state with given index is defined.
 
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Read object contents from stream (dummy for now)
 
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.
 
RooDataSet is a container class to hold unbinned data.
 
RooVectorDataStore is the abstract base class for data collection that use a TTree as internal storag...
 
Collection abstract base class.
 
Iterator abstract base class.
 
Mother of all ROOT objects.
 
A TTree represents a columnar dataset.