55   : theA(0), theZ(0), aEff(0.0), zEff(0)
 
   57   pnBlackTrackEnergy = 0.0;
 
   58   dtaBlackTrackEnergy = 0.0;
 
   59   pnBlackTrackEnergyfromAnnihilation = 0.0;
 
   60   dtaBlackTrackEnergyfromAnnihilation = 0.0;
 
   61   excitationEnergy = 0.0;
 
   71   pnBlackTrackEnergy = 0.0;
 
   72   dtaBlackTrackEnergy = 0.0;
 
   73   pnBlackTrackEnergyfromAnnihilation = 0.0;
 
   74   dtaBlackTrackEnergyfromAnnihilation = 0.0;
 
   75   excitationEnergy = 0.0;
 
   85   pnBlackTrackEnergy = 0.0;
 
   86   dtaBlackTrackEnergy = 0.0;
 
   87   pnBlackTrackEnergyfromAnnihilation = 0.0;
 
   88   dtaBlackTrackEnergyfromAnnihilation = 0.0;
 
   89   excitationEnergy = 0.0;
 
   99   pnBlackTrackEnergy = 0.0;
 
  100   dtaBlackTrackEnergy = 0.0;
 
  101   pnBlackTrackEnergyfromAnnihilation = 0.0;
 
  102   dtaBlackTrackEnergyfromAnnihilation = 0.0;
 
  103   excitationEnergy = 0.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) {
 
  203     aEff = element->
GetN();
 
  204     zEff = element->
GetZ();
 
  205     theZ = 
G4int(zEff + 0.5);
 
  206     theA = 
G4int(aEff + 0.5);   
 
  216   if (theA<1 || theZ<0 || theZ>theA) {
 
  218             "G4Nucleus::SetParameters called with non-physical parameters");
 
  230   if( theA<1 || theZ<0 || theZ>theA )
 
  233                 "G4Nucleus::SetParameters called with non-physical parameters");
 
  250     return targetParticle;
 
  289       pnBlackTrackEnergy = dtaBlackTrackEnergy = 0.0;
 
  295     const G4float gfa = 2.0*((aEff-1.0)/70.)*
G4Exp(-(aEff-1.0)/70.);
 
  302       * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
 
  310     pnBlackTrackEnergy = exnu*fpdiv;
 
  311     dtaBlackTrackEnergy = exnu*(1.0-fpdiv);
 
  313     if( 
G4int(zEff+0.1) != 82 )
 
  317       for( 
G4int i=0; i<12; ++i )
 
  322       pnBlackTrackEnergy *= 1.0 + ran1*gfa;
 
  323       dtaBlackTrackEnergy *= 1.0 + ran2*gfa;
 
  325     pnBlackTrackEnergy = 
std::max( 0.0, pnBlackTrackEnergy );
 
  326     dtaBlackTrackEnergy = 
std::max( 0.0, dtaBlackTrackEnergy );
 
  327     while( pnBlackTrackEnergy+dtaBlackTrackEnergy >= ek )  
 
  334     return (pnBlackTrackEnergy+dtaBlackTrackEnergy)*
GeV;
 
  342     if( aEff < 1.5 || ekOrg < 0.)
 
  344       pnBlackTrackEnergyfromAnnihilation = 0.0;
 
  345       dtaBlackTrackEnergyfromAnnihilation = 0.0;
 
  351     const G4float gfa = 2.0*((aEff-1.0)/70.)*
G4Exp(-(aEff-1.0)/70.);
 
  355       * ((atno-1.0)/120.)*
G4Exp(-(atno-1.0)/120.);
 
  358     pnBlackTrackEnergyfromAnnihilation = exnu*fpdiv;
 
  359     dtaBlackTrackEnergyfromAnnihilation = exnu*(1.0-fpdiv);
 
  363     for( 
G4int i=0; i<12; ++i ) {
 
  367     pnBlackTrackEnergyfromAnnihilation *= 1.0 + ran1*gfa;
 
  368     dtaBlackTrackEnergyfromAnnihilation *= 1.0 + ran2*gfa;
 
  370     pnBlackTrackEnergyfromAnnihilation = 
std::max( 0.0, pnBlackTrackEnergyfromAnnihilation);
 
  371     dtaBlackTrackEnergyfromAnnihilation = 
std::max( 0.0, dtaBlackTrackEnergyfromAnnihilation);
 
  372     G4double blackSum = pnBlackTrackEnergyfromAnnihilation+dtaBlackTrackEnergyfromAnnihilation;
 
  373     if (blackSum >= ekOrg/
GeV) {
 
  374       pnBlackTrackEnergyfromAnnihilation *= ekOrg/
GeV/blackSum;
 
  375       dtaBlackTrackEnergyfromAnnihilation *= ekOrg/
GeV/blackSum;
 
  378     return (pnBlackTrackEnergyfromAnnihilation+dtaBlackTrackEnergyfromAnnihilation)*
GeV;
 
  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;
 
  446     momentum+=(aMomentum);
 
  451     excitationEnergy+=anEnergy;
 
G4double G4ParticleHPJENDLHEData::G4double result
size_t GetNumberOfIsotopes() const 
static constexpr double k_Boltzmann
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)
static constexpr double hbarc
void SetMomentum(const G4double x, const G4double y, const G4double z)
void ChooseParameters(const G4Material *aMaterial)
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)
const XML_Char int const XML_Char * value
void SetTotalEnergy(const G4double en)
void AddMomentum(const G4ThreeVector aMomentum)
G4double * GetRelativeAbundanceVector() const 
static G4Proton * Proton()
static G4Neutron * Neutron()
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)
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 
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)