67 #ifdef G4MULTITHREADED
95 #ifdef G4MULTITHREADED
96 G4MUTEXLOCK(&G4ICRU49NuclearStoppingModel::ICRU49NuclearMutex);
99 for(
G4int i=1; i<100; ++i) {
103 #ifdef G4MULTITHREADED
104 G4MUTEXUNLOCK(&G4ICRU49NuclearStoppingModel::ICRU49NuclearMutex);
113 std::vector<G4DynamicParticle*>*,
129 if(kinEnergy <= 0.0) {
return nloss; }
145 for (
G4int iel=0; iel<numberOfElements; ++iel) {
146 const G4Element* element = (*theElementVector)[iel] ;
172 rm = (mass1 + mass2)*(
Z23[iz1] +
Z23[iz2]);
176 G4double er = 32.536 * mass2 * energy / ( z12 * rm ) ;
181 static const G4double nuca[104][2] = {
300 if (er >= nuca[0][0]) { nloss = nuca[0][1]; }
303 for (
G4int i=102; i>=0; --i) {
309 nloss = (ai - ai1)*(er - edi1)/(edi - edi1) + ai1;
317 G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)*
318 (4.0 + 0.197/(er*er) + 6.584/er));
323 nloss *= 8.462 * z12 * mass1 / rm;
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double Z13(G4int Z) const
static constexpr double MeV
static constexpr double keV
G4double theZieglerFactor
const G4ElementVector * GetElementVector() const
G4double GetPDGCharge() const
G4double GetPDGMass() const
static constexpr double proton_mass_c2
G4double powZ(G4int Z, G4double y) const
static constexpr double amu_c2
#define G4MUTEX_INITIALIZER
static G4Pow * GetInstance()
static constexpr double cm2
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) final
static constexpr double eV
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double, G4double) final
ThreeVector shoot(const G4int Ap, const G4int Af)
#define G4MUTEXUNLOCK(mutex)
static constexpr double eplus
std::vector< G4Element * > G4ElementVector
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) final
#define G4MUTEXLOCK(mutex)
const G4double * GetAtomicNumDensityVector() const
virtual ~G4ICRU49NuclearStoppingModel()
G4ICRU49NuclearStoppingModel(const G4String &nam="ICRU49NucStopping")
G4double NuclearStoppingPower(G4double kineticEnergy, G4double Z1, G4double Z2, G4double A1, G4double A2)
size_t GetNumberOfElements() const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments