29using std::endl, std::ostream;
34bool threshListSorter(
const std::pair<double,RooAbsCategory::value_type>& lhs,
const std::pair<double,RooAbsCategory::value_type>& rhs) {
35 return lhs.first < rhs.first || (lhs.first == rhs.first && lhs.second < rhs.second);
46 const char* defOut,
Int_t defIdx) :
48 _inputVar(
"inputVar",
"Input category",this,inputVar),
61 _inputVar(
"inputVar",this,other._inputVar),
62 _defIndex(other._defIndex)
79 if (thresh.first == upperLimit) {
80 coutW(InputArguments) <<
"RooThresholdCategory::addThreshold(" <<
GetName()
81 <<
") threshold at " << upperLimit <<
" already defined" << endl ;
88 if (newIdx == std::numeric_limits<value_type>::min()) {
89 if (catIdx == -99999) {
112 return thresh.second;
134 os <<
lookupName(thresh.second) <<
'[' << thresh.second <<
"]:<" << thresh.first <<
" ";
155 os <<
indent <<
"--- RooThresholdCategory ---" << endl
156 <<
indent <<
" Maps from " ;
159 os <<
indent <<
" Threshold list" << endl ;
161 os <<
indent <<
" input < " << thresh.first <<
" --> " ;
162 os <<
lookupName(thresh.second) <<
'[' << thresh.second <<
"]\n";
static void indent(ostringstream &buf, int indent_level)
A space to attach TBranches.
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.
virtual const std::map< std::string, RooAbsCategory::value_type >::value_type & defineState(const std::string &label)
Define a new state with given label.
void printMultiline(std::ostream &os, Int_t contents, bool verbose=false, TString indent="") const override
Print info about this object to the specified stream.
value_type lookupIndex(const std::string &stateName) const
Find the index number corresponding to the state name.
Abstract base class for objects that represent a real value and implements functionality common to al...
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,...
const T & arg() const
Return reference to object held in proxy.
A real-to-category mapping defined by a series of thresholds.
void writeToStream(std::ostream &os, bool compact) const override
Write object contents to given stream.
const value_type _defIndex
bool addThreshold(double upperLimit, const char *catName, Int_t catIdx=-99999)
Insert threshold at value upperLimit.
value_type evaluate() const override
Calculate and return the value of the mapping function.
std::vector< std::pair< double, value_type > > _threshList
void printMultiline(std::ostream &os, Int_t content, bool verbose=false, TString indent="") const override
Print info about this threshold category to the specified stream.
const char * GetName() const override
Returns name of object.