ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCL::CoulombNonRelativistic Class Reference

#include <geant4/tree/geant4-10.6-release/source/processes/hadronic/models/inclxx/incl_physics/include/G4INCLCoulombNonRelativistic.hh>

+ Inheritance diagram for G4INCL::CoulombNonRelativistic:
+ Collaboration diagram for G4INCL::CoulombNonRelativistic:

Public Member Functions

 CoulombNonRelativistic ()
 
virtual ~CoulombNonRelativistic ()
 
ParticleEntryAvatarbringToSurface (Particle *const p, Nucleus *const n) const
 Modify the momentum of the particle and position it on the surface of the nucleus.
 
IAvatarList bringToSurface (Cluster *const c, Nucleus *const n) const
 Modify the momentum of the incoming cluster and position it on the surface of the nucleus.
 
void distortOut (ParticleList const &pL, Nucleus const *const n) const
 Modify the momenta of the outgoing particles.
 
G4double maxImpactParameter (ParticleSpecies const &p, const G4double kinE, Nucleus const *const n) const
 Return the maximum impact parameter for Coulomb-distorted trajectories.
 
- Public Member Functions inherited from G4INCL::ICoulomb
 ICoulomb ()
 
virtual ~ICoulomb ()
 

Private Member Functions

G4double minimumDistance (ParticleSpecies const &p, const G4double kineticEnergy, Nucleus const *const n) const
 Return the minimum distance of approach in a head-on collision (b=0).
 
G4double minimumDistance (Particle const *const p, Nucleus const *const n) const
 Return the minimum distance of approach in a head-on collision (b=0).
 
G4bool coulombDeviation (Particle *const p, Nucleus const *const n) const
 Perform Coulomb deviation.
 
G4double getCoulombRadius (ParticleSpecies const &p, Nucleus const *const n) const
 Get the Coulomb radius for a given particle.
 

Private Attributes

CoulombNone theCoulombNoneSlave
 Internal CoulombNone slave to generate the avatars.
 

Detailed Description

Definition at line 56 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 56 of file G4INCLCoulombNonRelativistic.hh

Constructor & Destructor Documentation

G4INCL::CoulombNonRelativistic::CoulombNonRelativistic ( )
inline

Definition at line 58 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 58 of file G4INCLCoulombNonRelativistic.hh

virtual G4INCL::CoulombNonRelativistic::~CoulombNonRelativistic ( )
inlinevirtual

Definition at line 59 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 59 of file G4INCLCoulombNonRelativistic.hh

Member Function Documentation

ParticleEntryAvatar * G4INCL::CoulombNonRelativistic::bringToSurface ( Particle *const  p,
Nucleus *const  n 
) const
virtual

Modify the momentum of the particle and position it on the surface of the nucleus.

This method performs non-relativistic distortion.

Parameters
pincoming particle
ndistorting nucleus

Implements G4INCL::ICoulomb.

Definition at line 50 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 50 of file G4INCLCoulombNonRelativistic.cc

References G4INCL::CoulombNone::bringToSurface(), coulombDeviation(), G4INCL::Particle::getZ(), and theCoulombNoneSlave.

+ Here is the call graph for this function:

IAvatarList G4INCL::CoulombNonRelativistic::bringToSurface ( Cluster *const  c,
Nucleus *const  n 
) const
virtual

Modify the momentum of the incoming cluster and position it on the surface of the nucleus.

This method performs non-relativistic distortion. The momenta of the particles that compose the cluster are also distorted.

Parameters
cincoming cluster
ndistorting nucleus

Implements G4INCL::ICoulomb.

Definition at line 63 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 63 of file G4INCLCoulombNonRelativistic.cc

References G4INCL::CoulombNone::bringToSurface(), coulombDeviation(), and theCoulombNoneSlave.

+ Here is the call graph for this function:

G4bool G4INCL::CoulombNonRelativistic::coulombDeviation ( Particle *const  p,
Nucleus const *const  n 
) const
private

Perform Coulomb deviation.

Modifies the entrance angle of the particle and its impact parameter. Can be applied to Particles and Clusters.

The trajectory for an asymptotic impact parameter $b$ is parametrised as follows:

\[ r(\theta) = \frac{(1-e^2)r_0/2}{1-e \sin(\theta-\theta_R/2)}, \]

here $e$ is the hyperbola eccentricity:

\[ e = \sqrt{1+4b^2/r_0^2}; \]

$\theta_R$ is the Rutherford scattering angle:

\[ \theta_R = \pi - 2\arctan\left(\frac{2b}{r_0}\right) \]

$\theta$ ranges from $\pi$ (initial state) to $\theta_R$ (scattered particle) and $r_0$ is the minimum distance of approach in a head-on collision (see the minimumDistance() method).

Parameters
ppointer to the Particle
npointer to the Nucleus
Returns
false if below the barrier

Definition at line 137 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 137 of file G4INCLCoulombNonRelativistic.cc

References alpha, G4INCL::Math::arcCos(), E, getCoulombRadius(), G4INCL::Particle::getLongitudinalPosition(), G4INCL::Particle::getMomentum(), G4INCL::Particle::getSpecies(), G4INCL::Particle::getTransversePosition(), G4INCL::ThreeVector::mag(), G4INCL::ThreeVector::mag2(), minimumDistance(), momentum, n, G4INCL::Math::pi, G4INCL::Math::piOverTwo, radius, G4INCL::Particle::rotatePositionAndMomentum(), G4INCL::Particle::setPosition(), G4INCL::Math::sign(), G4INCL::Math::twoPi, and G4INCL::ThreeVector::vector().

Referenced by bringToSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::CoulombNonRelativistic::distortOut ( ParticleList const &  pL,
Nucleus const *const  n 
) const
virtual

Modify the momenta of the outgoing particles.

This method performs non-relativistic distortion.

Parameters
pLlist of outgoing particles
ndistorting nucleus

Implements G4INCL::ICoulomb.

Definition at line 78 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 78 of file G4INCLCoulombNonRelativistic.cc

References G4INCL::Math::arcCos(), c1, c2, G4INCL::ThreeVector::dot(), e, G4INCL::PhysicalConstants::eSquared, Acts::VectorHelpers::eta(), G4INCL::Nucleus::getDensity(), G4INCL::NuclearDensity::getTransmissionRadius(), G4INCL::Particle::getZ(), G4INCL::ThreeVector::mag(), momentum, particle, G4INCL::Math::piOverTwo, r, and Z.

+ Here is the call graph for this function:

G4double G4INCL::CoulombNonRelativistic::getCoulombRadius ( ParticleSpecies const &  p,
Nucleus const *const  n 
) const
private

Get the Coulomb radius for a given particle.

That's the radius of the sphere that the Coulomb trajectory of the incoming particle should intersect. The intersection point is used to determine the effective impact parameter of the trajectory and the new entrance angle.

If the particle is not a Cluster, the Coulomb radius reduces to the surface radius. We use a parametrisation for d, t, He3 and alphas. For heavier clusters we fall back to the surface radius.

Parameters
pthe particle species
nthe deflecting nucleus
Returns
Coulomb radius

Definition at line 196 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 196 of file G4INCLCoulombNonRelativistic.cc

References G4INCL::Composite, G4INCL::PhysicalConstants::eSquared, G4INCL::Particle::getA(), G4INCL::ParticleTable::getLargestNuclearRadius(), G4INCL::ParticleTable::getShortName(), G4INCL::Nucleus::getUniverseRadius(), G4INCL::Particle::getZ(), INCL_DEBUG, INCL_ERROR, G4INCL::Math::pow13(), G4INCL::Math::pow23(), radius, G4INCL::ParticleSpecies::theA, G4INCL::ParticleSpecies::theType, and G4INCL::ParticleSpecies::theZ.

Referenced by coulombDeviation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4INCL::CoulombNonRelativistic::maxImpactParameter ( ParticleSpecies const &  p,
const G4double  kinE,
Nucleus const *const  n 
) const
virtual

Return the maximum impact parameter for Coulomb-distorted trajectories.

Implements G4INCL::ICoulomb.

Definition at line 124 of file G4INCLCoulombNonRelativistic.cc.

View newest version in sPHENIX GitHub at line 124 of file G4INCLCoulombNonRelativistic.cc

References G4INCL::Composite, G4INCL::ParticleTable::getLargestNuclearRadius(), G4INCL::Nucleus::getUniverseRadius(), minimumDistance(), G4INCL::ParticleSpecies::theA, G4INCL::ParticleSpecies::theType, and G4INCL::ParticleSpecies::theZ.

+ Here is the call graph for this function:

G4double G4INCL::CoulombNonRelativistic::minimumDistance ( ParticleSpecies const &  p,
const G4double  kineticEnergy,
Nucleus const *const  n 
) const
inlineprivate

Return the minimum distance of approach in a head-on collision (b=0).

Definition at line 98 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 98 of file G4INCLCoulombNonRelativistic.hh

References G4INCL::PhysicalConstants::eSquared, G4INCL::Cluster::getTableMass(), G4INCL::ParticleTable::getTableSpeciesMass(), G4INCL::Particle::getZ(), INCL_DEBUG, and G4INCL::ParticleSpecies::theZ.

Referenced by coulombDeviation(), maxImpactParameter(), and minimumDistance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4INCL::CoulombNonRelativistic::minimumDistance ( Particle const *const  p,
Nucleus const *const  n 
) const
inlineprivate

Return the minimum distance of approach in a head-on collision (b=0).

Definition at line 110 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 110 of file G4INCLCoulombNonRelativistic.hh

References G4INCL::Particle::getKineticEnergy(), G4INCL::Particle::getSpecies(), minimumDistance(), and n.

+ Here is the call graph for this function:

Member Data Documentation

CoulombNone G4INCL::CoulombNonRelativistic::theCoulombNoneSlave
private

Internal CoulombNone slave to generate the avatars.

Definition at line 160 of file G4INCLCoulombNonRelativistic.hh.

View newest version in sPHENIX GitHub at line 160 of file G4INCLCoulombNonRelativistic.hh

Referenced by bringToSurface().


The documentation for this class was generated from the following files: