16#ifndef ROO_SUPER_CATEGORY
17#define ROO_SUPER_CATEGORY
37 bool setLabel(
const char* label,
bool printError=
true)
override;
45 bool inRange(
const char* rangeName)
const override;
46 bool hasRange(
const char* rangeName)
const override;
#define ClassDefOverride(name, id)
static void indent(ostringstream &buf, int indent_level)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
void setShapeDirty()
Notify that a shape-like property (e.g. binning) has changed.
Abstract base class for objects that represent a discrete value that can be set from the outside,...
virtual bool setIndex(value_type index, bool printError=true)=0
Change category state by specifying the index code of the desired state.
virtual bool setLabel(const char *label, bool printError=true)=0
Change category state by specifying a state name.
virtual value_type getCurrentIndex() const
Return index number of current state.
int value_type
The type used to denote a specific category state.
std::vector< std::string > _insertionOrder
Keeps track in which order state numbers have been inserted. Make sure this is updated in recomputeSh...
std::map< std::string, value_type > _stateNames
Map state names to index numbers. Make sure state names are updated in recomputeShape().
RooArgSet is a container object that can hold multiple RooAbsArg objects.
void recomputeShape() override
Inspect all the subcategories, and enumerate and name their states.
const RooArgSet & inputCatList() const
Joins several RooAbsCategoryLValue objects into a single category.
TObject * clone(const char *newname) const override
bool setIndex(value_type index, bool printError=true) override
Set the value of the super category to the specified index.
bool hasRange(const char *rangeName) const override
Check that any of the input categories has a range with the given name.
void recomputeShape() override
Ask server category to recompute shape, and copy its information.
bool inRange(const char *rangeName) const override
Check that all input category states are in the given range.
const RooArgSet & inputCatList() const
void printMultiline(std::ostream &os, Int_t content, bool verbose=false, TString indent="") const override
Print the state of this object to the specified output stream.
bool setLabel(const char *label, bool printError=true) override
Set the value of the super category by specifying the state name.
value_type evaluate() const override
Evaluate the category state and return.
RooTemplateProxy< RooMultiCategory > _multiCat
Iterator abstract base class.
Mother of all ROOT objects.