48std::vector<CbmTrdDigi*>
PermutateDigis(std::vector<CbmTrdDigi*> digis,
double timeSeparation = 3000)
50 std::vector<CbmTrdDigi*> digisPermutated;
53 for (
size_t i = 0; i < digis.size(); ++i)
60 digisPermutated.push_back(digis.at(e));
61 digisPermutated.back()->SetTime(digis.at(e)->GetTime() + timeAdd);
63 timeAdd += timeSeparation;
64 }
while (std::next_permutation(
v.begin(),
v.end()));
66 std::sort(digisPermutated.begin(), digisPermutated.end(),
69 return digisPermutated;
75 std::vector<std::pair<CbmTrdDigi, int32_t>> inVec;
78 for (
auto digi : digis)
79 inVec.push_back(std::make_pair<CbmTrdDigi, int32_t>(std::move(*digi), idx++));
95TEST(_GTestTrdClusterizer, Check3PadCluster)
99 std::vector<CbmTrdDigi*> digis;
106 int nPermutations = digisPermutated.size() / digis.size();
112 EXPECT_EQ(clusters.size(), nPermutations);
113 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 3), nPermutations);
144TEST(_GTestTrdClusterizer, Check2PadLeftNTCluster)
148 std::vector<CbmTrdDigi*> digis;
158 EXPECT_EQ(clusters.size(), 2);
159 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), 2);
163TEST(_GTestTrdClusterizer, Check2PadRightNTCluster)
167 std::vector<CbmTrdDigi*> digis;
177 EXPECT_EQ(clusters.size(), 2);
178 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), 2);
183TEST(_GTestTrdClusterizer, Check2PadWithSTOnNextRowCluster)
187 std::vector<CbmTrdDigi*> digis;
195 int nPermutations = digisPermutated.size() / digis.size();
201 EXPECT_EQ(clusters.size(), nPermutations * 2);
202 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), nPermutations);
203 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 1), nPermutations);
206TEST(_GTestTrdClusterizer, Check2PadWithNTOnNextRowCluster)
210 std::vector<CbmTrdDigi*> digis;
218 int nPermutations = digisPermutated.size() / digis.size();
224 EXPECT_EQ(clusters.size(), nPermutations);
225 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), nPermutations);
228TEST(_GTestTrdClusterizer, Check2PadWithSTOnPrevRowCluster)
232 std::vector<CbmTrdDigi*> digis;
240 int nPermutations = digisPermutated.size() / digis.size();
246 EXPECT_EQ(clusters.size(), nPermutations * 2);
247 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), nPermutations);
248 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 1), nPermutations);
251TEST(_GTestTrdClusterizer, Check2PadWithNTOnPrevRowCluster)
255 std::vector<CbmTrdDigi*> digis;
263 int nPermutations = digisPermutated.size() / digis.size();
269 EXPECT_EQ(clusters.size(), nPermutations);
270 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), nPermutations);
273TEST(_GTestTrdClusterizer, CheckAdjacent3PadClusters)
277 std::vector<CbmTrdDigi*> digis;
287 int nPermutations = digisPermutated.size() / digis.size();
293 EXPECT_EQ(clusters.size(), nPermutations * 2);
294 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 3), nPermutations * 2);
297TEST(_GTestTrdClusterizer, Check3PadWithSingleNTCluster)
301 std::vector<CbmTrdDigi*> digis;
309 int nPermutations = digisPermutated.size() / digis.size();
315 EXPECT_EQ(clusters.size(), nPermutations);
316 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 3), nPermutations);
319TEST(_GTestTrdClusterizer, CheckLeftAndRightBordersFullyTriggered)
323 std::vector<CbmTrdDigi*> digis;
325 for (
int row = 0; row < 24; ++row) {
335 EXPECT_EQ(clusters.size(), 48);
336 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 1), 48);
395TEST(_GTestTrdClusterizer, CheckTimeDistanceSmallEnough)
399 std::vector<CbmTrdDigi*> digis;
408 int nPermutations = digisPermutated.size() / digis.size();
414 EXPECT_EQ(clusters.size(), nPermutations);
415 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 4), nPermutations);
418TEST(_GTestTrdClusterizer, CheckTimeDistanceTooHigh)
422 std::vector<CbmTrdDigi*> digis;
431 int nPermutations = digisPermutated.size() / digis.size();
437 EXPECT_EQ(clusters.size(), nPermutations * 2);
438 EXPECT_EQ(std::count(clusterSizes.begin(), clusterSizes.end(), 2), nPermutations * 2);