|
22 | 22 | using namespace o2::framework; |
23 | 23 | using namespace o2::soa; |
24 | 24 |
|
25 | | -constexpr uint64_t testSize = 4194304; |
| 25 | +constexpr uint64_t testSize = 2UL<<15; // old: 4194304 = 2UL<<22; |
| 26 | +constexpr uint64_t testRep = 2UL<<10; |
26 | 27 | constexpr int numEventsToMix = 5; |
27 | 28 |
|
28 | 29 | TEST_CASE("EventMixingNaiveCollisionsPairsSameCategories") |
@@ -121,3 +122,38 @@ TEST_CASE("EventMixingCombGenCollisionsPairsSameCategories") |
121 | 122 | } |
122 | 123 | std::cout << "End EventMixingCombGenCollisionsPairsSameCategories" << std::endl; |
123 | 124 | } |
| 125 | + |
| 126 | +TEST_CASE("EventMixingPolicyCreation") |
| 127 | +{ |
| 128 | + // Seed with a real random value, if available |
| 129 | + std::default_random_engine e1(1234567891); |
| 130 | + std::uniform_real_distribution<float> uniform_dist(0.f, 1.f); |
| 131 | + std::uniform_real_distribution<float> uniform_dist_x(-0.065f, 0.073f); |
| 132 | + std::uniform_real_distribution<float> uniform_dist_y(-0.320f, 0.360f); |
| 133 | + std::uniform_int_distribution<int> uniform_dist_int(0, 5); |
| 134 | + |
| 135 | + TableBuilder colBuilder; |
| 136 | + auto rowWriterCol = colBuilder.cursor<o2::aod::Collisions>(); |
| 137 | + for (auto i = 0; i < testSize; ++i) { |
| 138 | + float x = uniform_dist_x(e1); |
| 139 | + float y = uniform_dist_y(e1); |
| 140 | + rowWriterCol(0, uniform_dist_int(e1), |
| 141 | + x, y, uniform_dist(e1), |
| 142 | + uniform_dist(e1), uniform_dist(e1), uniform_dist(e1), |
| 143 | + uniform_dist(e1), uniform_dist(e1), uniform_dist(e1), |
| 144 | + uniform_dist_int(e1), uniform_dist(e1), |
| 145 | + uniform_dist_int(e1), |
| 146 | + uniform_dist(e1), uniform_dist(e1)); |
| 147 | + } |
| 148 | + auto tableCol = colBuilder.finalize(); |
| 149 | + o2::aod::Collisions collisions{tableCol}; |
| 150 | + |
| 151 | + std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072}; |
| 152 | + std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360}; |
| 153 | + using BinningType = ColumnBinningPolicy<o2::aod::collision::PosX, o2::aod::collision::PosY>; |
| 154 | + BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default) |
| 155 | + |
| 156 | + for (auto i = 0; i < testRep; i++) { |
| 157 | + auto combPolicy = CombinationsBlockStrictlyUpperSameIndexPolicy(binningOnPositions, numEventsToMix - 1, -1, collisions, collisions); |
| 158 | + } |
| 159 | +} |
0 commit comments