Skip to content

Commit 37f4293

Browse files
committed
Merge remote-tracking branch 'upstream/master' into spincorrnew
2 parents c86b5b3 + 9c92d10 commit 37f4293

File tree

4 files changed

+123
-62
lines changed

4 files changed

+123
-62
lines changed

PWGCF/DataModel/FemtoDerived.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,14 +245,14 @@ DECLARE_SOA_COLUMN(Prong2Eta, prong2Eta, float); //! Track et
245245
DECLARE_SOA_COLUMN(Prong0Phi, prong0Phi, float); //! Track phi of charm hadron prong0
246246
DECLARE_SOA_COLUMN(Prong1Phi, prong1Phi, float); //! Track phi of charm hadron prong1
247247
DECLARE_SOA_COLUMN(Prong2Phi, prong2Phi, float); //! Track phi of charm hadron prong2
248-
DECLARE_SOA_COLUMN(CandidateSelFlag, candidateSelFlag, int8_t); //! Selection of mass hypothesis for charm hadron (1 for Lc -> pkpi, 2 for Lc -> pikp, 4 for D+ -> pikpi)
248+
DECLARE_SOA_COLUMN(CandidateSelFlag, candidateSelFlag, int); //! Selection of mass hypothesis for charm hadron (1 for Lc -> pkpi, 2 for Lc -> pikp, 4 for D+ -> pikpi)
249249
DECLARE_SOA_COLUMN(BDTBkg, bdtBkg, float); //! Background score using Boosted Decision Tree for charm hadron
250250
DECLARE_SOA_COLUMN(BDTPrompt, bdtPrompt, float); //! Prompt signal score using Boosted Decision Tree for charm hadron
251251
DECLARE_SOA_COLUMN(BDTFD, bdtFD, float); //! Feed-down score using Boosted Decision Tree for charm hadron
252-
DECLARE_SOA_COLUMN(FlagMc, flagMc, int8_t); //! To select MC particle among charm hadrons, { DplusToPiKPi = 1, LcToPKPi = 2, DsToKKPi = 4, XicToPKP = 8, N3ProngD = 2ecays };
253-
DECLARE_SOA_COLUMN(OriginMcRec, originMcRec, int8_t); //! flag for reconstruction level matching (1 for prompt, 2 for non-prompt)
254-
DECLARE_SOA_COLUMN(OriginMcGen, originMcGen, int8_t); //! flag for generator level matching (1 for prompt, 2 for non-prompt)
255-
DECLARE_SOA_COLUMN(IsCandidateSwapped, isCandidateSwapped, int8_t); //! swapping of the prongs order (0 for Lc -> pkpi, 1 for Lc -> pikp)
252+
DECLARE_SOA_COLUMN(FlagMc, flagMc, int); //! To select MC particle among charm hadrons, { DplusToPiKPi = 1, LcToPKPi = 17, DsToKKPi = 6, XicToPKPi = 21, N3ProngD = 2ecays };
253+
DECLARE_SOA_COLUMN(OriginMcRec, originMcRec, int); //! flag for reconstruction level matching (1 for prompt, 2 for non-prompt)
254+
DECLARE_SOA_COLUMN(OriginMcGen, originMcGen, int); //! flag for generator level matching (1 for prompt, 2 for non-prompt)
255+
DECLARE_SOA_COLUMN(IsCandidateSwapped, isCandidateSwapped, int); //! swapping of the prongs order (0 for Lc -> pkpi, 1 for Lc -> pikp)
256256
DECLARE_SOA_COLUMN(TrkPt, trkPt, float); //! Transverse momentum of associate femto particle
257257
DECLARE_SOA_COLUMN(TrkEta, trkEta, float); //! Eta of associate femto particle
258258
DECLARE_SOA_COLUMN(TrkPhi, trkPhi, float); //! Phi of associate femto particle

PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ struct HfTaskCharmHadronsFemtoDream {
160160

161161
Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax;
162162
Filter eventMultiplicityPercentile = aod::femtodreamcollision::multV0M >= eventSel.multPercentileMin && aod::femtodreamcollision::multV0M <= eventSel.multPercentileMax;
163-
Filter hfCandSelFilter = aod::fdhf::candidateSelFlag >= static_cast<int8_t>(charmHadCandSel.value);
164-
Filter hfMcSelFilter = nabs(aod::fdhf::flagMc) == static_cast<int8_t>(charmHadMcSel.value);
163+
Filter hfCandSelFilter = aod::fdhf::candidateSelFlag >= charmHadCandSel;
164+
Filter hfMcSelFilter = (nabs(aod::fdhf::flagMc) == charmHadMcSel);
165165
Filter trackEtaFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::eta < etaTrack1Max, true);
166166
Filter trackEtaFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::eta > etaTrack1Min, true);
167167
Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt < ptTrack1Max, true);
@@ -583,7 +583,7 @@ struct HfTaskCharmHadronsFemtoDream {
583583
part.tpcNSigmaPr(),
584584
part.tofNSigmaPr());
585585
}
586-
if (!sliceCharmHad.size() || !sliceTrk1.size()) {
586+
if (sliceCharmHad.size() > 0 || sliceTrk1.size() > 0) {
587587
rowFemtoResultColl(
588588
col.globalIndex(),
589589
timeStamp,
@@ -592,6 +592,7 @@ struct HfTaskCharmHadronsFemtoDream {
592592
} else {
593593
return;
594594
}
595+
595596
doSameEvent<false>(sliceTrk1, sliceCharmHad, parts, col);
596597
}
597598
PROCESS_SWITCH(HfTaskCharmHadronsFemtoDream, processSameEvent, "Enable processing same event", false);
@@ -631,6 +632,11 @@ struct HfTaskCharmHadronsFemtoDream {
631632
auto sliceMcTrk1 = partitionMcTrk1->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
632633
auto sliceMcCharmHad = partitionMcCharmHadron->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
633634

635+
if (sliceMcCharmHad.size() > 0) {
636+
for (auto const& part : sliceMcCharmHad) {
637+
registryCharmHadronQa.fill(HIST("CharmHadronQA/hPtVsMass"), part.pt(), getCharmHadronMass(part));
638+
}
639+
}
634640
if (sliceMcTrk1.size() == 0 && sliceMcCharmHad.size() == 0) {
635641
return;
636642
}

PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -118,30 +118,44 @@ struct PseudorapidityDensityMFT {
118118

119119
HistogramRegistry registry{
120120
"registry",
121-
{
122-
{"TracksEtaZvtx",
123-
"; #eta; #it{z}_{vtx} (cm); tracks",
124-
{HistType::kTH2F, {EtaAxis, ZAxis}}}, //
125-
{"Tracks/EtaZvtx_gt0",
126-
"; #eta; #it{z}_{vtx} (cm); tracks",
127-
{HistType::kTH2F, {EtaAxis, ZAxis}}}, //
128-
{"TracksPhiEta",
129-
"; #varphi; #eta; tracks",
130-
{HistType::kTH2F, {PhiAxis, EtaAxis}}}, //
131-
{"TracksPhiZvtx",
132-
"; #varphi; #it{z}_{vtx} (cm); tracks",
133-
{HistType::kTH2F, {PhiAxis, ZAxis}}}, //
134-
{"TracksPtEta",
135-
" ; p_{T} (GeV/c); #eta",
136-
{HistType::kTH2F, {PtAxis, EtaAxis}}}, //
137-
{"EventSelection",
138-
";status;events",
139-
{HistType::kTH1F, {{15, 0.5, 15.5}}}},
140-
{"EventCounts",
141-
";status;events",
142-
{HistType::kTH1F, {{2, 0.5, 2.5}}}},
143-
{"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added
144-
}};
121+
{{"TracksEtaZvtx",
122+
"; #eta; #it{z}_{vtx} (cm); tracks",
123+
{HistType::kTH2F, {EtaAxis, ZAxis}}}, //
124+
{"Tracks/EtaZvtx_gt0",
125+
"; #eta; #it{z}_{vtx} (cm); tracks",
126+
{HistType::kTH2F, {EtaAxis, ZAxis}}}, //
127+
{"TracksPhiEta",
128+
"; #varphi; #eta; tracks",
129+
{HistType::kTH2F, {PhiAxis, EtaAxis}}}, //
130+
{"TracksPhiZvtx",
131+
"; #varphi; #it{z}_{vtx} (cm); tracks",
132+
{HistType::kTH2F, {PhiAxis, ZAxis}}}, //
133+
{"TracksPtEta",
134+
" ; p_{T} (GeV/c); #eta",
135+
{HistType::kTH2F, {PtAxis, EtaAxis}}}, //
136+
{"EventSelection",
137+
";status;events",
138+
{HistType::kTH1F, {{15, 0.5, 15.5}}}},
139+
{"EventCounts",
140+
";status;events",
141+
{HistType::kTH1F, {{2, 0.5, 2.5}}}},
142+
{"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added
143+
// Purity-related histograms
144+
{"Purity/SelectedAfterDCAxy/All",
145+
";bin;counts",
146+
{HistType::kTH1F, {{1, 0.5, 1.5}}}},
147+
{"Purity/SelectedAfterDCAxy/AllEta",
148+
";#eta;counts",
149+
{HistType::kTH1F, {EtaAxis}}},
150+
{"Purity/Gen/PrimaryEta",
151+
";#eta;primaries",
152+
{HistType::kTH1F, {EtaAxis}}},
153+
{"Purity/Gen/All",
154+
";bin;counts",
155+
{HistType::kTH1F, {{1, 0.5, 1.5}}}},
156+
{"Purity/Gen/AllEta",
157+
";#eta;counts",
158+
{HistType::kTH1F, {EtaAxis}}}}};
145159

146160
void init(InitContext&)
147161
{
@@ -725,6 +739,9 @@ struct PseudorapidityDensityMFT {
725739
continue;
726740
}
727741
}
742+
// Purity denominator: all tracks that pass the DCA selection and other quality cuts
743+
registry.fill(HIST("Purity/SelectedAfterDCAxy/All"), 1.);
744+
registry.fill(HIST("Purity/SelectedAfterDCAxy/AllEta"), track.eta());
728745
registry.fill(HIST("TracksEtaZvtx"), track.eta(), z);
729746
if (midtracks.size() > 0 && retrack.ambDegree() > 0) {
730747
registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z);
@@ -1049,6 +1066,13 @@ struct PseudorapidityDensityMFT {
10491066
continue;
10501067
}
10511068
if (cfgnEta1 < particle.eta() && particle.eta() < cfgnEta2 && (phi > cfgPhiCut1 && phi < cfgPhiCut2)) {
1069+
// Purity numerator reference at generator level: physical primaries in the same eta window
1070+
if (particle.isPhysicalPrimary()) {
1071+
registry.fill(HIST("Purity/Gen/PrimaryEta"), particle.eta());
1072+
// Truth-side total counters for primaries in acceptance (for purity calculations)
1073+
registry.fill(HIST("Purity/Gen/All"), 1.);
1074+
registry.fill(HIST("Purity/Gen/AllEta"), particle.eta());
1075+
}
10521076
registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(),
10531077
mcCollision.posZ());
10541078
if (perCollisionMCSampleCentral.size() > 0) {

PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx

Lines changed: 61 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ using namespace o2::aod::rctsel;
6060

6161
auto static constexpr kMinCharge = 3.f;
6262
auto static constexpr kNumDecay = 4;
63+
auto static constexpr kIntZero = 0;
64+
auto static constexpr kZero = 0.f;
65+
auto static constexpr kIntOne = 1;
6366

6467
enum TrkSel {
6568
trkSelAll,
@@ -72,11 +75,14 @@ enum TrkSel {
7275
nTrkSel
7376
};
7477

75-
enum TrkAmbSel {
76-
trkSelAmbiguousAll,
77-
trkSelWoAmbiguous,
78-
trkSelNumReassoc,
79-
nTrkAmbSel
78+
enum TrkBestSel {
79+
trkBestSelAll,
80+
trkBestSelCollID,
81+
trkBestSelDCAxyCut,
82+
trkBestSelDCAzCut,
83+
trkBestSelWoAmbiguous,
84+
trkBestSelNumReassoc,
85+
nTrkBestSel
8086
};
8187

8288
struct DndetaMFTPbPb {
@@ -288,10 +294,13 @@ struct DndetaMFTPbPb {
288294
hev->GetXaxis()->SetBinLabel(13, "Above max occup.");
289295
hev->GetXaxis()->SetBinLabel(14, "RCT Flag Checker");
290296

291-
registry.add("Tracks/hAmbTrkSel", "Number of ambiguous tracks; Cut; #Tracks Passed Cut", {HistType::kTH1F, {{nTrkAmbSel, -0.5, +nTrkAmbSel - 0.5}}});
292-
registry.get<TH1>(HIST("Tracks/hAmbTrkSel"))->GetXaxis()->SetBinLabel(trkSelAmbiguousAll + 1, "All");
293-
registry.get<TH1>(HIST("Tracks/hAmbTrkSel"))->GetXaxis()->SetBinLabel(trkSelWoAmbiguous + 1, "No Ambiguous");
294-
registry.get<TH1>(HIST("Tracks/hAmbTrkSel"))->GetXaxis()->SetBinLabel(trkSelNumReassoc + 1, "Reassociated");
297+
registry.add("Tracks/hBestTrkSel", "Number of best tracks; Cut; #Tracks Passed Cut", {HistType::kTH1F, {{nTrkBestSel, -0.5, +nTrkBestSel - 0.5}}});
298+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelAll + 1, "All");
299+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelCollID + 1, "Assigned (ID>=0)");
300+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelDCAxyCut + 1, "DCA xy cut");
301+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelDCAzCut + 1, "DCA z cut");
302+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelWoAmbiguous + 1, "No Ambiguous");
303+
registry.get<TH1>(HIST("Tracks/hBestTrkSel"))->GetXaxis()->SetBinLabel(trkBestSelNumReassoc + 1, "Reassociated");
295304

296305
registry.add("Tracks/hTrkSel", "Number of tracks; Cut; #Tracks Passed Cut", {HistType::kTH1F, {{nTrkSel, -0.5, +nTrkSel - 0.5}}});
297306
registry.get<TH1>(HIST("Tracks/hTrkSel"))->GetXaxis()->SetBinLabel(trkSelAll + 1, "All");
@@ -842,7 +851,7 @@ struct DndetaMFTPbPb {
842851
/// Filters - tracks
843852
Filter filtTrkEta = (aod::fwdtrack::eta < trackCuts.maxEta) &&
844853
(aod::fwdtrack::eta > trackCuts.minEta);
845-
Filter filtATrackID = (aod::fwdtrack::bestCollisionId >= 0);
854+
Filter filtATrackID = (aod::fwdtrack::bestCollisionId >= kIntZero);
846855
Filter filtATrackDCAxy = (nabs(aod::fwdtrack::bestDCAXY) < trackCuts.maxDCAxy);
847856
Filter filtATrackDCAz = (nabs(aod::fwdtrack::bestDCAZ) < trackCuts.maxDCAz);
848857

@@ -852,6 +861,7 @@ struct DndetaMFTPbPb {
852861
/// Joined tables
853862
using FullBCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels>;
854863
using CollBCs = soa::Join<aod::BCsWithTimestamps, aod::Run3MatchedToBCSparse>;
864+
// Collisions
855865
using Colls = soa::Join<aod::Collisions, aod::EvSels>;
856866
using Coll = Colls::iterator;
857867
using CollsCentFT0C = soa::Join<aod::Collisions, aod::CentFT0Cs, aod::EvSels>;
@@ -866,7 +876,7 @@ struct DndetaMFTPbPb {
866876
aod::CentFT0Cs, aod::EvSels>;
867877
using CollGenCent = CollsGenCentFT0C::iterator;
868878
using CollsCorr = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::PVMults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentNGlobals, aod::CentMFTs>;
869-
879+
// Tracks
870880
using MFTTracksLabeled = soa::Join<aod::MFTTracks, aod::McMFTTrackLabels>;
871881
using MftTracksWColls = soa::Join<aod::MFTTracks, aod::MFTTrkCompColls>;
872882

@@ -876,10 +886,37 @@ struct DndetaMFTPbPb {
876886
using FiltBestTracks = soa::Filtered<aod::BestCollisionsFwd3d>;
877887
using FiltParticles = soa::Filtered<aod::McParticles>;
878888

879-
bool isHitAtDisk(uint16_t map, int ilayer)
889+
template <bool fillHis = true, typename B>
890+
bool isBestTrackSelected(const B& besttrack)
880891
{
881-
LOGF(debug, " map %i --> %i", map, (map >> (ilayer * 6)) & 0x3F);
882-
return (map >> (ilayer * 6)) & 0x3F;
892+
if (fillHis) {
893+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelAll);
894+
}
895+
if (besttrack.bestCollisionId() < kIntZero) {
896+
return false;
897+
}
898+
if constexpr (fillHis) {
899+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelCollID);
900+
}
901+
if (std::abs(besttrack.bestDCAXY()) >= trackCuts.maxDCAxy) {
902+
return false;
903+
}
904+
if constexpr (fillHis) {
905+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelDCAxyCut);
906+
}
907+
if (std::abs(besttrack.bestDCAZ()) >= trackCuts.maxDCAxy) {
908+
return false;
909+
}
910+
if constexpr (fillHis) {
911+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelDCAzCut);
912+
}
913+
if (trackCuts.excludeAmbiguous && besttrack.ambDegree() > kIntOne) {
914+
return false;
915+
}
916+
if (fillHis) {
917+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelWoAmbiguous);
918+
}
919+
return true;
883920
}
884921

885922
template <bool fillHis = true, typename T>
@@ -962,7 +999,7 @@ struct DndetaMFTPbPb {
962999
if (fillHis) {
9631000
float phi = track.phi();
9641001
o2::math_utils::bringTo02Pi(phi);
965-
if (phi < 0.f || TwoPI < phi) {
1002+
if (phi < kZero || TwoPI < phi) {
9661003
continue;
9671004
}
9681005
if constexpr (has_reco_cent<C>) {
@@ -993,15 +1030,9 @@ struct DndetaMFTPbPb {
9931030
ambiguousTrkIds.reserve(besttracks.size());
9941031
reassignedTrkIds.reserve(besttracks.size());
9951032
for (auto const& atrack : besttracks) {
996-
if (fillHis) {
997-
registry.fill(HIST("Tracks/hAmbTrkSel"), trkSelAmbiguousAll);
998-
}
999-
if (trackCuts.excludeAmbiguous && atrack.ambDegree() > 1) {
1033+
if (!isBestTrackSelected(atrack)) {
10001034
continue;
10011035
}
1002-
if (fillHis) {
1003-
registry.fill(HIST("Tracks/hAmbTrkSel"), trkSelWoAmbiguous);
1004-
}
10051036
auto itrack = atrack.template mfttrack_as<T>();
10061037
if (!isTrackSelected(itrack)) {
10071038
continue;
@@ -1011,7 +1042,7 @@ struct DndetaMFTPbPb {
10111042
if (fillHis) {
10121043
float phi = itrack.phi();
10131044
o2::math_utils::bringTo02Pi(phi);
1014-
if (phi < 0.f || TwoPI < phi) {
1045+
if (phi < kZero || TwoPI < phi) {
10151046
continue;
10161047
}
10171048
if constexpr (has_reco_cent<C>) {
@@ -1038,10 +1069,10 @@ struct DndetaMFTPbPb {
10381069
if (itrack.has_collision() && itrack.collisionId() != atrack.bestCollisionId()) {
10391070
reassignedTrkIds.emplace_back(atrack.mfttrackId());
10401071
if (fillHis) {
1041-
registry.fill(HIST("Tracks/hAmbTrkSel"), trkSelNumReassoc);
1072+
registry.fill(HIST("Tracks/hBestTrkSel"), trkBestSelNumReassoc);
10421073
float phi = itrack.phi();
10431074
o2::math_utils::bringTo02Pi(phi);
1044-
if (phi < 0.f || TwoPI < phi) {
1075+
if (phi < kZero || TwoPI < phi) {
10451076
continue;
10461077
}
10471078
if constexpr (has_reco_cent<C>) {
@@ -1069,7 +1100,7 @@ struct DndetaMFTPbPb {
10691100
if (fillHis) {
10701101
float phi = track.phi();
10711102
o2::math_utils::bringTo02Pi(phi);
1072-
if (phi < 0.f || TwoPI < phi) {
1103+
if (phi < kZero || TwoPI < phi) {
10731104
continue;
10741105
}
10751106
if constexpr (has_reco_cent<C>) {
@@ -1291,7 +1322,7 @@ struct DndetaMFTPbPb {
12911322

12921323
float phi = particle.phi();
12931324
o2::math_utils::bringTo02Pi(phi);
1294-
if (phi < 0.f || TwoPI < phi) {
1325+
if (phi < kZero || TwoPI < phi) {
12951326
continue;
12961327
}
12971328
if constexpr (isCent) {
@@ -1307,7 +1338,7 @@ struct DndetaMFTPbPb {
13071338
if (gtZeroColl) {
13081339
float phi = particle.phi();
13091340
o2::math_utils::bringTo02Pi(phi);
1310-
if (phi < 0.f || TwoPI < phi) {
1341+
if (phi < kZero || TwoPI < phi) {
13111342
continue;
13121343
}
13131344
if constexpr (isCent) {
@@ -2157,7 +2188,7 @@ struct DndetaMFTPbPb {
21572188

21582189
for (auto const& track : besttracks) {
21592190
ambiguousTrkIdsMC.emplace_back(track.mfttrackId());
2160-
if (trackCuts.excludeAmbiguous && track.ambDegree() > 1) {
2191+
if (!isBestTrackSelected<false>(track)) {
21612192
continue;
21622193
}
21632194
auto itrack = track.mfttrack_as<FiltMcMftTracks>();
@@ -2639,7 +2670,7 @@ struct DndetaMFTPbPb {
26392670

26402671
auto nBestTrks = 0;
26412672
for (auto const& atrack : besttracks) {
2642-
if (trackCuts.excludeAmbiguous && atrack.ambDegree() > 1) {
2673+
if (cfgUseTrackSel && !isBestTrackSelected<false>(atrack)) {
26432674
continue;
26442675
}
26452676
auto itrack = atrack.template mfttrack_as<FiltMftTracks>();

0 commit comments

Comments
 (0)