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);
158 if(1-tEtot/theTarget.
GetMass()>0.001)
182 if (running > random*sum) {
183 element = (*theElementVector)[i];
192 while (iso < element->GetNumberOfIsotopes() &&
193 sumAbundance < randomAbundance) {
215 if (
theA<1 || theZ<0 || theZ>
theA) {
217 "G4Nucleus::SetParameters called with non-physical parameters");
232 "G4Nucleus::SetParameters called with non-physical parameters");
249 return targetParticle;
270 result *= std::sqrt(k_Boltzmann*temp*mass);
301 * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
316 for(
G4int i=0; i<12; ++i )
341 if(
aEff < 1.5 || ekOrg < 0.)
354 * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
362 for(
G4int i=0; i<12; ++i ) {
372 if (blackSum >= ekOrg/
GeV) {
374 dtaBlackTrackEnergyfromAnnihilation *= ekOrg/
GeV/blackSum;
389 static const G4double expxl = -expxu;
398 if( std::abs( temp1 ) < 1.0 )
400 if( temp2 > 1.0e-10 )result = temp1*temp2;
402 else result = temp1*temp2;
403 if( result < -ek )result = -ek;
422 G4double ranmax = (ranflat1>ranflat2? ranflat1: ranflat2);
423 ranmax = (ranmax>ranflat3? ranmax : ranflat3);
427 G4double sintheta = std::sqrt(1.0 - costheta*costheta);
431 G4double px=sintheta*std::cos(phi)*ranmax;
432 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
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const double kelvin
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
G4ThreeVector GetMomentum() const
const G4Isotope * GetIsotope(G4int iso) const
const G4Isotope * fIsotope
G4double GetTemperature() const
void AddExcitationEnergy(G4double anEnergy)
size_t GetNumberOfElements() const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetParameters(const G4double A, const G4double Z)
static const double fermi
G4double pnBlackTrackEnergy