diff --git a/EventFiltering/PWGHF/HFFilter.cxx b/EventFiltering/PWGHF/HFFilter.cxx index 1062635ce39..02a88ec2f47 100644 --- a/EventFiltering/PWGHF/HFFilter.cxx +++ b/EventFiltering/PWGHF/HFFilter.cxx @@ -337,10 +337,10 @@ struct HfFilter { // Main struct for HF triggers using Hf3ProngsWithMl = soa::Join; Preslice trackIndicesPerCollision = aod::track_association::collisionId; - Preslice v0sPerCollision = aod::v0data::collisionId; + Preslice v0sPerCollision = aod::v0::collisionId; Preslice hf2ProngPerCollision = aod::track_association::collisionId; Preslice hf3ProngPerCollision = aod::track_association::collisionId; - Preslice cascPerCollision = aod::cascdata::collisionId; + Preslice cascPerCollision = aod::cascade::collisionId; Preslice photonsPerCollision = aod::v0photonkf::collisionId; void process(CollsWithEvSel const& collisions, @@ -350,7 +350,7 @@ struct HfFilter { // Main struct for HF triggers Hf2ProngsWithMl const& cand2Prongs, Hf3ProngsWithMl const& cand3Prongs, aod::TrackAssoc const& trackIndices, - BigTracksPID const&, + BigTracksPID const& tracks, TracksIUPID const& tracksIU, aod::V0PhotonsKF const& photons, aod::V0Legs const&) @@ -407,8 +407,8 @@ struct HfFilter { // Main struct for HF triggers continue; } - auto trackPos = cand2Prong.prong0_as(); // positive daughter - auto trackNeg = cand2Prong.prong1_as(); // negative daughter + auto trackPos = tracks.rawIteratorAt(cand2Prong.prong0Id()); // positive daughter + auto trackNeg = tracks.rawIteratorAt(cand2Prong.prong1Id()); // negative daughter auto preselD0 = helper.isDzeroPreselected(trackPos, trackNeg); if (!preselD0) { @@ -485,7 +485,7 @@ struct HfFilter { // Main struct for HF triggers auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId); for (const auto& trackId : trackIdsThisCollision) { // start loop over tracks - auto track = trackId.track_as(); + auto track = tracks.rawIteratorAt(trackId.trackId()); if (track.globalIndex() == trackPos.globalIndex() || track.globalIndex() == trackNeg.globalIndex()) { continue; @@ -573,7 +573,7 @@ struct HfFilter { // Main struct for HF triggers hMassVsPtC[kNCharmParticles]->Fill(ptCand, massDiffDstar); } for (const auto& trackIdB : trackIdsThisCollision) { // start loop over tracks - auto trackB = trackIdB.track_as(); + auto trackB = tracks.rawIteratorAt(trackIdB.trackId()); if (track.globalIndex() == trackB.globalIndex()) { continue; } @@ -729,7 +729,7 @@ struct HfFilter { // Main struct for HF triggers // we first look for a D*+ for (const auto& trackBachelorId : trackIdsThisCollision) { // start loop over tracks - auto trackBachelor = trackBachelorId.track_as(); + auto trackBachelor = tracks.rawIteratorAt(trackBachelorId.trackId()); if (trackBachelor.globalIndex() == trackPos.globalIndex() || trackBachelor.globalIndex() == trackNeg.globalIndex() || trackBachelor.globalIndex() == v0.posTrackId() || trackBachelor.globalIndex() == v0.negTrackId()) { continue; } @@ -838,9 +838,9 @@ struct HfFilter { // Main struct for HF triggers continue; } - auto trackFirst = cand3Prong.prong0_as(); - auto trackSecond = cand3Prong.prong1_as(); - auto trackThird = cand3Prong.prong2_as(); + auto trackFirst = tracks.rawIteratorAt(cand3Prong.prong0Id()); + auto trackSecond = tracks.rawIteratorAt(cand3Prong.prong1Id()); + auto trackThird = tracks.rawIteratorAt(cand3Prong.prong2Id()); auto trackParFirst = getTrackParCov(trackFirst); auto trackParSecond = getTrackParCov(trackSecond); @@ -971,7 +971,7 @@ struct HfFilter { // Main struct for HF triggers auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId); for (const auto& trackId : trackIdsThisCollision) { // start loop over track indices as associated to this collision in HF code - auto track = trackId.track_as(); + auto track = tracks.rawIteratorAt(trackId.trackId()); if (track.globalIndex() == trackFirst.globalIndex() || track.globalIndex() == trackSecond.globalIndex() || track.globalIndex() == trackThird.globalIndex()) { continue; } @@ -1092,7 +1092,7 @@ struct HfFilter { // Main struct for HF triggers for (const auto& trackSoftPiId : trackIdsThisCollision) { // start loop over tracks (soft pi) // soft pion candidates - auto trackSoftPi = trackSoftPiId.track_as(); + auto trackSoftPi = tracks.rawIteratorAt(trackSoftPiId.trackId()); auto globalIndexSoftPi = trackSoftPi.globalIndex(); // exclude tracks already used to build the 3-prong candidate @@ -1303,7 +1303,7 @@ struct HfFilter { // Main struct for HF triggers for (const auto& trackSoftPiId : trackIdsThisCollision) { // start loop over tracks (soft pi) // soft pion candidates - auto trackSoftPi = trackSoftPiId.track_as(); + auto trackSoftPi = tracks.rawIteratorAt(trackSoftPiId.trackId()); auto globalIndexSoftPi = trackSoftPi.globalIndex(); // exclude tracks already used to build the 3-prong candidate @@ -1411,7 +1411,7 @@ struct HfFilter { // Main struct for HF triggers auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId); for (const auto& trackId : trackIdsThisCollision) { // start loop over tracks - auto track = trackId.track_as(); + auto track = tracks.rawIteratorAt(trackId.trackId()); // ask for opposite sign daughters (omegac daughters) if (track.sign() * cascCand.sign > 0) { diff --git a/EventFiltering/PWGHF/HFFilterHelpers.h b/EventFiltering/PWGHF/HFFilterHelpers.h index 2a41c163542..f651a4cc83e 100644 --- a/EventFiltering/PWGHF/HFFilterHelpers.h +++ b/EventFiltering/PWGHF/HFFilterHelpers.h @@ -2100,12 +2100,11 @@ inline int HfFilterHelper::setVtxConfiguration(T1 vertexer, bool useAbsDCA) template inline std::array HfFilterHelper::alphaAndQtAP(std::array const& momPos, std::array const& momNeg) { - float momTotSq = RecoDecay::p2(momPos[0] + momNeg[0], momPos[1] + momNeg[1], momPos[2] + momNeg[2]); - float momTot = std::sqrt(momTotSq); + float momTot = RecoDecay::p(momPos[0] + momNeg[0], momPos[1] + momNeg[1], momPos[2] + momNeg[2]); float lQlNeg = RecoDecay::dotProd(momNeg, std::array{momPos[0] + momNeg[0], momPos[1] + momNeg[1], momPos[2] + momNeg[2]}) / momTot; float lQlPos = RecoDecay::dotProd(momPos, std::array{momPos[0] + momNeg[0], momPos[1] + momNeg[1], momPos[2] + momNeg[2]}) / momTot; float alpha = (lQlPos - lQlNeg) / (lQlPos + lQlNeg); - float qtarm = std::sqrt(RecoDecay::p2(momNeg) - lQlNeg * lQlNeg / momTotSq); + float qtarm = std::sqrt(RecoDecay::p2(momNeg) - lQlNeg * lQlNeg); std::array alphaAndQt = {alpha, qtarm}; return alphaAndQt; @@ -2127,9 +2126,7 @@ inline bool HfFilterHelper::buildV0(V const& v0Indices, T const& tracks, C const if (!trackPos.hasTPC() || !trackNeg.hasTPC()) { return false; } - if (!(trackPos.trackType() & o2::aod::track::TPCrefit) || !(trackNeg.trackType() & o2::aod::track::TPCrefit)) { - return false; - } + if (trackPos.tpcNClsCrossedRows() < 50 || trackNeg.tpcNClsCrossedRows() < 50) { return false; } @@ -2253,9 +2250,7 @@ inline bool HfFilterHelper::buildCascade(Casc const& cascIndices, V const& v0Ind if (!trackBachelor.hasTPC()) { return false; } - if (!(trackBachelor.trackType() & o2::aod::track::TPCrefit)) { - return false; - } + if (trackBachelor.tpcNClsCrossedRows() < 50) { return false; }