File indexing completed on 2024-04-06 12:21:03
0001 #include "L1Trigger/L1TMuonEndCapPhase2/interface/EMTFContext.h"
0002 #include "L1Trigger/L1TMuonEndCapPhase2/interface/Utils/DebugUtils.h"
0003
0004 #include "L1Trigger/L1TMuonEndCapPhase2/interface/EMTFModel.h"
0005
0006 using namespace emtf::phase2;
0007 using namespace emtf::phase2::model;
0008
0009 EMTFModel::EMTFModel(const EMTFContext& context) : context_(context) {
0010
0011
0012
0013
0014
0015 zones::hitmap_t&& zone0_hm = {
0016 {
0017 {
0018 site_id_t::kME0, {
0019 {114, 38, 90 },
0020 {108, 75, 127},
0021 {109, 113, 165},
0022 {110, 150, 202},
0023 {111, 188, 240},
0024 {112, 225, 277},
0025 {113, 263, 315}
0026 }
0027 }
0028 },
0029 {
0030 {
0031 site_id_t::kGE11, {
0032 {99 , 38, 90 },
0033 {54 , 75, 127},
0034 {55 , 113, 165},
0035 {56 , 150, 202},
0036 {63 , 188, 240},
0037 {64 , 225, 277},
0038 {65 , 263, 315}
0039 }
0040 }
0041 },
0042 {
0043 {
0044 site_id_t::kME11, {
0045 {45 , 38, 90 },
0046 {0 , 75, 127},
0047 {1 , 113, 165},
0048 {2 , 150, 202},
0049 {9 , 188, 240},
0050 {10 , 225, 277},
0051 {11 , 263, 315}
0052 }
0053 }
0054 },
0055 {
0056 {
0057 site_id_t::kGE21, {
0058 {102, 0 , 90 },
0059 {72 , 75 , 165},
0060 {73 , 150 , 240},
0061 {74 , 225 , 315}
0062 }
0063 }
0064 },
0065 {
0066 {
0067 site_id_t::kME2, {
0068 {48 , 0 , 90 },
0069 {18 , 75 , 165},
0070 {19 , 150 , 240},
0071 {20 , 225 , 315}
0072 }
0073 }
0074 },
0075 {
0076 {
0077 site_id_t::kME3, {
0078 {50 , 0 , 90 },
0079 {27 , 75 , 165},
0080 {28 , 150 , 240},
0081 {29 , 225 , 315}
0082 }
0083 }
0084 },
0085 {
0086 {
0087 site_id_t::kRE3, {
0088 {104, 0 , 90 },
0089 {81 , 75 , 165},
0090 {82 , 150 , 240},
0091 {83 , 225 , 315}
0092 }
0093 }
0094 },
0095 {
0096 {
0097 site_id_t::kME4, {
0098 {52 , 0 , 90 },
0099 {36 , 75 , 165},
0100 {37 , 150 , 240},
0101 {38 , 225 , 315}
0102 }
0103 },
0104 {
0105 site_id_t::kRE4, {
0106 {106, 0 , 90 },
0107 {90 , 75 , 165},
0108 {91 , 150 , 240},
0109 {92 , 225 , 315}
0110 }
0111 }
0112 },
0113 };
0114
0115 std::vector<zones::pattern_t> zone0_prompt_pd = {
0116 {{49, 55, 61}, {49, 55, 61}, {50, 55, 60}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {54, 55, 56}, {53, 55, 57}},
0117 {{42, 47, 52}, {42, 47, 52}, {45, 49, 53}, {53, 54, 56}, {53, 55, 57}, {55, 56, 57}, {54, 56, 58}, {54, 56, 59}},
0118 {{58, 63, 68}, {58, 63, 68}, {57, 61, 65}, {54, 56, 57}, {53, 55, 57}, {53, 54, 55}, {52, 54, 56}, {51, 54, 56}},
0119 {{35, 42, 49}, {36, 42, 48}, {39, 45, 51}, {52, 54, 56}, {54, 55, 56}, {54, 57, 59}, {54, 57, 60}, {52, 57, 61}},
0120 {{61, 68, 75}, {62, 68, 74}, {59, 65, 71}, {54, 56, 58}, {54, 55, 56}, {51, 53, 56}, {50, 53, 56}, {49, 53, 58}},
0121 {{21, 33, 45}, {22, 33, 43}, {29, 39, 49}, {51, 54, 56}, {54, 55, 56}, {52, 57, 62}, {51, 57, 63}, {46, 55, 65}},
0122 {{65, 77, 89}, {67, 77, 88}, {61, 71, 81}, {54, 56, 59}, {54, 55, 56}, {48, 53, 58}, {47, 53, 59}, {45, 55, 64}}
0123 };
0124
0125 zones::quality_lut_t zone0_prompt_ql = {
0126 0, 3, 3, 4, 3, 5, 4, 6, 1, 6, 6, 7, 21, 26, 24, 27, 1, 21, 21, 24, 22, 26, 24, 29,
0127 2, 25, 25, 27, 26, 30, 28, 31, 0, 17, 17, 20, 18, 34, 20, 37, 2, 42, 28, 45, 42, 46, 45, 49,
0128 9, 42, 42, 45, 43, 47, 46, 49, 10, 45, 45, 48, 47, 50, 49, 51, 0, 5, 5, 6, 17, 33, 19, 36,
0129 2, 7, 7, 7, 29, 46, 30, 49, 3, 42, 29, 46, 43, 47, 46, 50, 4, 45, 31, 49, 47, 50, 50, 51,
0130 1, 20, 19, 23, 22, 38, 23, 39, 4, 45, 30, 48, 46, 49, 48, 51, 11, 46, 46, 49, 47, 50, 50, 51,
0131 13, 48, 49, 51, 50, 51, 51, 51, 0, 16, 16, 18, 16, 32, 18, 35, 2, 41, 27, 43, 42, 44, 44, 47,
0132 9, 42, 41, 44, 42, 45, 44, 48, 10, 44, 44, 47, 44, 48, 48, 50, 8, 40, 40, 41, 40, 41, 40, 43,
0133 11, 52, 52, 55, 53, 57, 54, 61, 12, 52, 52, 55, 53, 58, 56, 61, 14, 55, 55, 60, 58, 62, 59, 63,
0134 1, 40, 23, 40, 40, 41, 40, 43, 5, 52, 31, 54, 53, 57, 54, 60, 12, 52, 53, 56, 53, 58, 57, 62,
0135 14, 55, 56, 60, 57, 61, 60, 63, 8, 41, 41, 43, 41, 43, 43, 47, 13, 54, 54, 59, 57, 61, 58, 63,
0136 15, 56, 56, 59, 58, 61, 60, 63, 15, 59, 59, 62, 62, 63, 62, 63
0137 };
0138
0139 std::vector<zones::pattern_t> zone0_disp_pd = {
0140 {{50, 55, 60}, {50, 55, 60}, {50, 55, 60}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {53, 55, 57}, {53, 55, 57}},
0141 {{53, 61, 67}, {53, 61, 65}, {53, 60, 65}, {54, 56, 57}, {54, 56, 57}, {52, 54, 56}, {52, 54, 56}, {49, 53, 56}},
0142 {{43, 49, 57}, {45, 49, 57}, {45, 50, 57}, {53, 54, 56}, {53, 54, 56}, {54, 56, 58}, {54, 56, 58}, {54, 57, 61}},
0143 {{54, 63, 72}, {54, 63, 70}, {54, 63, 71}, {54, 57, 58}, {54, 56, 56}, {49, 53, 56}, {49, 52, 56}, {45, 51, 56}},
0144 {{38, 47, 56}, {40, 47, 56}, {39, 47, 56}, {52, 53, 56}, {54, 54, 56}, {54, 57, 61}, {54, 58, 61}, {54, 59, 65}},
0145 {{54, 64, 77}, {54, 66, 74}, {54, 66, 76}, {54, 57, 59}, {54, 56, 56}, {46, 52, 56}, {45, 50, 56}, {40, 48, 56}},
0146 {{33, 46, 56}, {36, 44, 56}, {34, 44, 56}, {51, 53, 56}, {54, 54, 56}, {54, 58, 64}, {54, 60, 65}, {54, 62, 70}}
0147 };
0148
0149 zones::quality_lut_t zone0_disp_ql = {
0150 0, 3, 3, 4, 3, 5, 4, 5, 1, 6, 6, 7, 21, 26, 26, 30, 1, 22, 21, 25, 22, 26, 24, 29,
0151 2, 24, 24, 27, 25, 29, 29, 31, 0, 17, 17, 20, 18, 34, 20, 38, 2, 42, 28, 47, 42, 47, 46, 50,
0152 9, 42, 42, 46, 43, 47, 46, 49, 10, 45, 45, 49, 46, 49, 49, 51, 0, 6, 5, 6, 17, 33, 19, 36,
0153 2, 7, 7, 7, 28, 46, 31, 50, 3, 42, 27, 46, 43, 47, 46, 50, 4, 45, 30, 50, 46, 50, 50, 51,
0154 1, 20, 19, 23, 21, 37, 23, 39, 4, 45, 30, 48, 45, 49, 48, 51, 11, 45, 45, 49, 47, 50, 49, 51,
0155 13, 48, 48, 51, 49, 51, 51, 51, 0, 16, 16, 18, 16, 32, 18, 35, 2, 41, 27, 44, 41, 44, 44, 48,
0156 9, 42, 41, 44, 42, 45, 44, 48, 10, 44, 43, 47, 44, 48, 47, 50, 8, 40, 40, 41, 40, 41, 41, 43,
0157 11, 52, 52, 56, 53, 57, 57, 61, 12, 53, 52, 57, 53, 58, 58, 62, 14, 56, 55, 60, 57, 62, 61, 63,
0158 1, 40, 23, 40, 40, 41, 40, 43, 5, 52, 31, 55, 52, 55, 56, 60, 12, 53, 52, 56, 53, 58, 57, 61,
0159 13, 55, 54, 60, 55, 61, 60, 63, 8, 41, 40, 43, 42, 43, 43, 47, 14, 54, 54, 59, 54, 59, 60, 62,
0160 15, 56, 54, 59, 58, 62, 61, 63, 15, 59, 58, 62, 59, 63, 63, 63
0161 };
0162
0163
0164 zones_.push_back({zone0_hm, zone0_prompt_pd, zone0_prompt_ql, zone0_disp_pd, zone0_disp_ql});
0165
0166
0167
0168
0169
0170
0171 zones::hitmap_t&& zone1_hm = {
0172 {
0173 {
0174 site_id_t::kGE11, {
0175 {99 , 38, 90 },
0176 {54 , 75, 127},
0177 {55 , 113, 165},
0178 {56 , 150, 202},
0179 {63 , 188, 240},
0180 {64 , 225, 277},
0181 {65 , 263, 315}
0182 }
0183 }
0184 },
0185 {
0186 {
0187 site_id_t::kME11, {
0188 {45 , 38, 90 },
0189 {0 , 75, 127},
0190 {1 , 113, 165},
0191 {2 , 150, 202},
0192 {9 , 188, 240},
0193 {10 , 225, 277},
0194 {11 , 263, 315}
0195 }
0196 }
0197 },
0198 {
0199 {
0200 site_id_t::kME12, {
0201 {46 , 38, 90 },
0202 {3 , 75, 127},
0203 {4 , 113, 165},
0204 {5 , 150, 202},
0205 {12 , 188, 240},
0206 {13 , 225, 277},
0207 {14 , 263, 315}
0208 }
0209 },
0210 {
0211 site_id_t::kRE1, {
0212 {100, 38, 90 },
0213 {57 , 75, 127},
0214 {58 , 113, 165},
0215 {59 , 150, 202},
0216 {66 , 188, 240},
0217 {67 , 225, 277},
0218 {68 , 263, 315}
0219 }
0220 }
0221 },
0222 {
0223 {
0224 site_id_t::kGE21, {
0225 {102, 0 , 90 },
0226 {72 , 75 , 165},
0227 {73 , 150 , 240},
0228 {74 , 225 , 315}
0229 }
0230 }
0231 },
0232 {
0233 {
0234 site_id_t::kME2, {
0235 {48 , 0 , 90 },
0236 {18 , 75 , 165},
0237 {19 , 150 , 240},
0238 {20 , 225 , 315}
0239 }
0240 }
0241 },
0242 {
0243 {
0244 site_id_t::kME3, {
0245
0246 {50 , 0 , 90 },
0247 {27 , 75 , 165},
0248 {28 , 150 , 240},
0249 {29 , 225 , 315},
0250
0251 {51 , 38, 90 },
0252 {30 , 75, 127},
0253 {31 , 113, 165},
0254 {32 , 150, 202},
0255 {33 , 188, 240},
0256 {34 , 225, 277},
0257 {35 , 263, 315}
0258 }
0259 }
0260 },
0261 {
0262 {
0263 site_id_t::kRE3, {
0264
0265 {104, 0 , 90 },
0266 {81 , 75 , 165},
0267 {82 , 150 , 240},
0268 {83 , 225 , 315},
0269
0270 {105, 38, 90 },
0271 {84 , 75, 127},
0272 {85 , 113, 165},
0273 {86 , 150, 202},
0274 {87 , 188, 240},
0275 {88 , 225, 277},
0276 {89 , 263, 315}
0277 }
0278 }
0279 },
0280 {
0281 {
0282 site_id_t::kME4, {
0283
0284 {52 , 0 , 90 },
0285 {36 , 75 , 165},
0286 {37 , 150 , 240},
0287 {38 , 225 , 315},
0288
0289 {53 , 38, 90 },
0290 {39 , 75, 127},
0291 {40 , 113, 165},
0292 {41 , 150, 202},
0293 {42 , 188, 240},
0294 {43 , 225, 277},
0295 {44 , 263, 315}
0296 }
0297 },
0298 {
0299 site_id_t::kRE4, {
0300
0301 {106, 0 , 90 },
0302 {90 , 75 , 165},
0303 {91 , 150 , 240},
0304 {92 , 225 , 315},
0305
0306 {107, 38, 90 },
0307 {93 , 75, 127},
0308 {94 , 113, 165},
0309 {95 , 150, 202},
0310 {96 , 188, 240},
0311 {97 , 225, 277},
0312 {98 , 263, 315}
0313 }
0314 }
0315 }
0316 };
0317
0318 std::vector<zones::pattern_t> zone1_prompt_pd = {
0319 {{47, 55, 63}, {48, 55, 62}, {51, 55, 59}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {53, 55, 57}, {53, 55, 57}},
0320 {{38, 44, 50}, {41, 46, 51}, {49, 52, 54}, {53, 54, 56}, {53, 55, 57}, {54, 56, 57}, {54, 56, 58}, {53, 56, 58}},
0321 {{60, 66, 72}, {59, 64, 69}, {56, 58, 61}, {54, 56, 57}, {53, 55, 57}, {53, 54, 56}, {52, 54, 56}, {52, 54, 57}},
0322 {{29, 37, 44}, {32, 40, 47}, {46, 50, 53}, {52, 54, 56}, {54, 55, 56}, {53, 56, 59}, {51, 55, 59}, {48, 54, 59}},
0323 {{66, 73, 81}, {63, 70, 78}, {57, 60, 64}, {54, 56, 58}, {54, 55, 56}, {51, 54, 57}, {51, 55, 59}, {51, 56, 62}},
0324 {{16, 27, 39}, {21, 32, 42}, {43, 48, 53}, {52, 55, 57}, {54, 55, 56}, {44, 52, 59}, {40, 49, 59}, {31, 44, 59}},
0325 {{71, 83, 94}, {68, 78, 89}, {57, 62, 67}, {53, 55, 58}, {54, 55, 56}, {51, 58, 66}, {51, 61, 70}, {51, 66, 79}}
0326 };
0327
0328 zones::quality_lut_t zone1_prompt_ql = {
0329 0, 3, 4, 6, 3, 5, 5, 7, 1, 7, 21, 25, 19, 23, 25, 27, 1, 20, 22, 25, 34, 36, 37, 39,
0330 2, 24, 26, 28, 36, 38, 39, 39, 0, 16, 18, 21, 32, 33, 34, 37, 4, 27, 42, 46, 42, 45, 45, 49,
0331 9, 42, 43, 46, 43, 46, 47, 50, 10, 45, 46, 50, 45, 48, 49, 51, 0, 7, 17, 20, 17, 18, 20, 23,
0332 3, 7, 28, 31, 27, 29, 30, 31, 4, 29, 43, 47, 42, 45, 47, 50, 6, 30, 46, 50, 46, 48, 49, 51,
0333 1, 19, 22, 24, 34, 35, 37, 38, 5, 29, 46, 49, 45, 48, 49, 51, 11, 46, 47, 50, 47, 49, 50, 51,
0334 13, 49, 50, 51, 48, 51, 51, 51, 0, 16, 16, 18, 32, 32, 33, 35, 2, 26, 42, 44, 41, 43, 44, 48,
0335 9, 41, 42, 45, 42, 44, 45, 48, 10, 44, 44, 48, 44, 47, 48, 50, 8, 40, 40, 41, 40, 40, 41, 43,
0336 11, 52, 53, 56, 52, 54, 56, 60, 12, 52, 53, 57, 53, 56, 58, 62, 14, 55, 57, 61, 57, 59, 61, 63,
0337 2, 22, 40, 41, 40, 40, 41, 43, 6, 31, 52, 55, 52, 54, 55, 59, 12, 52, 53, 57, 53, 54, 58, 61,
0338 14, 54, 57, 61, 55, 59, 60, 63, 8, 40, 41, 43, 41, 43, 44, 47, 13, 54, 56, 60, 56, 58, 60, 62,
0339 15, 55, 58, 62, 58, 59, 62, 63, 15, 59, 61, 63, 60, 62, 63, 63
0340 };
0341
0342 std::vector<zones::pattern_t> zone1_disp_pd = {
0343 {{50, 55, 60}, {50, 55, 60}, {52, 55, 58}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {53, 55, 57}, {53, 55, 57}},
0344 {{53, 60, 65}, {53, 60, 65}, {54, 58, 61}, {54, 56, 57}, {54, 56, 57}, {53, 54, 56}, {52, 54, 56}, {50, 53, 56}},
0345 {{45, 50, 57}, {45, 50, 57}, {49, 52, 56}, {53, 54, 56}, {53, 54, 56}, {54, 56, 57}, {54, 56, 58}, {54, 57, 60}},
0346 {{53, 63, 71}, {53, 62, 69}, {54, 59, 63}, {54, 57, 58}, {54, 56, 56}, {50, 54, 56}, {50, 53, 56}, {47, 51, 56}},
0347 {{39, 47, 57}, {41, 48, 57}, {47, 51, 56}, {52, 53, 56}, {54, 54, 56}, {54, 56, 60}, {54, 57, 60}, {54, 59, 63}},
0348 {{54, 65, 73}, {54, 65, 74}, {54, 61, 67}, {54, 57, 59}, {54, 56, 56}, {47, 53, 56}, {47, 51, 56}, {43, 49, 56}},
0349 {{37, 45, 56}, {36, 45, 56}, {43, 49, 56}, {51, 53, 56}, {54, 54, 56}, {54, 57, 63}, {54, 59, 63}, {54, 61, 67}}
0350 };
0351
0352 zones::quality_lut_t zone1_disp_ql = {
0353 0, 3, 4, 6, 4, 5, 6, 7, 1, 7, 22, 26, 20, 24, 25, 29, 1, 21, 22, 25, 34, 37, 37, 39,
0354 2, 23, 25, 28, 36, 38, 39, 39, 0, 17, 18, 20, 32, 33, 34, 37, 3, 27, 42, 46, 42, 45, 46, 50,
0355 9, 42, 43, 46, 43, 46, 47, 50, 10, 45, 46, 50, 45, 48, 49, 51, 0, 7, 17, 18, 16, 19, 20, 24,
0356 3, 7, 27, 31, 27, 30, 29, 31, 4, 28, 43, 47, 42, 47, 47, 50, 5, 30, 46, 50, 45, 49, 49, 51,
0357 1, 19, 21, 23, 34, 35, 36, 38, 5, 29, 45, 49, 45, 49, 48, 51, 11, 46, 47, 50, 46, 48, 50, 51,
0358 13, 49, 49, 51, 48, 51, 51, 51, 0, 16, 16, 18, 32, 32, 33, 35, 2, 26, 41, 44, 41, 44, 44, 48,
0359 9, 42, 42, 45, 42, 44, 45, 48, 10, 44, 44, 48, 44, 48, 47, 50, 8, 40, 40, 41, 40, 41, 41, 43,
0360 11, 52, 52, 57, 52, 55, 56, 61, 12, 53, 53, 57, 53, 57, 58, 62, 14, 55, 56, 61, 55, 61, 60, 63,
0361 2, 22, 40, 40, 40, 40, 41, 43, 6, 31, 52, 57, 52, 54, 55, 60, 12, 52, 53, 58, 53, 56, 58, 62,
0362 14, 56, 56, 61, 54, 59, 60, 63, 8, 40, 41, 43, 41, 43, 43, 47, 13, 54, 54, 60, 54, 58, 59, 63,
0363 15, 55, 57, 61, 58, 60, 62, 63, 15, 59, 59, 63, 59, 62, 62, 63
0364 };
0365
0366
0367 zones_.push_back({zone1_hm, zone1_prompt_pd, zone1_prompt_ql, zone1_disp_pd, zone1_disp_ql});
0368
0369
0370
0371
0372
0373
0374 zones::hitmap_t&& zone2_hm = {
0375 {
0376 {
0377 site_id_t::kME12, {
0378 {46 , 38, 90 },
0379 {3 , 75, 127},
0380 {4 , 113, 165},
0381 {5 , 150, 202},
0382 {12 , 188, 240},
0383 {13 , 225, 277},
0384 {14 , 263, 315}
0385 }
0386 }
0387 },
0388 {
0389 {
0390 site_id_t::kRE1, {
0391 {100, 38, 90 },
0392 {57 , 75, 127},
0393 {58 , 113, 165},
0394 {59 , 150, 202},
0395 {66 , 188, 240},
0396 {67 , 225, 277},
0397 {68 , 263, 315}
0398 }
0399 }
0400 },
0401 {
0402 {
0403 site_id_t::kRE2, {
0404 {103, 38, 90 },
0405 {75 , 75, 127},
0406 {76 , 113, 165},
0407 {77 , 150, 202},
0408 {78 , 188, 240},
0409 {79 , 225, 277},
0410 {80 , 263, 315}
0411 }
0412 }
0413 },
0414 {
0415 {
0416 site_id_t::kME2, {
0417 {49 , 38, 90 },
0418 {21 , 75, 127},
0419 {22 , 113, 165},
0420 {23 , 150, 202},
0421 {24 , 188, 240},
0422 {25 , 225, 277},
0423 {26 , 263, 315}
0424 }
0425 }
0426 },
0427 {
0428 {
0429 site_id_t::kME3, {
0430 {51 , 38, 90 },
0431 {30 , 75, 127},
0432 {31 , 113, 165},
0433 {32 , 150, 202},
0434 {33 , 188, 240},
0435 {34 , 225, 277},
0436 {35 , 263, 315}
0437 }
0438 }
0439 },
0440 {
0441 {
0442 site_id_t::kRE3, {
0443 {105, 38, 90 },
0444 {84 , 75, 127},
0445 {85 , 113, 165},
0446 {86 , 150, 202},
0447 {87 , 188, 240},
0448 {88 , 225, 277},
0449 {89 , 263, 315}
0450 }
0451 }
0452 },
0453 {
0454 {
0455 site_id_t::kME4, {
0456 {53 , 38, 90 },
0457 {39 , 75, 127},
0458 {40 , 113, 165},
0459 {41 , 150, 202},
0460 {42 , 188, 240},
0461 {43 , 225, 277},
0462 {44 , 263, 315}
0463 }
0464 }
0465 },
0466 {
0467 {
0468 site_id_t::kRE4, {
0469 {107, 38, 90 },
0470 {93 , 75, 127},
0471 {94 , 113, 165},
0472 {95 , 150, 202},
0473 {96 , 188, 240},
0474 {97 , 225, 277},
0475 {98 , 263, 315},
0476 }
0477 }
0478 }
0479 };
0480
0481 std::vector<zones::pattern_t> zone2_prompt_pd = {
0482 {{52, 55, 58}, {52, 55, 58}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {53, 55, 57}, {53, 55, 57}, {53, 55, 57}},
0483 {{54, 57, 61}, {53, 57, 60}, {54, 56, 58}, {54, 56, 58}, {53, 55, 56}, {53, 54, 56}, {52, 54, 56}, {52, 54, 56}},
0484 {{49, 53, 56}, {50, 53, 57}, {52, 54, 56}, {52, 54, 56}, {54, 55, 57}, {54, 56, 57}, {54, 56, 58}, {54, 56, 58}},
0485 {{54, 57, 61}, {54, 57, 61}, {54, 56, 59}, {54, 56, 59}, {53, 54, 56}, {52, 54, 56}, {51, 54, 56}, {51, 53, 56}},
0486 {{49, 53, 56}, {49, 53, 56}, {51, 54, 56}, {51, 54, 56}, {54, 56, 57}, {54, 56, 58}, {54, 56, 59}, {54, 57, 59}},
0487 {{54, 59, 65}, {54, 60, 64}, {54, 57, 59}, {54, 56, 56}, {50, 54, 56}, {49, 53, 56}, {47, 52, 56}, {46, 51, 56}},
0488 {{45, 51, 56}, {46, 50, 56}, {51, 53, 56}, {54, 54, 56}, {54, 56, 60}, {54, 57, 61}, {54, 58, 63}, {54, 59, 64}}
0489 };
0490
0491 zones::quality_lut_t zone2_prompt_ql = {
0492 0, 3, 3, 5, 1, 23, 7, 26, 1, 36, 22, 38, 2, 39, 25, 39, 0, 32, 18, 35, 4, 44, 44, 48,
0493 9, 44, 44, 49, 10, 49, 48, 51, 0, 17, 6, 21, 3, 28, 7, 30, 4, 44, 43, 48, 5, 48, 48, 51,
0494 1, 34, 21, 37, 4, 47, 47, 50, 10, 49, 48, 51, 11, 51, 50, 51, 0, 32, 16, 33, 3, 43, 43, 47,
0495 8, 43, 43, 47, 9, 47, 46, 50, 8, 40, 40, 42, 11, 53, 53, 57, 11, 54, 53, 58, 13, 58, 56, 62,
0496 2, 40, 40, 41, 5, 52, 52, 54, 11, 53, 52, 57, 12, 58, 54, 61, 8, 42, 42, 45, 12, 56, 55, 59,
0497 14, 57, 56, 61, 15, 62, 59, 63, 0, 16, 5, 19, 2, 27, 7, 29, 3, 43, 42, 46, 4, 46, 45, 50,
0498 1, 40, 40, 41, 6, 52, 52, 54, 10, 53, 52, 58, 12, 55, 54, 60, 1, 24, 7, 26, 5, 31, 7, 31,
0499 6, 53, 52, 57, 6, 58, 54, 60, 2, 41, 41, 45, 7, 55, 55, 59, 13, 56, 56, 61, 14, 60, 59, 63,
0500 0, 34, 20, 37, 4, 46, 46, 49, 9, 47, 46, 50, 10, 50, 49, 51, 8, 42, 42, 45, 12, 57, 56, 61,
0501 13, 57, 55, 62, 15, 62, 59, 63, 2, 41, 41, 44, 6, 55, 54, 59, 13, 58, 56, 61, 14, 61, 59, 63,
0502 9, 45, 45, 49, 14, 60, 60, 62, 15, 61, 60, 63, 15, 63, 62, 63
0503 };
0504
0505 std::vector<zones::pattern_t> zone2_disp_pd = {
0506 {{52, 55, 58}, {52, 55, 58}, {53, 55, 57}, {53, 55, 57}, {54, 55, 56}, {53, 55, 57}, {53, 55, 57}, {53, 55, 57}},
0507 {{54, 57, 61}, {54, 57, 61}, {54, 56, 59}, {54, 56, 59}, {53, 55, 56}, {53, 54, 56}, {52, 54, 56}, {51, 54, 56}},
0508 {{49, 53, 56}, {49, 53, 56}, {51, 54, 56}, {51, 54, 56}, {54, 55, 57}, {54, 56, 57}, {54, 56, 58}, {54, 56, 59}},
0509 {{54, 58, 62}, {54, 58, 62}, {54, 56, 58}, {54, 56, 57}, {51, 54, 56}, {51, 53, 56}, {49, 53, 56}, {48, 52, 56}},
0510 {{48, 52, 56}, {48, 52, 56}, {52, 54, 56}, {53, 54, 56}, {54, 56, 59}, {54, 57, 59}, {54, 57, 61}, {54, 58, 62}},
0511 {{54, 60, 66}, {54, 60, 65}, {54, 57, 59}, {54, 56, 56}, {49, 53, 56}, {48, 52, 56}, {46, 52, 56}, {45, 51, 56}},
0512 {{44, 50, 56}, {45, 50, 56}, {51, 53, 56}, {54, 54, 56}, {54, 57, 61}, {54, 58, 62}, {54, 58, 64}, {54, 59, 65}}
0513 };
0514
0515 zones::quality_lut_t zone2_disp_ql = {
0516 0, 3, 3, 5, 1, 23, 7, 26, 1, 36, 22, 38, 2, 39, 25, 39, 0, 32, 18, 35, 4, 44, 44, 48,
0517 9, 44, 44, 49, 10, 49, 48, 51, 0, 17, 6, 21, 3, 28, 7, 30, 4, 44, 43, 48, 5, 48, 48, 51,
0518 1, 34, 21, 37, 4, 47, 48, 50, 10, 49, 47, 51, 11, 51, 50, 51, 0, 32, 16, 33, 3, 43, 43, 47,
0519 8, 43, 43, 47, 9, 47, 46, 50, 8, 40, 40, 42, 11, 53, 52, 57, 11, 53, 52, 58, 13, 58, 56, 61,
0520 2, 40, 40, 41, 5, 52, 52, 55, 11, 53, 53, 57, 12, 56, 55, 61, 8, 42, 41, 45, 12, 56, 54, 59,
0521 14, 58, 56, 62, 15, 61, 59, 63, 0, 16, 6, 20, 2, 27, 7, 29, 3, 43, 42, 46, 4, 46, 46, 50,
0522 1, 40, 40, 41, 5, 53, 52, 54, 10, 53, 52, 58, 12, 55, 54, 60, 1, 24, 7, 26, 5, 31, 7, 31,
0523 6, 53, 52, 57, 6, 57, 54, 61, 2, 42, 41, 45, 7, 54, 55, 59, 13, 58, 55, 60, 14, 60, 59, 63,
0524 0, 34, 19, 37, 4, 46, 45, 49, 9, 47, 46, 50, 10, 50, 49, 51, 8, 42, 42, 45, 12, 57, 56, 61,
0525 13, 57, 56, 62, 15, 62, 60, 63, 2, 41, 41, 44, 6, 56, 54, 59, 13, 58, 55, 61, 14, 61, 59, 63,
0526 9, 45, 45, 49, 14, 60, 59, 62, 15, 62, 60, 63, 15, 63, 62, 63
0527 };
0528
0529
0530 zones_.push_back({zone2_hm, zone2_prompt_pd, zone2_prompt_ql, zone2_disp_pd, zone2_disp_ql});
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544 features_ = {
0545 {
0546 feature_id_t::kPhi, {
0547 site_id_t::kME11, site_id_t::kME12, site_id_t::kME2, site_id_t::kME3, site_id_t::kME4,
0548 site_id_t::kRE1 , site_id_t::kRE2 , site_id_t::kRE3, site_id_t::kRE4,
0549 site_id_t::kGE11, site_id_t::kGE21, site_id_t::kME0
0550 }
0551 },
0552 {
0553 feature_id_t::kTheta, {
0554 site_id_t::kME11, site_id_t::kME12, site_id_t::kME2, site_id_t::kME3, site_id_t::kME4,
0555 site_id_t::kRE1 , site_id_t::kRE2 , site_id_t::kRE3, site_id_t::kRE4,
0556 site_id_t::kGE11, site_id_t::kGE21, site_id_t::kME0
0557 }
0558 },
0559 {
0560 feature_id_t::kBend, {
0561 site_id_t::kME11, site_id_t::kME12, site_id_t::kME2, site_id_t::kME3, site_id_t::kME4,
0562 site_id_t::kME0
0563 }
0564 },
0565 {
0566 feature_id_t::kQuality, {
0567 site_id_t::kME11, site_id_t::kME12, site_id_t::kME2, site_id_t::kME3, site_id_t::kME4,
0568 site_id_t::kME0
0569 }
0570 },
0571 };
0572
0573
0574
0575
0576
0577
0578
0579 theta_medians_ = {
0580
0581 {
0582 {
0583 {site_id_t::kME2, theta_id_t::kTheta1},
0584 {site_id_t::kME3, theta_id_t::kTheta1},
0585 {site_id_t::kME4, theta_id_t::kTheta1}
0586 },
0587 {
0588 {site_id_t::kME2, theta_id_t::kTheta2},
0589 {site_id_t::kME3, theta_id_t::kTheta2},
0590 {site_id_t::kME4, theta_id_t::kTheta2}
0591 },
0592 {
0593 {site_id_t::kGE21, theta_id_t::kTheta1},
0594 {site_id_t::kRE3, theta_id_t::kTheta1},
0595 {site_id_t::kRE4, theta_id_t::kTheta1}
0596 },
0597 },
0598
0599 {
0600 {
0601 {site_id_t::kME2, theta_id_t::kTheta1},
0602 {site_id_t::kME3, theta_id_t::kTheta1},
0603 {site_id_t::kME4, theta_id_t::kTheta1}
0604 },
0605 {
0606 {site_id_t::kME2, theta_id_t::kTheta2},
0607 {site_id_t::kME3, theta_id_t::kTheta2},
0608 {site_id_t::kME4, theta_id_t::kTheta2}
0609 },
0610 {
0611 {site_id_t::kRE2, theta_id_t::kTheta1},
0612 {site_id_t::kRE3, theta_id_t::kTheta1},
0613 {site_id_t::kRE4, theta_id_t::kTheta1}
0614 },
0615 },
0616
0617 {
0618 {
0619 {site_id_t::kME12, theta_id_t::kTheta1},
0620 {site_id_t::kME11, theta_id_t::kTheta1},
0621 {site_id_t::kME0 , theta_id_t::kTheta2}
0622 },
0623 {
0624 {site_id_t::kME12, theta_id_t::kTheta2},
0625 {site_id_t::kME11, theta_id_t::kTheta2},
0626 {site_id_t::kME0 , theta_id_t::kTheta2}
0627 },
0628 {
0629 {site_id_t::kRE1, theta_id_t::kTheta1},
0630 {site_id_t::kGE11, theta_id_t::kTheta1},
0631 {site_id_t::kME0, theta_id_t::kTheta1}
0632 },
0633 },
0634 };
0635
0636
0637
0638
0639
0640
0641
0642
0643
0644
0645
0646
0647
0648
0649 reduced_sites_ = {
0650 {reduced_site_id_t::kME1, {site_id_t::kME11, site_id_t::kGE11, site_id_t::kME12, site_id_t::kRE1}},
0651 {reduced_site_id_t::kME2, {site_id_t::kME2, site_id_t::kGE21, site_id_t::kRE2}},
0652 {reduced_site_id_t::kME3, {site_id_t::kME3, site_id_t::kRE3}},
0653 {reduced_site_id_t::kME4, {site_id_t::kME4, site_id_t::kRE4}},
0654 {reduced_site_id_t::kME0, {site_id_t::kME0}},
0655 };
0656
0657 }
0658
0659 EMTFModel::~EMTFModel() {
0660
0661 }