Project
Loading...
Searching...
No Matches
testGlobalMapper.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#define BOOST_TEST_MODULE Test MCHGlobalMapping Mapper
13#define BOOST_TEST_MAIN
14#define BOOST_TEST_DYN_LINK
15
16#include <boost/test/unit_test.hpp>
24#include <algorithm>
25
26using namespace o2::mch::dcs;
27using namespace o2::mch;
28
29namespace
30{
31
32std::string expandAlias(std::string_view shortAlias)
33{
34 std::string alias = shortAlias.find("Left") != std::string::npos ? "MchHvLvLeft" : "MchHvLvRight";
35 alias += "/" + std::string(shortAlias);
36 if (alias.find("actual") == std::string::npos) {
37 alias += ".SenseVoltage";
38 }
39 return alias;
40}
41
42/* Compare the result of the aliasToDsIndices function with expectations */
43template <typename T>
44void compareToExpectation(const std::map<std::string, std::set<T>>& expected)
45{
46 for (auto e : expected) {
47
48 // build the full alias from the short form in the expected map
49 std::string alias = expandAlias(e.first);
50
51 // this is the function we are testing
52 auto dsix = o2::mch::dcs::aliasToDsIndices(alias);
53
54 std::set<o2::mch::DsIndex> expectedDualSampas = getDsIndices(e.second);
55
56 BOOST_TEST_CONTEXT(fmt::format("alias {}", alias))
57 {
58 // finally compare to expectations
59 BOOST_REQUIRE_EQUAL(dsix.size(), expectedDualSampas.size());
60 bool permutation = std::is_permutation(begin(dsix), end(dsix), begin(expectedDualSampas));
61 BOOST_REQUIRE_EQUAL(permutation, true);
62 }
63 }
64}
65
66} // namespace
67
68BOOST_AUTO_TEST_CASE(IncorrectCathodeShouldGetZeroIndices)
69{
70 BOOST_CHECK_EQUAL(getDsIndices({{10, Plane::Both}}).size(), 0);
71}
72
73BOOST_AUTO_TEST_CASE(CheckDsIndexRangePerChamberPlane)
74{
75 // note that indices in ranges might overlap, this is not an error
76 std::vector<std::tuple<int, int, int, int>> vexpected = {
77 {0, 1578, 226, 1803}, // chamber 1, min_bending, max_bending, min_nonBending, max_nonBending
78 {1804, 3382, 2030, 3607}, // chamber 2
79 {3608, 5154, 3829, 5375}, // chamber 3
80 {5376, 6922, 5597, 7143}, // chamber 4
81 {7144, 8312, 7190, 8351}, // chamber 5
82 {8352, 9539, 8399, 9579}, // chamber 6
83 {9580, 11253, 9630, 11299}, // chamber 7
84 {11300, 12973, 11350, 13019}, // chamber 8
85 {13020, 14873, 13070, 14919}, // chamber 9
86 {14920, 16773, 14970, 16819}, // chamber 10
87 };
88 for (auto chamberId = 0; chamberId < 10; chamberId++) {
89 BOOST_TEST_CONTEXT(fmt::format("chamberId {}", chamberId))
90 {
91 auto ch = chamber(chamberId).value();
92 const auto b = getDsIndices(ch, Plane::Bending);
93 const auto nb = getDsIndices(ch, Plane::NonBending);
94 BOOST_REQUIRE(b.size() > 0);
95 BOOST_REQUIRE(nb.size() > 0);
96 const auto [bmin, bmax] = std::minmax_element(b.begin(), b.end());
97 const auto [nbmin, nbmax] = std::minmax_element(nb.begin(), nb.end());
98 const auto expected = vexpected[chamberId];
99 BOOST_REQUIRE_EQUAL(*bmin, std::get<0>(expected));
100 BOOST_REQUIRE_EQUAL(*bmax, std::get<1>(expected));
101 BOOST_REQUIRE_EQUAL(*nbmin, std::get<2>(expected));
102 BOOST_REQUIRE_EQUAL(*nbmax, std::get<3>(expected));
103 }
104 }
105}
106
107BOOST_AUTO_TEST_CASE(HVSlatIDToDsIndex)
108{
109 std::map<std::string, std::set<Cathode>> expected = {
110 {"Chamber09Right/Slat00.actual.vMon", {{1006, Plane::Both}}},
111 };
112
113 compareToExpectation(expected);
114}
115
116BOOST_AUTO_TEST_CASE(HVSectorIDToDsIndex)
117{
118 auto indices1 = o2::mch::dcs::aliasToDsIndices("MchHvLvRight/Chamber00Right/Quad0Sect0.actual.vMon");
119 auto indices2 = o2::mch::dcs::aliasToDsIndices("MchHvLvRight/Chamber00Right/Quad0Sect1.actual.vMon");
120 auto indices3 = o2::mch::dcs::aliasToDsIndices("MchHvLvRight/Chamber00Right/Quad0Sect2.actual.vMon");
121
123
124 BOOST_CHECK_EQUAL(indices1.size() + indices2.size() + indices3.size(), de.nofDualSampas());
125 BOOST_CHECK_EQUAL(indices1.size(), 205);
126 BOOST_CHECK_EQUAL(indices2.size(), 184);
127 BOOST_CHECK_EQUAL(indices3.size(), 62);
128}
129
130BOOST_AUTO_TEST_CASE(LVAliasToSolar)
131{
132 /* For St345, solar crates might not correspond to full detection elements
133 * cathode like for St12. Hence we have to test explicitely the list of
134 * solarIds handled by a given alias.
135 *
136 * Note that the few cases where a full cathode is handled by a St345
137 * solar alias is tested both in this test and in the next one
138 * (LVAliasToCathode), as stated in the comments below in the "expected" map.
139 *
140 * Note that the solarIds list is explicitely expanded, even if could
141 * have been represented by e.g. {first value, length} as the numbers
142 * are always contiguous), to allow grepping (the solarIds are unique ids)
143 * if need be (in the "test code is documentation" philosophy)
144 */
145 std::map<std::string, std::set<int>> expected = {
146
147 /* Left */
148
149 {"Chamber04Left/SolCh04LCr01", {144, 145, 146, 147, 148}},
150 {"Chamber04Left/SolCh04LCr02", {80, 81, 82, 83, 84, 85}},
151 {"Chamber04Left/SolCh04LCr03", {424, 425, 426, 427, 428, 429}},
152 {"Chamber04Left/SolCh04LCr04", {440, 441, 442, 443, 444, 445}},
153 {"Chamber04Left/SolCh04LCr05", {336, 337, 338}}, /* see also (LVAliasToCathode) */
154
155 {"Chamber05Left/SolCh05LCr01", {312, 313, 314}}, /* see also (LVAliasToCathode) */
156 {"Chamber05Left/SolCh05LCr02", {8, 9, 10, 11, 12, 13}},
157 {"Chamber05Left/SolCh05LCr03", {56, 57, 58, 59, 60, 61}},
158 {"Chamber05Left/SolCh05LCr04", {32, 33, 34, 35, 36, 37}},
159 {"Chamber05Left/SolCh05LCr05", {24, 25, 26, 27, 28}},
160
161 {"Chamber06Left/SolCh06LCr01", {720, 721, 722, 723, 724}}, /* see also (LVAliasToCathode) */
162 {"Chamber06Left/SolCh06LCr02", {920, 921, 922, 923, 924, 925}},
163 {"Chamber06Left/SolCh06LCr03", {784, 785, 786, 787, 788, 789}},
164 {"Chamber06Left/SolCh06LCr04", {912, 913, 914, 915}}, /* see also (LVAliasToCathode) */
165 {"Chamber06Left/SolCh06LCr05", {328, 329, 330, 331, 332, 333}},
166 {"Chamber06Left/SolCh06LCr06", {344, 345, 346, 347, 348, 349}},
167 {"Chamber06Left/SolCh06LCr07", {848, 849, 850, 851, 852}}, /* see also (LVAliasToCathode) */
168
169 {"Chamber07Left/SolCh07LCr01", {728, 729, 730, 731, 732}}, /* see also (LVAliasToCathode) */
170 {"Chamber07Left/SolCh07LCr02", {736, 737, 738, 739, 740, 741}},
171 {"Chamber07Left/SolCh07LCr03", {776, 777, 778, 779, 780, 781}},
172 {"Chamber07Left/SolCh07LCr04", {864, 865, 866, 867}}, /* see also (LVAliasToCathode) */
173 {"Chamber07Left/SolCh07LCr05", {352, 353, 354, 355, 356, 357}},
174 {"Chamber07Left/SolCh07LCr06", {304, 305, 306, 307, 308, 309}},
175 {"Chamber07Left/SolCh07LCr07", {856, 857, 858, 859, 860}}, /* see also (LVAliasToCathode) */
176
177 {"Chamber08Left/SolCh08LCr01", {680, 681, 682, 683}}, /* see also (LVAliasToCathode) */
178 {"Chamber08Left/SolCh08LCr02", {744, 745, 746, 747, 748, 749}},
179 {"Chamber08Left/SolCh08LCr03", {752, 753, 754, 755, 756, 757}},
180 {"Chamber08Left/SolCh08LCr04", {696, 697, 698, 699, 700, 701}},
181 {"Chamber08Left/SolCh08LCr05", {704, 705, 706, 707, 708, 709}},
182 {"Chamber08Left/SolCh08LCr06", {632, 633, 634, 635, 636, 637}},
183 {"Chamber08Left/SolCh08LCr07", {880, 881, 882, 883, 884, 885}},
184 {"Chamber08Left/SolCh08LCr08", {872, 873, 874, 875}}, /* see also (LVAliasToCathode) */
185
186 {"Chamber09Left/SolCh09LCr01", {640, 641, 642, 643}}, /* see also (LVAliasToCathode) */
187 {"Chamber09Left/SolCh09LCr02", {712, 713, 714, 715, 716, 717}},
188 {"Chamber09Left/SolCh09LCr03", {768, 769, 770, 771, 772, 773}},
189 {"Chamber09Left/SolCh09LCr04", {656, 657, 658, 659, 660, 661}},
190 {"Chamber09Left/SolCh09LCr05", {760, 761, 762, 763, 764, 765}},
191 {"Chamber09Left/SolCh09LCr06", {904, 905, 906, 907, 908, 909}},
192 {"Chamber09Left/SolCh09LCr07", {888, 889, 890, 891, 892, 893}},
193 {"Chamber09Left/SolCh09LCr08", {896, 897, 898, 899}}, /* see also (LVAliasToCathode) */
194
195 /* Right */
196
197 {"Chamber04Right/SolCh04RCr01", {72, 73, 74, 75, 76}},
198 {"Chamber04Right/SolCh04RCr02", {184, 185, 186, 187, 188, 189}},
199 {"Chamber04Right/SolCh04RCr03", {456, 457, 458, 459, 460, 461}},
200 {"Chamber04Right/SolCh04RCr04", {400, 401, 402, 403, 404, 405}},
201 {"Chamber04Right/SolCh04RCr05", {368, 369, 370}}, /* see also (LVAliasToCathode) */
202
203 {"Chamber05Right/SolCh05RCr01", {448, 449, 450}}, /* see also (LVAliasToCathode) */
204 {"Chamber05Right/SolCh05RCr02", {360, 361, 362, 363, 364, 365}},
205 {"Chamber05Right/SolCh05RCr03", {216, 217, 218, 219, 220, 221}},
206 {"Chamber05Right/SolCh05RCr04", {432, 433, 434, 435, 436, 437}},
207 {"Chamber05Right/SolCh05RCr05", {408, 409, 410, 411, 412}},
208
209 {"Chamber06Right/SolCh06RCr01", {840, 841, 842, 843, 844}}, /* see also (LVAliasToCathode) */
210 {"Chamber06Right/SolCh06RCr02", {800, 801, 802, 803, 804, 805}},
211 {"Chamber06Right/SolCh06RCr03", {816, 817, 818, 819, 820, 821}},
212 {"Chamber06Right/SolCh06RCr04", {624, 625, 626, 627}}, /* see also (LVAliasToCathode) */
213 {"Chamber06Right/SolCh06RCr05", {528, 529, 530, 531, 532, 533}},
214 {"Chamber06Right/SolCh06RCr06", {512, 513, 514, 515, 516, 517}},
215 {"Chamber06Right/SolCh06RCr07", {584, 585, 586, 587, 588}}, /* see also (LVAliasToCathode) */
216
217 {"Chamber07Right/SolCh07RCr01", {824, 825, 826, 827, 828}}, /* see also (LVAliasToCathode) */
218 {"Chamber07Right/SolCh07RCr02", {808, 809, 810, 811, 812, 813}},
219 {"Chamber07Right/SolCh07RCr03", {832, 833, 834, 835, 836, 837}},
220 {"Chamber07Right/SolCh07RCr04", {600, 601, 602, 603}}, /* see also (LVAliasToCathode) */
221 {"Chamber07Right/SolCh07RCr05", {576, 577, 578, 579, 580, 581}},
222 {"Chamber07Right/SolCh07RCr06", {592, 593, 594, 595, 596, 597}},
223 {"Chamber07Right/SolCh07RCr07", {496, 497, 498, 499, 500}}, /* see also (LVAliasToCathode) */
224
225 {"Chamber08Right/SolCh08RCr01", {688, 689, 690, 691}}, /* see also (LVAliasToCathode) */
226 {"Chamber08Right/SolCh08RCr02", {672, 673, 674, 675, 676, 677}},
227 {"Chamber08Right/SolCh08RCr03", {560, 561, 562, 563, 564, 565}},
228 {"Chamber08Right/SolCh08RCr04", {568, 569, 570, 571, 572, 573}},
229 {"Chamber08Right/SolCh08RCr05", {608, 609, 610, 611, 612, 613}},
230 {"Chamber08Right/SolCh08RCr06", {616, 617, 618, 619, 620, 621}},
231 {"Chamber08Right/SolCh08RCr07", {480, 481, 482, 483, 484, 485}},
232 {"Chamber08Right/SolCh08RCr08", {488, 489, 490, 491}}, /* see also (LVAliasToCathode) */
233
234 {"Chamber09Right/SolCh09RCr01", {648, 649, 650, 651}}, /* see also (LVAliasToCathode) */
235 {"Chamber09Right/SolCh09RCr02", {664, 665, 666, 667, 668, 669}},
236 {"Chamber09Right/SolCh09RCr03", {552, 553, 554, 555, 556, 557}},
237 {"Chamber09Right/SolCh09RCr04", {504, 505, 506, 507, 508, 509}},
238 {"Chamber09Right/SolCh09RCr05", {536, 537, 538, 539, 540, 541}},
239 {"Chamber09Right/SolCh09RCr06", {544, 545, 546, 547, 548, 549}},
240 {"Chamber09Right/SolCh09RCr07", {520, 521, 522, 523, 524, 525}},
241 {"Chamber09Right/SolCh09RCr08", {472, 473, 474, 475}}, /* see also (LVAliasToCathode) */
242
243 };
244
245 compareToExpectation(expected);
246}
247
248BOOST_AUTO_TEST_CASE(LVAliasToCathode)
249{
268 std::map<std::string, std::set<Cathode>> expected = {
269
270 /* Left */
271
272 {"Chamber00Left/Group04an", {{101, Plane::NonBending}}},
273 {"Chamber00Left/Group02an", {{101, Plane::Bending}}},
274 {"Chamber00Left/Group03an", {{102, Plane::Bending}}},
275 {"Chamber00Left/Group01an", {{102, Plane::NonBending}}},
276 {"Chamber00Left/SolCh00LCr01", {{101, Plane::NonBending}}},
277 {"Chamber00Left/SolCh00LCr02", {{101, Plane::Bending}}},
278 {"Chamber00Left/SolCh00LCr03", {{102, Plane::Bending}}},
279 {"Chamber00Left/SolCh00LCr04", {{102, Plane::NonBending}}},
280
281 {"Chamber01Left/Group04an", {{201, Plane::NonBending}}},
282 {"Chamber01Left/Group02an", {{201, Plane::Bending}}},
283 {"Chamber01Left/Group03an", {{202, Plane::Bending}}},
284 {"Chamber01Left/Group01an", {{202, Plane::NonBending}}},
285 {"Chamber01Left/SolCh01LCr01", {{201, Plane::NonBending}}},
286 {"Chamber01Left/SolCh01LCr02", {{201, Plane::Bending}}},
287 {"Chamber01Left/SolCh01LCr03", {{202, Plane::Bending}}},
288 {"Chamber01Left/SolCh01LCr04", {{202, Plane::NonBending}}},
289
290 {"Chamber02Left/Group02an", {{301, Plane::NonBending}}},
291 {"Chamber02Left/Group01an", {{301, Plane::Bending}}},
292 {"Chamber02Left/Group04an", {{302, Plane::Bending}}},
293 {"Chamber02Left/Group03an", {{302, Plane::NonBending}}},
294 {"Chamber02Left/SolCh02LCr01", {{301, Plane::NonBending}}},
295 {"Chamber02Left/SolCh02LCr02", {{301, Plane::Bending}}},
296 {"Chamber02Left/SolCh02LCr03", {{302, Plane::Bending}}},
297 {"Chamber02Left/SolCh02LCr04", {{302, Plane::NonBending}}},
298
299 {"Chamber03Left/Group02an", {{401, Plane::NonBending}}},
300 {"Chamber03Left/Group01an", {{401, Plane::Bending}}},
301 {"Chamber03Left/Group04an", {{402, Plane::Bending}}},
302 {"Chamber03Left/Group03an", {{402, Plane::NonBending}}},
303 {"Chamber03Left/SolCh03LCr01", {{401, Plane::NonBending}}},
304 {"Chamber03Left/SolCh03LCr02", {{401, Plane::Bending}}},
305 {"Chamber03Left/SolCh03LCr03", {{402, Plane::Bending}}},
306 {"Chamber03Left/SolCh03LCr04", {{402, Plane::NonBending}}},
307
308 {"Chamber04Left/Group05an", {{511, Plane::Both}, {512, Plane::Both}, {513, Plane::Both}}},
309 {"Chamber04Left/Group04an", {{510, Plane::Both}}},
310 {"Chamber04Left/Group03an", {{509, Plane::Both}}},
311 {"Chamber04Left/Group02an", {{508, Plane::Both}}},
312 {"Chamber04Left/Group01an", {{505, Plane::Both}, {506, Plane::Both}, {507, Plane::Both}}},
313 {"Chamber04Left/SolCh04LCr05", {{512, Plane::Both}, {513, Plane::Both}}},
314
315 {"Chamber05Left/Group05an", {{611, Plane::Both}, {612, Plane::Both}, {613, Plane::Both}}},
316 {"Chamber05Left/Group04an", {{610, Plane::Both}}},
317 {"Chamber05Left/Group03an", {{609, Plane::Both}}},
318 {"Chamber05Left/Group02an", {{608, Plane::Both}}},
319 {"Chamber05Left/Group01an", {{605, Plane::Both}, {606, Plane::Both}, {607, Plane::Both}}},
320 {"Chamber05Left/SolCh05LCr01", {{605, Plane::Both}, {606, Plane::Both}}},
321
322 {"Chamber06Left/Group07an", {{716, Plane::Both}, {717, Plane::Both}, {718, Plane::Both}, {719, Plane::Both}}},
323 {"Chamber06Left/Group06an", {{715, Plane::Both}}},
324 {"Chamber06Left/Group05an", {{714, Plane::Both}}},
325 {"Chamber06Left/Group04an", {{713, Plane::Both}}},
326 {"Chamber06Left/Group03an", {{712, Plane::Both}}},
327 {"Chamber06Left/Group02an", {{711, Plane::Both}}},
328 {"Chamber06Left/Group01an", {{707, Plane::Both}, {708, Plane::Both}, {709, Plane::Both}, {710, Plane::Both}}},
329 {"Chamber06Left/SolCh06LCr01", {{707, Plane::Both}, {708, Plane::Both}, {709, Plane::Both}}},
330 {"Chamber06Left/SolCh06LCr04", {{713, Plane::Both}}},
331 {"Chamber06Left/SolCh06LCr07", {{717, Plane::Both}, {718, Plane::Both}, {719, Plane::Both}}},
332
333 {"Chamber07Left/Group07an", {{816, Plane::Both}, {817, Plane::Both}, {818, Plane::Both}, {819, Plane::Both}}},
334 {"Chamber07Left/Group06an", {{815, Plane::Both}}},
335 {"Chamber07Left/Group05an", {{814, Plane::Both}}},
336 {"Chamber07Left/Group04an", {{813, Plane::Both}}},
337 {"Chamber07Left/Group03an", {{812, Plane::Both}}},
338 {"Chamber07Left/Group02an", {{811, Plane::Both}}},
339 {"Chamber07Left/Group01an", {{807, Plane::Both}, {808, Plane::Both}, {809, Plane::Both}, {810, Plane::Both}}},
340 {"Chamber07Left/SolCh07LCr01", {{807, Plane::Both}, {808, Plane::Both}, {809, Plane::Both}}},
341 {"Chamber07Left/SolCh07LCr04", {{813, Plane::Both}}},
342 {"Chamber07Left/SolCh07LCr07", {{817, Plane::Both}, {818, Plane::Both}, {819, Plane::Both}}},
343
344 {"Chamber08Left/Group07an", {{916, Plane::Both}, {917, Plane::Both}, {918, Plane::Both}, {919, Plane::Both}}},
345 {"Chamber08Left/Group06an", {{915, Plane::Both}}},
346 {"Chamber08Left/Group05an", {{914, Plane::Both}}},
347 {"Chamber08Left/Group04an", {{913, Plane::Both}}},
348 {"Chamber08Left/Group03an", {{912, Plane::Both}}},
349 {"Chamber08Left/Group02an", {{911, Plane::Both}}},
350 {"Chamber08Left/Group01an", {{907, Plane::Both}, {908, Plane::Both}, {909, Plane::Both}, {910, Plane::Both}}},
351 {"Chamber08Left/SolCh08LCr01", {{907, Plane::Both}, {908, Plane::Both}}},
352 {"Chamber08Left/SolCh08LCr08", {{918, Plane::Both}, {919, Plane::Both}}},
353
354 {"Chamber09Left/Group07an", {{1016, Plane::Both}, {1017, Plane::Both}, {1018, Plane::Both}, {1019, Plane::Both}}},
355 {"Chamber09Left/Group06an", {{1015, Plane::Both}}},
356 {"Chamber09Left/Group05an", {{1014, Plane::Both}}},
357 {"Chamber09Left/Group04an", {{1013, Plane::Both}}},
358 {"Chamber09Left/Group03an", {{1012, Plane::Both}}},
359 {"Chamber09Left/Group02an", {{1011, Plane::Both}}},
360 {"Chamber09Left/Group01an", {{1007, Plane::Both}, {1008, Plane::Both}, {1009, Plane::Both}, {1010, Plane::Both}}},
361 {"Chamber09Left/SolCh09LCr01", {{1007, Plane::Both}, {1008, Plane::Both}}},
362 {"Chamber09Left/SolCh09LCr08", {{1018, Plane::Both}, {1019, Plane::Both}}},
363
364 /* Right */
365
366 {"Chamber00Right/Group04an", {{100, Plane::Bending}}},
367 {"Chamber00Right/Group02an", {{100, Plane::NonBending}}},
368 {"Chamber00Right/Group03an", {{103, Plane::NonBending}}},
369 {"Chamber00Right/Group01an", {{103, Plane::Bending}}},
370 {"Chamber00Right/SolCh00RCr01", {{100, Plane::Bending}}},
371 {"Chamber00Right/SolCh00RCr02", {{100, Plane::NonBending}}},
372 {"Chamber00Right/SolCh00RCr03", {{103, Plane::NonBending}}},
373 {"Chamber00Right/SolCh00RCr04", {{103, Plane::Bending}}},
374
375 {"Chamber01Right/Group04an", {{200, Plane::Bending}}},
376 {"Chamber01Right/Group02an", {{200, Plane::NonBending}}},
377 {"Chamber01Right/Group03an", {{203, Plane::NonBending}}},
378 {"Chamber01Right/Group01an", {{203, Plane::Bending}}},
379 {"Chamber01Right/SolCh01RCr01", {{200, Plane::Bending}}},
380 {"Chamber01Right/SolCh01RCr02", {{200, Plane::NonBending}}},
381 {"Chamber01Right/SolCh01RCr03", {{203, Plane::NonBending}}},
382 {"Chamber01Right/SolCh01RCr04", {{203, Plane::Bending}}},
383
384 {"Chamber02Right/Group02an", {{300, Plane::Bending}}},
385 {"Chamber02Right/Group01an", {{300, Plane::NonBending}}},
386 {"Chamber02Right/Group04an", {{303, Plane::NonBending}}},
387 {"Chamber02Right/Group03an", {{303, Plane::Bending}}},
388 {"Chamber02Right/SolCh02RCr01", {{300, Plane::Bending}}},
389 {"Chamber02Right/SolCh02RCr02", {{300, Plane::NonBending}}},
390 {"Chamber02Right/SolCh02RCr03", {{303, Plane::NonBending}}},
391 {"Chamber02Right/SolCh02RCr04", {{303, Plane::Bending}}},
392
393 {"Chamber03Right/Group02an", {{400, Plane::Bending}}},
394 {"Chamber03Right/Group01an", {{400, Plane::NonBending}}},
395 {"Chamber03Right/Group04an", {{403, Plane::NonBending}}},
396 {"Chamber03Right/Group03an", {{403, Plane::Bending}}},
397 {"Chamber03Right/SolCh03RCr01", {{400, Plane::Bending}}},
398 {"Chamber03Right/SolCh03RCr02", {{400, Plane::NonBending}}},
399 {"Chamber03Right/SolCh03RCr03", {{403, Plane::NonBending}}},
400 {"Chamber03Right/SolCh03RCr04", {{403, Plane::Bending}}},
401
402 {"Chamber04Right/Group05an", {{514, Plane::Both}, {515, Plane::Both}, {516, Plane::Both}}},
403 {"Chamber04Right/Group04an", {{517, Plane::Both}}},
404 {"Chamber04Right/Group03an", {{500, Plane::Both}}},
405 {"Chamber04Right/Group02an", {{501, Plane::Both}}},
406 {"Chamber04Right/Group01an", {{502, Plane::Both}, {503, Plane::Both}, {504, Plane::Both}}},
407 {"Chamber04Right/SolCh04RCr05", {{514, Plane::Both}, {515, Plane::Both}}},
408
409 {"Chamber05Right/Group05an", {{614, Plane::Both}, {615, Plane::Both}, {616, Plane::Both}}},
410 {"Chamber05Right/Group04an", {{617, Plane::Both}}},
411 {"Chamber05Right/Group03an", {{600, Plane::Both}}},
412 {"Chamber05Right/Group02an", {{601, Plane::Both}}},
413 {"Chamber05Right/Group01an", {{602, Plane::Both}, {603, Plane::Both}, {604, Plane::Both}}},
414 {"Chamber05Right/SolCh05RCr01", {{603, Plane::Both}, {604, Plane::Both}}},
415
416 {"Chamber06Right/Group07an", {{720, Plane::Both}, {721, Plane::Both}, {722, Plane::Both}, {723, Plane::Both}}},
417 {"Chamber06Right/Group06an", {{724, Plane::Both}}},
418 {"Chamber06Right/Group05an", {{725, Plane::Both}}},
419 {"Chamber06Right/Group04an", {{700, Plane::Both}}},
420 {"Chamber06Right/Group03an", {{701, Plane::Both}}},
421 {"Chamber06Right/Group02an", {{702, Plane::Both}}},
422 {"Chamber06Right/Group01an", {{703, Plane::Both}, {704, Plane::Both}, {705, Plane::Both}, {706, Plane::Both}}},
423 {"Chamber06Right/SolCh06RCr01", {{704, Plane::Both}, {705, Plane::Both}, {706, Plane::Both}}},
424 {"Chamber06Right/SolCh06RCr04", {{700, Plane::Both}}},
425 {"Chamber06Right/SolCh06RCr07", {{720, Plane::Both}, {721, Plane::Both}, {722, Plane::Both}}},
426
427 {"Chamber07Right/Group07an", {{820, Plane::Both}, {821, Plane::Both}, {822, Plane::Both}, {823, Plane::Both}}},
428 {"Chamber07Right/Group06an", {{824, Plane::Both}}},
429 {"Chamber07Right/Group05an", {{825, Plane::Both}}},
430 {"Chamber07Right/Group04an", {{800, Plane::Both}}},
431 {"Chamber07Right/Group03an", {{801, Plane::Both}}},
432 {"Chamber07Right/Group02an", {{802, Plane::Both}}},
433 {"Chamber07Right/Group01an", {{803, Plane::Both}, {804, Plane::Both}, {805, Plane::Both}, {806, Plane::Both}}},
434 {"Chamber07Right/SolCh07RCr01", {{804, Plane::Both}, {805, Plane::Both}, {806, Plane::Both}}},
435 {"Chamber07Right/SolCh07RCr04", {{800, Plane::Both}}},
436 {"Chamber07Right/SolCh07RCr07", {{820, Plane::Both}, {821, Plane::Both}, {822, Plane::Both}}},
437
438 {"Chamber08Right/Group07an", {{920, Plane::Both}, {921, Plane::Both}, {922, Plane::Both}, {923, Plane::Both}}},
439 {"Chamber08Right/Group06an", {{924, Plane::Both}}},
440 {"Chamber08Right/Group05an", {{925, Plane::Both}}},
441 {"Chamber08Right/Group04an", {{900, Plane::Both}}},
442 {"Chamber08Right/Group03an", {{901, Plane::Both}}},
443 {"Chamber08Right/Group02an", {{902, Plane::Both}}},
444 {"Chamber08Right/Group01an", {{903, Plane::Both}, {904, Plane::Both}, {905, Plane::Both}, {906, Plane::Both}}},
445 {"Chamber08Right/SolCh08RCr01", {{905, Plane::Both}, {906, Plane::Both}}},
446 {"Chamber08Right/SolCh08RCr08", {{920, Plane::Both}, {921, Plane::Both}}},
447
448 {"Chamber09Right/Group07an", {{1020, Plane::Both}, {1021, Plane::Both}, {1022, Plane::Both}, {1023, Plane::Both}}},
449 {"Chamber09Right/Group06an", {{1024, Plane::Both}}},
450 {"Chamber09Right/Group05an", {{1025, Plane::Both}}},
451 {"Chamber09Right/Group04an", {{1000, Plane::Both}}},
452 {"Chamber09Right/Group03an", {{1001, Plane::Both}}},
453 {"Chamber09Right/Group02an", {{1002, Plane::Both}}},
454 {"Chamber09Right/Group01an", {{1003, Plane::Both}, {1004, Plane::Both}, {1005, Plane::Both}, {1006, Plane::Both}}},
455 {"Chamber09Right/SolCh09RCr01", {{1005, Plane::Both}, {1006, Plane::Both}}},
456 {"Chamber09Right/SolCh09RCr08", {{1020, Plane::Both}, {1021, Plane::Both}}},
457 };
458
459 compareToExpectation(expected);
460}
A Segmentation lets you find pads of a detection element and then inspect those pads.
GLsizeiptr size
Definition glcorearb.h:659
GLuint GLuint end
Definition glcorearb.h:469
GLboolean GLboolean GLboolean b
Definition glcorearb.h:1233
std::set< DsIndex > aliasToDsIndices(std::string_view alias)
Definition Mapper.cxx:41
std::optional< Chamber > chamber(int chamberId)
Definition Chamber.cxx:17
std::set< DsIndex > getDsIndices(const std::set< dcs::Cathode > &cathodes)
Definition Mapper.cxx:58
BOOST_AUTO_TEST_CASE(FlatHisto)
std::map< std::string, ID > expected
uint16_t de
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())