@@ -80,6 +80,52 @@ using DaughterTracks = soa::Join<aod::Tracks, aod::TracksIU, aod::TracksExtra, a
8080 aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>;
8181using 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+
83129struct 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