Skip to content

Commit 35b52a7

Browse files
joonsukbaeclaude
andcommitted
[PWGJE] Fix pTHat handling, remove HepMCXSections dependency, add R-dependent matching
- trackEfficiency: Remove HepMCXSections and JMcCollisionPIs table subscriptions from all MC processes; use ptHard() from JMcCollisions with weight-based fallback. Add applyRCTSelections configurable. - jetSpectraCharged: Pass pTHat as parameter to fill functions instead of computing internally; fix pTHatMaxMCD->pTHatMaxMCP bug in fillGeoMatchedAreaSubHistograms; change MCD weighted process subscriptions to JetCollisionsMCD for mcCollision() access. - All jet matching tasks: Replace single maxMatchingDistance with per-R configurables (jetRadiiForMatchingDistance + maxMatchingDistancePerJetR) for R-dependent geometric matching distance. Applied to jetMatchingMC, jetMatchingMCSub, jetMatchingSub, jetMatchingDuplicates, jetSubstructureMatching, and jetSubstructureMatchingSub. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 66e2ecf commit 35b52a7

File tree

9 files changed

+124
-100
lines changed

9 files changed

+124
-100
lines changed

PWGJE/Core/JetMatchingUtilities.h

Lines changed: 11 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, float maxMatchingDistance, std::vector<double> const& jetRadiiForMatchingDistance = {}, std::vector<double> const& maxMatchingDistancePerJetR = {})
297297
{
298298
std::vector<double> jetsR;
299299
for (const auto& jetBase : jetsBasePerCollision) {
@@ -332,7 +332,14 @@ void MatchGeo(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::
332332
jetsTagEta.emplace_back(jetTag.eta());
333333
jetsTagGlobalIndex.emplace_back(jetTag.globalIndex());
334334
}
335-
std::tie(baseToTagMatchingGeoIndex, tagToBaseMatchingGeoIndex) = MatchJetsGeometrically(jetsBasePhi, jetsBaseEta, jetsTagPhi, jetsTagEta, maxMatchingDistance); // change max distnace to a function call
335+
float effectiveMatchingDistance = maxMatchingDistance;
336+
for (std::size_t i = 0; i < jetRadiiForMatchingDistance.size() && i < maxMatchingDistancePerJetR.size(); i++) {
337+
if (std::round(jetRadiiForMatchingDistance[i] * 100.0) == std::round(jetR)) {
338+
effectiveMatchingDistance = maxMatchingDistancePerJetR[i];
339+
break;
340+
}
341+
}
342+
std::tie(baseToTagMatchingGeoIndex, tagToBaseMatchingGeoIndex) = MatchJetsGeometrically(jetsBasePhi, jetsBaseEta, jetsTagPhi, jetsTagEta, effectiveMatchingDistance);
336343
int jetBaseIndex = 0;
337344
int jetTagIndex = 0;
338345
for (const auto& jetBase : jetsBasePerCollision) {
@@ -564,11 +571,11 @@ void MatchPt(T const& jetsBasePerCollision, U const& jetsTagPerCollision, std::v
564571

565572
// function that calls all the Match functions
566573
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)
574+
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, std::vector<double> const& jetRadiiForMatchingDistance = {}, std::vector<double> const& maxMatchingDistancePerJetR = {})
568575
{
569576
// geometric matching
570577
if (doMatchingGeo) {
571-
MatchGeo(jetsBasePerCollision, jetsTagPerCollision, baseToTagMatchingGeo, tagToBaseMatchingGeo, maxMatchingDistance);
578+
MatchGeo(jetsBasePerCollision, jetsTagPerCollision, baseToTagMatchingGeo, tagToBaseMatchingGeo, maxMatchingDistance, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
572579
}
573580
// pt matching
574581
if (doMatchingPt) {

PWGJE/TableProducer/Matching/Duplicates/jetMatchingDuplicates.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ struct JetMatchingDuplicates {
3535
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3636
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
3737
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
38+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {}, "Jet R values for per-R matching distance override, e.g. {0.2, 0.4, 0.6}"};
39+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {}, "Max matching distance for each R in jetRadiiForMatchingDistance, e.g. {0.12, 0.24, 0.36}"};
3840
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
3941

4042
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -49,6 +51,9 @@ struct JetMatchingDuplicates {
4951

5052
void init(o2::framework::InitContext const&)
5153
{
54+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
55+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
56+
}
5257
}
5358

5459
void processJets(o2::aod::JetCollisions const& collisions,
@@ -72,7 +77,7 @@ struct JetMatchingDuplicates {
7277
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, collision.globalIndex());
7378
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, collision.globalIndex());
7479
// 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);
80+
jetmatchingutilities::doAllMatching<false, false>(jetsBasePerColl, jetsTagPerColl, jetsBasetoTagMatchingGeo, jetsBasetoTagMatchingPt, jetsBasetoTagMatchingHF, jetsTagtoBaseMatchingGeo, jetsTagtoBaseMatchingPt, jetsTagtoBaseMatchingHF, candidates, tracks, tracks, candidates, tracks, tracks, doMatchingGeo, doMatchingHf, doMatchingPt, maxMatchingDistance, minPtFraction, jetRadiiForMatchingDistance, maxMatchingDistancePerJetR);
7681
}
7782

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

PWGJE/TableProducer/Matching/Substructure/jetSubstructureMatching.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ struct JetSubstructureMatching {
4242
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
4343
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
4444
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
45+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {}, "Jet R values for per-R matching distance override, e.g. {0.2, 0.4, 0.6}"};
46+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {}, "Max matching distance for each R in jetRadiiForMatchingDistance, e.g. {0.12, 0.24, 0.36}"};
4547
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4648
o2::framework::Configurable<bool> requireGeoMatchedJets{"requireGeoMatchedJets", false, "require jets are geo matched as well"};
4749
o2::framework::Configurable<bool> requirePtMatchedJets{"requirePtMatchedJets", false, "require jets are pT matched as well"};
@@ -52,6 +54,9 @@ struct JetSubstructureMatching {
5254

5355
void init(o2::framework::InitContext const&)
5456
{
57+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
58+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
59+
}
5560
}
5661

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

PWGJE/TableProducer/Matching/Substructure/jetSubstructureMatchingSub.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ struct JetSubstructureMatchingSub {
4343
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
4444
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
4545
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
46+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {}, "Jet R values for per-R matching distance override, e.g. {0.2, 0.4, 0.6}"};
47+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {}, "Max matching distance for each R in jetRadiiForMatchingDistance, e.g. {0.12, 0.24, 0.36}"};
4648
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4749
o2::framework::Configurable<bool> requireGeoMatchedJets{"requireGeoMatchedJets", false, "require jets are geo matched as well"};
4850
o2::framework::Configurable<bool> requirePtMatchedJets{"requirePtMatchedJets", false, "require jets are pT matched as well"};
@@ -53,6 +55,9 @@ struct JetSubstructureMatchingSub {
5355

5456
void init(o2::framework::InitContext const&)
5557
{
58+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
59+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
60+
}
5661
}
5762

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

PWGJE/TableProducer/Matching/jetMatchingMC.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ struct JetMatchingMc {
3838
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3939
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
4040
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
41+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {}, "Jet R values for per-R matching distance override, e.g. {0.2, 0.4, 0.6}"};
42+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {}, "Max matching distance for each R in jetRadiiForMatchingDistance, e.g. {0.12, 0.24, 0.36}"};
4143
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
4244

4345
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -54,6 +56,9 @@ struct JetMatchingMc {
5456

5557
void init(o2::framework::InitContext const&)
5658
{
59+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
60+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
61+
}
5762
}
5863

5964
void processJets(o2::aod::JetMcCollisions const& mcCollisions, o2::aod::JetCollisionsMCD const& collisions,
@@ -84,7 +89,7 @@ struct JetMatchingMc {
8489
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, jetsBaseIsMc ? mcCollision.globalIndex() : collision.globalIndex());
8590
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, jetsTagIsMc ? mcCollision.globalIndex() : collision.globalIndex());
8691

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

PWGJE/TableProducer/Matching/jetMatchingMCSub.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ struct JetMatchingMcSub {
3434
o2::framework::Configurable<bool> doMatchingPt{"doMatchingPt", true, "Enable pt matching"};
3535
o2::framework::Configurable<bool> doMatchingHf{"doMatchingHf", false, "Enable HF matching"};
3636
o2::framework::Configurable<float> maxMatchingDistance{"maxMatchingDistance", 0.24f, "Max matching distance"};
37+
o2::framework::Configurable<std::vector<double>> jetRadiiForMatchingDistance{"jetRadiiForMatchingDistance", {}, "Jet R values for per-R matching distance override, e.g. {0.2, 0.4, 0.6}"};
38+
o2::framework::Configurable<std::vector<double>> maxMatchingDistancePerJetR{"maxMatchingDistancePerJetR", {}, "Max matching distance for each R in jetRadiiForMatchingDistance, e.g. {0.12, 0.24, 0.36}"};
3739
o2::framework::Configurable<float> minPtFraction{"minPtFraction", 0.5f, "Minimum pt fraction for pt matching"};
3840

3941
o2::framework::Produces<JetsBasetoTagMatchingTable> jetsBasetoTagMatchingTable;
@@ -48,6 +50,9 @@ struct JetMatchingMcSub {
4850

4951
void init(o2::framework::InitContext const&)
5052
{
53+
if (jetRadiiForMatchingDistance->size() != maxMatchingDistancePerJetR->size()) {
54+
LOGP(fatal, "jetRadiiForMatchingDistance and maxMatchingDistancePerJetR must have the same number of entries");
55+
}
5156
}
5257

5358
void processJets(o2::aod::JetCollisions const& collisions,
@@ -73,7 +78,7 @@ struct JetMatchingMcSub {
7378
const auto jetsBasePerColl = jetsBase.sliceBy(baseJetsPerCollision, collision.globalIndex());
7479
const auto jetsTagPerColl = jetsTag.sliceBy(tagJetsPerCollision, collision.globalIndex());
7580

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

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

0 commit comments

Comments
 (0)