11 #include <mdst/dataobjects/HitPatternCDC.h>
13 #include<framework/logging/Logger.h>
19 std::bitset<64> sLayerZer(
static_cast<std::string
>(
"0000000000000000000000000000000000000000000000000000000011111111"));
20 std::bitset<64> sLayerOne(
static_cast<std::string
>(
"0000000000000000000000000000000000000000000000000011111100000000"));
21 std::bitset<64> sLayerTwo(
static_cast<std::string
>(
"0000000000000000000000000000000000000000000011111100000000000000"));
22 std::bitset<64> sLayerThr(
static_cast<std::string
>(
"0000000000000000000000000000000000000011111100000000000000000000"));
23 std::bitset<64> sLayerFou(
static_cast<std::string
>(
"0000000000000000000000000000000011111100000000000000000000000000"));
24 std::bitset<64> sLayerFiv(
static_cast<std::string
>(
"0000000000000000000000000011111100000000000000000000000000000000"));
25 std::bitset<64> sLayerSix(
static_cast<std::string
>(
"0000000000000000000011111100000000000000000000000000000000000000"));
26 std::bitset<64> sLayerSev(
static_cast<std::string
>(
"0000000000000011111100000000000000000000000000000000000000000000"));
27 std::bitset<64> sLayerEig(
static_cast<std::string
>(
"0000000011111100000000000000000000000000000000000000000000000000"));
30 sLayerFiv, sLayerSix, sLayerSev, sLayerEig
33 std::bitset<64> infoLayerCDC(
static_cast<std::string
>(
"1111111100000000000000000000000000000000000000000000000000000000"));
38 {0, std::make_pair(0, 7)},
39 {1, std::make_pair(8, 13)},
40 {2, std::make_pair(14, 19)},
41 {3, std::make_pair(20, 25)},
42 {4, std::make_pair(26, 31)},
43 {5, std::make_pair(32, 37)},
44 {6, std::make_pair(38, 43)},
45 {7, std::make_pair(44, 49)},
46 {8, std::make_pair(50, 55)}
52 return static_cast<unsigned short int>((
m_pattern >> 56).to_ulong());
64 std::bitset<64> numberOfHits(nHits);
73 if constexpr(
sizeof(
unsigned long) >= 8) {
82 B2ASSERT(
"Layer is out of range.", layer <= 55);
88 B2ASSERT(
"Layer is out of range.", layer <= 55);
94 B2ASSERT(
"Layer is out of range.", layer <= 55);
100 for (
unsigned int i = 0; i <
m_pattern.size(); ++i) {
109 for (
unsigned int i =
m_pattern.size() - 8; i > 0; --i) {
118 B2ASSERT(
"Super layer outof range.", sLayer <= 8);
124 B2ASSERT(
"Super layer outof range.", sLayer <= 8);
125 for (
unsigned short int ii = 0; ii <
m_pattern.size(); ++ii) {
137 B2ASSERT(
"Super layer outof range.", sLayer <= 8);
143 B2ASSERT(
"Super layer outof range.", sLayer <= 8);
144 unsigned short max = 0;
145 unsigned short counter = 0;
147 for (
unsigned short i = indices.first; i <= indices.second; ++i) {
156 return std::max(max, counter);