Geant4
10.00.p02
|
Cluster coalescence algorithm used in the IAEA intercomparison. More...
#include <G4INCLClusteringModelIntercomparison.hh>
Classes | |
class | SortedNucleonConfiguration |
Class for storing and comparing sorted nucleon configurations. More... | |
Public Member Functions | |
ClusteringModelIntercomparison (Config const *const theConfig) | |
virtual | ~ClusteringModelIntercomparison () |
virtual Cluster * | getCluster (Nucleus *, Particle *) |
Choose a cluster candidate to be produced. More... | |
virtual G4bool | clusterCanEscape (Nucleus const *const, Cluster const *const) |
Determine whether cluster can escape or not. More... | |
Public Member Functions inherited from G4INCL::IClusteringModel | |
IClusteringModel () | |
virtual | ~IClusteringModel () |
Private Types | |
typedef std::set < SortedNucleonConfiguration > | SortedNucleonConfigurationContainer |
typedef SortedNucleonConfigurationContainer::iterator | SortedNucleonConfigurationIterator |
Private Member Functions | |
void | findClusterStartingFrom (const G4int oldA, const G4int oldZ) |
G4double | getPhaseSpace (const G4int oldA, ConsideredPartner const &p) |
Static Private Attributes | |
static const G4int | clusterZMin [ParticleTable::maxClusterMass+1] = {0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3} |
Lower limit of Z for cluster of mass A. More... | |
static const G4int | clusterZMax [ParticleTable::maxClusterMass+1] = {0, 0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 7, 8} |
Upper limit of Z for cluster of mass A. More... | |
static const G4double | clusterPosFact [ParticleTable::maxClusterMass+1] |
Precomputed factor 1.0/A. More... | |
static const G4double | clusterPosFact2 [ParticleTable::maxClusterMass+1] |
Precomputed factor (1.0/A)^2. More... | |
static const G4double | clusterPhaseSpaceCut [ParticleTable::maxClusterMass+1] |
Phase-space parameters for cluster formation. More... | |
static const G4double | limitCosEscapeAngle = 0.7 |
Cluster coalescence algorithm used in the IAEA intercomparison.
Definition at line 92 of file G4INCLClusteringModelIntercomparison.hh.
|
private |
Definition at line 296 of file G4INCLClusteringModelIntercomparison.hh.
|
private |
Definition at line 297 of file G4INCLClusteringModelIntercomparison.hh.
|
inline |
Definition at line 94 of file G4INCLClusteringModelIntercomparison.hh.
References A, candidateConfiguration, clusterNMaxAll, clusterZMax, clusterZMaxAll, clusterZMin, G4INCL::ParticleTable::maxClusterMass, runningConfiguration, runningEnergies, runningMaxClusterAlgorithmMass, and runningPotentials.
|
inlinevirtual |
Definition at line 136 of file G4INCLClusteringModelIntercomparison.hh.
References consideredPartners, and isInRunningConfiguration.
|
virtual |
Determine whether cluster can escape or not.
Implements G4INCL::IClusteringModel.
Definition at line 373 of file G4INCLClusteringModelIntercomparison.cc.
References G4INCL::ThreeVector::dot(), G4INCL::Particle::getA(), G4INCL::Particle::getMomentum(), G4INCL::Particle::getPosition(), limitCosEscapeAngle, G4INCL::ThreeVector::mag2(), and pos.
|
private |
Definition at line 219 of file G4INCLClusteringModelIntercomparison.cc.
References candidateConfiguration, cascadingEnergyPool, checkedConfigurations, clusterNMaxAll, clusterPhaseSpaceCut, clusterPosFact, clusterZMax, clusterZMaxAll, clusterZMin, consideredPartners, G4INCL::ConsideredPartner::energy, G4INCL::ClusteringModelIntercomparison::SortedNucleonConfiguration::fill(), G4INCL::Particle::getA(), G4INCL::Nucleus::getDensity(), getPhaseSpace(), G4INCL::NuclearDensity::getProtonNuclearRadius(), G4INCL::ParticleTable::getRealMass(), G4INCL::Particle::getZ(), G4INCL::KinematicsUtils::invariantMass(), isInRunningConfiguration, G4INCL::ConsideredPartner::isTargetSpectator, G4INCL::ConsideredPartner::momentum, nConsidered, neutronMass, G4INCL::ConsideredPartner::position, G4INCL::ConsideredPartner::potentialEnergy, protonMass, runningConfiguration, runningEnergies, runningMaxClusterAlgorithmMass, runningMomenta, runningPositions, runningPotentials, selectedA, selectedZ, sqtot, theNucleus, and G4INCL::ConsideredPartner::Z.
Referenced by getCluster().
Choose a cluster candidate to be produced.
At this point we don't yet decide if it can pass through the Coulomb barrier or not.
Implements G4INCL::IClusteringModel.
Definition at line 79 of file G4INCLClusteringModelIntercomparison.cc.
References candidateConfiguration, cascadingEnergyPool, checkedConfigurations, clusterPhaseSpaceCut, clusterPosFact2, consideredPartners, G4INCL::ThreeVector::dot(), G4INCL::KinematicsUtils::energy(), findClusterStartingFrom(), G4INCL::Particle::getA(), G4INCL::Config::getClusterMaxMass(), G4INCL::Store::getConfig(), G4INCL::Nucleus::getDensity(), G4INCL::Particle::getEnergy(), G4INCL::Particle::getID(), G4INCL::Particle::getMomentum(), G4INCL::Store::getParticles(), G4INCL::Particle::getPosition(), G4INCL::Particle::getPotentialEnergy(), G4INCL::NuclearDensity::getProtonNuclearRadius(), G4INCL::Nucleus::getStore(), G4INCL::Nucleus::getUniverseRadius(), G4INCL::Particle::getZ(), isInRunningConfiguration, G4INCL::ThreeVector::mag(), maxMassConfigurationSkipping, G4INCL::Math::min(), nConsidered, nConsideredMax, runningEnergies, runningMaxClusterAlgorithmMass, runningMomenta, runningPositions, runningPotentials, selectedA, selectedZ, G4INCL::Particle::setPosition(), sqtot, and theNucleus.
|
private |
Definition at line 213 of file G4INCLClusteringModelIntercomparison.cc.
References clusterPosFact2, G4INCL::ConsideredPartner::momentum, G4INCL::ConsideredPartner::position, runningMomenta, and runningPositions.
Referenced by findClusterStartingFrom().
|
private |
Best cluster configuration.
This array contains pointers to the nucleons which make up the best cluster configuration that has been found so far.
Definition at line 220 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 167 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Array of containers for configurations that have already been checked.
Definition at line 300 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 165 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().
|
staticprivate |
Phase-space parameters for cluster formation.
Definition at line 181 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
staticprivate |
Precomputed factor 1.0/A.
Definition at line 175 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom().
|
staticprivate |
Precomputed factor (1.0/A)^2.
Definition at line 178 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by getCluster(), and getPhaseSpace().
|
staticprivate |
Upper limit of Z for cluster of mass A.
Definition at line 172 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().
|
private |
Definition at line 165 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().
|
staticprivate |
Lower limit of Z for cluster of mass A.
Definition at line 170 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().
|
private |
Array of considered cluster partners.
A dynamical array of ConsideredPartner objects is allocated on this variable and filled with pointers to nucleons which are eligible for clustering. We used to use a ParticleList for this purpose, but this made it very cumbersome to check whether nucleons had already been included in the running configuration. Using an array of Particle* coupled with a boolean mask (
Lesson learnt: when you need speed, nothing beats a good ol' array.
Definition at line 206 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), getCluster(), and ~ClusteringModelIntercomparison().
|
private |
Array of flags for nucleons in the running configuration.
Clustering partners that are already used in the running cluster configuration are flagged as "true" in this array.
Definition at line 213 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), getCluster(), and ~ClusteringModelIntercomparison().
|
staticprivate |
Definition at line 183 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by clusterCanEscape().
|
private |
Maximum mass for configuration storage.
Skipping configurations becomes inefficient above this mass.
Definition at line 309 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by getCluster().
|
private |
Definition at line 191 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 190 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by getCluster().
|
private |
Definition at line 186 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom().
|
private |
Definition at line 185 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom().
|
private |
Definition at line 157 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().
|
private |
Definition at line 150 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 188 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 151 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), getCluster(), and getPhaseSpace().
|
private |
Definition at line 152 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), getCluster(), and getPhaseSpace().
|
private |
Definition at line 153 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 162 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 162 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 163 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().
|
private |
Definition at line 148 of file G4INCLClusteringModelIntercomparison.hh.
Referenced by findClusterStartingFrom(), and getCluster().