EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Simulation particle information and kinematic state. More...
#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/EventData/Particle.hpp>
Public Types | |
using | Scalar = double |
using | Vector3 = Acts::ActsVector< Scalar, 3 > |
using | Vector4 = Acts::ActsVector< Scalar, 4 > |
Public Member Functions | |
Particle ()=default | |
Construct a default particle with invalid identity. | |
Particle (Barcode particleId, Acts::PdgParticle pdg, Scalar charge, Scalar mass) | |
Particle (Barcode particleId, Acts::PdgParticle pdg) | |
Particle (const Particle &)=default | |
Particle (Particle &&)=default | |
Particle & | operator= (const Particle &)=default |
Particle & | operator= (Particle &&)=default |
Particle | withParticleId (Barcode particleId) const |
Particle & | setProcess (ProcessType proc) |
Set the process type that generated this particle. | |
Particle & | setPosition4 (const Vector4 &pos4) |
Set the space-time position four-vector. | |
Particle & | setPosition4 (const Vector3 &position, Scalar time) |
Set the space-time position four-vector from three-position and time. | |
Particle & | setPosition4 (Scalar x, Scalar y, Scalar z, Scalar time) |
Set the space-time position four-vector from scalar components. | |
Particle & | setDirection (const Vector3 &direction) |
Set the direction three-vector. | |
Particle & | setDirection (Scalar dx, Scalar dy, Scalar dz) |
Set the direction three-vector from scalar components. | |
Particle & | setAbsMomentum (Scalar absMomentum) |
Set the absolute momentum. | |
Particle & | correctEnergy (Scalar delta) |
constexpr Barcode | particleId () const |
Particle identifier within an event. | |
constexpr ProcessType | process () const |
Which type of process generated this particle. | |
constexpr Acts::PdgParticle | pdg () const |
PDG particle number that identifies the type. | |
constexpr Scalar | charge () const |
Particle charge. | |
constexpr Scalar | mass () const |
Particle mass. | |
constexpr const Vector4 & | position4 () const |
Space-time position four-vector. | |
auto | position () const |
Three-position, i.e. spatial coordinates without the time. | |
Scalar | time () const |
Time coordinate. | |
Vector4 | momentum4 () const |
Energy-momentum four-vector. | |
const Vector3 & | unitDirection () const |
Unit three-direction, i.e. the normalized momentum three-vector. | |
Scalar | transverseMomentum () const |
Absolute momentum in the x-y plane. | |
constexpr Scalar | absMomentum () const |
Absolute momentum. | |
Scalar | energy () const |
Total energy, i.e. norm of the four-momentum. | |
constexpr | operator bool () const |
Check if the particle is alive, i.e. is not at rest. | |
constexpr bool | operator! () const |
Check if the particle is dead, i.e is at rest. | |
constexpr Particle & | setMaterialPassed (Scalar pathX0, Scalar pathL0) |
constexpr Particle & | setMaterialLimits (Scalar limitX0, Scalar limitL0) |
constexpr Scalar | pathInX0 () const |
The passed material measured in radiation lengths. | |
constexpr Scalar | pathInL0 () const |
The passed material measured in interaction lengths. | |
constexpr Scalar | pathLimitX0 () const |
The maximum radation length the particle is allowed to pass. | |
constexpr Scalar | pathLimitL0 () const |
The maximum interaction length the particle is allowed to pass. | |
Private Attributes | |
Barcode | m_particleId |
Particle identifier within the event. | |
ProcessType | m_process = ProcessType::eUndefined |
Process type specifier. | |
Acts::PdgParticle | m_pdg = Acts::PdgParticle::eInvalid |
PDG particle number. | |
Scalar | m_charge = Scalar(0) |
Scalar | m_mass = Scalar(0) |
Vector3 | m_unitDirection = Vector3::UnitZ() |
Scalar | m_absMomentum = Scalar(0) |
Vector4 | m_position4 = Vector4::Zero() |
Scalar | m_pathX0 = Scalar(0) |
Scalar | m_pathL0 = Scalar(0) |
Scalar | m_limitX0 = std::numeric_limits<Scalar>::max() |
Scalar | m_limitL0 = std::numeric_limits<Scalar>::max() |
Simulation particle information and kinematic state.
Definition at line 23 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 23 of file Particle.hpp
using ActsFatras::Particle::Scalar = double |
Definition at line 25 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 25 of file Particle.hpp
using ActsFatras::Particle::Vector3 = Acts::ActsVector<Scalar, 3> |
Definition at line 26 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 26 of file Particle.hpp
using ActsFatras::Particle::Vector4 = Acts::ActsVector<Scalar, 4> |
Definition at line 27 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 27 of file Particle.hpp
|
default |
Construct a default particle with invalid identity.
|
inline |
Construct a particle at rest with explicit mass and charge.
particleId | Particle identifier within an event |
pdg | PDG id |
charge | Particle charge in native units |
mass | Particle mass in native units |
Definition at line 40 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 40 of file Particle.hpp
ActsFatras::Particle::Particle | ( | Barcode | particleId, |
Acts::PdgParticle | pdg | ||
) |
Construct a particle at rest from a PDG particle number.
particleId | Particle identifier within an event |
pdg | PDG particle number |
Charge and mass are retrieved from the particle data table.
Definition at line 13 of file Particle.cpp.
View newest version in sPHENIX GitHub at line 13 of file Particle.cpp
|
default |
|
default |
|
inline |
Absolute momentum.
Definition at line 155 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 155 of file Particle.hpp
References m_absMomentum.
Referenced by BOOST_DATA_TEST_CASE(), ActsExamples::ResPlotTool::fill(), ActsFatras::detail::Highland::operator()(), ActsFatras::BetheBloch::operator()(), ActsFatras::detail::GaussianMixture::operator()(), ActsFatras::detail::GeneralMixture::operator()(), ActsFatras::Casts::Pt::operator()(), ActsFatras::Casts::P::operator()(), setAbsMomentum(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Particle charge.
Definition at line 128 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 128 of file Particle.hpp
References m_charge.
Referenced by ActsExamples::ResPlotTool::fill(), ActsFatras::NeutralSelector::operator()(), ActsFatras::ChargedSelector::operator()(), ActsFatras::PositiveSelector::operator()(), ActsFatras::detail::Highland::operator()(), ActsFatras::NegativeSelector::operator()(), ActsFatras::BetheBloch::operator()(), ActsFatras::detail::GaussianMixture::operator()(), ActsFatras::detail::GeneralMixture::operator()(), ActsFatras::operator<<(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
Change the energy by the given amount.
Energy loss corresponds to a negative change. If the updated energy would result in an unphysical value, the particle is put to rest, i.e. its absolute momentum is set to zero.
Definition at line 111 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 111 of file Particle.hpp
References Acts::Test::delta, m_absMomentum, and m_mass.
Referenced by ActsFatras::BetheHeitler::operator()(), and ActsFatras::BetheBloch::operator()().
|
inline |
Total energy, i.e. norm of the four-momentum.
Definition at line 157 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 157 of file Particle.hpp
References m_absMomentum, and m_mass.
Referenced by BOOST_DATA_TEST_CASE(), momentum4(), ActsFatras::BetheHeitler::operator()(), and ActsFatras::Casts::E::operator()().
|
inline |
Particle mass.
Definition at line 130 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 130 of file Particle.hpp
References m_mass.
Referenced by ActsFatras::detail::Highland::operator()(), ActsFatras::BetheBloch::operator()(), ActsFatras::detail::GeneralMixture::operator()(), ActsFatras::detail::GaussianMixture::operator()(), ActsFatras::operator<<(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Energy-momentum four-vector.
Definition at line 139 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 139 of file Particle.hpp
References Acts::eEnergy, Acts::eMom0, Acts::eMom1, Acts::eMom2, energy(), Acts::ePos0, Acts::ePos1, Acts::ePos2, m_absMomentum, and m_unitDirection.
|
inline |
Check if the particle is alive, i.e. is not at rest.
Definition at line 160 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 160 of file Particle.hpp
References m_absMomentum.
|
inline |
Check if the particle is dead, i.e is at rest.
Definition at line 162 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 162 of file Particle.hpp
References m_absMomentum.
|
inline |
Particle identifier within an event.
Definition at line 122 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 122 of file Particle.hpp
References m_particleId.
Referenced by ActsExamples::detail::CompareParticleId::operator()(), ActsExamples::detail::PrimaryVertexIdGetter::operator()(), ActsExamples::detail::SecondaryVertexIdGetter::operator()(), ActsFatras::operator<<(), and withParticleId().
|
inline |
The passed material measured in interaction lengths.
Definition at line 185 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 185 of file Particle.hpp
References m_pathL0.
Referenced by ActsFatras::PathLimitL0::operator()(), and ActsFatras::detail::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().
|
inline |
The passed material measured in radiation lengths.
Definition at line 183 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 183 of file Particle.hpp
References m_pathX0.
Referenced by ActsFatras::PathLimitX0::operator()(), and ActsFatras::detail::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().
|
inline |
The maximum interaction length the particle is allowed to pass.
Definition at line 189 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 189 of file Particle.hpp
References m_limitL0.
Referenced by ActsFatras::PathLimitL0::operator()().
|
inline |
The maximum radation length the particle is allowed to pass.
Definition at line 187 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 187 of file Particle.hpp
References m_limitX0.
Referenced by ActsFatras::PathLimitX0::operator()().
|
inline |
PDG particle number that identifies the type.
Definition at line 126 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 126 of file Particle.hpp
References m_pdg.
Referenced by ActsFatras::PdgSelector< Pdg >::operator()(), ActsFatras::AbsPdgSelector< Pdg >::operator()(), ActsFatras::detail::Highland::operator()(), ActsFatras::PdgExcluder< Pdg >::operator()(), ActsFatras::BetheBloch::operator()(), ActsFatras::detail::GeneralMixture::operator()(), ActsFatras::detail::GaussianMixture::operator()(), ActsFatras::AbsPdgExcluder< Pdg >::operator()(), ActsFatras::operator<<(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Three-position, i.e. spatial coordinates without the time.
Definition at line 135 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 135 of file Particle.hpp
References Acts::ePos0, and m_position4.
Referenced by ActsExamples::ResPlotTool::fill(), ActsFatras::Casts::Vrho::operator()(), ActsFatras::Casts::Vz::operator()(), and ActsFatras::Casts::AbsVz::operator()().
|
inline |
Space-time position four-vector.
Definition at line 133 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 133 of file Particle.hpp
References m_position4.
Referenced by ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Which type of process generated this particle.
Definition at line 124 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 124 of file Particle.hpp
References m_process.
Referenced by ActsFatras::operator<<().
Set the absolute momentum.
Definition at line 102 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 102 of file Particle.hpp
References absMomentum(), and m_absMomentum.
Referenced by ActsExamples::Pythia8Generator::operator()(), ActsExamples::ParametricParticleGenerator::operator()(), and ActsExamples::CsvParticleReader::read().
Set the direction three-vector.
Definition at line 88 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 88 of file Particle.hpp
References m_unitDirection.
Referenced by ActsFatras::detail::Scattering< scattering_model_t >::operator()(), ActsExamples::Pythia8Generator::operator()(), ActsExamples::ParametricParticleGenerator::operator()(), and ActsExamples::CsvParticleReader::read().
Set the direction three-vector from scalar components.
Definition at line 94 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 94 of file Particle.hpp
References dx, dy, dz, Acts::ePos0, Acts::ePos1, Acts::ePos2, and m_unitDirection.
|
inline |
Set the material limits.
limitX0 | maximum radiation lengths the particle can pass |
limitL0 | maximum interaction lengths the particle can pass |
Definition at line 177 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 177 of file Particle.hpp
Set the material that the particle has passed.
pathX0 | passed material measured in radiation lengths |
pathL0 | passed thickness measured in interaction lengths |
Definition at line 168 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 168 of file Particle.hpp
Set the space-time position four-vector.
Definition at line 69 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 69 of file Particle.hpp
References m_position4, and Acts::Test::pos4().
Referenced by ActsExamples::Pythia8Generator::operator()(), ActsExamples::ParametricParticleGenerator::operator()(), and ActsExamples::CsvParticleReader::read().
Set the space-time position four-vector from three-position and time.
Definition at line 74 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 74 of file Particle.hpp
References Acts::ePos0, Acts::eTime, m_position4, and time().
Set the space-time position four-vector from scalar components.
Definition at line 80 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 80 of file Particle.hpp
References Acts::ePos0, Acts::ePos1, Acts::ePos2, Acts::eTime, m_position4, time(), x, y, and z.
|
inline |
Set the process type that generated this particle.
Definition at line 67 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 67 of file Particle.hpp
References m_process.
Referenced by ActsExamples::CsvParticleReader::read().
|
inline |
Time coordinate.
Definition at line 137 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 137 of file Particle.hpp
References Acts::eTime, and m_position4.
Referenced by ActsExamples::ResPlotTool::fill(), and setPosition4().
|
inline |
Absolute momentum in the x-y plane.
Definition at line 151 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 151 of file Particle.hpp
References Acts::eMom0, m_absMomentum, and m_unitDirection.
Referenced by ActsExamples::EffPlotTool::fill(), ActsExamples::DuplicationPlotTool::fill(), ActsExamples::FakeRatePlotTool::fill(), and ActsExamples::ResPlotTool::fill().
|
inline |
Unit three-direction, i.e. the normalized momentum three-vector.
Definition at line 149 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 149 of file Particle.hpp
References m_unitDirection.
Referenced by ActsExamples::EffPlotTool::fill(), ActsExamples::DuplicationPlotTool::fill(), ActsExamples::FakeRatePlotTool::fill(), ActsExamples::ResPlotTool::fill(), ActsFatras::Casts::Eta::operator()(), ActsFatras::detail::Scattering< scattering_model_t >::operator()(), ActsFatras::Casts::AbsEta::operator()(), ActsFatras::Casts::Pt::operator()(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
Construct a new particle with a new identifier but same kinematics.
Definition at line 60 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 60 of file Particle.hpp
References m_particleId, p, and particleId().
Definition at line 204 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 204 of file Particle.hpp
Referenced by absMomentum(), correctEnergy(), energy(), momentum4(), operator bool(), operator!(), setAbsMomentum(), and transverseMomentum().
Definition at line 200 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 200 of file Particle.hpp
Referenced by charge().
Definition at line 217 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 217 of file Particle.hpp
Referenced by pathLimitL0(), and setMaterialLimits().
Definition at line 216 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 216 of file Particle.hpp
Referenced by pathLimitX0(), and setMaterialLimits().
Definition at line 201 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 201 of file Particle.hpp
Referenced by correctEnergy(), energy(), and mass().
|
private |
Particle identifier within the event.
Definition at line 194 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 194 of file Particle.hpp
Referenced by particleId(), and withParticleId().
Definition at line 215 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 215 of file Particle.hpp
Referenced by pathInL0(), and setMaterialPassed().
Definition at line 214 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 214 of file Particle.hpp
Referenced by pathInX0(), and setMaterialPassed().
|
private |
PDG particle number.
Definition at line 198 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 198 of file Particle.hpp
Referenced by pdg().
|
private |
Definition at line 205 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 205 of file Particle.hpp
Referenced by position(), position4(), setPosition4(), and time().
|
private |
Process type specifier.
Definition at line 196 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 196 of file Particle.hpp
Referenced by process(), and setProcess().
|
private |
Definition at line 203 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 203 of file Particle.hpp
Referenced by momentum4(), setDirection(), transverseMomentum(), and unitDirection().