Class ParticleState

Class Documentation

class ParticleState

State of the particle: ID, energy, position, direction.

The ParticleState defines the state of an ultra-high energy cosmic ray, which is assumed to be traveling at the exact speed of light. The cosmic ray state is defined by particle ID, energy and position and direction vector. For faster lookup mass and charge of the particle are stored as members.

Public Functions

ParticleState(int id = 0, double energy = 0, Vector3d position = Vector3d(0, 0, 0), Vector3d direction = Vector3d(-1, 0, 0))

Constructor for a particle state.

Parameters
  • id – id of the particle following the PDG numbering scheme

  • energy – energy of the particle [in Joules]

  • position – vector containing the coordinates of the particle [in meters]

  • direction – vector containing the direction of motion of the particle

void setPosition(const Vector3d &pos)

Set particle position. In simulations including cosmological effects, the position is given in comoving coordinates.

Parameters

pos – vector containing the coordinates of the particle [in meters]

const Vector3d &getPosition() const

Get position of particle.

Returns

Position vector of particle. If cosmological effects are included, the coordinates are comoving.

void setDirection(const Vector3d &dir)

Set direction unit vector, non unit-vectors are normalized

Parameters

dir – vector containing the direction of motion of the particle

const Vector3d &getDirection() const

Get direction unit vector

Returns

Normalized vector containing direction of motion of particle.

void setEnergy(double newEnergy)

Set energy of particle.

Parameters

newEnergy – energy to be assigned to particle [in Joules]

double getEnergy() const

Get energy of particle.

Returns

Energy of particle [in Joules]

double getRigidity() const

Get rigidity of particle, defined as E/(Z*e).

Returns

Rigidity of the particle [in Volts]

void setId(int newId)

Set particle ID. This follows the PDG numbering scheme: https://pdg.lbl.gov/2019/reviews/rpp2019-rev-monte-carlo-numbering.pdf

Parameters

newId – id to be assigned to the particle

int getId() const

Get particle ID

Returns

Particle ID (in PDG format).

std::string getDescription() const
double getCharge() const

Get electrical charge of the particle.

Returns

Charge of the particle [in Coulombs]

double getMass() const

Get mass of the particle.

Returns

Mass of the particle [kg]

void setLorentzFactor(double gamma)

Set Lorentz factor and modify the particle’s energy accordingly.

Parameters

gamma – Lorentz factor

double getLorentzFactor() const

Get Lorentz factor

Returns

Lorentz factor of particle

Vector3d getVelocity() const

Get velocity: direction times the speed of light.

Returns

Velocity of particle [m/s]

Vector3d getMomentum() const

Get momentum: direction times energy divided by the speed of light

Returns

The momentum [kg m/s]