Skip to content

Commit 68843aa

Browse files
committed
Add mixing test for perf
1 parent d8debaf commit 68843aa

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

Framework/Core/test/test_EventMixing.cxx

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
using namespace o2::framework;
2323
using namespace o2::soa;
2424

25-
constexpr uint64_t testSize = 4194304;
25+
constexpr uint64_t testSize = 2UL<<15; // old: 4194304 = 2UL<<22;
26+
constexpr uint64_t testRep = 2UL<<10;
2627
constexpr int numEventsToMix = 5;
2728

2829
TEST_CASE("EventMixingNaiveCollisionsPairsSameCategories")
@@ -121,3 +122,38 @@ TEST_CASE("EventMixingCombGenCollisionsPairsSameCategories")
121122
}
122123
std::cout << "End EventMixingCombGenCollisionsPairsSameCategories" << std::endl;
123124
}
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

Comments
 (0)