Skip to content

Commit 71f6f5f

Browse files
committed
Adjust to new binning interface, add lambda example to mixing tutorial
1 parent 82af993 commit 71f6f5f

6 files changed

Lines changed: 26 additions & 31 deletions

File tree

PWGCF/FemtoDream/femtoDreamPairTaskTrackTrack.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct femtoDreamPairTaskTrackTrack {
9494
ConfigurableAxis CfgMultBins{"CfgMultBins", {VARIABLE_WIDTH, 0.0f, 20.0f, 40.0f, 60.0f, 80.0f, 100.0f, 200.0f, 99999.f}, "Mixing bins - multiplicity"};
9595
ConfigurableAxis CfgVtxBins{"CfgVtxBins", {VARIABLE_WIDTH, -10.0f, -8.f, -6.f, -4.f, -2.f, 0.f, 2.f, 4.f, 6.f, 8.f, 10.f}, "Mixing bins - z-vertex"};
9696

97-
BinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinning{{CfgVtxBins, CfgMultBins}, true};
97+
ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinning{{CfgVtxBins, CfgMultBins}, true};
9898

9999
ConfigurableAxis CfgkstarBins{"CfgkstarBins", {1500, 0., 6.}, "binning kstar"};
100100
ConfigurableAxis CfgkTBins{"CfgkTBins", {150, 0., 9.}, "binning kT"};

PWGCF/FemtoDream/femtoDreamPairTaskTrackV0.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ struct femtoDreamPairTaskTrackV0 {
186186
void processMixedEvent(o2::aod::FemtoDreamCollisions& cols,
187187
o2::aod::FemtoDreamParticles& parts)
188188
{
189-
BinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinning{{CfgVtxBins, CfgMultBins}, true};
189+
ColumnBinningPolicy<aod::collision::PosZ, aod::femtodreamcollision::MultV0M> colBinning{{CfgVtxBins, CfgMultBins}, true};
190190

191191
for (auto& [collision1, collision2] : soa::selfCombinations(colBinning, 5, -1, cols, cols)) {
192192

PWGCF/Tasks/correlations.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ struct CorrelationTask {
115115

116116
using aodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>>;
117117
using derivedCollisions = soa::Filtered<aod::CFCollisions>;
118-
using BinningType = BinningPolicy<aod::collision::PosZ, aod::cent::CentRun2V0M>;
118+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentRun2V0M>;
119119

120120
void init(o2::framework::InitContext&)
121121
{

Tutorials/src/eventMixing.cxx

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ DECLARE_SOA_TABLE(Hashes, "AOD", "HASH", hash::Bin);
3838
struct MixedEvents {
3939
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
4040
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
41-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
41+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
4242
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
4343
SameKindPair<aod::Collisions, aod::Tracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
4444

@@ -68,7 +68,7 @@ struct MixedEvents {
6868
struct MixedEventsInsideProcess {
6969
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
7070
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
71-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
71+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
7272
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
7373

7474
void process(aod::Collisions& collisions, aod::Tracks& tracks)
@@ -103,7 +103,7 @@ struct MixedEventsFilteredTracks {
103103

104104
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
105105
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
106-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
106+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
107107
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
108108
SameKindPair<aod::Collisions, myTracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
109109

@@ -134,7 +134,7 @@ struct MixedEventsJoinedCollisions {
134134
using aodCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
135135
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
136136
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
137-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
137+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
138138
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
139139
SameKindPair<aodCollisions, aod::Tracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
140140

@@ -165,7 +165,7 @@ struct MixedEventsDynamicColumns {
165165
using aodCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::Mults>;
166166
std::vector<double> zBins{7, -7, 7};
167167
std::vector<double> multBins{VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 100.1};
168-
using BinningType = BinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
168+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
169169
BinningType corrBinning{{zBins, multBins}, true}; // true is for 'ignore overflows' (true by default)
170170
SameKindPair<aodCollisions, aod::Tracks, BinningType> pair{corrBinning, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
171171

@@ -195,7 +195,7 @@ struct MixedEventsDynamicColumns {
195195
struct MixedEventsVariousKinds {
196196
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
197197
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
198-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
198+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
199199
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
200200
Pair<aod::Collisions, aod::Tracks, aod::V0s, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
201201

@@ -228,7 +228,7 @@ struct MixedEventsTriple {
228228
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
229229
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
230230
std::vector<double> zBins{7, -7, 7};
231-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY, aod::collision::PosZ>;
231+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY, aod::collision::PosZ>;
232232
BinningType binningOnPositions{{xBins, yBins, zBins}, true}; // true is for 'ignore overflows' (true by default)
233233
SameKindTriple<aod::Collisions, aod::Tracks, BinningType> triple{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
234234

@@ -259,7 +259,7 @@ struct MixedEventsTripleVariousKinds {
259259
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
260260
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
261261
std::vector<double> zBins{7, -7, 7};
262-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY, aod::collision::PosZ>;
262+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY, aod::collision::PosZ>;
263263
BinningType binningOnPositions{{xBins, yBins, zBins}, true}; // true is for 'ignore overflows' (true by default)
264264
Triple<aod::Collisions, aod::Tracks, aod::V0s, aod::Tracks, BinningType> triple{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
265265

@@ -356,7 +356,6 @@ struct MixedEventsWithHashTask {
356356
};
357357

358358
struct MixedEventsPartitionedTracks {
359-
360359
Filter trackFilter = (aod::track::x > -0.8f) && (aod::track::x < 0.8f) && (aod::track::y > 1.0f);
361360
using myTracks = soa::Filtered<aod::Tracks>;
362361

@@ -365,7 +364,7 @@ struct MixedEventsPartitionedTracks {
365364

366365
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
367366
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
368-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
367+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
369368
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
370369
SameKindPair<aod::Collisions, myTracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
371370

@@ -408,19 +407,15 @@ struct MixedEventsLambdaBinning {
408407
void process(aod::Collisions& collisions, aod::Tracks& tracks)
409408
{
410409
LOGF(info, "Input data Collisions %d, Tracks %d ", collisions.size(), tracks.size());
411-
std::vector<double> axisVertexExpanded;
412-
binning_helpers::expandConstantBinning(axisVertex, axisVertexExpanded);
413-
414-
auto getBinTracksSize =
415-
[&tracks, this](std::tuple<typename aod::collision::PosZ::type, typename soa::Index<>::type> const& data) -> int {
416-
float posZ = std::get<0>(data);
417-
int32_t colIndex = std::get<1>(data);
418-
auto associatedTracks = tracks.sliceByCached(o2::aod::track::collisionId, colIndex); // it's cached, so slicing/grouping happens only once
419-
return binning_helpers::getBin({axisVertexExpanded, axisMultiplicity}, std::make_tuple(posZ, associatedTracks.size()), true); // true is for 'ignore overflows' (true by default)
420-
};
421-
422-
using BinningType = LambdaBinningPolicy<decltype(getBinTracksSize), aod::collision::PosZ, soa::Index<>>;
423-
BinningType binningWithLambda{getBinTracksSize};
410+
411+
auto getTracksSize =
412+
[&tracks](aod::Collision& col) {
413+
auto associatedTracks = tracks.sliceByCached(o2::aod::track::collisionId, col.globalIndex()); // it's cached, so slicing/grouping happens only once
414+
return associatedTracks.size();
415+
};
416+
417+
using BinningType = FlexibleBinningPolicy<std::tuple<decltype(getTracksSize)>, aod::collision::PosZ, decltype(getTracksSize)>;
418+
BinningType binningWithLambda{{getTracksSize}, {axisMultiplicity, axisVertex}, true};
424419
auto tracksTuple = std::make_tuple(tracks);
425420
SameKindPair<aod::Collisions, aod::Tracks, BinningType> pair{binningWithLambda, 5, -1, collisions, tracksTuple}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
426421

Tutorials/src/eventMixingValidation.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct MixedEventsEmptyTables {
3232

3333
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
3434
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
35-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
35+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
3636
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
3737
SameKindPair<aod::Collisions, myTracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
3838

@@ -62,7 +62,7 @@ struct MixedEventsEmptyTables {
6262
struct MixedEventsJoinedTracks {
6363
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
6464
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
65-
using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
65+
using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
6666
BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
6767
SameKindPair<aod::Collisions, aod::FullTracks, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
6868

@@ -93,7 +93,7 @@ struct MixedEventsJoinedTracks {
9393
// struct MixedEventsBadSubscription {
9494
// std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
9595
// std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
96-
// using BinningType = BinningPolicy<aod::collision::PosX, aod::collision::PosY>;
96+
// using BinningType = ColumnBinningPolicy<aod::collision::PosX, aod::collision::PosY>;
9797
// BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
9898
// SameKindPair<aod::Collisions, aod::Cascades, BinningType> pair{binningOnPositions, 5, -1}; // indicates that 5 events should be mixed and under/overflow (-1) to be ignored
9999
//

Tutorials/src/tracksCombinations.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ struct TrackCombinations {
5151
struct BinnedTrackCombinations {
5252
std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
5353
std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
54-
BinningPolicy<aod::track::X, aod::track::Y> trackBinning{{xBins, yBins}, true};
54+
ColumnBinningPolicy<aod::track::X, aod::track::Y> trackBinning{{xBins, yBins}, true};
5555

5656
void process(aod::Tracks const& tracks)
5757
{
@@ -73,7 +73,7 @@ struct ConfigurableBinnedCollisionCombinations {
7373

7474
void process(soa::Join<aod::Collisions, aod::Mults> const& collisions)
7575
{
76-
using BinningType = BinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
76+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
7777
BinningType colBinning{{axisVertex, axisMultiplicity}, true};
7878

7979
int count = 0;

0 commit comments

Comments
 (0)