#include <G4INCLStandardPropagationModel.hh>
Public 멤버 함수 | |
StandardPropagationModel (LocalEnergyType localEnergyType, LocalEnergyType localEnergyDeltaType, const G4double hTime=0.0) | |
virtual | ~StandardPropagationModel () |
G4double | getCurrentTime () |
void | setNucleus (G4INCL::Nucleus *nucleus) |
G4INCL::Nucleus * | getNucleus () |
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) |
IAvatar * | generateBinaryCollisionAvatar (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::IAvatar * | propagate (FinalState const *const fs) |
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
The particle trajectories in this propagation model are straight lines and all particles are assumed to move with constant velocity.
G4INCLStandardPropagationModel.hh 파일의 69 번째 라인에서 정의되었습니다.
G4INCL::StandardPropagationModel::StandardPropagationModel | ( | LocalEnergyType | localEnergyType, |
LocalEnergyType | localEnergyDeltaType, | ||
const G4double | hTime = 0.0 |
||
) |
G4INCLStandardPropagationModel.cc 파일의 65 번째 라인에서 정의되었습니다.
|
virtual |
G4INCLStandardPropagationModel.cc 파일의 74 번째 라인에서 정의되었습니다.
다음을 참조함 : theNucleus.
void G4INCL::StandardPropagationModel::generateAllAvatars | ( | ) |
(Re)Generate all possible avatars.
G4INCLStandardPropagationModel.cc 파일의 437 번째 라인에서 정의되었습니다.
다음을 참조함 : e, generateCollisions(), generateDecays(), G4INCL::Store::getParticles(), getReflectionTime(), G4INCL::Nucleus::getStore(), maximumTime, registerAvatar(), theNucleus.
다음에 의해서 참조됨 : shootComposite(), shootParticle().
IAvatar * G4INCL::StandardPropagationModel::generateBinaryCollisionAvatar | ( | Particle *const | p1, |
Particle *const | p2 | ||
) |
Generate a two-particle avatar.
Generate a two-particle avatar, if all the appropriate conditions are met.
G4INCLStandardPropagationModel.cc 파일의 265 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::AlwaysLocalEnergy, backupParticle1, backupParticle2, currentTime, G4INCL::FirstCollisionLocalEnergy, G4INCL::Book::getAcceptedCollisions(), G4INCL::Store::getBook(), G4INCL::BinaryCollisionAvatar::getCutNNSquared(), G4INCL::Particle::getParticipantType(), G4INCL::Particle::getPosition(), G4INCL::Nucleus::getStore(), G4INCL::Nucleus::getSurfaceRadius(), getTime(), hadronizationTime, G4INCL::Particle::isMeson(), G4INCL::Particle::isNucleon(), G4INCL::Particle::isParticipant(), G4INCL::Particle::isPion(), G4INCL::Particle::isResonance(), G4INCL::ThreeVector::mag(), maximumTime, G4INCL::Particle::propagate(), G4INCL::KinematicsUtils::squareTotalEnergyInCM(), G4INCL::Math::tenPi, theLocalEnergyDeltaType, theLocalEnergyType, theNucleus, G4INCL::CrossSections::total(), G4INCL::KinematicsUtils::transformToLocalEnergyFrame().
다음에 의해서 참조됨 : generateCollisions(), generateUpdatedCollisions().
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.
particles | list of particles |
G4INCLStandardPropagationModel.cc 파일의 397 번째 라인에서 정의되었습니다.
다음을 참조함 : e, generateBinaryCollisionAvatar(), registerAvatar().
다음에 의해서 참조됨 : generateAllAvatars().
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.
particles | list of particles |
except | list of excluded particles |
G4INCLStandardPropagationModel.cc 파일의 407 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::UnorderedVector< T >::contains(), e, generateBinaryCollisionAvatar(), registerAvatar().
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.
particles | list of particles to (possibly) generate decays for |
G4INCLStandardPropagationModel.cc 파일의 465 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::DeltaDecayChannel::computeDecayTime(), G4INCL::SigmaZeroDecayChannel::computeDecayTime(), G4INCL::PionResonanceDecayChannel::computeDecayTime(), currentTime, e, maximumTime, registerAvatar(), G4INCL::SigmaZero, theNucleus.
다음에 의해서 참조됨 : generateAllAvatars(), propagate().
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().
updatedParticles | list of updated particles |
particles | list of particles |
G4INCLStandardPropagationModel.cc 파일의 378 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::UnorderedVector< T >::contains(), e, generateBinaryCollisionAvatar(), registerAvatar().
다음에 의해서 참조됨 : updateAvatars().
|
virtual |
Returns the current global time of the system.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 251 번째 라인에서 정의되었습니다.
다음을 참조함 : currentTime.
|
virtual |
Get the nucleus.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 79 번째 라인에서 정의되었습니다.
다음을 참조함 : 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.
aParticle | pointer to the particle |
G4INCLStandardPropagationModel.cc 파일의 341 번째 라인에서 정의되었습니다.
다음을 참조함 : 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.
다음에 의해서 참조됨 : generateAllAvatars(), updateAvatars().
|
virtual |
Get the current stopping time.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 242 번째 라인에서 정의되었습니다.
다음을 참조함 : 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.
G4INCLStandardPropagationModel.cc 파일의 358 번째 라인에서 정의되었습니다.
다음을 참조함 : currentTime, G4INCL::ThreeVector::dot(), e, G4INCL::Particle::getPosition(), G4INCL::Particle::getPropagationVelocity(), G4INCL::ThreeVector::mag2().
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
virtual |
Propagate all particles and return the first avatar.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 491 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::Store::clearAvatars(), currentTime, G4INCL::Store::findSmallestTime(), generateDecays(), G4INCL::Store::getBook(), G4INCL::FinalState::getCreatedParticles(), G4INCL::FinalState::getEnteringParticles(), G4INCL::FinalState::getModifiedParticles(), G4INCL::Nucleus::getStore(), G4INCL::IAvatar::getTime(), G4INCL::FinalState::getValidity(), INCL_ERROR, G4INCL::PauliBlockedFS, G4INCL::Book::setCurrentTime(), theNucleus, G4INCL::Store::timeStep(), updateAvatars().
void G4INCL::StandardPropagationModel::registerAvatar | ( | G4INCL::IAvatar * | anAvatar | ) |
Add an avatar to the storage.
G4INCLStandardPropagationModel.cc 파일의 260 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::Store::add(), G4INCL::Nucleus::getStore(), theNucleus.
다음에 의해서 참조됨 : generateAllAvatars(), generateCollisions(), generateDecays(), generateUpdatedCollisions(), updateAvatars().
|
virtual |
Set the nucleus for this propagation model.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 255 번째 라인에서 정의되었습니다.
다음을 참조함 : theNucleus.
Set the stopping time of the simulation.
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 246 번째 라인에서 정의되었습니다.
다음을 참조함 : maximumTime.
|
virtual |
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 84 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::Composite, shootComposite(), shootParticle(), G4INCL::ParticleSpecies::theType.
|
virtual |
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 168 번째 라인에서 정의되었습니다.
다음을 참조함 : G4INCL::Store::addParticleEntryAvatars(), G4INCL::Particle::boostVector(), G4INCL::CoulombDistortion::bringToSurface(), currentTime, firstAvatar, generateAllAvatars(), G4INCL::Particle::getA(), G4INCL::Cluster::getAngularMomentum(), G4INCL::Particle::getEnergy(), G4INCL::ParticleTable::getLargestNuclearRadius(), G4INCL::Particle::getMomentum(), G4INCL::Nucleus::getStore(), G4INCL::ParticleTable::getTableMass, G4INCL::Particle::getTransversePosition(), G4INCL::Nucleus::getUniverseRadius(), G4INCL::Particle::getZ(), INCL_DEBUG, G4INCL::ThreeVector::mag(), G4INCL::CoulombDistortion::maxImpactParameter(), maximumTime, position, G4INCL::Nucleus::setIncomingAngularMomentum(), G4INCL::Nucleus::setIncomingMomentum(), G4INCL::Nucleus::setInitialEnergy(), G4INCL::Nucleus::setNucleusNucleusCollision(), G4INCL::Cluster::setPosition(), G4INCL::Nucleus::setProjectileRemnant(), G4INCL::ProjectileRemnant::storeComponents(), theNucleus.
다음에 의해서 참조됨 : shoot().
|
virtual |
G4INCL::IPropagationModel를 구현.
G4INCLStandardPropagationModel.cc 파일의 91 번째 라인에서 정의되었습니다.
다음을 참조함 : 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::getSpecies(), G4INCL::Nucleus::getStore(), G4INCL::ParticleTable::getTableMass, G4INCL::ParticleTable::getTableParticleMass, G4INCL::Particle::getTransversePosition(), G4INCL::Nucleus::getUniverseRadius(), G4INCL::Particle::getZ(), INCL_DEBUG, G4INCL::Particle::isMeson(), kineticEnergy, G4INCL::ThreeVector::mag(), G4INCL::Particle::makeProjectileSpectator(), G4INCL::CoulombDistortion::maxImpactParameter(), maximumTime, position, G4INCL::Particle::setEnergy(), G4INCL::Particle::setINCLMass(), G4INCL::Nucleus::setIncomingAngularMomentum(), G4INCL::Nucleus::setIncomingMomentum(), G4INCL::Nucleus::setInitialEnergy(), G4INCL::Nucleus::setParticleNucleusCollision(), G4INCL::Particle::setPosition(), theNucleus.
다음에 의해서 참조됨 : shoot().
void G4INCL::StandardPropagationModel::updateAvatars | ( | const ParticleList & | particles | ) |
Update all avatars related to a particle.
G4INCLStandardPropagationModel.cc 파일의 427 번째 라인에서 정의되었습니다.
다음을 참조함 : e, generateUpdatedCollisions(), G4INCL::Store::getParticles(), getReflectionTime(), G4INCL::Nucleus::getStore(), maximumTime, registerAvatar(), theNucleus.
다음에 의해서 참조됨 : propagate().
|
private |
G4INCLStandardPropagationModel.hh 파일의 200 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
private |
G4INCLStandardPropagationModel.hh 파일의 200 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
private |
G4INCLStandardPropagationModel.hh 파일의 196 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar(), generateDecays(), getCurrentTime(), getReflectionTime(), getTime(), propagate(), shootComposite(), shootParticle().
|
private |
G4INCLStandardPropagationModel.hh 파일의 198 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : shootComposite(), shootParticle().
|
private |
G4INCLStandardPropagationModel.hh 파일의 197 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
private |
G4INCLStandardPropagationModel.hh 파일의 195 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateAllAvatars(), generateBinaryCollisionAvatar(), generateDecays(), getStoppingTime(), setStoppingTime(), shootComposite(), shootParticle(), updateAvatars().
|
private |
G4INCLStandardPropagationModel.hh 파일의 199 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
private |
G4INCLStandardPropagationModel.hh 파일의 199 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateBinaryCollisionAvatar().
|
private |
G4INCLStandardPropagationModel.hh 파일의 194 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : generateAllAvatars(), generateBinaryCollisionAvatar(), generateDecays(), getNucleus(), getReflectionTime(), propagate(), registerAvatar(), setNucleus(), shootComposite(), shootParticle(), updateAvatars(), ~StandardPropagationModel().