Skip to content
Merged
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
30 changes: 15 additions & 15 deletions EventFiltering/PWGHF/HFFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -337,10 +337,10 @@ struct HfFilter { // Main struct for HF triggers
using Hf3ProngsWithMl = soa::Join<aod::Hf3Prongs, aod::Hf3ProngMlProbs>;

Preslice<aod::TrackAssoc> trackIndicesPerCollision = aod::track_association::collisionId;
Preslice<aod::V0s> v0sPerCollision = aod::v0data::collisionId;
Preslice<aod::V0s> v0sPerCollision = aod::v0::collisionId;
Preslice<Hf2ProngsWithMl> hf2ProngPerCollision = aod::track_association::collisionId;
Preslice<Hf3ProngsWithMl> hf3ProngPerCollision = aod::track_association::collisionId;
Preslice<aod::Cascades> cascPerCollision = aod::cascdata::collisionId;
Preslice<aod::Cascades> cascPerCollision = aod::cascade::collisionId;
Preslice<aod::V0PhotonsKF> photonsPerCollision = aod::v0photonkf::collisionId;

void process(CollsWithEvSel const& collisions,
Expand All @@ -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&)
Expand Down Expand Up @@ -407,8 +407,8 @@ struct HfFilter { // Main struct for HF triggers
continue;
}

auto trackPos = cand2Prong.prong0_as<BigTracksPID>(); // positive daughter
auto trackNeg = cand2Prong.prong1_as<BigTracksPID>(); // 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) {
Expand Down Expand Up @@ -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<BigTracksPID>();
auto track = tracks.rawIteratorAt(trackId.trackId());

if (track.globalIndex() == trackPos.globalIndex() || track.globalIndex() == trackNeg.globalIndex()) {
continue;
Expand Down Expand Up @@ -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<BigTracksPID>();
auto trackB = tracks.rawIteratorAt(trackIdB.trackId());
if (track.globalIndex() == trackB.globalIndex()) {
continue;
}
Expand Down Expand Up @@ -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<BigTracksPID>();
auto trackBachelor = tracks.rawIteratorAt(trackBachelorId.trackId());
if (trackBachelor.globalIndex() == trackPos.globalIndex() || trackBachelor.globalIndex() == trackNeg.globalIndex() || trackBachelor.globalIndex() == v0.posTrackId() || trackBachelor.globalIndex() == v0.negTrackId()) {
continue;
}
Expand Down Expand Up @@ -838,9 +838,9 @@ struct HfFilter { // Main struct for HF triggers
continue;
}

auto trackFirst = cand3Prong.prong0_as<BigTracksPID>();
auto trackSecond = cand3Prong.prong1_as<BigTracksPID>();
auto trackThird = cand3Prong.prong2_as<BigTracksPID>();
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);
Expand Down Expand Up @@ -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<BigTracksPID>();
auto track = tracks.rawIteratorAt(trackId.trackId());
if (track.globalIndex() == trackFirst.globalIndex() || track.globalIndex() == trackSecond.globalIndex() || track.globalIndex() == trackThird.globalIndex()) {
continue;
}
Expand Down Expand Up @@ -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<BigTracksPID>();
auto trackSoftPi = tracks.rawIteratorAt(trackSoftPiId.trackId());
auto globalIndexSoftPi = trackSoftPi.globalIndex();

// exclude tracks already used to build the 3-prong candidate
Expand Down Expand Up @@ -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<BigTracksPID>();
auto trackSoftPi = tracks.rawIteratorAt(trackSoftPiId.trackId());
auto globalIndexSoftPi = trackSoftPi.globalIndex();

// exclude tracks already used to build the 3-prong candidate
Expand Down Expand Up @@ -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<BigTracksPID>();
auto track = tracks.rawIteratorAt(trackId.trackId());

// ask for opposite sign daughters (omegac daughters)
if (track.sign() * cascCand.sign > 0) {
Expand Down
13 changes: 4 additions & 9 deletions EventFiltering/PWGHF/HFFilterHelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -2100,12 +2100,11 @@ inline int HfFilterHelper::setVtxConfiguration(T1 vertexer, bool useAbsDCA)
template <typename T>
inline std::array<T, 2> HfFilterHelper::alphaAndQtAP(std::array<T, 3> const& momPos, std::array<T, 3> 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<float, 2> alphaAndQt = {alpha, qtarm};
return alphaAndQt;
Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down