19#ifndef BDSPARTICLEDEFINITION_H
20#define BDSPARTICLEDEFINITION_H
21#include "BDSIonDefinition.hh"
23#include "CLHEP/Units/PhysicalConstants.h"
29class G4ParticleDefinition;
52 G4double totalEnergyIn,
53 G4double kineticEnergyIn,
67 G4double totalEnergyIn,
68 G4double kineticEnergyIn,
86 G4double kineticEnergyIn,
Class to parse an ion particle definition.
G4int NElectrons() const
Accessor.
Wrapper for particle definition.
void CalculateRigidity(const G4double &ffactIn)
Calculate and set rigidity based on charge and momentum.
G4String Name() const
Accessor.
G4double Mass() const
Accessor.
G4bool NElectrons() const
Accessor.
G4double beta
Relativistic beta.
G4double Momentum() const
Accessor.
G4double Charge() const
Accessor.
G4double totalEnergy
Particle total energy.
G4double KineticEnergy() const
Accessor.
G4ParticleDefinition * ParticleDefinition() const
Accessor.
G4double FFact() const
Accessor.
G4double BRho() const
Accessor.
void CalculateLorentzFactors()
Calculate and set lorentz factors.
G4double gamma
Relativistic gamma.
void SetEnergies(G4double totalEnergyIn, G4double kineticEnergyIn, G4double momentumIn)
G4double momentum
Particle momentum.
G4double Beta() const
Accessor.
G4bool Forwards() const
Accessor.
BDSIonDefinition * ionDefinition
Optional ion definition. Does own.
G4double charge
Particle charge.
BDSParticleDefinition()=delete
No default constructor.
friend std::ostream & operator<<(std::ostream &out, BDSParticleDefinition const &def)
Output stream operator implementation.
G4double Velocity() const
Accessor.
G4double ffact
Flip factor.
G4double mass
Particle mass.
BDSParticleDefinition & operator=(BDSParticleDefinition &&other) noexcept
Copy, move and assignment constructors specified as we have to copy the ionDefinition if it exists.
G4bool forwards
In case of change of direction.
void ApplyChangeInKineticEnergy(G4double dEk)
Utility function to update quantities by adding on dEK (can be negative).
G4String name
Particle name.
G4double Gamma() const
Accessor.
BDSIonDefinition * IonDefinition() const
Accessor.
G4double brho
Particle rigidity.
G4int ionPDGID
Cache this for ions only.
G4double TotalEnergy() const
Accessor.
G4ParticleDefinition * particle
Does not own.
void CalculateMomentum()
Calculate and set momentum based on totalEnergy and mass.
G4double kineticEnergy
Particle kinetic energy.
G4bool IsAnIon() const
Accessor.
void UpdateG4ParticleDefinition(G4ParticleDefinition *particleIn)