Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooCatTypeLegacy.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooCatType.h,v 1.20 2007/05/11 09:11:30 verkerke Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_CAT_TYPE
17#define ROO_CAT_TYPE
18
19#include "TObject.h"
20#include "RooPrintable.h"
21#include "strlcpy.h"
22
23class RooCatType : public TObject, public RooPrintable {
24public:
25 inline RooCatType()
26 {
27 _label[0] = 0;
28 }
29
30 /// Constructor with state name and index value.
31 inline RooCatType(const char *name, Int_t value) : _value(value)
32 {
34 }
35 /// Copy constructor.
36 inline RooCatType(const RooCatType& other) :
37 TObject(other), RooPrintable(other), _value(other._value) {
38 strlcpy(_label,other._label,256) ;
39 }
40
41 TObject* Clone(const char*) const override { return new RooCatType(*this); }
42
43 const Text_t* GetName() const override {
44 // Return state name
45 return _label[0] ? _label : nullptr ;
46 }
47 void SetName(const Text_t* name) ;
48
49 inline RooCatType& operator=(const RooCatType& other) {
50 // Assignment operator from other RooCatType
51 if (&other==this) return *this ;
52 SetName(other.GetName()) ;
53 _value = other._value ;
54 return *this ;
55 }
56
57 inline void assignFast(const RooCatType& other) {
58 // Fast assignment operator from other RooCatType
59 _label[0] = 0 ;
60 _value = other._value ;
61 }
62
63 inline bool operator==(const RooCatType& other) const {
64 // Equality operator with other RooCatType
65 return (_value==other._value) ;
66 }
67
68 inline bool operator==(Int_t index) const {
69 // Return true if index value matches integer
70 return (_value==index) ;
71 }
72
73 bool operator==(const char* label) const {
74 // Return true if state name matchins string
75 return label && !strcmp(_label,label) ;
76 }
77
78 inline Int_t getVal() const {
79 // Return index value
80 return _value ;
81 }
82 void setVal(Int_t newValue) {
83 // Set index value
84 _value = newValue ;
85 }
86
87 void printName(std::ostream& os) const override ;
88 void printTitle(std::ostream& os) const override ;
89 void printClassName(std::ostream& os) const override ;
90 void printValue(std::ostream& os) const override ;
91
92 inline void Print(Option_t *options= nullptr) const override {
93 // Printing interface
95 }
96
97protected:
98
99 friend class RooAbsCategoryLValue ;
100 friend class RooAbsCategory ;
101 Int_t _value = 0; ///< Index value
102 char _label[256] ; ///< State name
103
104 ClassDefOverride(RooCatType,1) // Category state, (name,index) pair
105} R__SUGGEST_ALTERNATIVE("Instead of RooCatType, directly use the category number returned by RooAbsCategory::getIndex().\n"
106 "Convert it into a name using RooAbsCategory::lookupName(index).");
107
108
109#endif
110
#define R__SUGGEST_ALTERNATIVE(ALTERNATIVE)
Definition RConfig.hxx:529
char Text_t
Definition RtypesCore.h:62
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
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
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
char name[80]
Definition TGX11.cxx:110
Abstract base class for objects that represent a discrete value that can be set from the outside,...
A space to attach TBranches.
RooCatType is an auxiliary class for RooAbsCategory and defines a a single category state.
RooCatType(const RooCatType &other)
Copy constructor.
bool operator==(Int_t index) const
void printName(std::ostream &os) const override
Print the name of the state.
void printValue(std::ostream &os) const override
Print the value (index integer) of the state.
RooCatType(const char *name, Int_t value)
Constructor with state name and index value.
void printClassName(std::ostream &os) const override
Print the class name of the state.
char _label[256]
State name.
bool operator==(const RooCatType &other) const
void Print(Option_t *options=nullptr) const override
This method must be overridden when a class wants to print itself.
void assignFast(const RooCatType &other)
void setVal(Int_t newValue)
void SetName(const Text_t *name)
Constructor with name argument.
TObject * Clone(const char *) const override
Make a clone of an object using the Streamer facility.
void printTitle(std::ostream &os) const override
Print the title of the state.
Int_t getVal() const
bool operator==(const char *label) const
const Text_t * GetName() const override
Returns name of object.
Int_t _value
Index value.
RooCatType & operator=(const RooCatType &other)
A 'mix-in' base class that define the standard RooFit plotting and printing methods.
virtual StyleOption defaultPrintStyle(Option_t *opt) const
virtual Int_t defaultPrintContents(Option_t *opt) const
Default choice of contents to be printed (name and value)
static std::ostream & defaultPrintStream(std::ostream *os=nullptr)
Return a reference to the current default stream to use in Print().
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer,...
Mother of all ROOT objects.
Definition TObject.h:41