Skip to content

Commit ca4537e

Browse files
joonsukbaeclaude
andauthored
[PWGJE] pTHat handling, remove HepMCXSections dependency, add R-d… (#15284)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4270ea4 commit ca4537e

File tree

9 files changed

+145
-106
lines changed

9 files changed

+145
-106
lines changed

PWGJE/Core/JetMatchingUtilities.h

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ std::tuple<std::vector<int>, std::vector<int>> MatchJetsGeometrically(
293293
}
294294

295295
template <typename T, typename U>
296-
void MatchGeo(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::vector<std::vector<int>>& baseToTagMatchingGeo, std::vector<std::vector<int>>& tagToBaseMatchingGeo, float maxMatchingDistance)
296+
void MatchGeo(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::vector<std::vector<int>>& baseToTagMatchingGeo, std::vector<std::vector<int>>& tagToBaseMatchingGeo, std::vector<double> const& jetRadiiForMatchingDistance, std::vector<double> const& maxMatchingDistancePerJetR)
297297
{
298298
std::vector<double> jetsR;
299299
for (const auto& jetBase : jetsBasePerCollision) {
@@ -307,6 +307,16 @@ void MatchGeo(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::
307307
}
308308
}
309309
for (auto jetR : jetsR) {
310+
float effectiveMatchingDistance = -1.0f;
311+
for (std::size_t i = 0; i < jetRadiiForMatchingDistance.size(); i++) {
312+
if (std::round(jetRadiiForMatchingDistance[i] * 100.0) == std::round(jetR)) {
313+
effectiveMatchingDistance = maxMatchingDistancePerJetR[i];
314+
break;
315+
}
316+
}
317+
if (effectiveMatchingDistance < 0.0f) {
318+
LOGP(fatal, "No matching distance configured for jet R={:.2f}. Add it to jetRadiiForMatchingDistance and maxMatchingDistancePerJetR.", jetR / 100.0);
319+
}
310320
std::vector<double> jetsBasePhi;
311321
std::vector<double> jetsBaseEta;
312322
std::vector<int> jetsBaseGlobalIndex;
@@ -332,7 +342,7 @@ void MatchGeo(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::
332342
jetsTagEta.emplace_back(jetTag.eta());
333343
jetsTagGlobalIndex.emplace_back(jetTag.globalIndex());
334344
}
335-
std::tie(baseToTagMatchingGeoIndex, tagToBaseMatchingGeoIndex) = MatchJetsGeometrically(jetsBasePhi, jetsBaseEta, jetsTagPhi, jetsTagEta, maxMatchingDistance); // change max distnace to a function call
345+
std::tie(baseToTagMatchingGeoIndex, tagToBaseMatchingGeoIndex) = MatchJetsGeometrically(jetsBasePhi, jetsBaseEta, jetsTagPhi, jetsTagEta, effectiveMatchingDistance);
336346
int jetBaseIndex = 0;
337347
int jetTagIndex = 0;
338348
for (const auto& jetBase : jetsBasePerCollision) {
@@ -564,11 +574,11 @@ void MatchPt(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::v
564574

565575
// function that calls all the Match functions
566576
template <bool jetsBaseIsMc, bool jetsTagIsMc, typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename R>
567-
void doAllMatching(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::vector<std::vector<int>>& baseToTagMatchingGeo, std::vector<std::vector<int>>& baseToTagMatchingPt, std::vector<std::vector<int>>& baseToTagMatchingHF, std::vector<std::vector<int>>& tagToBaseMatchingGeo, std::vector<std::vector<int>>& tagToBaseMatchingPt, std::vector<std::vector<int>>& tagToBaseMatchingHF, V const& candidatesBase, M const& tracksBase, N const& clustersBase, O const& candidatesTag, P const& tracksTag, R const& clustersTag, bool doMatchingGeo, bool doMatchingHf, bool doMatchingPt, float maxMatchingDistance, float minPtFraction)
577+
void doAllMatching(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::vector<std::vector<int>>& baseToTagMatchingGeo, std::vector<std::vector<int>>& baseToTagMatchingPt, std::vector<std::vector<int>>& baseToTagMatchingHF, std::vector<std::vector<int>>& tagToBaseMatchingGeo, std::vector<std::vector<int>>& tagToBaseMatchingPt, std::vector<std::vector<int>>& tagToBaseMatchingHF, V const& candidatesBase, M const& tracksBase, N const& clustersBase, O const& candidatesTag, P const& tracksTag, R const& clustersTag, bool doMatchingGeo, bool doMatchingHf, bool doMatchingPt, float minPtFraction, std::vector<double> const& jetRadiiForMatchingDistance, std::vector<double> const& maxMatchingDistancePerJetR)
568578
{
569579
// geometric matching
570580
if (doMatchingGeo) {
571-
MatchGeo(jetsBasePerCollision, jetsTagPerCollision, baseToTagMatchingGeo, tagToBaseMatchingGeo, maxMatchingDistance);
581+
MatchGeo(jetsBasePerCollision, jetsTagPerCollision, baseToTagMatchingGeo, tagToBaseMatchingGeo, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
572582
}
573583
// pt matching
574584
if (doMatchingPt) {

PWGJE/TableProducer/Matching/Duplicates/jetMatchingDuplicates.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ struct JetMatchingDuplicates {
3434
o2::framework::Configurable<bool> doMatchingGeo{"doMatchingGeo", true, "Enable geometric matching"};
3535
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3636
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
37-
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
37+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {0.2, 0.3, 0.4, 0.5, 0.6}, "Jet R values for per-R matching distance"};
38+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {0.12, 0.18, 0.24, 0.30, 0.36}, "Max matching distance (0.6*R, see ALICE-AN-852) for each R in jetRadiiForMatchingDistance"};
3839
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
3940

4041
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -49,6 +50,12 @@ struct JetMatchingDuplicates {
4950

5051
void init(o2::framework::InitContext const&)
5152
{
53+
if (jetRadiiForMatchingDistance->empty() || maxMatchingDistancePerJetR->empty()) {
54+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must not be empty");
55+
}
56+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
57+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
58+
}
5259
}
5360

5461
void processJets(o2::aod::JetCollisions const& collisions,
@@ -72,7 +79,7 @@ struct JetMatchingDuplicates {
7279
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, collision.globalIndex());
7380
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, collision.globalIndex());
7481
// initialise template parameters as false since even if they are Mc we are not matching between detector and particle level
75-
jetmatchingutilities::doAllMatching<false, false>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidates, tracks, tracks, candidates, tracks, tracks, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction);
82+
jetmatchingutilities::doAllMatching<false, false>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidates, tracks, tracks, candidates, tracks, tracks, doMatchingGeo, doMatchingHf, doMatchingPt, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
7683
}
7784

7885
for (auto i = 0; i < jetsBase.size(); ++i) {

PWGJE/TableProducer/Matching/Substructure/jetSubstructureMatching.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ struct JetSubstructureMatching {
4141
o2::framework::Configurable<bool> doMatchingGeo{"doMatchingGeo", true, "Enable geometric matching"};
4242
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
4343
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
44-
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
44+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {0.2, 0.3, 0.4, 0.5, 0.6}, "Jet R values for per-R matching distance"};
45+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {0.12, 0.18, 0.24, 0.30, 0.36}, "Max matching distance (0.6*R, see ALICE-AN-852) for each R in jetRadiiForMatchingDistance"};
4546
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4647
o2::framework::Configurable<bool> requireGeoMatchedJets{"requireGeoMatchedJets", false, "require jets are geo matched as well"};
4748
o2::framework::Configurable<bool> requirePtMatchedJets{"requirePtMatchedJets", false, "require jets are pT matched as well"};
@@ -52,6 +53,12 @@ struct JetSubstructureMatching {
5253

5354
void init(o2::framework::InitContext const&)
5455
{
56+
if (jetRadiiForMatchingDistance->empty() || maxMatchingDistancePerJetR->empty()) {
57+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must not be empty");
58+
}
59+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
60+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
61+
}
5562
}
5663

5764
o2::framework::PresliceOptional<o2::aod::ChargedMCDetectorLevelSPs> BaseSplittingsPerBaseJetInclusive = o2::aod::chargedmcdetectorlevelsplitting::jetId;
@@ -218,7 +225,7 @@ struct JetSubstructureMatching {
218225
jetBaseSplittingsMap[jetBaseSplitting.globalIndex()] = baseSplittingIndex;
219226
baseSplittingIndex++;
220227
}
221-
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetBaseSplittings, jetTagSplittings, jetsBasetoTagSplittingsMatchingGeo, jetsBasetoTagSplittingsMatchingPt, jetsBasetoTagSplittingsMatchingHF, jetsTagtoBaseSplittingsMatchingGeo, jetsTagtoBaseSplittingsMatchingPt, jetsTagtoBaseSplittingsMatchingHF, candidatesBase, tracksBase, clustersBase, candidatesTag, tracksTag, tracksTag, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction);
228+
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetBaseSplittings, jetTagSplittings, jetsBasetoTagSplittingsMatchingGeo, jetsBasetoTagSplittingsMatchingPt, jetsBasetoTagSplittingsMatchingHF, jetsTagtoBaseSplittingsMatchingGeo, jetsTagtoBaseSplittingsMatchingPt, jetsTagtoBaseSplittingsMatchingHF, candidatesBase, tracksBase, clustersBase, candidatesTag, tracksTag, tracksTag, doMatchingGeo, doMatchingHf, doMatchingPt, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
222229
// auto const& jetBasePairs = jetsBasePairs.sliceBy(BasePairsPerBaseJet, jetBase.globalIndex());
223230
auto const& jetBasePairs = slicedPerJetForMatching<CandidatesBase>(jetsBasePairs, jetBase, BasePairsPerBaseJetInclusive, BasePairsPerBaseJetD0, BasePairsPerBaseJetDplus, BasePairsPerBaseJetDs, BasePairsPerBaseJetDstar, BasePairsPerBaseJetLc, BasePairsPerBaseJetB0, BasePairsPerBaseJetBplus, BasePairsPerBaseJetXicToXiPiPi, BasePairsPerBaseJetDielectron);
224231
int basePairIndex = 0;

PWGJE/TableProducer/Matching/Substructure/jetSubstructureMatchingSub.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ struct JetSubstructureMatchingSub {
4242
o2::framework::Configurable<bool> doMatchingGeo{"doMatchingGeo", true, "Enable geometric matching"};
4343
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
4444
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
45-
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
45+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {0.2, 0.3, 0.4, 0.5, 0.6}, "Jet R values for per-R matching distance"};
46+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {0.12, 0.18, 0.24, 0.30, 0.36}, "Max matching distance (0.6*R, see ALICE-AN-852) for each R in jetRadiiForMatchingDistance"};
4647
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4748
o2::framework::Configurable<bool> requireGeoMatchedJets{"requireGeoMatchedJets", false, "require jets are geo matched as well"};
4849
o2::framework::Configurable<bool> requirePtMatchedJets{"requirePtMatchedJets", false, "require jets are pT matched as well"};
@@ -53,6 +54,12 @@ struct JetSubstructureMatchingSub {
5354

5455
void init(o2::framework::InitContext const&)
5556
{
57+
if (jetRadiiForMatchingDistance->empty() || maxMatchingDistancePerJetR->empty()) {
58+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must not be empty");
59+
}
60+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
61+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
62+
}
5663
}
5764

5865
o2::framework::PresliceOptional<o2::aod::ChargedSPs> BaseSplittingsPerBaseJetInclusive = o2::aod::chargedsplitting::jetId;
@@ -219,7 +226,7 @@ struct JetSubstructureMatchingSub {
219226
jetBaseSplittingsMap[jetBaseSplitting.globalIndex()] = baseSplittingIndex;
220227
baseSplittingIndex++;
221228
}
222-
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetBaseSplittings, jetTagSplittings, jetsBasetoTagSplittingsMatchingGeo, jetsBasetoTagSplittingsMatchingPt, jetsBasetoTagSplittingsMatchingHF, jetsTagtoBaseSplittingsMatchingGeo, jetsTagtoBaseSplittingsMatchingPt, jetsTagtoBaseSplittingsMatchingHF, candidates, tracksBase, clustersBase, candidates, tracksTag, tracksTag, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction);
229+
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetBaseSplittings, jetTagSplittings, jetsBasetoTagSplittingsMatchingGeo, jetsBasetoTagSplittingsMatchingPt, jetsBasetoTagSplittingsMatchingHF, jetsTagtoBaseSplittingsMatchingGeo, jetsTagtoBaseSplittingsMatchingPt, jetsTagtoBaseSplittingsMatchingHF, candidates, tracksBase, clustersBase, candidates, tracksTag, tracksTag, doMatchingGeo, doMatchingHf, doMatchingPt, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
223230
// auto const& jetBasePairs = jetsBasePairs.sliceBy(BasePairsPerBaseJet, jetBase.globalIndex());
224231
auto const& jetBasePairs = slicedPerJetForMatching<Candidates>(jetsBasePairs, jetBase, BasePairsPerBaseJetInclusive, BasePairsPerBaseJetD0, BasePairsPerBaseJetDplus, BasePairsPerBaseJetDs, BasePairsPerBaseJetDstar, BasePairsPerBaseJetLc, BasePairsPerBaseJetB0, BasePairsPerBaseJetBplus, BasePairsPerBaseJetXicToXiPiPi, BasePairsPerBaseJetDielectron);
225232
int basePairIndex = 0;

PWGJE/TableProducer/Matching/jetMatchingMC.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ struct JetMatchingMc {
3737
o2::framework::Configurable<bool> doMatchingGeo{"doMatchingGeo", true, "Enable geometric matching"};
3838
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3939
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
40-
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
40+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {0.2, 0.3, 0.4, 0.5, 0.6}, "Jet R values for per-R matching distance"};
41+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {0.12, 0.18, 0.24, 0.30, 0.36}, "Max matching distance (0.6*R, see ALICE-AN-852) for each R in jetRadiiForMatchingDistance"};
4142
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4243

4344
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -54,6 +55,12 @@ struct JetMatchingMc {
5455

5556
void init(o2::framework::InitContext const&)
5657
{
58+
if (jetRadiiForMatchingDistance->empty() || maxMatchingDistancePerJetR->empty()) {
59+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must not be empty");
60+
}
61+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
62+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
63+
}
5764
}
5865

5966
void processJets(o2::aod::JetMcCollisions const& mcCollisions, o2::aod::JetCollisionsMCD const& collisions,
@@ -84,7 +91,7 @@ struct JetMatchingMc {
8491
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, jetsBaseIsMc ? mcCollision.globalIndex() : collision.globalIndex());
8592
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, jetsTagIsMc ? mcCollision.globalIndex() : collision.globalIndex());
8693

87-
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidatesBase, tracks, clusters, candidatesTag, particles, particles, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction);
94+
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidatesBase, tracks, clusters, candidatesTag, particles, particles, doMatchingGeo, doMatchingHf, doMatchingPt, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
8895
}
8996
}
9097
for (auto i = 0; i < jetsBase.size(); ++i) {

PWGJE/TableProducer/Matching/jetMatchingMCSub.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ struct JetMatchingMcSub {
3333
o2::framework::Configurable<bool> doMatchingGeo{"doMatchingGeo", true, "Enable geometric matching"};
3434
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3535
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
36-
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
36+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {0.2, 0.3, 0.4, 0.5, 0.6}, "Jet R values for per-R matching distance"};
37+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {0.12, 0.18, 0.24, 0.30, 0.36}, "Max matching distance (0.6*R, see ALICE-AN-852) for each R in jetRadiiForMatchingDistance"};
3738
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
3839

3940
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -48,6 +49,12 @@ struct JetMatchingMcSub {
4849

4950
void init(o2::framework::InitContext const&)
5051
{
52+
if (jetRadiiForMatchingDistance->empty() || maxMatchingDistancePerJetR->empty()) {
53+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must not be empty");
54+
}
55+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
56+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
57+
}
5158
}
5259

5360
void processJets(o2::aod::JetCollisions const& collisions,
@@ -73,7 +80,7 @@ struct JetMatchingMcSub {
7380
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, collision.globalIndex());
7481
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, collision.globalIndex());
7582

76-
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidates, tracks, tracks, candidates, tracksSub, tracksSub, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction);
83+
jetmatchingutilities::doAllMatching<jetsBaseIsMc, jetsTagIsMc>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidates, tracks, tracks, candidates, tracksSub, tracksSub, doMatchingGeo, doMatchingHf, doMatchingPt, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
7784
}
7885

7986
for (auto i = 0; i < jetsBase.size(); ++i) {

0 commit comments

Comments
 (0)