Skip to content

Commit a8e48b8

Browse files
authored
Refactor particle position calculations into struct
1 parent 0c5dd81 commit a8e48b8

File tree

1 file changed

+49
-48
lines changed

1 file changed

+49
-48
lines changed

PWGLF/Tasks/Strangeness/strangenessInJets.cxx

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,52 @@ using DaughterTracks = soa::Join<aod::Tracks, aod::TracksIU, aod::TracksExtra, a
8080
aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>;
8181
using DaughterTracksMC = soa::Join<DaughterTracks, aod::McTrackLabels>;
8282

83+
struct ParticlePositionWithRespectToJet {
84+
ParticlePositionWithRespectToJet(const float px, const float py, const float pz,
85+
const TVector3& jet,
86+
const TVector3& ue1,
87+
const TVector3& ue2)
88+
{
89+
const TVector3 candidateDirection(px, py, pz);
90+
const double deltaEtaJet = candidateDirection.Eta() - jet.Eta();
91+
const double deltaPhiJet = getDeltaPhi(candidateDirection.Phi(), jet.Phi());
92+
const double deltaRjet = std::sqrt(deltaEtaJet * deltaEtaJet + deltaPhiJet * deltaPhiJet);
93+
const double deltaEtaUe1 = candidateDirection.Eta() - ue1.Eta();
94+
const double deltaPhiUe1 = getDeltaPhi(candidateDirection.Phi(), ue1.Phi());
95+
const double deltaRue1 = std::sqrt(deltaEtaUe1 * deltaEtaUe1 + deltaPhiUe1 * deltaPhiUe1);
96+
const double deltaEtaUe2 = candidateDirection.Eta() - ue2.Eta();
97+
const double deltaPhiUe2 = getDeltaPhi(candidateDirection.Phi(), ue2.Phi());
98+
const double deltaRue2 = std::sqrt(deltaEtaUe2 * deltaEtaUe2 + deltaPhiUe2 * deltaPhiUe2);
99+
mInJet = deltaRjet < mJetRadius;
100+
mInUE1 = deltaRue1 < mJetRadius;
101+
mInUE2 = deltaRue2 < mJetRadius;
102+
}
103+
bool isInJet() const { return mInJet; }
104+
bool isInUE1() const { return mInUE1; }
105+
bool isInUE2() const { return mInUE2; }
106+
107+
static double mJetRadius;
108+
109+
// Delta phi calculation
110+
static double getDeltaPhi(const double a1, const double a2)
111+
{
112+
const double phi1 = TVector2::Phi_0_2pi(a1);
113+
const double phi2 = TVector2::Phi_0_2pi(a2);
114+
const double diff = std::fabs(phi1 - phi2);
115+
if (diff <= PI)
116+
return diff;
117+
if (diff > PI)
118+
return TwoPI - diff;
119+
return diff; // should not happen
120+
}
121+
122+
private:
123+
bool mInJet = false;
124+
bool mInUE1 = false;
125+
bool mInUE2 = false;
126+
};
127+
double ParticlePositionWithRespectToJet::mJetRadius = 0.0;
128+
83129
struct StrangenessInJets {
84130

85131
// Instantiate the CCDB service and API interface
@@ -407,51 +453,6 @@ struct StrangenessInJets {
407453
}
408454
}
409455

410-
// Delta phi calculation
411-
static double getDeltaPhi(const double a1, const double a2)
412-
{
413-
const double phi1 = TVector2::Phi_0_2pi(a1);
414-
const double phi2 = TVector2::Phi_0_2pi(a2);
415-
const double diff = std::fabs(phi1 - phi2);
416-
if (diff <= PI)
417-
return diff;
418-
if (diff > PI)
419-
return TwoPI - diff;
420-
return diff; // should not happen
421-
}
422-
423-
struct ParticlePositionWithRespectToJet {
424-
ParticlePositionWithRespectToJet(const float px, const float py, const float pz,
425-
const TVector3& jet,
426-
const TVector3& ue1,
427-
const TVector3& ue2)
428-
{
429-
const TVector3 candidateDirection(px, py, pz);
430-
const double deltaEtaJet = candidateDirection.Eta() - jet.Eta();
431-
const double deltaPhiJet = getDeltaPhi(candidateDirection.Phi(), jet.Phi());
432-
const double deltaRjet = std::sqrt(deltaEtaJet * deltaEtaJet + deltaPhiJet * deltaPhiJet);
433-
const double deltaEtaUe1 = candidateDirection.Eta() - ue1.Eta();
434-
const double deltaPhiUe1 = getDeltaPhi(candidateDirection.Phi(), ue1.Phi());
435-
const double deltaRue1 = std::sqrt(deltaEtaUe1 * deltaEtaUe1 + deltaPhiUe1 * deltaPhiUe1);
436-
const double deltaEtaUe2 = candidateDirection.Eta() - ue2.Eta();
437-
const double deltaPhiUe2 = getDeltaPhi(candidateDirection.Phi(), ue2.Phi());
438-
const double deltaRue2 = std::sqrt(deltaEtaUe2 * deltaEtaUe2 + deltaPhiUe2 * deltaPhiUe2);
439-
mInJet = deltaRjet < mJetRadius;
440-
mInUE1 = deltaRue1 < mJetRadius;
441-
mInUE2 = deltaRue2 < mJetRadius;
442-
}
443-
bool isInJet() const { return mInJet; }
444-
bool isInUE1() const { return mInUE1; }
445-
bool isInUE2() const { return mInUE2; }
446-
447-
static double mJetRadius;
448-
449-
private:
450-
bool mInJet = false;
451-
bool mInUE1 = false;
452-
bool mInUE2 = false;
453-
};
454-
455456
// Check if particle is a physical primary or a decay product of a heavy-flavor hadron
456457
bool isPhysicalPrimaryOrFromHF(aod::McParticle const& particle, aod::McParticles const& mcParticles)
457458
{
@@ -1403,13 +1404,13 @@ struct StrangenessInJets {
14031404
for (const auto& hadron : hadronMomentum) {
14041405
// Compute distance of particles from jet and UE axes
14051406
const double deltaEtaJet = hadron.first.Eta() - jetAxis.Eta();
1406-
const double deltaPhiJet = getDeltaPhi(hadron.first.Phi(), jetAxis.Phi());
1407+
const double deltaPhiJet = ParticlePositionWithRespectToJet::getDeltaPhi(hadron.first.Phi(), jetAxis.Phi());
14071408
const double deltaRJet = std::sqrt(deltaEtaJet * deltaEtaJet + deltaPhiJet * deltaPhiJet);
14081409
const double deltaEtaUe1 = hadron.first.Eta() - ueAxis1.Eta();
1409-
const double deltaPhiUe1 = getDeltaPhi(hadron.first.Phi(), ueAxis1.Phi());
1410+
const double deltaPhiUe1 = ParticlePositionWithRespectToJet::getDeltaPhi(hadron.first.Phi(), ueAxis1.Phi());
14101411
const double deltaRUe1 = std::sqrt(deltaEtaUe1 * deltaEtaUe1 + deltaPhiUe1 * deltaPhiUe1);
14111412
const double deltaEtaUe2 = hadron.first.Eta() - ueAxis2.Eta();
1412-
const double deltaPhiUe2 = getDeltaPhi(hadron.first.Phi(), ueAxis2.Phi());
1413+
const double deltaPhiUe2 = ParticlePositionWithRespectToJet::getDeltaPhi(hadron.first.Phi(), ueAxis2.Phi());
14131414
const double deltaRUe2 = std::sqrt(deltaEtaUe2 * deltaEtaUe2 + deltaPhiUe2 * deltaPhiUe2);
14141415

14151416
// Select particles inside jet

0 commit comments

Comments
 (0)