Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 41 additions & 19 deletions PWGCF/Femto/Core/pairBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,8 +323,10 @@ class PairV0V0Builder
typename T14,
typename T15,
typename T16,
typename T17,
typename T18,
typename T17>
typename T19,
typename T20>
void init(o2::framework::HistogramRegistry* registry,
T1 const& confCollisionBinning,
T2 const& confV0Selection1,
Expand All @@ -339,37 +341,55 @@ class PairV0V0Builder
std::map<T11, std::vector<o2::framework::AxisSpec>> const& colHistSpec,
std::map<T12, std::vector<o2::framework::AxisSpec>> const& V0HistSpec1,
std::map<T13, std::vector<o2::framework::AxisSpec>> const& V0HistSpec2,
std::map<T14, std::vector<o2::framework::AxisSpec>> const& PosDauHistSpec,
std::map<T15, std::vector<o2::framework::AxisSpec>> const& NegDauHistSpec,
std::map<T16, std::vector<o2::framework::AxisSpec>> const& pairHistSpec,
std::map<T17, std::vector<o2::framework::AxisSpec>> const& cprHistSpecPos,
std::map<T18, std::vector<o2::framework::AxisSpec>> const& cprHistSpecNeg)
std::map<T14, std::vector<o2::framework::AxisSpec>> const& PosDauHistSpec1,
std::map<T15, std::vector<o2::framework::AxisSpec>> const& NegDauHistSpec1,
std::map<T16, std::vector<o2::framework::AxisSpec>> const& PosDauHistSpec2,
std::map<T17, std::vector<o2::framework::AxisSpec>> const& NegDauHistSpec2,
std::map<T18, std::vector<o2::framework::AxisSpec>> const& pairHistSpec,
std::map<T19, std::vector<o2::framework::AxisSpec>> const& cprHistSpecPos,
std::map<T20, std::vector<o2::framework::AxisSpec>> const& cprHistSpecNeg)
{

// check if correlate the same tracks or not
mSameSpecies = confMixing.sameSpecies.value;

if constexpr (v0Type1 != v0Type2) {
// two different v0 species can never be identical particles
if (mSameSpecies) {
LOG(warn) << "sameSpecies=true is impossible for different v0 species (v0Type1="
<< static_cast<int>(v0Type1) << ", v0Type2=" << static_cast<int>(v0Type2)
<< "). Overriding sameSpecies to false.";
mSameSpecies = false;
}
} else {
// same v0 species: both values are legitimate (e.g. lambda-lambda vs lambda-antilambda),
// but running as different species only makes sense if the two selections are disjoint
if (!mSameSpecies && confV0Selection1.sign.value == confV0Selection2.sign.value) {
LOG(warn) << "sameSpecies=false for identical v0 species with identical sign ("
<< confV0Selection1.sign.value << "). If both selections match the same "
<< "candidates, this produces self-pairs and double counting.";
}
}

mColHistManager.template init<modeSe>(registry, colHistSpec, confCollisionBinning);
mPairHistManagerSe.template init<modeSe>(registry, pairHistSpec, confPairBinning, confPairCuts, confMixing);
mPairHistManagerMe.template init<modeMe>(registry, pairHistSpec, confPairBinning, confPairCuts, confMixing);
mPc.template init<modeSe>(confPairCuts);

if (mSameSpecies) {
mV0Cleaner1.init(confV0Cleaner1);
mV0HistManager1.template init<modeSe>(registry, V0HistSpec1, confV0Selection1, PosDauHistSpec, NegDauHistSpec);
mV0Cleaner1.init(confV0Cleaner1);
mV0Cleaner2.init(confV0Cleaner2);

// the first v0 (and its daughters) is always present
mV0HistManager1.template init<modeSe>(registry, V0HistSpec1, confV0Selection1, PosDauHistSpec1, NegDauHistSpec1);

if (mSameSpecies) {
mPairHistManagerSe.setMass(confV0Selection1.pdgCodeAbs.value, confV0Selection1.pdgCodeAbs.value);
mPairHistManagerSe.setCharge(1, 1);
mCprSe.init(registry, cprHistSpecPos, cprHistSpecNeg, confCprPos, confCprPos);
mCprSe.init(registry, cprHistSpecPos, cprHistSpecNeg, confCprPos, confCprNeg);

mPairHistManagerMe.setMass(confV0Selection1.pdgCodeAbs.value, confV0Selection1.pdgCodeAbs.value);
mPairHistManagerMe.setCharge(1, 1);
mCprMe.init(registry, cprHistSpecPos, cprHistSpecNeg, confCprPos, confCprNeg);
} else {
mV0Cleaner1.init(confV0Cleaner1);
mV0Cleaner2.init(confV0Cleaner2);
mV0HistManager1.template init<modeSe>(registry, V0HistSpec1, confV0Selection1, PosDauHistSpec, NegDauHistSpec);
mV0HistManager2.template init<modeSe>(registry, V0HistSpec2, confV0Selection2, PosDauHistSpec, NegDauHistSpec);
mV0HistManager2.template init<modeSe>(registry, V0HistSpec2, confV0Selection2, PosDauHistSpec2, NegDauHistSpec2);

mPairHistManagerSe.setMass(confV0Selection1.pdgCodeAbs.value, confV0Selection2.pdgCodeAbs.value);
mPairHistManagerSe.setCharge(1, 1);
Expand All @@ -385,6 +405,7 @@ class PairV0V0Builder
mMixingDepth = confMixing.depth.value;

// setup rng if necessary
// mDist is bounded at declaration, so it stays valid even if this branch is not taken
if (confMixing.seed.value >= 0) {
uint64_t randomSeed = 0;
mMixIdenticalParticles = true;
Expand Down Expand Up @@ -452,8 +473,8 @@ class PairV0V0Builder
}
}

template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
void processMixedEvent(T1 const& cols, T2 const& trackTable, T3 const& /*v0table*/, T4& partition1, T5& partition2, T6& cache, T7& binsVtxMult, T8& binsVtxCent, T9& binsVtxMultCent)
template <modes::Mode mode, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
void processMixedEvent(T1 const& cols, T2 const& trackTable, T3& partition1, T4& partition2, T5& cache, T6& binsVtxMult, T7& binsVtxCent, T8& binsVtxMultCent)
{

if (mSameSpecies) {
Expand Down Expand Up @@ -537,7 +558,8 @@ class PairV0V0Builder
int mMixingDepth = 5;
bool mMixIdenticalParticles = false;
std::mt19937 mRng;
std::uniform_int_distribution<> mDist;
std::uniform_int_distribution<> mDist{static_cast<int>(pairprocesshelpers::kOrder12),
static_cast<int>(pairprocesshelpers::kOrder21)};
};

template <auto& prefixTrack,
Expand Down
8 changes: 7 additions & 1 deletion PWGCF/Femto/Core/trackBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,6 @@ class TrackBuilderDerivedToDerived
template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
void processTracks(T1& col, T2& /*trackTable*/, T3& partitionTrack1, T4& partitionTrack2, T5& cache, T6& newTrackTable, T7& newCollisionTable)
{
indexMap.clear();

if (mLimitTrack1 > 0) {
auto trackSlice1 = partitionTrack1->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache);
Expand Down Expand Up @@ -916,6 +915,13 @@ class TrackBuilderDerivedToDerived
return idx;
}

template <typename T>
void reset(T const& tracks)
{
indexMap.clear();
indexMap.reserve(tracks.size());
}

private:
int mLimitTrack1 = 0;
int mLimitTrack2 = 0;
Expand Down
24 changes: 16 additions & 8 deletions PWGCF/Femto/Core/trackHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,10 @@ struct ConfTrackBinning : o2::framework::ConfigurableGroup {
constexpr const char PrefixTrackBinning1[] = "TrackBinning1";
constexpr const char PrefixTrackBinning2[] = "TrackBinning2";
constexpr const char PrefixTrackBinning3[] = "TrackBinning3";
constexpr const char PrefixV0PosDauBinning[] = "V0PosDauBinning";
constexpr const char PrefixV0NegDauBinning[] = "V0NegDauBinning";
constexpr const char PrefixV01PosDauBinning[] = "V01PosDauBinning";
constexpr const char PrefixV01NegDauBinning[] = "V01NegDauBinning";
constexpr const char PrefixV02PosDauBinning[] = "V02PosDauBinning";
constexpr const char PrefixV02NegDauBinning[] = "V02NegDauBinning";
constexpr const char PrefixCascadePosDauBinning[] = "CascadePosDauBinning";
constexpr const char PrefixCascadeNegDauBinning[] = "CascadeNegDauBinning";
constexpr const char PrefixCascadeBachelorBinning[] = "CascadeBachelorBinning";
Expand All @@ -170,8 +172,10 @@ constexpr const char PrefixKaonMinusBinning[] = "KaonMinusBinning";
using ConfTrackBinning1 = ConfTrackBinning<PrefixTrackBinning1>;
using ConfTrackBinning2 = ConfTrackBinning<PrefixTrackBinning2>;
using ConfTrackBinning3 = ConfTrackBinning<PrefixTrackBinning3>;
using ConfV0PosDauBinning = ConfTrackBinning<PrefixV0PosDauBinning>;
using ConfV0NegDauBinning = ConfTrackBinning<PrefixV0NegDauBinning>;
using ConfV01PosDauBinning = ConfTrackBinning<PrefixV01PosDauBinning>;
using ConfV01NegDauBinning = ConfTrackBinning<PrefixV01NegDauBinning>;
using ConfV02PosDauBinning = ConfTrackBinning<PrefixV02PosDauBinning>;
using ConfV02NegDauBinning = ConfTrackBinning<PrefixV02NegDauBinning>;
using ConfCascadePosDauBinning = ConfTrackBinning<PrefixCascadePosDauBinning>;
using ConfCascadeNegDauBinning = ConfTrackBinning<PrefixCascadeNegDauBinning>;
using ConfCascadeBachelorBinning = ConfTrackBinning<PrefixCascadeBachelorBinning>;
Expand Down Expand Up @@ -255,8 +259,10 @@ constexpr const char PrefixTrackQaBinning1[] = "TrackQaBinning1";
constexpr const char PrefixTrackQaBinning2[] = "TrackQaBinning2";
constexpr const char PrefixResonancePosDauQaBinning[] = "ResonancePosDauQaBinning";
constexpr const char PrefixResonanceNegDauQaBinning[] = "ResonanceNegDauQaBinning";
constexpr const char PrefixV0PosDauQaBinning[] = "V0PosDauQaBinning";
constexpr const char PrefixV0NegDauQaBinning[] = "V0NegDauQaBinning";
constexpr const char PrefixV01PosDauQaBinning[] = "V01PosDauQaBinning";
constexpr const char PrefixV01NegDauQaBinning[] = "V01NegDauQaBinning";
constexpr const char PrefixV02PosDauQaBinning[] = "V02PosDauQaBinning";
constexpr const char PrefixV02NegDauQaBinning[] = "V02NegDauQaBinning";
constexpr const char PrefixCascadePosDauQaBinning[] = "CascadePosDauQaBinning";
constexpr const char PrefixCascadeNegDauQaBinning[] = "CascadeNegDauQaBinning";
constexpr const char PrefixCascadeBachelorQaBinning[] = "CascadeBachelorQaBinning";
Expand All @@ -266,8 +272,10 @@ using ConfTrackQaBinning1 = ConfTrackQaBinning<PrefixTrackQaBinning1>;
using ConfTrackQaBinning2 = ConfTrackQaBinning<PrefixTrackQaBinning2>;
using ConfResonancePosDauQaBinning = ConfTrackQaBinning<PrefixResonancePosDauQaBinning>;
using ConfResonanceNegDauQaBinning = ConfTrackQaBinning<PrefixResonanceNegDauQaBinning>;
using ConfV0PosDauQaBinning = ConfTrackQaBinning<PrefixV0PosDauQaBinning>;
using ConfV0NegDauQaBinning = ConfTrackQaBinning<PrefixV0NegDauQaBinning>;
using ConfV01PosDauQaBinning = ConfTrackQaBinning<PrefixV01PosDauQaBinning>;
using ConfV01NegDauQaBinning = ConfTrackQaBinning<PrefixV01NegDauQaBinning>;
using ConfV02PosDauQaBinning = ConfTrackQaBinning<PrefixV02PosDauQaBinning>;
using ConfV02NegDauQaBinning = ConfTrackQaBinning<PrefixV02NegDauQaBinning>;
using ConfCascadePosDauQaBinning = ConfTrackQaBinning<PrefixCascadePosDauQaBinning>;
using ConfCascadeNegDauQaBinning = ConfTrackQaBinning<PrefixCascadeNegDauQaBinning>;
using ConfCascadeBachelorQaBinning = ConfTrackQaBinning<PrefixCascadeBachelorQaBinning>;
Expand Down
4 changes: 2 additions & 2 deletions PWGCF/Femto/Core/v0Builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ enum V0Filters {
kRejectionLambdaMass,
kLambdaMassMin,
kLambdaMassMax,
kTrackFiltersMax
kV0FiltersMax
};

constexpr char LambdaFilterHistName[] = "hLambdaFilters";
Expand Down Expand Up @@ -261,6 +261,7 @@ class V0Selection : public baseselection::BaseSelection<float, datatypes::V0Mask
}

this->addSelection(kDcaDaughMax, v0SelectionNames.at(kDcaDaughMax), config.dcaDauMax.value, limits::kAbsUpperLimit, true, true, false);
this->addSelection(kDecayVtxMax, v0SelectionNames.at(kDecayVtxMax), config.decayVtxMax.value, limits::kUpperLimit, true, true, false);
this->addSelection(kCpaMin, v0SelectionNames.at(kCpaMin), config.cpaMin.value, limits::kLowerLimit, true, true, false);
this->addSelection(kTransRadMin, v0SelectionNames.at(kTransRadMin), config.transRadMin.value, limits::kLowerLimit, true, true, false);
this->addSelection(kTransRadMax, v0SelectionNames.at(kTransRadMax), config.transRadMax.value, limits::kUpperLimit, true, true, false);
Expand Down Expand Up @@ -316,7 +317,6 @@ class V0Selection : public baseselection::BaseSelection<float, datatypes::V0Mask
std::array<float, 2> clustersDaughters = {1.f * posDaughter.tpcNClsFound(), 1.f * negDaughter.tpcNClsFound()};
this->evaluateObservable(kDauTpcClsMin, *std::min_element(clustersDaughters.begin(), clustersDaughters.end()));

// daughter pid selections
this->evaluateObservable(kPosDaughTpcPion, posDaughter.tpcNSigmaPi());
this->evaluateObservable(kPosDaughTpcProton, posDaughter.tpcNSigmaPr());
this->evaluateObservable(kNegDaughTpcPion, negDaughter.tpcNSigmaPi());
Expand Down
4 changes: 4 additions & 0 deletions PWGCF/Femto/Core/v0HistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,12 @@ struct ConfK0shortBinning : o2::framework::ConfigurableGroup {

constexpr const char PrefixLambdaBinning1[] = "LambdaBinning1";
using ConfLambdaBinning1 = ConfLambdaBinning<PrefixLambdaBinning1>;
constexpr const char PrefixLambdaBinning2[] = "LambdaBinning2";
using ConfLambdaBinning2 = ConfLambdaBinning<PrefixLambdaBinning2>;
constexpr const char PrefixK0shortBinning1[] = "K0shortBinning1";
using ConfK0shortBinning1 = ConfK0shortBinning<PrefixK0shortBinning1>;
constexpr const char PrefixK0shortBinning2[] = "K0shortBinning2";
using ConfK0shortBinning2 = ConfK0shortBinning<PrefixK0shortBinning2>;

template <auto& Prefix>
struct ConfV0QaBinning : o2::framework::ConfigurableGroup {
Expand Down
11 changes: 10 additions & 1 deletion PWGCF/Femto/TableProducer/femtoProducerDerivedToDerived.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ struct FemtoProducerDerivedToDerived {
kinkBuilder.init(confKinkBuilder);

if ((static_cast<int>(doprocessTracks) + static_cast<int>(doprocessTracksWithMass) + static_cast<int>(doprocessTracksLambdas) + static_cast<int>(doprocessLambdas) + static_cast<int>(doprocessTracksXis) + static_cast<int>(doprocessTracksOmegas) + static_cast<int>(doprocessTracksK0shorts) + static_cast<int>(doprocessTracksSigma) + static_cast<int>(doprocessTracksSigmaPlus)) > 1) {
LOG(fatal) << "Only one proccess function can be activated";
LOG(fatal) << "Only one proccess function can be activated!";
}
}

Expand All @@ -125,6 +125,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
}
Expand All @@ -135,6 +136,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
}
Expand All @@ -145,6 +147,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || v0Builder.collisionHasTooFewLambdas(col, lambdas, lambdaPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
v0Builder.processLambdas(col, lambdas, tracks, lambdaPartition, trackBuilder, cache, v0BuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand All @@ -156,6 +159,7 @@ struct FemtoProducerDerivedToDerived {
if (v0Builder.collisionHasTooFewLambdas(col, lambdas, lambdaPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
v0Builder.processLambdas(col, lambdas, tracks, lambdaPartition, trackBuilder, cache, v0BuilderProducts, trackBuilderProducts, collisionBuilderProducts);
}
Expand All @@ -166,6 +170,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || cascadeBuilder.collisionHasTooFewXis(col, xis, xiPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
cascadeBuilder.processXis(col, xis, tracks, xiPartition, trackBuilder, cache, cascadeBuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand All @@ -177,6 +182,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || cascadeBuilder.collisionHasTooFewOmegas(col, omegas, omegaPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
cascadeBuilder.processOmegas(col, omegas, tracks, omegaPartition, trackBuilder, cache, cascadeBuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand All @@ -188,6 +194,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || v0Builder.collisionHasTooFewK0shorts(col, k0shorts, k0shortPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
v0Builder.processK0shorts(col, k0shorts, tracks, k0shortPartition, trackBuilder, cache, v0BuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand All @@ -199,6 +206,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || kinkBuilder.collisionHasTooFewSigma(col, sigma, sigmaPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
kinkBuilder.processSigma(col, sigma, tracks, sigmaPartition, trackBuilder, cache, kinkBuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand All @@ -210,6 +218,7 @@ struct FemtoProducerDerivedToDerived {
if (trackBuilder.collisionHasTooFewTracks(col, tracks, trackPartition1, trackPartition2, cache) || kinkBuilder.collisionHasTooFewSigmaPlus(col, sigmaplus, sigmaPlusPartition, cache)) {
return;
}
trackBuilder.reset(tracks);
collisionBuilder.processCollision(col, collisionBuilderProducts);
trackBuilder.processTracks(col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
kinkBuilder.processSigmaPlus(col, sigmaplus, tracks, sigmaPlusPartition, trackBuilder, cache, kinkBuilderProducts, trackBuilderProducts, collisionBuilderProducts);
Expand Down
4 changes: 2 additions & 2 deletions PWGCF/Femto/Tasks/femtoPairTrackV0.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ struct FemtoPairTrackV0 {
o2::framework::Preslice<FemtoTracksWithLabel> perColtracksWithLabel = o2::aod::femtobase::stored::fColId;

// setup for daughters
trackhistmanager::ConfV0PosDauBinning confPosDauBinning;
trackhistmanager::ConfV0NegDauBinning confNegDauBinning;
trackhistmanager::ConfV01PosDauBinning confPosDauBinning;
trackhistmanager::ConfV01NegDauBinning confNegDauBinning;

// setup lambdas
v0builder::ConfLambdaSelection1 lambdaSelection;
Expand Down
4 changes: 2 additions & 2 deletions PWGCF/Femto/Tasks/femtoPairV0TwoTrackResonance.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ struct FemtoPairV0TwoTrackResonance {
colhistmanager::ConfCollisionBinning confCollisionBinning;

// setup for daughters for v0s
trackhistmanager::ConfV0PosDauBinning confV0PosDauBinning;
trackhistmanager::ConfV0NegDauBinning confV0NegDauBinning;
trackhistmanager::ConfV01PosDauBinning confV0PosDauBinning;
trackhistmanager::ConfV01NegDauBinning confV0NegDauBinning;

// setup lambdas
v0builder::ConfLambdaSelection1 lambdaSelection;
Expand Down
Loading
Loading