33 #define INCLXX_IN_GEANT4_MODE 1
37 #ifndef G4INCLClusteringModelIntercomparison_hh
38 #define G4INCLClusteringModelIntercomparison_hh 1
40 #ifdef INCLXX_IN_GEANT4_MODE
41 #define INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set 1
42 #endif // INCLXX_IN_GEANT4_MODE
74 isTargetSpectator(false),
82 isTargetSpectator(particle->isTargetSpectator()),
84 position(particle->getPosition()),
85 momentum(particle->getMomentum()),
86 energy(particle->getEnergy()),
87 potentialEnergy(particle->getPotentialEnergy())
120 static_cast<Particle*>(NULL));
154 #if defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask)
156 #elif defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set)
159 #error Unrecognized INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON. Allowed values are: Set, HashMask.
222 #if defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask)
223 typedef std::set<Hashing::HashType> HashContainer;
224 typedef HashContainer::iterator HashIterator;
228 #elif defined(INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set)
302 #error Unrecognized INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON. Allowed values are: Set, HashMask.
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)
void copy(std::vector< T > &main, const std::vector< T > &data)
An abstract interface to cluster formation model(s).
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2)
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.
static const G4double A[nN]
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]