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}
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char e
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())