Geant4  10.00.p02
G4INCL::INCL Class Reference

#include <G4INCLCascade.hh>

+ Collaboration diagram for G4INCL::INCL:

Classes

class  RecoilCMFunctor
 Class to adjust remnant recoil in the reaction CM system. More...
 
class  RecoilFunctor
 Class to adjust remnant recoil. More...
 

Public Member Functions

 INCL (Config const *const config)
 
 ~INCL ()
 
 INCL (const INCL &rhs)
 Dummy copy constructor to silence Coverity warning. More...
 
INCLoperator= (const INCL &rhs)
 Dummy assignment operator to silence Coverity warning. More...
 
G4bool prepareReaction (const ParticleSpecies &projectileSpecies, const G4double kineticEnergy, const G4int A, const G4int Z)
 
G4bool initializeTarget (const G4int A, const G4int Z)
 
const EventInfoprocessEvent ()
 
const EventInfoprocessEvent (ParticleSpecies const &projectileSpecies, const G4double kineticEnergy, const G4int targetA, const G4int targetZ)
 
void finalizeGlobalInfo ()
 
const GlobalInfogetGlobalInfo () const
 

Private Member Functions

void rescaleOutgoingForRecoil ()
 Rescale the energies of the outgoing particles. More...
 
G4bool continueCascade ()
 Stopping criterion for the cascade. More...
 
G4int makeProjectileRemnant ()
 Make a projectile pre-fragment out of geometrical spectators. More...
 
void makeCompoundNucleus ()
 Make a compound nucleus. More...
 
G4bool preCascade (ParticleSpecies const projectileSpecies, const G4double kineticEnergy)
 Initialise the cascade. More...
 
void cascade ()
 The actual cascade loop. More...
 
void postCascade ()
 Finalise the cascade and clean up. More...
 
void initMaxInteractionDistance (ParticleSpecies const &p, const G4double kineticEnergy)
 Initialise the maximum interaction distance. More...
 
void initUniverseRadius (ParticleSpecies const &p, const G4double kineticEnergy, const G4int A, const G4int Z)
 Initialize the universe radius. More...
 
void updateGlobalInfo ()
 Update global counters and other members of theGlobalInfo object. More...
 

Private Attributes

IPropagationModelpropagationModel
 
G4int theA
 
G4int theZ
 
G4bool targetInitSuccess
 
G4double maxImpactParameter
 
G4double maxUniverseRadius
 
G4double maxInteractionDistance
 
G4double fixedImpactParameter
 
CascadeActioncascadeAction
 
Config const *const theConfig
 
Nucleusnucleus
 
G4bool forceTransparent
 
EventInfo theEventInfo
 
GlobalInfo theGlobalInfo
 
G4int minRemnantSize
 Remnant size below which cascade stops. More...
 

Detailed Description

Definition at line 51 of file G4INCLCascade.hh.

Constructor & Destructor Documentation

G4INCL::INCL::INCL ( G4INCL::Config const *const  config)

Definition at line 87 of file G4INCLCascade.cc.

References G4INCL::GlobalInfo::Ap, G4INCL::GlobalInfo::At, cascadeAction, G4INCL::GlobalInfo::cascadeModel, G4INCL::GlobalInfo::deexcitationModel, G4INCL::GlobalInfo::Ep, fixedImpactParameter, G4INCL::Config::getCDPP(), G4INCL::Config::getClusterAlgorithm(), G4INCL::Config::getCoulombType(), G4INCL::Config::getCutNN(), G4INCL::Config::getDeExcitationString(), G4INCL::Config::getImpactParameter(), G4INCL::Config::getLocalEnergyBBType(), G4INCL::Config::getLocalEnergyPiType(), G4INCL::Config::getLogFileName(), G4INCL::Config::getPauliType(), G4INCL::Config::getProjectileKineticEnergy(), G4INCL::Config::getProjectileSpecies(), G4INCL::Config::getRandomSeeds(), G4INCL::Config::getTargetA(), G4INCL::Config::getTargetZ(), G4INCL::Config::getVerbosity(), G4INCL::Config::getVersionString(), G4INCL::GlobalPauli, INCL_INFO, G4INCL::ParticleTable::initialize(), G4INCL::Logger::initVerbosityLevelFromEnvvar(), G4INCL::IntercomparisonClusterAlgorithm, G4INCL::NonRelativisticCoulomb, G4INCL::NoPauli, propagationModel, G4INCL::Pauli::setBlocker(), G4INCL::Pauli::setCDPP(), G4INCL::Clustering::setClusteringModel(), G4INCL::CoulombDistortion::setCoulomb(), G4INCL::CrossSections::setCrossSections(), G4INCL::BinaryCollisionAvatar::setCutNN(), G4INCL::Random::setGenerator(), G4INCL::StatisticalPauli, G4INCL::StrictPauli, G4INCL::StrictStatisticalPauli, G4INCL::ParticleSpecies::theA, theConfig, theGlobalInfo, G4INCL::ParticleSpecies::theZ, G4INCL::GlobalInfo::Zp, and G4INCL::GlobalInfo::Zt.

+ Here is the call graph for this function:

G4INCL::INCL::INCL ( const INCL rhs)

Dummy copy constructor to silence Coverity warning.

Member Function Documentation

void G4INCL::INCL::cascade ( )
private

The actual cascade loop.

Definition at line 347 of file G4INCLCascade.cc.

References G4INCL::CascadeAction::afterAvatarAction(), G4INCL::CascadeAction::afterPropagationAction(), G4INCL::Nucleus::applyFinalState(), G4INCL::CascadeAction::beforeAvatarAction(), G4INCL::CascadeAction::beforePropagationAction(), cascadeAction, continueCascade(), G4INCL::IAvatar::getFinalState(), nucleus, G4INCL::IPropagationModel::propagate(), and propagationModel.

Referenced by processEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4INCL::INCL::continueCascade ( )
private

Stopping criterion for the cascade.

Returns true if the cascade should continue, and false if any of the stopping criteria is satisfied.

Definition at line 680 of file G4INCLCascade.cc.

References G4INCL::Particle::getA(), G4INCL::Store::getBook(), G4INCL::Book::getCascading(), G4INCL::IPropagationModel::getCurrentTime(), G4INCL::Store::getIncomingParticles(), G4INCL::IPropagationModel::getStoppingTime(), G4INCL::Nucleus::getStore(), G4INCL::Nucleus::getTryCompoundNucleus(), INCL_DEBUG, minRemnantSize, nucleus, and propagationModel.

Referenced by cascade().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const GlobalInfo& G4INCL::INCL::getGlobalInfo ( ) const
inline

Definition at line 81 of file G4INCLCascade.hh.

References theGlobalInfo.

G4bool G4INCL::INCL::initializeTarget ( const G4int  A,
const G4int  Z 
)

Definition at line 257 of file G4INCLCascade.cc.

References G4INCL::Store::getBook(), G4INCL::Nucleus::getStore(), G4INCL::Nucleus::initializeParticles(), maxUniverseRadius, nucleus, propagationModel, G4INCL::Book::reset(), G4INCL::IPropagationModel::setNucleus(), and theConfig.

Referenced by prepareReaction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::INCL::initMaxInteractionDistance ( ParticleSpecies const &  p,
const G4double  kineticEnergy 
)
private

Initialise the maximum interaction distance.

Used in forced CN events.

Definition at line 770 of file G4INCLCascade.cc.

References G4INCL::Composite, G4INCL::ParticleTable::getNuclearRadius(), INCL_DEBUG, G4INCL::CrossSections::interactionDistanceNN(), G4INCL::Math::max(), maxInteractionDistance, G4INCL::Neutron, G4INCL::Proton, theA, G4INCL::ParticleSpecies::theType, and theZ.

Referenced by prepareReaction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::INCL::initUniverseRadius ( ParticleSpecies const &  p,
const G4double  kineticEnergy,
const G4int  A,
const G4int  Z 
)
private

Initialize the universe radius.

Used for determining the energy-dependent size of the volume particles live in.

Definition at line 786 of file G4INCLCascade.cc.

References G4INCL::Composite, G4INCL::IsotopicDistribution::getIsotopes(), G4INCL::ParticleTable::getMaximumNuclearRadius(), G4INCL::ParticleTable::getNaturalIsotopicDistribution(), INCL_DEBUG, G4INCL::CrossSections::interactionDistanceNN(), G4INCL::CrossSections::interactionDistancePiN(), G4INCL::Math::max(), maxUniverseRadius, G4INCL::Math::min(), G4INCL::Neutron, G4INCL::PiMinus, G4INCL::PiPlus, G4INCL::PiZero, G4INCL::Proton, and G4INCL::ParticleSpecies::theType.

Referenced by prepareReaction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::INCL::makeCompoundNucleus ( )
private

Make a compound nucleus.

Selects the projectile components that can actually enter their potential and puts them into the target nucleus. If the CN excitation energy turns out to be negative, the event is considered a transparent. This method modifies theEventInfo and theGlobalInfo.

Definition at line 482 of file G4INCLCascade.cc.

References G4INCL::Store::addParticleEntryAvatar(), G4INCL::Nucleus::applyFinalState(), G4INCL::EventInfo::At, G4INCL::Store::clearIncoming(), G4INCL::Store::clearOutgoing(), G4INCL::EventInfo::clusterDecay, G4INCL::Nucleus::decayMe(), G4INCL::Nucleus::decayOutgoingClusters(), G4INCL::Nucleus::decayOutgoingDeltas(), G4INCL::Intersection::exists, G4INCL::Nucleus::fillEventInfo(), G4INCL::Nucleus::finalizeProjectileRemnant(), G4INCL::EventInfo::forcedDeltasOutside, forceTransparent, G4INCL::IPropagationModel::getCurrentTime(), G4INCL::IntersectionFactory::getEarlierTrajectoryIntersection(), G4INCL::Particle::getEnergy(), G4INCL::IAvatar::getFinalState(), G4INCL::Nucleus::getIncomingAngularMomentum(), G4INCL::Nucleus::getIncomingMomentum(), G4INCL::Particle::getMomentum(), G4INCL::Store::getOutgoingParticles(), G4INCL::Cluster::getParticles(), G4INCL::Nucleus::getProjectileRemnant(), G4INCL::Nucleus::getStore(), G4INCL::ParticleTable::getTableMass, G4INCL::FinalState::getValidity(), G4INCL::ThreeVector::getX(), G4INCL::ThreeVector::getY(), G4INCL::ThreeVector::getZ(), INCL_DEBUG, G4INCL::Nucleus::isNucleusNucleusCollision(), G4INCL::ThreeVector::mag2(), maxInteractionDistance, G4INCL::NoEnergyConservationFS, nucleus, G4INCL::ParticleBelowFermiFS, G4INCL::ParticleBelowZeroFS, G4INCL::PauliBlockedFS, propagationModel, G4INCL::ProjectileRemnant::reset(), G4INCL::Cluster::setA(), G4INCL::Particle::setEnergy(), G4INCL::Cluster::setExcitationEnergy(), G4INCL::Particle::setMass(), G4INCL::Particle::setMomentum(), G4INCL::Cluster::setSpin(), G4INCL::Cluster::setZ(), G4INCL::shuffleComponentsHelper(), theEventInfo, G4INCL::ValidFS, and G4INCL::EventInfo::Zt.

Referenced by postCascade().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4INCL::INCL::makeProjectileRemnant ( )
private

Make a projectile pre-fragment out of geometrical spectators.

The projectile pre-fragment is assigned an excitation energy given by $E_\mathrm{sp}-E_\mathrm{i,A}$, where $E_\mathrm{sp}$ is the sum of the energies of the spectator particles, and $E_\mathrm{i,A}$ is the sum of the smallest $A$ particle energies initially present in the projectile, $A$ being the mass of the projectile pre-fragment. This is equivalent to assuming that the excitation energy is given by the sum of the transitions of all excited projectile components to the "holes" left by the participants.

This method can modify the outgoing list and adds a projectile pre-fragment.

Returns
the number of dynamical spectators that were merged back in the projectile

Definition at line 734 of file G4INCLCascade.cc.

References G4INCL::ProjectileRemnant::addAllDynamicalSpectators(), G4INCL::Store::addToOutgoing(), G4INCL::Store::extractDynamicalSpectators(), G4INCL::Nucleus::finalizeProjectileRemnant(), G4INCL::IPropagationModel::getCurrentTime(), G4INCL::Cluster::getParticles(), G4INCL::Nucleus::getProjectileRemnant(), G4INCL::Nucleus::getStore(), nucleus, and propagationModel.

Referenced by postCascade().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

INCL& G4INCL::INCL::operator= ( const INCL rhs)

Dummy assignment operator to silence Coverity warning.

void G4INCL::INCL::postCascade ( )
private

Finalise the cascade and clean up.

Definition at line 386 of file G4INCLCascade.cc.

References G4INCL::Store::clearIncoming(), G4INCL::EventInfo::clusterDecay, G4INCL::Nucleus::computeExcitationEnergy(), G4INCL::Nucleus::computeRecoilKinematics(), G4INCL::Nucleus::containsDeltas(), G4INCL::Nucleus::decayInsideDeltas(), G4INCL::Nucleus::decayMe(), G4INCL::Nucleus::decayOutgoingClusters(), G4INCL::Nucleus::decayOutgoingDeltas(), G4INCL::Store::deleteIncoming(), G4INCL::EventInfo::deltasInside, G4INCL::CoulombDistortion::distortOut(), G4INCL::Nucleus::fillEventInfo(), G4INCL::EventInfo::forcedDeltasInside, G4INCL::EventInfo::forcedDeltasOutside, forceTransparent, G4INCL::IPropagationModel::getCurrentTime(), G4INCL::Nucleus::getExcitationEnergy(), G4INCL::Store::getOutgoingParticles(), G4INCL::Cluster::getParticles(), G4INCL::Nucleus::getProjectileRemnant(), G4INCL::Nucleus::getStore(), G4INCL::Nucleus::getTryCompoundNucleus(), G4INCL::Nucleus::hasRemnant(), INCL_DEBUG, INCL_WARN, G4INCL::Nucleus::isEventTransparent(), makeCompoundNucleus(), makeProjectileRemnant(), nucleus, G4INCL::EventInfo::nUnmergedSpectators, propagationModel, rescaleOutgoingForRecoil(), G4INCL::Cluster::setExcitationEnergy(), G4INCL::EventInfo::stoppingTime, theEventInfo, G4INCL::EventInfo::transparent, and G4INCL::Nucleus::useFusionKinematics().

Referenced by processEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4INCL::INCL::preCascade ( ParticleSpecies const  projectileSpecies,
const G4double  kineticEnergy 
)
private
G4bool G4INCL::INCL::prepareReaction ( const ParticleSpecies projectileSpecies,
const G4double  kineticEnergy,
const G4int  A,
const G4int  Z 
)

Definition at line 210 of file G4INCLCascade.cc.

References A, G4INCL::Composite, G4INCL::ParticleTable::drawRandomNaturalIsotope(), forceTransparent, G4INCL::GlobalInfo::geometricCrossSection, INCL_DEBUG, INCL_ERROR, initializeTarget(), initMaxInteractionDistance(), initUniverseRadius(), G4INCL::Config::isNaturalTarget(), maxImpactParameter, G4INCL::CoulombDistortion::maxImpactParameter(), G4INCL::Math::min(), minRemnantSize, nucleus, G4INCL::Math::tenPi, G4INCL::ParticleSpecies::theA, theA, theConfig, theGlobalInfo, G4INCL::ParticleSpecies::theType, G4INCL::ParticleSpecies::theZ, and theZ.

Referenced by processEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const EventInfo& G4INCL::INCL::processEvent ( )
inline

Definition at line 65 of file G4INCLCascade.hh.

References G4INCL::Config::getProjectileKineticEnergy(), G4INCL::Config::getProjectileSpecies(), G4INCL::Config::getTargetA(), G4INCL::Config::getTargetZ(), and theConfig.

Referenced by G4INCLXXInterface::ApplyYourself().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const EventInfo & G4INCL::INCL::processEvent ( ParticleSpecies const &  projectileSpecies,
const G4double  kineticEnergy,
const G4int  targetA,
const G4int  targetZ 
)

Definition at line 268 of file G4INCLCascade.cc.

References G4INCL::CascadeAction::afterCascadeAction(), G4INCL::CascadeAction::beforeCascadeAction(), cascade(), cascadeAction, INCL_WARN, nucleus, postCascade(), preCascade(), prepareReaction(), propagationModel, targetInitSuccess, theEventInfo, G4INCL::EventInfo::transparent, and updateGlobalInfo().

+ Here is the call graph for this function:

void G4INCL::INCL::rescaleOutgoingForRecoil ( )
private

Rescale the energies of the outgoing particles.

Allow for the remnant recoil energy by rescaling the energy (and momenta) of the outgoing particles.

Definition at line 625 of file G4INCLCascade.cc.

References INCL_WARN, nucleus, G4INCL::RootFinder::solve(), G4INCL::RootFinder::Solution::success, theEventInfo, and G4INCL::RootFinder::Solution::x.

Referenced by postCascade().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4INCL::INCL::updateGlobalInfo ( )
private

Update global counters and other members of theGlobalInfo object.

Definition at line 815 of file G4INCLCascade.cc.

References forceTransparent, G4INCL::Nucleus::getTryCompoundNucleus(), G4INCL::EventInfo::nCascadeParticles, G4INCL::GlobalInfo::nCompleteFusion, G4INCL::GlobalInfo::nEnergyViolationInteraction, G4INCL::EventInfo::nEnergyViolationInteraction, G4INCL::GlobalInfo::nForcedCompoundNucleus, G4INCL::GlobalInfo::nForcedTransparents, G4INCL::GlobalInfo::nNucleonAbsorptions, G4INCL::GlobalInfo::nPionAbsorptions, G4INCL::GlobalInfo::nShots, G4INCL::GlobalInfo::nTransparents, G4INCL::EventInfo::nucleonAbsorption, nucleus, G4INCL::EventInfo::pionAbsorption, theEventInfo, theGlobalInfo, and G4INCL::EventInfo::transparent.

Referenced by processEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

CascadeAction* G4INCL::INCL::cascadeAction
private

Definition at line 91 of file G4INCLCascade.hh.

Referenced by cascade(), INCL(), processEvent(), and ~INCL().

G4double G4INCL::INCL::fixedImpactParameter
private

Definition at line 90 of file G4INCLCascade.hh.

Referenced by INCL(), and preCascade().

G4bool G4INCL::INCL::forceTransparent
private
G4double G4INCL::INCL::maxImpactParameter
private

Definition at line 87 of file G4INCLCascade.hh.

Referenced by preCascade(), and prepareReaction().

G4double G4INCL::INCL::maxInteractionDistance
private

Definition at line 89 of file G4INCLCascade.hh.

Referenced by initMaxInteractionDistance(), and makeCompoundNucleus().

G4double G4INCL::INCL::maxUniverseRadius
private

Definition at line 88 of file G4INCLCascade.hh.

Referenced by initializeTarget(), and initUniverseRadius().

G4int G4INCL::INCL::minRemnantSize
private

Remnant size below which cascade stops.

Definition at line 100 of file G4INCLCascade.hh.

Referenced by continueCascade(), and prepareReaction().

G4bool G4INCL::INCL::targetInitSuccess
private

Definition at line 86 of file G4INCLCascade.hh.

Referenced by processEvent().

G4int G4INCL::INCL::theA
private

Definition at line 85 of file G4INCLCascade.hh.

Referenced by initMaxInteractionDistance(), and prepareReaction().

Config const* const G4INCL::INCL::theConfig
private

Definition at line 92 of file G4INCLCascade.hh.

Referenced by INCL(), initializeTarget(), prepareReaction(), processEvent(), and ~INCL().

EventInfo G4INCL::INCL::theEventInfo
private
GlobalInfo G4INCL::INCL::theGlobalInfo
private
G4int G4INCL::INCL::theZ
private

Definition at line 85 of file G4INCLCascade.hh.

Referenced by initMaxInteractionDistance(), and prepareReaction().


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