55 : theA(0), theZ(0), aEff(0.0), zEff(0)
124 const G4int maxNumberOfLoops = 1000000;
125 G4int loopCounter = -1;
126 while ( (value/norm<random) && ++loopCounter < maxNumberOfLoops )
130 value = (targetVelocity+aVelocity).mag()/velMag;
133 if ( loopCounter >= maxNumberOfLoops ) {
135 ed <<
" Failed sampling after maxNumberOfLoops attempts : forced exit! " <<
G4endl;
146 if (currentTemp < 0) currentTemp =
theTemp;
154 G4double tMom = std::sqrt(px*px+py*py+pz*pz);
159 if (tEtot/theTarget.
GetMass() - 1. > 0.001) {
183 if (running > random*sum) {
184 element = (*theElementVector)[i];
193 while (iso < element->GetNumberOfIsotopes() &&
194 sumAbundance < randomAbundance) {
216 if (
theA<1 || theZ<0 || theZ>
theA) {
218 "G4Nucleus::SetParameters called with non-physical parameters");
233 "G4Nucleus::SetParameters called with non-physical parameters");
250 return targetParticle;
271 result *= std::sqrt(k_Boltzmann*temp*mass);
302 * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
317 for(
G4int i=0; i<12; ++i )
342 if(
aEff < 1.5 || ekOrg < 0.)
355 * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
363 for(
G4int i=0; i<12; ++i ) {
373 if (blackSum >= ekOrg/
GeV) {
375 dtaBlackTrackEnergyfromAnnihilation *= ekOrg/
GeV/blackSum;
390 static const G4double expxl = -expxu;
399 if( std::abs( temp1 ) < 1.0 )
401 if( temp2 > 1.0e-10 )result = temp1*temp2;
403 else result = temp1*temp2;
404 if( result < -ek )result = -ek;
423 G4double ranmax = (ranflat1>ranflat2? ranflat1: ranflat2);
424 ranmax = (ranmax>ranflat3? ranmax : ranflat3);
428 G4double sintheta = std::sqrt(1.0 - costheta*costheta);
432 G4double px=sintheta*std::cos(phi)*ranmax;
433 G4double py=sintheta*std::sin(phi)*ranmax;
size_t GetNumberOfIsotopes() const
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double AtomicMass(const G4double A, const G4double Z) const
G4double EvaporationEffects(G4double kineticEnergy)
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetThermalPz(const G4double mass, const G4double temp) const
std::vector< G4Element * > G4ElementVector
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
void SetKineticEnergy(const G4double en)
void SetMomentum(const G4double x, const G4double y, const G4double z)
void ChooseParameters(const G4Material *aMaterial)
G4double dtaBlackTrackEnergyfromAnnihilation
G4double pnBlackTrackEnergyfromAnnihilation
G4ReactionProduct GetThermalNucleus(G4double aMass, G4double temp=-1) const
const G4ElementVector * GetElementVector() const
G4DynamicParticle * ReturnTargetParticle() const
G4ReactionProductVector * Fragmentate()
std::vector< G4ReactionProduct * > G4ReactionProductVector
const G4double * GetVecNbOfAtomsPerVolume() const
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
void SetMass(const G4double mas)
double A(double temperature)
void SetTotalEnergy(const G4double en)
G4ErrorTarget * theTarget
void AddMomentum(const G4ThreeVector aMomentum)
G4double * GetRelativeAbundanceVector() const
static G4Proton * Proton()
static G4Neutron * Neutron()
G4double dtaBlackTrackEnergy
static constexpr double kelvin
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double GetTotNbOfAtomsPerVolume() const
G4ThreeVector GetFermiMomentum()
G4double AnnihilationEvaporationEffects(G4double kineticEnergy, G4double ekOrg)
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double Cinema(G4double kineticEnergy)
G4double excitationEnergy
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static constexpr double GeV
G4ThreeVector GetMomentum() const
const G4Isotope * GetIsotope(G4int iso) const
const G4Isotope * fIsotope
G4double GetTemperature() const
static constexpr double pi
void AddExcitationEnergy(G4double anEnergy)
size_t GetNumberOfElements() const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
static constexpr double fermi
void SetParameters(const G4double A, const G4double Z)
G4double pnBlackTrackEnergy