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

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

+ Inheritance diagram for G4INCL::StandardPropagationModel:
+ Collaboration diagram for G4INCL::StandardPropagationModel:

Public Member Functions

 StandardPropagationModel (LocalEnergyType localEnergyType, LocalEnergyType localEnergyDeltaType, const G4double hTime=0.0)
 
virtual ~StandardPropagationModel ()
 
G4double getCurrentTime ()
 
void setNucleus (G4INCL::Nucleus *nucleus)
 
G4INCL::NucleusgetNucleus ()
 
G4double shoot (ParticleSpecies const &projectileSpecies, const G4double kineticEnergy, const G4double impactParameter, const G4double phi)
 
G4double shootParticle (ParticleType const t, const G4double kineticEnergy, const G4double impactParameter, const G4double phi)
 
G4double shootComposite (ParticleSpecies const &s, const G4double kineticEnergy, const G4double impactParameter, const G4double phi)
 
void setStoppingTime (G4double)
 
G4double getStoppingTime ()
 
void registerAvatar (G4INCL::IAvatar *anAvatar)
 
IAvatargenerateBinaryCollisionAvatar (Particle *const p1, Particle *const p2)
 Generate a two-particle avatar.
 
G4double getReflectionTime (G4INCL::Particle const *const aParticle)
 Get the reflection time.
 
G4double getTime (G4INCL::Particle const *const particleA, G4INCL::Particle const *const particleB, G4double *minDistOfApproach) const
 
void generateUpdatedCollisions (const ParticleList &updatedParticles, const ParticleList &particles)
 Generate and register collisions between a list of updated particles and all the other particles.
 
void generateCollisions (const ParticleList &particles)
 Generate and register collisions among particles in a list, except between those in another list.
 
void generateCollisions (const ParticleList &particles, const ParticleList &except)
 Generate and register collisions among particles in a list, except between those in another list.
 
void generateDecays (const ParticleList &particles)
 Generate decays for particles that can decay.
 
void updateAvatars (const ParticleList &particles)
 
void generateAllAvatars ()
 (Re)Generate all possible avatars.
 
G4INCL::IAvatarpropagate (FinalState const *const fs)
 
- Public Member Functions inherited from G4INCL::IPropagationModel
 IPropagationModel ()
 
virtual ~IPropagationModel ()
 

Private Attributes

G4INCL::NucleustheNucleus
 
G4double maximumTime
 
G4double currentTime
 
G4double hadronizationTime
 
G4bool firstAvatar
 
LocalEnergyType theLocalEnergyType
 
LocalEnergyType theLocalEnergyDeltaType
 
Particle backupParticle1
 
Particle backupParticle2
 

Detailed Description

Standard INCL4 particle propagation and avatar prediction

This class implements the standard INCL4 avatar prediction and particle propagation logic. The main idea is to predict all collisions between particles and their reflections from the potential wall. After this we select the avatar with the smallest time, propagate all particles to their positions at that time and return the avatar to the INCL kernel

See Also
G4INCL::Kernel.

The particle trajectories in this propagation model are straight lines and all particles are assumed to move with constant velocity.

Definition at line 69 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 69 of file G4INCLStandardPropagationModel.hh

Constructor & Destructor Documentation

G4INCL::StandardPropagationModel::StandardPropagationModel ( LocalEnergyType  localEnergyType,
LocalEnergyType  localEnergyDeltaType,
const G4double  hTime = 0.0 
)

Definition at line 65 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 65 of file G4INCLStandardPropagationModel.cc

G4INCL::StandardPropagationModel::~StandardPropagationModel ( )
virtual

Definition at line 74 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 74 of file G4INCLStandardPropagationModel.cc

References theNucleus.

Member Function Documentation

void G4INCL::StandardPropagationModel::generateAllAvatars ( )

(Re)Generate all possible avatars.

Definition at line 437 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 437 of file G4INCLStandardPropagationModel.cc

References e, generateCollisions(), generateDecays(), G4INCL::Store::getParticles(), getReflectionTime(), G4INCL::Nucleus::getStore(), maximumTime, registerAvatar(), theNucleus, and Acts::VectorHelpers::time().

Referenced by shootComposite(), and shootParticle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

IAvatar * G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar ( Particle *const  p1,
Particle *const  p2 
)
void G4INCL::StandardPropagationModel::generateCollisions ( const ParticleList particles)

Generate and register collisions among particles in a list, except between those in another list.

This method generates all possible collisions among the particles. Each collision is generated only once.

Parameters
particleslist of particles

Definition at line 397 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 397 of file G4INCLStandardPropagationModel.cc

References e, generateBinaryCollisionAvatar(), and registerAvatar().

Referenced by generateAllAvatars().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::StandardPropagationModel::generateCollisions ( const ParticleList particles,
const ParticleList except 
)

Generate and register collisions among particles in a list, except between those in another list.

This method generates all possible collisions among the particles. Each collision is generated only once. The collision is NOT generated if BOTH collision partners belong to the except list.

You should pass an empty list as the except parameter if you want to generate all possible collisions among particles.

Parameters
particleslist of particles
exceptlist of excluded particles

Definition at line 407 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 407 of file G4INCLStandardPropagationModel.cc

References G4INCL::UnorderedVector< T >::contains(), e, generateBinaryCollisionAvatar(), and registerAvatar().

+ Here is the call graph for this function:

void G4INCL::StandardPropagationModel::generateDecays ( const ParticleList particles)

Generate decays for particles that can decay.

The list of particles given as an argument is allowed to contain also stable particles.

Parameters
particleslist of particles to (possibly) generate decays for

Definition at line 465 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 465 of file G4INCLStandardPropagationModel.cc

References G4INCL::DeltaDecayChannel::computeDecayTime(), G4INCL::SigmaZeroDecayChannel::computeDecayTime(), G4INCL::PionResonanceDecayChannel::computeDecayTime(), currentTime, e, maximumTime, registerAvatar(), G4INCL::SigmaZero, and theNucleus.

Referenced by generateAllAvatars(), and propagate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::StandardPropagationModel::generateUpdatedCollisions ( const ParticleList updatedParticles,
const ParticleList particles 
)

Generate and register collisions between a list of updated particles and all the other particles.

This method does not generate collisions among the particles in updatedParticles; in other words, it generates a collision between one of the updatedParticles and one of the particles ONLY IF the latter does not belong to updatedParticles.

If you intend to generate all possible collisions among particles in a list, use generateCollisions().

Parameters
updatedParticleslist of updated particles
particleslist of particles

Definition at line 378 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 378 of file G4INCLStandardPropagationModel.cc

References G4INCL::UnorderedVector< T >::contains(), e, generateBinaryCollisionAvatar(), particle, and registerAvatar().

Referenced by updateAvatars().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4INCL::StandardPropagationModel::getCurrentTime ( )
virtual

Returns the current global time of the system.

Implements G4INCL::IPropagationModel.

Definition at line 251 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 251 of file G4INCLStandardPropagationModel.cc

References currentTime.

G4INCL::Nucleus * G4INCL::StandardPropagationModel::getNucleus ( )
virtual

Get the nucleus.

Implements G4INCL::IPropagationModel.

Definition at line 79 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 79 of file G4INCLStandardPropagationModel.cc

References theNucleus.

G4double G4INCL::StandardPropagationModel::getReflectionTime ( G4INCL::Particle const *const  aParticle)

Get the reflection time.

Returns the reflection time of a particle on the potential wall.

Parameters
aParticlepointer to the particle

Definition at line 341 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 341 of file G4INCLStandardPropagationModel.cc

References currentTime, G4INCL::Intersection::exists, G4INCL::IntersectionFactory::getLaterTrajectoryIntersection(), G4INCL::Particle::getPosition(), G4INCL::Particle::getPropagationVelocity(), G4INCL::Nucleus::getSurfaceRadius(), INCL_ERROR, G4INCL::Particle::print(), theNucleus, G4INCL::Intersection::time, and Acts::VectorHelpers::time().

Referenced by generateAllAvatars(), and updateAvatars().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4INCL::StandardPropagationModel::getStoppingTime ( )
virtual

Get the current stopping time.

Implements G4INCL::IPropagationModel.

Definition at line 242 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 242 of file G4INCLStandardPropagationModel.cc

References maximumTime.

G4double G4INCL::StandardPropagationModel::getTime ( G4INCL::Particle const *const  particleA,
G4INCL::Particle const *const  particleB,
G4double minDistOfApproach 
) const

Get the predicted time of the collision between two particles.

Definition at line 358 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 358 of file G4INCLStandardPropagationModel.cc

References currentTime, G4INCL::ThreeVector::dot(), e, G4INCL::Particle::getPosition(), G4INCL::Particle::getPropagationVelocity(), G4INCL::ThreeVector::mag2(), and Acts::VectorHelpers::time().

Referenced by generateBinaryCollisionAvatar().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4INCL::IAvatar * G4INCL::StandardPropagationModel::propagate ( FinalState const *const  fs)
virtual
void G4INCL::StandardPropagationModel::registerAvatar ( G4INCL::IAvatar anAvatar)

Add an avatar to the storage.

Definition at line 260 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 260 of file G4INCLStandardPropagationModel.cc

References G4INCL::Store::add(), G4INCL::Nucleus::getStore(), and theNucleus.

Referenced by generateAllAvatars(), generateCollisions(), generateDecays(), generateUpdatedCollisions(), and updateAvatars().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::StandardPropagationModel::setNucleus ( G4INCL::Nucleus nucleus)
virtual

Set the nucleus for this propagation model.

Implements G4INCL::IPropagationModel.

Definition at line 255 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 255 of file G4INCLStandardPropagationModel.cc

References theNucleus.

void G4INCL::StandardPropagationModel::setStoppingTime ( G4double  time)
virtual

Set the stopping time of the simulation.

Implements G4INCL::IPropagationModel.

Definition at line 246 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 246 of file G4INCLStandardPropagationModel.cc

References maximumTime, and Acts::VectorHelpers::time().

+ Here is the call graph for this function:

G4double G4INCL::StandardPropagationModel::shoot ( ParticleSpecies const &  projectileSpecies,
const G4double  kineticEnergy,
const G4double  impactParameter,
const G4double  phi 
)
virtual

Implements G4INCL::IPropagationModel.

Definition at line 84 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 84 of file G4INCLStandardPropagationModel.cc

References G4INCL::Composite, shootComposite(), shootParticle(), and G4INCL::ParticleSpecies::theType.

+ Here is the call graph for this function:

G4double G4INCL::StandardPropagationModel::shootComposite ( ParticleSpecies const &  s,
const G4double  kineticEnergy,
const G4double  impactParameter,
const G4double  phi 
)
virtual
G4double G4INCL::StandardPropagationModel::shootParticle ( ParticleType const  t,
const G4double  kineticEnergy,
const G4double  impactParameter,
const G4double  phi 
)
virtual

Implements G4INCL::IPropagationModel.

Definition at line 91 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 91 of file G4INCLStandardPropagationModel.cc

References G4INCL::Store::addParticleEntryAvatar(), G4INCL::Particle::adjustMomentumFromEnergy(), G4INCL::Particle::boostVector(), G4INCL::CoulombDistortion::bringToSurface(), currentTime, energy, firstAvatar, generateAllAvatars(), G4INCL::Particle::getA(), G4INCL::Particle::getAngularMomentum(), G4INCL::Particle::getEnergy(), G4INCL::Particle::getKineticEnergy(), G4INCL::Particle::getMass(), G4INCL::Particle::getMomentum(), G4INCL::Particle::getS(), G4INCL::Particle::getSpecies(), G4INCL::Nucleus::getStore(), G4INCL::ParticleTable::getTableMass, G4INCL::ParticleTable::getTableParticleMass, G4INCL::Particle::getTransversePosition(), G4INCL::Nucleus::getUniverseRadius(), G4INCL::Particle::getZ(), INCL_DEBUG, G4INCL::Particle::isMeson(), G4INCL::ThreeVector::mag(), G4INCL::Particle::makeProjectileSpectator(), G4INCL::CoulombDistortion::maxImpactParameter(), maximumTime, momentum, position, G4INCL::Particle::setEnergy(), G4INCL::Particle::setINCLMass(), G4INCL::Nucleus::setIncomingAngularMomentum(), G4INCL::Nucleus::setIncomingMomentum(), G4INCL::Nucleus::setInitialEnergy(), G4INCL::Nucleus::setParticleNucleusCollision(), G4INCL::Particle::setPosition(), and theNucleus.

Referenced by shoot().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::StandardPropagationModel::updateAvatars ( const ParticleList particles)

Update all avatars related to a particle.

Definition at line 427 of file G4INCLStandardPropagationModel.cc.

View newest version in sPHENIX GitHub at line 427 of file G4INCLStandardPropagationModel.cc

References e, generateUpdatedCollisions(), G4INCL::Store::getParticles(), getReflectionTime(), G4INCL::Nucleus::getStore(), maximumTime, registerAvatar(), theNucleus, and Acts::VectorHelpers::time().

Referenced by propagate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

Particle G4INCL::StandardPropagationModel::backupParticle1
private

Definition at line 200 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 200 of file G4INCLStandardPropagationModel.hh

Referenced by generateBinaryCollisionAvatar().

Particle G4INCL::StandardPropagationModel::backupParticle2
private

Definition at line 200 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 200 of file G4INCLStandardPropagationModel.hh

Referenced by generateBinaryCollisionAvatar().

G4double G4INCL::StandardPropagationModel::currentTime
private
G4bool G4INCL::StandardPropagationModel::firstAvatar
private

Definition at line 198 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 198 of file G4INCLStandardPropagationModel.hh

Referenced by shootComposite(), and shootParticle().

G4double G4INCL::StandardPropagationModel::hadronizationTime
private

Definition at line 197 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 197 of file G4INCLStandardPropagationModel.hh

Referenced by generateBinaryCollisionAvatar().

G4double G4INCL::StandardPropagationModel::maximumTime
private
LocalEnergyType G4INCL::StandardPropagationModel::theLocalEnergyDeltaType
private

Definition at line 199 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 199 of file G4INCLStandardPropagationModel.hh

Referenced by generateBinaryCollisionAvatar().

LocalEnergyType G4INCL::StandardPropagationModel::theLocalEnergyType
private

Definition at line 199 of file G4INCLStandardPropagationModel.hh.

View newest version in sPHENIX GitHub at line 199 of file G4INCLStandardPropagationModel.hh

Referenced by generateBinaryCollisionAvatar().


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