ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4INCL::ClusteringModelIntercomparison Class Reference

Cluster coalescence algorithm used in the IAEA intercomparison. More...

#include <geant4/tree/geant4-10.6-release/source/processes/hadronic/models/inclxx/incl_physics/include/G4INCLClusteringModelIntercomparison.hh>

+ Inheritance diagram for G4INCL::ClusteringModelIntercomparison:
+ Collaboration diagram for G4INCL::ClusteringModelIntercomparison:

Classes

class  SortedNucleonConfiguration
 Class for storing and comparing sorted nucleon configurations. More...
 

Public Member Functions

 ClusteringModelIntercomparison (Config const *const theConfig)
 
virtual ~ClusteringModelIntercomparison ()
 
virtual ClustergetCluster (Nucleus *, Particle *)
 
virtual G4bool clusterCanEscape (Nucleus const *const, Cluster const *const)
 
- 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, const G4int oldS)
 
G4double getPhaseSpace (const G4int oldA, ConsideredPartner const &p)
 

Private Attributes

NucleustheNucleus
 
G4double runningEnergies [ParticleTable::maxClusterMass+1]
 
ThreeVector runningMomenta [ParticleTable::maxClusterMass+1]
 
ThreeVector runningPositions [ParticleTable::maxClusterMass+1]
 
G4double runningPotentials [ParticleTable::maxClusterMass+1]
 
G4int runningConfiguration [ParticleTable::maxClusterMass]
 
G4int selectedA
 
G4int selectedZ
 
G4int selectedS
 
G4double sqtot
 
G4int clusterZMaxAll
 
G4int clusterNMaxAll
 
G4double cascadingEnergyPool
 
const G4double protonMass
 
const G4double neutronMass
 
const G4double lambdaMass
 
G4int runningMaxClusterAlgorithmMass
 
G4int nConsideredMax
 
G4int nConsidered
 
ConsideredPartnerconsideredPartners
 Array of considered cluster partners.
 
G4boolisInRunningConfiguration
 Array of flags for nucleons in the running configuration.
 
ParticlecandidateConfiguration [ParticleTable::maxClusterMass]
 Best cluster configuration.
 
SortedNucleonConfigurationContainer checkedConfigurations [ParticleTable::maxClusterMass-2]
 Array of containers for configurations that have already been checked.
 
G4int maxMassConfigurationSkipping
 Maximum mass for configuration storage.
 

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.
 
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.
 
static const G4double clusterPosFact [ParticleTable::maxClusterMass+1]
 Precomputed factor 1.0/A.
 
static const G4double clusterPosFact2 [ParticleTable::maxClusterMass+1]
 Precomputed factor (1.0/A)^2.
 
static const G4double clusterPhaseSpaceCut [ParticleTable::maxClusterMass+1]
 Phase-space parameters for cluster formation.
 
static const G4double limitCosEscapeAngle = 0.7
 

Detailed Description

Cluster coalescence algorithm used in the IAEA intercomparison.

Definition at line 96 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 96 of file G4INCLClusteringModelIntercomparison.hh

Member Typedef Documentation

typedef SortedNucleonConfigurationContainer::iterator G4INCL::ClusteringModelIntercomparison::SortedNucleonConfigurationIterator
private

Definition at line 304 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 304 of file G4INCLClusteringModelIntercomparison.hh

Constructor & Destructor Documentation

G4INCL::ClusteringModelIntercomparison::ClusteringModelIntercomparison ( Config const *const  theConfig)
inline

Definition at line 98 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 98 of file G4INCLClusteringModelIntercomparison.hh

References A(), candidateConfiguration, clusterNMaxAll, clusterZMax, clusterZMaxAll, clusterZMin, G4INCL::ParticleTable::maxClusterMass, runningConfiguration, runningEnergies, runningMaxClusterAlgorithmMass, and runningPotentials.

+ Here is the call graph for this function:

virtual G4INCL::ClusteringModelIntercomparison::~ClusteringModelIntercomparison ( )
inlinevirtual

Definition at line 142 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 142 of file G4INCLClusteringModelIntercomparison.hh

References consideredPartners, and isInRunningConfiguration.

Member Function Documentation

G4bool G4INCL::ClusteringModelIntercomparison::clusterCanEscape ( Nucleus const *  const,
Cluster const *  const 
)
virtual

Determine whether cluster can escape or not.

Implements G4INCL::IClusteringModel.

Definition at line 380 of file G4INCLClusteringModelIntercomparison.cc.

View newest version in sPHENIX GitHub at line 380 of file G4INCLClusteringModelIntercomparison.cc

References G4INCL::ThreeVector::dot(), G4INCL::Particle::getA(), G4INCL::Particle::getMomentum(), G4INCL::Particle::getPosition(), G4INCL::Particle::getS(), limitCosEscapeAngle, G4INCL::ThreeVector::mag2(), mom, and pos().

+ Here is the call graph for this function:

void G4INCL::ClusteringModelIntercomparison::findClusterStartingFrom ( const G4int  oldA,
const G4int  oldZ,
const G4int  oldS 
)
private

Definition at line 222 of file G4INCLClusteringModelIntercomparison.cc.

View newest version in sPHENIX GitHub at line 222 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, lambdaMass, G4INCL::ConsideredPartner::momentum, nConsidered, neutronMass, particle, G4INCL::ConsideredPartner::position, G4INCL::ConsideredPartner::potentialEnergy, protonMass, runningConfiguration, runningEnergies, runningMaxClusterAlgorithmMass, runningMomenta, runningPositions, runningPotentials, G4INCL::ConsideredPartner::S, selectedA, selectedS, selectedZ, sqtot, theNucleus, and G4INCL::ConsideredPartner::Z.

Referenced by getCluster().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Cluster * G4INCL::ClusteringModelIntercomparison::getCluster ( Nucleus ,
Particle  
)
virtual
G4double G4INCL::ClusteringModelIntercomparison::getPhaseSpace ( const G4int  oldA,
ConsideredPartner const &  p 
)
private

Definition at line 216 of file G4INCLClusteringModelIntercomparison.cc.

View newest version in sPHENIX GitHub at line 216 of file G4INCLClusteringModelIntercomparison.cc

References clusterPosFact2, G4INCL::ConsideredPartner::momentum, G4INCL::ConsideredPartner::position, runningMomenta, and runningPositions.

Referenced by findClusterStartingFrom().

+ Here is the caller graph for this function:

Member Data Documentation

Particle* G4INCL::ClusteringModelIntercomparison::candidateConfiguration[ParticleTable::maxClusterMass]
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 227 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 227 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().

G4double G4INCL::ClusteringModelIntercomparison::cascadingEnergyPool
private

Definition at line 173 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 173 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

SortedNucleonConfigurationContainer G4INCL::ClusteringModelIntercomparison::checkedConfigurations[ParticleTable::maxClusterMass-2]
private

Array of containers for configurations that have already been checked.

Definition at line 307 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 307 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

G4int G4INCL::ClusteringModelIntercomparison::clusterNMaxAll
private

Definition at line 171 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 171 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().

const G4double G4INCL::ClusteringModelIntercomparison::clusterPhaseSpaceCut
staticprivate
Initial value:
= {0.0, 70000.0, 180000.0,
90000.0, 90000.0,
128941.0 ,145607.0,
161365.0, 176389.0,
190798.0, 204681.0,
218109.0, 231135.0}

Phase-space parameters for cluster formation.

Definition at line 187 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 187 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

const G4double G4INCL::ClusteringModelIntercomparison::clusterPosFact
staticprivate
Initial value:
= {0.0, 1.0, 0.5,
0.33333, 0.25,
0.2, 0.16667,
0.14286, 0.125,
0.11111, 0.1,
0.09091, 0.083333}

Precomputed factor 1.0/A.

Definition at line 181 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 181 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom().

const G4double G4INCL::ClusteringModelIntercomparison::clusterPosFact2
staticprivate
Initial value:
= {0.0, 1.0, 0.25,
0.11111, 0.0625,
0.04, 0.0277778,
0.020408, 0.015625,
0.012346, 0.01,
0.0082645, 0.0069444}

Precomputed factor (1.0/A)^2.

Definition at line 184 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 184 of file G4INCLClusteringModelIntercomparison.hh

Referenced by getCluster(), and getPhaseSpace().

const G4int G4INCL::ClusteringModelIntercomparison::clusterZMax = {0, 0, 1, 2, 3, 3, 5, 5, 6, 6, 7, 7, 8}
staticprivate

Upper limit of Z for cluster of mass A.

Definition at line 178 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 178 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().

G4int G4INCL::ClusteringModelIntercomparison::clusterZMaxAll
private

Definition at line 171 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 171 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().

const G4int G4INCL::ClusteringModelIntercomparison::clusterZMin = {0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3}
staticprivate

Lower limit of Z for cluster of mass A.

Definition at line 176 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 176 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().

ConsideredPartner* G4INCL::ClusteringModelIntercomparison::consideredPartners
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 (

See Also
{isInRunningConfiguration}) reduces the overhead by a large amount. Running times for 1-GeV p+Pb208 went down by almost 30% (!).

Lesson learnt: when you need speed, nothing beats a good ol' array.

Definition at line 213 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 213 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), getCluster(), and ~ClusteringModelIntercomparison().

G4bool* G4INCL::ClusteringModelIntercomparison::isInRunningConfiguration
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 220 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 220 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), getCluster(), and ~ClusteringModelIntercomparison().

const G4double G4INCL::ClusteringModelIntercomparison::lambdaMass
private

Definition at line 193 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 193 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom().

const G4double G4INCL::ClusteringModelIntercomparison::limitCosEscapeAngle = 0.7
staticprivate

Definition at line 189 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 189 of file G4INCLClusteringModelIntercomparison.hh

Referenced by clusterCanEscape().

G4int G4INCL::ClusteringModelIntercomparison::maxMassConfigurationSkipping
private

Maximum mass for configuration storage.

Skipping configurations becomes inefficient above this mass.

Definition at line 316 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 316 of file G4INCLClusteringModelIntercomparison.hh

Referenced by getCluster().

G4int G4INCL::ClusteringModelIntercomparison::nConsidered
private

Definition at line 198 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 198 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

G4int G4INCL::ClusteringModelIntercomparison::nConsideredMax
private

Definition at line 197 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 197 of file G4INCLClusteringModelIntercomparison.hh

Referenced by getCluster().

const G4double G4INCL::ClusteringModelIntercomparison::neutronMass
private

Definition at line 192 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 192 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom().

const G4double G4INCL::ClusteringModelIntercomparison::protonMass
private

Definition at line 191 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 191 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom().

G4int G4INCL::ClusteringModelIntercomparison::runningConfiguration[ParticleTable::maxClusterMass]
private

Definition at line 163 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 163 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), and findClusterStartingFrom().

G4double G4INCL::ClusteringModelIntercomparison::runningEnergies[ParticleTable::maxClusterMass+1]
private

Definition at line 156 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 156 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().

G4int G4INCL::ClusteringModelIntercomparison::runningMaxClusterAlgorithmMass
private

Definition at line 195 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 195 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().

ThreeVector G4INCL::ClusteringModelIntercomparison::runningMomenta[ParticleTable::maxClusterMass+1]
private

Definition at line 157 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 157 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), getCluster(), and getPhaseSpace().

ThreeVector G4INCL::ClusteringModelIntercomparison::runningPositions[ParticleTable::maxClusterMass+1]
private

Definition at line 158 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 158 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), getCluster(), and getPhaseSpace().

G4double G4INCL::ClusteringModelIntercomparison::runningPotentials[ParticleTable::maxClusterMass+1]
private

Definition at line 159 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 159 of file G4INCLClusteringModelIntercomparison.hh

Referenced by ClusteringModelIntercomparison(), findClusterStartingFrom(), and getCluster().

G4int G4INCL::ClusteringModelIntercomparison::selectedA
private

Definition at line 168 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 168 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

G4int G4INCL::ClusteringModelIntercomparison::selectedS
private

Definition at line 168 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 168 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom().

G4int G4INCL::ClusteringModelIntercomparison::selectedZ
private

Definition at line 168 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 168 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

G4double G4INCL::ClusteringModelIntercomparison::sqtot
private

Definition at line 169 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 169 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().

Nucleus* G4INCL::ClusteringModelIntercomparison::theNucleus
private

Definition at line 154 of file G4INCLClusteringModelIntercomparison.hh.

View newest version in sPHENIX GitHub at line 154 of file G4INCLClusteringModelIntercomparison.hh

Referenced by findClusterStartingFrom(), and getCluster().


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