CMS 3D CMS Logo

ZoneLut.h
Go to the documentation of this file.
1 #ifndef L1Trigger_L1TMuonEndCapPhase2_ZoneLut_h
2 #define L1Trigger_L1TMuonEndCapPhase2_ZoneLut_h
3 
4 #include <map>
5 #include <tuple>
6 
9 
10 namespace emtf::phase2::data {
11 
12  // Forward declarations
13  class Zone;
14 
15  // Classes
16  class ZoneLut {
17  public:
18  ZoneLut();
19 
20  ~ZoneLut();
21 
22  void update(const edm::Event&, const edm::EventSetup&);
23 
24  int getZones(const int&, const int&) const;
25 
26  int getZones(const int&, const int&, const int&) const;
27 
28  private:
29  std::vector<Zone> zones_;
30  };
31 
32  class Zone {
33  friend ZoneLut;
34 
35  public:
36  Zone() = default;
37 
38  ~Zone() = default;
39 
40  bool contains(const int&, const int&) const;
41 
42  bool contains(const int&, const int&, const int&) const;
43 
44  private:
45  // Key: Host
46  // Value: Theta Range
47  std::map<int, std::pair<int, int>> lut_;
48  };
49 
50 } // namespace emtf::phase2::data
51 
52 #endif // L1Trigger_L1TMuonEndCapPhase2_ZoneLut_h
void update(const edm::Event &, const edm::EventSetup &)
Definition: ZoneLut.cc:51
std::map< int, std::pair< int, int > > lut_
Definition: ZoneLut.h:47
int getZones(const int &, const int &) const
Definition: ZoneLut.cc:55
std::vector< Zone > zones_
Definition: ZoneLut.h:29
bool contains(const int &, const int &) const
Definition: ZoneLut.cc:89