ImpactX
Loading...
Searching...
No Matches
impactx::RefPart Struct Reference

#include <ReferenceParticle.H>

Public Member Functions

RefPart copy () const
 
void reset (bool keep_mass=false, bool keep_charge=false)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal gamma () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal beta () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal beta_gamma () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal mass_MeV () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPartset_mass_MeV (amrex::ParticleReal const massE)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal kin_energy_MeV () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPartset_kin_energy_MeV (amrex::ParticleReal const kin_energy)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal rigidity_Tm () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal charge_qe () const
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPartset_charge_qe (amrex::ParticleReal const charge_qe)
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal qm_ratio_SI () const
 

Public Attributes

amrex::ParticleReal s = 0.0
 integrated orbit path length, in meters
 
amrex::ParticleReal x = 0.0
 horizontal position x, in meters
 
amrex::ParticleReal y = 0.0
 vertical position y, in meters
 
amrex::ParticleReal z = 0.0
 longitudinal position z, in meters
 
amrex::ParticleReal t = 0.0
 clock time * c in meters
 
amrex::ParticleReal px = 0.0
 momentum in x divided by m*c = beta_x*gamma [unitless]
 
amrex::ParticleReal py = 0.0
 momentum in y divided by m*c = beta_y*gamma [unitless]
 
amrex::ParticleReal pz = 0.0
 momentum in z divided by m*c = beta_z*gamma [unitless]
 
amrex::ParticleReal pt = 0.0
 energy, normalized by rest energy
 
amrex::ParticleReal mass = 0.0
 reference rest mass, in kg
 
amrex::ParticleReal charge = 0.0
 reference charge, in C
 
amrex::ParticleReal sedge = 0.0
 value of s at entrance of the current beamline element
 
amrex::SmallMatrix< amrex::ParticleReal, 6, 6, amrex::Order::F, 1 > map {}
 linearized map
 

Detailed Description

This struct stores the reference particle attributes stored in ImpactXParticleContainer

Member Function Documentation

◆ beta()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::beta ( ) const
inline

Get reference particle relativistic beta

Returns
relativistic beta

◆ beta_gamma()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::beta_gamma ( ) const
inline

Get reference particle beta*gamma

Returns
relativistic beta*gamma

◆ charge_qe()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::charge_qe ( ) const
inline

Get reference particle charge

Returns
charge in multiples of the (positive) elementary charge

◆ copy()

RefPart impactx::RefPart::copy ( ) const
inline

Copy the reference particle

Use this if you want to do an operation that modifies the reference particle, but you want to avoid modifying the particle container that it is assigned to.

◆ gamma()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::gamma ( ) const
inline

Get reference particle relativistic gamma

Returns
relativistic gamma

◆ kin_energy_MeV()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::kin_energy_MeV ( ) const
inline

Get reference particle kinetic energy

Returns
kinetic energy in MeV

◆ mass_MeV()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::mass_MeV ( ) const
inline

Get reference particle rest mass expressed in MeV

Returns
reference particle rest mass * c^2, expressed as an energy (MeV)

◆ qm_ratio_SI()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::qm_ratio_SI ( ) const
inline

Get reference particle charge to mass ratio

Returns
charge to mass ratio (in SI units of C/kg)

◆ reset()

void impactx::RefPart::reset ( bool keep_mass = false,
bool keep_charge = false )
inline

Reset the reference particle

Parameters
keep_massdo not reset the reference particle mass
keep_chargedo not reset the reference particle charge

◆ rigidity_Tm()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal impactx::RefPart::rigidity_Tm ( ) const
inline

Get reference particle magnetic rigidity

Returns
magnetic rigidity Brho in T*m

◆ set_charge_qe()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & impactx::RefPart::set_charge_qe ( amrex::ParticleReal const charge_qe)
inline

Set reference particle charge

Parameters
charge_qein multiples of the (positive) elementary charge

◆ set_kin_energy_MeV()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & impactx::RefPart::set_kin_energy_MeV ( amrex::ParticleReal const kin_energy)
inline

Set reference particle kinetic energy

Parameters
kin_energyinitial kinetic energy (MeV)

◆ set_mass_MeV()

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE RefPart & impactx::RefPart::set_mass_MeV ( amrex::ParticleReal const massE)
inline

Set reference particle rest mass

Parameters
massEreference particle rest mass * c^2, expressed as an energy (MeV)

Member Data Documentation

◆ charge

amrex::ParticleReal impactx::RefPart::charge = 0.0

reference charge, in C

◆ map

amrex::SmallMatrix<amrex::ParticleReal, 6, 6, amrex::Order::F, 1> impactx::RefPart::map {}

linearized map

◆ mass

amrex::ParticleReal impactx::RefPart::mass = 0.0

reference rest mass, in kg

◆ pt

amrex::ParticleReal impactx::RefPart::pt = 0.0

energy, normalized by rest energy

◆ px

amrex::ParticleReal impactx::RefPart::px = 0.0

momentum in x divided by m*c = beta_x*gamma [unitless]

◆ py

amrex::ParticleReal impactx::RefPart::py = 0.0

momentum in y divided by m*c = beta_y*gamma [unitless]

◆ pz

amrex::ParticleReal impactx::RefPart::pz = 0.0

momentum in z divided by m*c = beta_z*gamma [unitless]

◆ s

amrex::ParticleReal impactx::RefPart::s = 0.0

integrated orbit path length, in meters

◆ sedge

amrex::ParticleReal impactx::RefPart::sedge = 0.0

value of s at entrance of the current beamline element

◆ t

amrex::ParticleReal impactx::RefPart::t = 0.0

clock time * c in meters

◆ x

amrex::ParticleReal impactx::RefPart::x = 0.0

horizontal position x, in meters

◆ y

amrex::ParticleReal impactx::RefPart::y = 0.0

vertical position y, in meters

◆ z

amrex::ParticleReal impactx::RefPart::z = 0.0

longitudinal position z, in meters


The documentation for this struct was generated from the following file: