CMS 3D CMS Logo

HashFilter.h
Go to the documentation of this file.
1 #ifndef HashFilter_h
2 #define HashFilter_h
3 
13 
14 #include <boost/unordered_set.hpp>
15 #include <vector>
16 
17 namespace hcaldqm {
18  namespace filter {
19  enum FilterType { fFilter = 0, fPreserver = 1, nFilterType = 2 };
20 
21  class HashFilter : public mapper::HashMapper {
22  public:
24  // empty hash
26  // initialize with a vector of hashes
27  HashFilter(FilterType, hashfunctions::HashType, std::vector<uint32_t> const &);
28  // copy constructor
29  HashFilter(HashFilter const &hf);
30  ~HashFilter() override {}
31  virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector<uint32_t> const &);
33 
34  // true if should filter out and false if not
35  // true => should skip this hash
36  // false => should keep this hash
37  virtual bool filter(HcalDetId const &) const;
38  virtual bool filter(HcalElectronicsId const &) const;
39  virtual bool filter(HcalTrigTowerDetId const &) const;
40 
41  virtual void print();
42 
43  protected:
45  typedef boost::unordered_set<uint32_t> FilterMap;
46  FilterMap _ids;
47 
48  virtual bool preserve(uint32_t) const;
49  virtual bool skip(uint32_t) const;
50  };
51  } // namespace filter
52 } // namespace hcaldqm
53 
54 #endif
virtual bool skip(uint32_t) const
Definition: HashFilter.cc:36
virtual void initialize(hashfunctions::HashType htype)
Definition: HashMapper.h:25
virtual bool preserve(uint32_t) const
Definition: HashFilter.cc:38
boost::unordered_set< uint32_t > FilterMap
Definition: HashFilter.h:45
virtual bool filter(HcalDetId const &) const
Definition: HashFilter.cc:24
virtual void initialize(FilterType ftype, hashfunctions::HashType htype, std::vector< uint32_t > const &)
Definition: HashFilter.cc:17
Readout chain identification for Hcal.