34 #define INCLXX_IN_GEANT4_MODE 1
38 #ifndef G4INCLClusteringModelIntercomparison_hh
39 #define G4INCLClusteringModelIntercomparison_hh 1
41 #ifdef INCLXX_IN_GEANT4_MODE
42 #define INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set 1
43 #endif // INCLXX_IN_GEANT4_MODE
75 isTargetSpectator(false),
83 isTargetSpectator(particle->isTargetSpectator()),
85 position(particle->getPosition()),
86 momentum(particle->getMomentum()),
87 energy(particle->getEnergy()),
88 potentialEnergy(particle->getPotentialEnergy())
121 static_cast<Particle*>(NULL));
155 #if defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask)
157 #elif defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set) || defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_None)
160 #error Unrecognized INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON. Allowed values are: Set, HashMask, None.
223 #if defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask)
224 typedef std::set<Hashing::HashType> HashContainer;
225 typedef HashContainer::iterator HashIterator;
229 #elif defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set)
302 #elif !defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_None)
303 #error Unrecognized INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON. Allowed values are: Set, HashMask, None.
virtual G4bool clusterCanEscape(Nucleus const *const, Cluster const *const)
Determine whether cluster can escape or not.
static const G4double clusterPosFact[ParticleTable::maxClusterMass+1]
Precomputed factor 1.0/A.
SortedNucleonConfigurationContainer::iterator SortedNucleonConfigurationIterator
The INCL configuration object.
SortedNucleonConfiguration & operator=(const SortedNucleonConfiguration &rhs)
Assignment operator.
ClusteringModelIntercomparison(Config const *const theConfig)
G4double runningPotentials[ParticleTable::maxClusterMass+1]
G4int maxMassConfigurationSkipping
Maximum mass for configuration storage.
const G4double neutronMass
G4double runningEnergies[ParticleTable::maxClusterMass+1]
NucleonItem * nucleons
The real array.
static const G4int clusterZMin[ParticleTable::maxClusterMass+1]
Lower limit of Z for cluster of mass A.
SortedNucleonConfigurationContainer checkedConfigurations[ParticleTable::maxClusterMass-2]
Array of containers for configurations that have already been checked.
void swap(SortedNucleonConfiguration &rhs)
Helper method for the assignment operator.
Particle * candidateConfiguration[ParticleTable::maxClusterMass]
Best cluster configuration.
Cluster is a particle (inherits from the Particle class) that is actually a collection of elementary ...
size_t theSize
Size of the array.
G4double getPhaseSpace(const G4int oldA, ConsideredPartner const &p)
ConsideredPartner(Particle *const p)
std::set< SortedNucleonConfiguration > SortedNucleonConfigurationContainer
void findClusterStartingFrom(const G4int oldA, const G4int oldZ)
An abstract interface to cluster formation model(s).
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2)
double A(double temperature)
G4bool operator<(const SortedNucleonConfiguration &rhs) const
Order operator for SortedNucleonConfiguration.
const G4int maxClusterMass
static const G4double clusterPhaseSpaceCut[ParticleTable::maxClusterMass+1]
Phase-space parameters for cluster formation.
G4bool * isInRunningConfiguration
Array of flags for nucleons in the running configuration.
virtual ~ClusteringModelIntercomparison()
ThreeVector runningPositions[ParticleTable::maxClusterMass+1]
G4int runningConfiguration[ParticleTable::maxClusterMass]
static const G4int clusterZMax[ParticleTable::maxClusterMass+1]
Upper limit of Z for cluster of mass A.
Class for storing and comparing sorted nucleon configurations.
SortedNucleonConfiguration(const SortedNucleonConfiguration &rhs)
Copy constructor.
Container for the relevant information.
virtual Cluster * getCluster(Nucleus *, Particle *)
Choose a cluster candidate to be produced.
G4double cascadingEnergyPool
void fill(NucleonItem *config, size_t n)
Fill configuration with array of NucleonItem.
SortedNucleonConfiguration()
Constructor.
static const G4double limitCosEscapeAngle
const G4double protonMass
ConsideredPartner * consideredPartners
Array of considered cluster partners.
G4int runningMaxClusterAlgorithmMass
Functions for hashing a collection of NucleonItems.
Cluster coalescence algorithm used in the IAEA intercomparison.
static const G4double clusterPosFact2[ParticleTable::maxClusterMass+1]
Precomputed factor (1.0/A)^2.
~SortedNucleonConfiguration()
Destructor.
ThreeVector runningMomenta[ParticleTable::maxClusterMass+1]