CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackCategories.h
Go to the documentation of this file.
1 
2 #ifndef TrackCategories_h
3 #define TrackCategories_h
4 
5 #include <vector>
6 
8 {
9 
10 public:
11 
13  enum Category
14  {
15  Fake = 0,
17  Bad,
67  };
68 
70  static const char * const Names[];
71 
73  typedef std::vector<bool> Flags;
74 
77  {
78  reset();
79  }
80 
82  bool is(Category category) const
83  {
84  return flags_[category];
85  }
86 
88  const Flags & flags() const
89  {
90  return flags_;
91  }
92 
93 protected:
94 
96  void reset()
97  {
98  flags_ = Flags(Unknown + 1, false);
99  }
100 
101  // Check for unkown classification
102  void unknownTrack();
103 
106 
107 };
108 
109 // Operation overload for printing the categories
110 std::ostream & operator<< (std::ostream &, TrackCategories const &);
111 
112 #endif
static const char *const Names[]
Name of the different categories.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
bool is(Category category) const
Returns track flag for a given category.
const Flags & flags() const
Returns flags with the category descriptions.
TrackCategories()
Void constructor.
std::vector< bool > Flags
Main types associated to the class.
Category
Categories available to vertex.
Flags flags_
Flag containers.
void reset()
Reset the categories flags.