34#define INCLXX_IN_GEANT4_MODE 1
51 namespace CoulombDistortion {
Static class for selecting Coulomb distortion.
Class for non-relativistic Coulomb distortion.
Placeholder class for no Coulomb distortion.
static constexpr double coulomb
CoulombType getCoulombType() const
Get the Coulomb-distortion algorithm.
virtual ParticleEntryAvatar * bringToSurface(Particle *const p, Nucleus *const n) const =0
Modify the momentum of an incoming particle and position it on the surface of the nucleus.
virtual void distortOut(ParticleList const &pL, Nucleus const *const n) const =0
Modify the momenta of the outgoing particles.
virtual G4double maxImpactParameter(ParticleSpecies const &p, const G4double kinE, Nucleus const *const n) const =0
Return the maximum impact parameter for Coulomb-distorted trajectories.
virtual G4INCL::ParticleSpecies getSpecies() const
Get the particle species.
G4double getKineticEnergy() const
Get the particle kinetic energy.
G4ThreadLocal ICoulomb * theCoulomb
void initialize(Config const *const theConfig)
Initialize the Coulomb-distortion algorithm.
void deleteCoulomb()
Delete the Coulomb-distortion object.
void setCoulomb(ICoulomb *const coulomb)
Set the Coulomb-distortion algorithm.
void distortOut(ParticleList const &pL, Nucleus const *const n)
Modify the momentum of an outgoing particle.
ParticleEntryAvatar * bringToSurface(Particle *p, Nucleus *const n)
Modify the momentum of an incoming particle and position it on the surface of the nucleus.
G4double maxImpactParameter(ParticleSpecies const &p, const G4double kinE, Nucleus const *const n)
Return the maximum impact parameter for Coulomb-distorted trajectories.