CMS 3D CMS Logo

EMTFModel.h
Go to the documentation of this file.
1 #ifndef L1Trigger_L1TMuonEndCapPhase2_EMTFModel_h
2 #define L1Trigger_L1TMuonEndCapPhase2_EMTFModel_h
3 
4 #include <array>
5 #include <vector>
6 
10 
11 namespace emtf::phase2 {
12 
13  // Forward Declarations
14  namespace model {
15  namespace zones {
16  namespace hitmap {
17  struct chamber_t;
18  struct site_t;
19  typedef std::vector<site_t> row_t;
20  } // namespace hitmap
21 
22  namespace pattern {
23  struct row_t;
24  }
25 
26  typedef std::vector<hitmap::row_t> hitmap_t;
27  typedef std::vector<pattern::row_t> pattern_t;
28  typedef std::vector<unsigned int> quality_lut_t;
29  } // namespace zones
30 
31  namespace theta_medians {
32  struct site_t;
33  typedef std::vector<site_t> group_t;
34  } // namespace theta_medians
35 
36  namespace reduced_sites {
37  struct reduced_site_t;
38  }
39 
40  struct zone_t;
41  struct feature_t;
42 
43  typedef std::vector<theta_medians::group_t> theta_median_t;
44  typedef std::vector<reduced_sites::reduced_site_t> reduced_sites_t;
45  } // namespace model
46 
47  // Definitions
48  class EMTFModel {
49  public:
50  EMTFModel(const EMTFContext&);
51 
52  ~EMTFModel();
53 
54  std::vector<model::zone_t> zones_;
55  std::vector<model::feature_t> features_;
56  std::vector<model::theta_median_t> theta_medians_;
58 
59  private:
61  };
62 
63  namespace model {
64  // Define Zone Structs
65  struct zone_t {
67 
68  // Prompt
69  std::vector<zones::pattern_t> prompt_patterns;
71 
72  // Displaced
73  std::vector<zones::pattern_t> disp_patterns;
75  };
76 
77  namespace zones {
78  namespace hitmap {
79  struct site_t {
81  std::vector<chamber_t> chambers;
82  };
83 
84  struct chamber_t {
85  unsigned int id;
86  unsigned int begin;
87  unsigned int end;
88  };
89  } // namespace hitmap
90 
91  namespace pattern {
92  struct row_t {
93  unsigned int begin;
94  unsigned int center;
95  unsigned int end;
96  };
97  } // namespace pattern
98  } // namespace zones
99 
100  // Define Feature Structs
101  struct feature_t {
103  std::vector<site_id_t> sites;
104  };
105 
106  // Define Theta Median Structs
107  namespace theta_medians {
108  struct site_t {
111  };
112  } // namespace theta_medians
113 
114  // Define Reduced Site Structs
115  namespace reduced_sites {
116  struct reduced_site_t {
118  std::vector<site_id_t> trk_sites;
119  };
120  } // namespace reduced_sites
121  } // namespace model
122 } // namespace emtf::phase2
123 
124 #endif // L1Trigger_L1TMuonEndCapPhase2_EMTFModel_h not defined
zones::quality_lut_t prompt_quality_lut
Definition: EMTFModel.h:70
std::vector< chamber_t > chambers
Definition: EMTFModel.h:81
std::vector< model::feature_t > features_
Definition: EMTFModel.h:55
model::reduced_sites_t reduced_sites_
Definition: EMTFModel.h:57
std::vector< reduced_sites::reduced_site_t > reduced_sites_t
Definition: EMTFModel.h:44
std::vector< zones::pattern_t > disp_patterns
Definition: EMTFModel.h:73
zones::hitmap_t hitmap
Definition: EMTFModel.h:66
std::vector< hitmap::row_t > hitmap_t
Definition: EMTFModel.h:26
std::vector< zones::pattern_t > prompt_patterns
Definition: EMTFModel.h:69
std::vector< model::zone_t > zones_
Definition: EMTFModel.h:54
std::vector< theta_medians::group_t > theta_median_t
Definition: EMTFModel.h:41
zones::quality_lut_t disp_quality_lut
Definition: EMTFModel.h:74
std::vector< unsigned int > quality_lut_t
Definition: EMTFModel.h:28
std::vector< model::theta_median_t > theta_medians_
Definition: EMTFModel.h:56
std::vector< site_t > row_t
Definition: EMTFModel.h:18
const EMTFContext & context_
Definition: EMTFModel.h:60
std::vector< site_id_t > sites
Definition: EMTFModel.h:103
std::vector< pattern::row_t > pattern_t
Definition: EMTFModel.h:27
std::vector< site_t > group_t
Definition: EMTFModel.h:32
EMTFModel(const EMTFContext &)
Definition: EMTFModel.cc:9