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;
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.0
e-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;
static constexpr double kelvin
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
CLHEP::Hep3Vector G4ThreeVector
std::ostringstream G4ExceptionDescription
G4double * GetRelativeAbundanceVector() const
G4double excitationEnergy
G4double Cinema(G4double kineticEnergy)
void SetMomentum(const G4double x, const G4double y, const G4double z)
static constexpr double hbarc
G4ReactionProduct GetThermalNucleus(G4double aMass, G4double temp=-1) const
const G4ElementVector * GetElementVector() const
void ChooseParameters(const G4Material *aMaterial)
const G4double * GetVecNbOfAtomsPerVolume() const
static G4Proton * Proton()
G4double GetPDGMass() const
G4double pnBlackTrackEnergyfromAnnihilation
G4double G4Log(G4double x)
void SetTotalEnergy(const G4double en)
G4DynamicParticle * ReturnTargetParticle() const
void SetMass(const G4double mas)
void SetKineticEnergy(const G4double en)
static constexpr double fermi
const XML_Char int const XML_Char * value
G4ErrorTarget * theTarget
double A(double temperature)
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4ThreeVector GetMomentum() const
G4double GetThermalPz(const G4double mass, const G4double temp) const
std::vector< G4ReactionProduct * > G4ReactionProductVector
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double G4ParticleHPJENDLHEData::G4double result
G4double AnnihilationEvaporationEffects(G4double kineticEnergy, G4double ekOrg)
G4double pnBlackTrackEnergy
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void AddExcitationEnergy(G4double anEnergy)
std::vector< G4Element * > G4ElementVector
static G4Neutron * Neutron()
static constexpr double k_Boltzmann
G4ThreeVector GetFermiMomentum()
G4double dtaBlackTrackEnergy
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
const G4Isotope * GetIsotope(G4int iso) const
static constexpr double pi
void AddMomentum(const G4ThreeVector aMomentum)
void SetParameters(const G4double A, const G4double Z)
G4double GetTotNbOfAtomsPerVolume() const
G4double EvaporationEffects(G4double kineticEnergy)
G4ReactionProductVector * Fragmentate()
const G4Isotope * fIsotope
static constexpr double GeV
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
size_t GetNumberOfElements() const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4double GetTemperature() const
G4double dtaBlackTrackEnergyfromAnnihilation
size_t GetNumberOfIsotopes() const
G4double AtomicMass(const G4double A, const G4double Z) const