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
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.
SortedNucleonConfiguration()
Constructor.
void swap(SortedNucleonConfiguration &rhs)
Helper method for the assignment operator.
void findClusterStartingFrom(const G4int oldA, const G4int oldZ)
Cluster coalescence algorithm used in the IAEA intercomparison.
const G4int maxClusterMass
ThreeVector runningMomenta[ParticleTable::maxClusterMass+1]
NucleonItem * nucleons
The real array.
Container for the relevant information.
Functions for hashing a collection of NucleonItems.
virtual G4bool clusterCanEscape(Nucleus const *const, Cluster const *const)
static const G4double limitCosEscapeAngle
static const G4double clusterPosFact2[ParticleTable::maxClusterMass+1]
Precomputed factor (1.0/A)^2.
G4double runningPotentials[ParticleTable::maxClusterMass+1]
virtual Cluster * getCluster(Nucleus *, Particle *)
SortedNucleonConfiguration & operator=(const SortedNucleonConfiguration &rhs)
Assignment operator.
ConsideredPartner * consideredPartners
Array of considered cluster partners.
static const G4int clusterZMin[ParticleTable::maxClusterMass+1]
Lower limit of Z for cluster of mass A.
void fill(NucleonItem *config, size_t n)
Fill configuration with array of NucleonItem.
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2)
static const G4int clusterZMax[ParticleTable::maxClusterMass+1]
Upper limit of Z for cluster of mass A.
static const G4double clusterPhaseSpaceCut[ParticleTable::maxClusterMass+1]
Phase-space parameters for cluster formation.
SortedNucleonConfiguration(const SortedNucleonConfiguration &rhs)
Copy constructor.
G4int runningConfiguration[ParticleTable::maxClusterMass]
const G4double neutronMass
Class for storing and comparing sorted nucleon configurations.
double A(double temperature)
ClusteringModelIntercomparison(Config const *const theConfig)
ConsideredPartner(Particle *const p)
G4int runningMaxClusterAlgorithmMass
G4bool operator<(const SortedNucleonConfiguration &rhs) const
Order operator for SortedNucleonConfiguration.
G4double getPhaseSpace(const G4int oldA, ConsideredPartner const &p)
G4double cascadingEnergyPool
~SortedNucleonConfiguration()
Destructor.
SortedNucleonConfigurationContainer checkedConfigurations[ParticleTable::maxClusterMass-2]
Array of containers for configurations that have already been checked.
size_t theSize
Size of the array.
const G4double protonMass
ThreeVector runningPositions[ParticleTable::maxClusterMass+1]
G4int maxMassConfigurationSkipping
Maximum mass for configuration storage.
std::set< SortedNucleonConfiguration > SortedNucleonConfigurationContainer
SortedNucleonConfigurationContainer::iterator SortedNucleonConfigurationIterator
static const G4double clusterPosFact[ParticleTable::maxClusterMass+1]
Precomputed factor 1.0/A.
G4double runningEnergies[ParticleTable::maxClusterMass+1]
virtual ~ClusteringModelIntercomparison()
Particle * candidateConfiguration[ParticleTable::maxClusterMass]
Best cluster configuration.
G4bool * isInRunningConfiguration
Array of flags for nucleons in the running configuration.