Geant4  10.01.p03
G4Fancy3DNucleus Class Reference

#include <G4Fancy3DNucleus.hh>

+ Inheritance diagram for G4Fancy3DNucleus:
+ Collaboration diagram for G4Fancy3DNucleus:

Public Member Functions

 G4Fancy3DNucleus ()
 
 ~G4Fancy3DNucleus ()
 
void Init (G4int theA, G4int theZ)
 
G4bool StartLoop ()
 
G4NucleonGetNextNucleon ()
 
const std::vector< G4Nucleon > & GetNucleons ()
 
G4int GetMassNumber ()
 
G4double GetMass ()
 
G4int GetCharge ()
 
G4double GetNuclearRadius ()
 
G4double GetNuclearRadius (const G4double maxRelativeDensity)
 
G4double GetOuterRadius ()
 
G4double AddExcitationEnergy (G4double)
 
G4double GetExcitationEnergy ()
 
G4double CoulombBarrier ()
 
void DoLorentzBoost (const G4LorentzVector &theBoost)
 
void DoLorentzBoost (const G4ThreeVector &theBeta)
 
void DoLorentzContraction (const G4LorentzVector &theBoost)
 
void DoLorentzContraction (const G4ThreeVector &theBeta)
 
void CenterNucleons ()
 
void DoTranslation (const G4ThreeVector &theShift)
 
const G4VNuclearDensityGetNuclearDensity () const
 
void SortNucleonsIncZ ()
 
void SortNucleonsDecZ ()
 
- Public Member Functions inherited from G4V3DNucleus
 G4V3DNucleus ()
 
virtual ~G4V3DNucleus ()
 
std::pair< G4double, G4doubleChooseImpactXandY (G4double maxImpact)
 
std::pair< G4double, G4doubleRefetchImpactXandY ()
 

Private Member Functions

 G4Fancy3DNucleus (const G4Fancy3DNucleus &right)
 
const G4Fancy3DNucleusoperator= (const G4Fancy3DNucleus &right)
 
int operator== (const G4Fancy3DNucleus &right) const
 
int operator!= (const G4Fancy3DNucleus &right) const
 
void ChooseNucleons ()
 
void ChoosePositions ()
 
void ChooseFermiMomenta ()
 
G4double BindingEnergy ()
 
G4bool ReduceSum ()
 

Private Attributes

G4int myA
 
G4int myZ
 
std::vector< G4NucleontheNucleons
 
G4int currentNucleon
 
G4VNuclearDensitytheDensity
 
G4FermiMomentum theFermi
 
const G4double nucleondistance
 
G4double excitationEnergy
 
std::vector< G4ThreeVectorplaces
 
std::vector< G4ThreeVectormomentum
 
std::vector< G4doublefermiM
 
std::vector
< G4Fancy3DNucleusHelper
testSums
 

Detailed Description

Definition at line 54 of file G4Fancy3DNucleus.hh.

Constructor & Destructor Documentation

G4Fancy3DNucleus::G4Fancy3DNucleus ( )

Definition at line 52 of file G4Fancy3DNucleus.cc.

G4Fancy3DNucleus::~G4Fancy3DNucleus ( )

Definition at line 60 of file G4Fancy3DNucleus.cc.

References theDensity.

G4Fancy3DNucleus::G4Fancy3DNucleus ( const G4Fancy3DNucleus right)
private

Member Function Documentation

G4double G4Fancy3DNucleus::AddExcitationEnergy ( G4double  anE)
inline

Definition at line 130 of file G4Fancy3DNucleus.hh.

References excitationEnergy.

G4double G4Fancy3DNucleus::BindingEnergy ( )
private

Definition at line 160 of file G4Fancy3DNucleus.cc.

References G4NucleiProperties::GetBindingEnergy(), myA, and myZ.

Referenced by ChooseFermiMomenta(), GetMass(), and Init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::CenterNucleons ( )

Definition at line 237 of file G4Fancy3DNucleus.cc.

References DoTranslation(), myA, and theNucleons.

Referenced by G4BinaryLightIonReaction::Interact().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::ChooseFermiMomenta ( )
private

Definition at line 352 of file G4Fancy3DNucleus.cc.

References BindingEnergy(), CoulombBarrier(), density, G4INCL::KinematicsUtils::energy(), fermiM, G4cerr, G4endl, G4VNuclearDensity::GetDensity(), G4FermiMomentum::GetFermiMomentum(), G4FermiMomentum::GetMomentum(), GeV, momentum, myA, G4Proton::Proton(), ReduceSum(), sqr(), theDensity, theFermi, and theNucleons.

Referenced by Init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::ChooseNucleons ( )
private

Definition at line 266 of file G4Fancy3DNucleus.cc.

References G4cout, G4endl, G4UniformRand, myA, myZ, G4Neutron::Neutron(), G4Proton::Proton(), and theNucleons.

Referenced by Init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::ChoosePositions ( )
private

Definition at line 286 of file G4Fancy3DNucleus.cc.

References CoulombBarrier(), density, G4UniformRand, G4VNuclearDensity::GetDensity(), G4FermiMomentum::GetFermiMomentum(), GetNuclearRadius(), G4VNuclearDensity::GetRelativeDensity(), G4INCL::Math::min(), myA, nucleondistance, places, G4Proton::Proton(), sqr(), theDensity, theFermi, and theNucleons.

Referenced by Init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4Fancy3DNucleus::CoulombBarrier ( )
virtual

Implements G4V3DNucleus.

Definition at line 496 of file G4Fancy3DNucleus.cc.

References MeV, myA, and myZ.

Referenced by ChooseFermiMomenta(), and ChoosePositions().

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::DoLorentzBoost ( const G4LorentzVector theBoost)
virtual

Implements G4V3DNucleus.

Definition at line 199 of file G4Fancy3DNucleus.cc.

References myA, and theNucleons.

void G4Fancy3DNucleus::DoLorentzBoost ( const G4ThreeVector theBeta)
virtual

Implements G4V3DNucleus.

Definition at line 206 of file G4Fancy3DNucleus.cc.

References myA, and theNucleons.

void G4Fancy3DNucleus::DoLorentzContraction ( const G4LorentzVector theBoost)
virtual

Implements G4V3DNucleus.

Definition at line 227 of file G4Fancy3DNucleus.cc.

void G4Fancy3DNucleus::DoLorentzContraction ( const G4ThreeVector theBeta)
virtual

Implements G4V3DNucleus.

Definition at line 213 of file G4Fancy3DNucleus.cc.

References factor, myA, and theNucleons.

void G4Fancy3DNucleus::DoTranslation ( const G4ThreeVector theShift)
virtual

Implements G4V3DNucleus.

Definition at line 249 of file G4Fancy3DNucleus.cc.

References myA, and theNucleons.

Referenced by CenterNucleons().

+ Here is the caller graph for this function:

G4int G4Fancy3DNucleus::GetCharge ( )
inlinevirtual

Implements G4V3DNucleus.

Definition at line 121 of file G4Fancy3DNucleus.hh.

References myZ.

Referenced by G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

G4double G4Fancy3DNucleus::GetExcitationEnergy ( void  )
inline

Definition at line 136 of file G4Fancy3DNucleus.hh.

References excitationEnergy.

G4double G4Fancy3DNucleus::GetMass ( )
virtual

Implements G4V3DNucleus.

Definition at line 190 of file G4Fancy3DNucleus.cc.

References BindingEnergy(), G4ParticleDefinition::GetPDGMass(), myA, myZ, G4Neutron::Neutron(), and G4Proton::Proton().

Referenced by G4BinaryLightIonReaction::Interact().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4Fancy3DNucleus::GetMassNumber ( )
inlinevirtual

Implements G4V3DNucleus.

Definition at line 126 of file G4Fancy3DNucleus.hh.

References myA.

Referenced by G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

G4Nucleon * G4Fancy3DNucleus::GetNextNucleon ( )
virtual

Implements G4V3DNucleus.

Definition at line 125 of file G4Fancy3DNucleus.cc.

References currentNucleon, myA, and theNucleons.

Referenced by G4LowEIonFragmentation::ApplyYourself(), G4BinaryLightIonReaction::GetProjectileExcitation(), and G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

const G4VNuclearDensity * G4Fancy3DNucleus::GetNuclearDensity ( ) const
virtual

Implements G4V3DNucleus.

Definition at line 259 of file G4Fancy3DNucleus.cc.

References theDensity.

Referenced by G4BinaryLightIonReaction::GetProjectileExcitation(), and G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

G4double G4Fancy3DNucleus::GetNuclearRadius ( )
virtual

Implements G4V3DNucleus.

Definition at line 166 of file G4Fancy3DNucleus.cc.

Referenced by ChoosePositions().

+ Here is the caller graph for this function:

G4double G4Fancy3DNucleus::GetNuclearRadius ( const G4double  maxRelativeDensity)
virtual

Implements G4V3DNucleus.

Definition at line 171 of file G4Fancy3DNucleus.cc.

References G4VNuclearDensity::GetRadius(), and theDensity.

+ Here is the call graph for this function:

const std::vector< G4Nucleon > & G4Fancy3DNucleus::GetNucleons ( )
virtual

Implements G4V3DNucleus.

Definition at line 131 of file G4Fancy3DNucleus.cc.

References theNucleons.

Referenced by G4MuMinusCapturePrecompound::ApplyYourself().

+ Here is the caller graph for this function:

G4double G4Fancy3DNucleus::GetOuterRadius ( )
virtual

Implements G4V3DNucleus.

Definition at line 176 of file G4Fancy3DNucleus.cc.

References myA, nucleondistance, and theNucleons.

Referenced by G4LowEIonFragmentation::ApplyYourself(), and G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::Init ( G4int  theA,
G4int  theZ 
)
virtual

Implements G4V3DNucleus.

Definition at line 76 of file G4Fancy3DNucleus.cc.

References BindingEnergy(), ChooseFermiMomenta(), ChooseNucleons(), ChoosePositions(), currentNucleon, excitationEnergy, G4FermiMomentum::Init(), myA, myZ, theDensity, theFermi, and theNucleons.

Referenced by G4LowEIonFragmentation::ApplyYourself(), G4MuMinusCapturePrecompound::ApplyYourself(), and G4BinaryLightIonReaction::Interact().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int G4Fancy3DNucleus::operator!= ( const G4Fancy3DNucleus right) const
private
const G4Fancy3DNucleus& G4Fancy3DNucleus::operator= ( const G4Fancy3DNucleus right)
private
int G4Fancy3DNucleus::operator== ( const G4Fancy3DNucleus right) const
private
G4bool G4Fancy3DNucleus::ReduceSum ( )
private

Definition at line 413 of file G4Fancy3DNucleus.cc.

References fermiM, momentum, myA, testSums, and theNucleons.

Referenced by ChooseFermiMomenta().

+ Here is the caller graph for this function:

void G4Fancy3DNucleus::SortNucleonsDecZ ( )
virtual

Implements G4V3DNucleus.

Definition at line 151 of file G4Fancy3DNucleus.cc.

References reverse, SortNucleonsIncZ(), and theNucleons.

+ Here is the call graph for this function:

void G4Fancy3DNucleus::SortNucleonsIncZ ( )
virtual

Implements G4V3DNucleus.

Definition at line 143 of file G4Fancy3DNucleus.cc.

References G4Fancy3DNucleusHelperForSortInZ(), and theNucleons.

Referenced by SortNucleonsDecZ().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4Fancy3DNucleus::StartLoop ( )
virtual

Implements G4V3DNucleus.

Definition at line 118 of file G4Fancy3DNucleus.cc.

References currentNucleon, and theNucleons.

Referenced by G4LowEIonFragmentation::ApplyYourself(), G4BinaryLightIonReaction::GetProjectileExcitation(), and G4BinaryLightIonReaction::Interact().

+ Here is the caller graph for this function:

Member Data Documentation

G4int G4Fancy3DNucleus::currentNucleon
private

Definition at line 108 of file G4Fancy3DNucleus.hh.

Referenced by GetNextNucleon(), Init(), and StartLoop().

G4double G4Fancy3DNucleus::excitationEnergy
private

Definition at line 112 of file G4Fancy3DNucleus.hh.

Referenced by AddExcitationEnergy(), GetExcitationEnergy(), and Init().

std::vector<G4double> G4Fancy3DNucleus::fermiM
private

Definition at line 116 of file G4Fancy3DNucleus.hh.

Referenced by ChooseFermiMomenta(), and ReduceSum().

std::vector<G4ThreeVector> G4Fancy3DNucleus::momentum
private

Definition at line 115 of file G4Fancy3DNucleus.hh.

Referenced by ChooseFermiMomenta(), and ReduceSum().

G4int G4Fancy3DNucleus::myZ
private
const G4double G4Fancy3DNucleus::nucleondistance
private

Definition at line 111 of file G4Fancy3DNucleus.hh.

Referenced by ChoosePositions(), and GetOuterRadius().

std::vector<G4ThreeVector> G4Fancy3DNucleus::places
private

Definition at line 114 of file G4Fancy3DNucleus.hh.

Referenced by ChoosePositions().

std::vector<G4Fancy3DNucleusHelper> G4Fancy3DNucleus::testSums
private

Definition at line 117 of file G4Fancy3DNucleus.hh.

Referenced by ReduceSum().

G4VNuclearDensity* G4Fancy3DNucleus::theDensity
private
G4FermiMomentum G4Fancy3DNucleus::theFermi
private

Definition at line 110 of file G4Fancy3DNucleus.hh.

Referenced by ChooseFermiMomenta(), ChoosePositions(), and Init().


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