StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Filter.h
1 #ifndef Filter_H
2 #define Filter_H 1
3 
16 template<class Filtered>
17 class Filter
18 {
19  public:
20 
21  Filter();
22  virtual ~Filter();
23 
24  //virtual void initialize()=0;
25  virtual bool accept(const Filtered *filtered) const=0;
26  virtual void reset();
27  virtual void unset(){;}
28 
29  bool filter(const Filtered * filtered);
30  int getAnalyzedCount();
31  int getAcceptedCount();
32 
33  protected:
34 
35  int _analyzedCount;
36  int _acceptedCount;
37 
38 };
39 
40 
41 template<class Filtered>
43  : _analyzedCount(0),
44  _acceptedCount(0)
45 {}
46 
47 template<class Filtered>
49 {}
50 
51 template<class Filtered>
52 inline bool Filter<Filtered>::filter(const Filtered *filtered)
53 {
54  _analyzedCount++;
55  bool acc = accept(filtered);
56  if (acc) _acceptedCount++;
57  return acc;
58 }
59 
60 template<class Filtered>
61 inline void Filter<Filtered>::reset()
62 {
63  _analyzedCount = 0;
64  _acceptedCount = 0;
65 }
66 
67 template<class Filtered>
69 {
70  return _analyzedCount;
71 }
72 
73 template<class Filtered>
75 {
76  return _acceptedCount;
77 }
78 
79 #endif
80 
Definition: Filter.h:17