Logo ROOT   6.12/07
Reference Guide
RooMapCatEntry.cxx
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * @(#)root/roofitcore:$Id$
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 
17 // -- CLASS DESCRIPTION [AUX] --
18 // RooMapCatEntry is an auxilary class for RooMappedCategory and defines a
19 // a mapping. A mapping consists of a wildcard regular expression, that
20 // can be matched against the input category state label and an output
21 // category state (RooCatType), which should be assign if the match is successfull.
22 
23 #include "RooFit.h"
24 
25 #include "RooMapCatEntry.h"
26 #include "RooMapCatEntry.h"
27 #include "TString.h"
28 
29 using namespace std;
30 
32 ;
33 
34 RooMapCatEntry::RooMapCatEntry(const char* exp, const RooCatType* cat) :
35  TNamed(exp,mangle(exp).Data()), _regexp(mangle(exp),kTRUE), _cat(*cat)
36 {
37 }
38 
39 
41  TNamed(other), _regexp(other.GetTitle(),kTRUE), _cat(other._cat)
42 {
43 }
44 
45 
46 Bool_t RooMapCatEntry::match(const char* testPattern) const
47 {
48  return (TString(testPattern).Index(_regexp)>=0) ;
49 }
50 
51 
52 
53 TString RooMapCatEntry::mangle(const char* exp) const
54 {
55  // Mangle name : escape regexp character '+'
56  TString t ;
57  const char *c = exp ;
58  while(*c) {
59  if (*c=='+') t.Append('\\') ;
60  t.Append(*c) ;
61  c++ ;
62  }
63  return t ;
64 }
RooCatType _cat
bool Bool_t
Definition: RtypesCore.h:59
STL namespace.
Bool_t match(const char *testPattern) const
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
RooCatType is an auxilary class for RooAbsCategory and defines a a single category state...
Definition: RooCatType.h:22
RooCmdArg Index(RooCategory &icat)
#define ClassImp(name)
Definition: Rtypes.h:359
TString mangle(const char *exp) const
double exp(double)
const Bool_t kTRUE
Definition: RtypesCore.h:87
virtual const char * GetTitle() const
Returns title of object.
Definition: TNamed.h:48