ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Simulation particle information and kinematic state. More...
#include <acts/blob/master/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) |
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 |
auto | position () const |
Three-position, i.e. spatial coordinates without the time. | |
Scalar | time () const |
Time coordinate. | |
Vector4 | momentum4 () const |
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 161 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 161 of file Particle.hpp
References m_absMomentum.
Referenced by BOOST_DATA_TEST_CASE(), FW::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 130 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 130 of file Particle.hpp
References m_charge.
Referenced by FW::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 113 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 113 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 163 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 163 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 132 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 132 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.
The component order is [px,py,pz,E].
Definition at line 145 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 145 of file Particle.hpp
References energy(), m_absMomentum, and m_unitDirection.
|
inline |
Check if the particle is alive, i.e. is not at rest.
Definition at line 166 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 166 of file Particle.hpp
References m_absMomentum.
|
inline |
Check if the particle is dead, i.e is at rest.
Definition at line 168 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 168 of file Particle.hpp
References m_absMomentum.
|
inline |
Particle identifier within an event.
Definition at line 124 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 124 of file Particle.hpp
References m_particleId.
Referenced by FW::detail::CompareParticleId::operator()(), ActsFatras::operator<<(), and withParticleId().
|
inline |
The passed material measured in interaction lengths.
Definition at line 191 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 191 of file Particle.hpp
References m_pathL0.
Referenced by ActsFatras::PathLimitL0::operator()(), and ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().
|
inline |
The passed material measured in radiation lengths.
Definition at line 189 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 189 of file Particle.hpp
References m_pathX0.
Referenced by ActsFatras::PathLimitX0::operator()(), and ActsFatras::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 195 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 195 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 193 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 193 of file Particle.hpp
References m_limitX0.
Referenced by ActsFatras::PathLimitX0::operator()().
|
inline |
PDG particle number that identifies the type.
Definition at line 128 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 128 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 139 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 139 of file Particle.hpp
References m_position4.
Referenced by FW::ResPlotTool::fill(), ActsFatras::Casts::Vrho::operator()(), ActsFatras::Casts::Vz::operator()(), ActsFatras::Casts::AbsVz::operator()(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Space-time position four-vector.
The component order is [x,y,z,t].
Definition at line 137 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 137 of file Particle.hpp
References m_position4.
|
inline |
Which type of process generated this particle.
Definition at line 126 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 126 of file Particle.hpp
References m_process.
Referenced by ActsFatras::operator<<().
Set the absolute momentum.
Definition at line 104 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 104 of file Particle.hpp
References absMomentum(), and m_absMomentum.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), Dataset::makeParticle(), FW::ParametricProcessGenerator::operator()(), FW::HepMC3Particle::particle(), and FW::CsvParticleReader::read().
Set the direction three-vector.
Definition at line 90 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 90 of file Particle.hpp
References m_unitDirection.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), Dataset::makeParticle(), ActsFatras::detail::Scattering< scattering_model_t >::operator()(), FW::ParametricProcessGenerator::operator()(), FW::HepMC3Particle::particle(), and FW::CsvParticleReader::read().
Set the direction three-vector from scalar components.
Definition at line 96 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 96 of file Particle.hpp
References dx, dy, dz, 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 183 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 183 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 174 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 174 of file Particle.hpp
References m_pathL0, and m_pathX0.
Referenced by ActsFatras::Interactor< generator_t, physics_list_t, hit_surface_selector_t >::operator()().
Set the space-time position four-vector.
The component order is [x,y,z,t].
Definition at line 71 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 71 of file Particle.hpp
References m_position4.
Referenced by Dataset::makeParticle(), FW::ParametricProcessGenerator::operator()(), and FW::CsvParticleReader::read().
Set the space-time position four-vector from three-position and time.
Definition at line 76 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 76 of file Particle.hpp
References m_position4, and time().
Set the space-time position four-vector from scalar components.
Definition at line 82 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 82 of file Particle.hpp
References 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 FW::CsvParticleReader::read().
|
inline |
Time coordinate.
Definition at line 141 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 141 of file Particle.hpp
References m_position4.
Referenced by FW::ResPlotTool::fill(), setPosition4(), and ActsFatras::ParticleSimulator< propagator_t, physics_list_t, hit_surface_selector_t >::simulate().
|
inline |
Absolute momentum in the x-y plane.
Definition at line 157 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 157 of file Particle.hpp
References m_absMomentum, m_unitDirection, and norm.
Referenced by FW::EffPlotTool::fill(), FW::FakeRatePlotTool::fill(), FW::TrackSummaryPlotTool::fill(), and FW::ResPlotTool::fill().
|
inline |
Unit three-direction, i.e. the normalized momentum three-vector.
Definition at line 155 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 155 of file Particle.hpp
References m_unitDirection.
Referenced by FW::EffPlotTool::fill(), FW::FakeRatePlotTool::fill(), FW::TrackSummaryPlotTool::fill(), FW::ResPlotTool::fill(), ActsFatras::detail::Scattering< scattering_model_t >::operator()(), ActsFatras::Casts::Eta::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, and particleId().
Definition at line 210 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 210 of file Particle.hpp
Referenced by absMomentum(), correctEnergy(), energy(), momentum4(), operator bool(), operator!(), setAbsMomentum(), and transverseMomentum().
Definition at line 206 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 206 of file Particle.hpp
Referenced by charge().
Definition at line 223 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 223 of file Particle.hpp
Referenced by pathLimitL0(), and setMaterialLimits().
Definition at line 222 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 222 of file Particle.hpp
Referenced by pathLimitX0(), and setMaterialLimits().
Definition at line 207 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 207 of file Particle.hpp
Referenced by correctEnergy(), energy(), and mass().
|
private |
Particle identifier within the event.
Definition at line 200 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 200 of file Particle.hpp
Referenced by particleId(), and withParticleId().
Definition at line 221 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 221 of file Particle.hpp
Referenced by pathInL0(), and setMaterialPassed().
Definition at line 220 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 220 of file Particle.hpp
Referenced by pathInX0(), and setMaterialPassed().
|
private |
PDG particle number.
Definition at line 204 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 204 of file Particle.hpp
Referenced by pdg().
|
private |
Definition at line 211 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 211 of file Particle.hpp
Referenced by position(), position4(), setPosition4(), and time().
|
private |
Process type specifier.
Definition at line 202 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 202 of file Particle.hpp
Referenced by process(), and setProcess().
|
private |
Definition at line 209 of file Particle.hpp.
View newest version in sPHENIX GitHub at line 209 of file Particle.hpp
Referenced by momentum4(), setDirection(), transverseMomentum(), and unitDirection().