113 <<
"> is unknown - default <"
114 << ir49p <<
">" <<
" is used for Electronic Stopping"
155 G4double scaledEnergy = kineticEnergy
220 const G4int numberOfElements =
material->GetNumberOfElements() ;
221 const G4double* theAtomicNumDensityVector =
222 material->GetAtomicNumDensityVector() ;
230 eloss *=
material->GetTotNbOfAtomsPerVolume();
231 if(1 < numberOfElements) {
235 for (
G4int iel=0; iel<numberOfElements; iel++) {
236 nAtoms += theAtomsVector[iel];
243 }
else if(1 == numberOfElements) {
247 * (
material->GetTotNbOfAtomsPerVolume()) ;
259 for (
G4int i=0; i<numberOfElements; i++) {
260 const G4Element* element = (*theElementVector)[i] ;
263 * theAtomicNumDensityVector[i] ;
265 * theAtomicNumDensityVector[i] ;
277 for (
G4int i=0; i<numberOfElements; i++)
279 const G4Element* element = (*theElementVector)[i] ;
282 * theAtomicNumDensityVector[i];
299 if (myFormula == chFormula )
return false ;
309 if( theState ==
kStateGas && myFormula == chFormula)
return false ;
314 static const G4double HeEff = 2.8735 ;
317 "H_2O",
"C_2H_4O",
"C_3H_6O",
"C_2H_2",
"C_H_3OH",
318 "C_2H_5OH",
"C_3H_7OH",
"C_3H_4",
"NH_3",
"C_14H_10",
319 "C_6H_6",
"C_4H_10",
"C_4H_6",
"C_4H_8O",
"CCl_4",
320 "CF_4",
"C_6H_8",
"C_6H_12",
"C_6H_10O",
"C_6H_10",
321 "C_8H_16",
"C_5H_10",
"C_5H_8",
"C_3H_6-Cyclopropane",
"C_2H_4F_2",
322 "C_2H_2F_2",
"C_4H_8O_2",
"C_2H_6",
"C_2F_6",
"C_2H_6O",
323 "C_3H_6O",
"C_4H_10O",
"C_2H_4",
"C_2H_4O",
"C_2H_4S",
324 "SH_2",
"CH_4",
"CCLF_3",
"CCl_2F_2",
"CHCl_2F",
325 "(CH_3)_2S",
"N_2O",
"C_5H_10O",
"C_8H_6",
"(CH_2)_N",
326 "(C_3H_6)_N",
"(C_8H_8)_N",
"C_3H_8",
"C_3H_6-Propylene",
"C_3H_6O",
327 "C_3H_6S",
"C_4H_4S",
"C_7H_8"
331 66.1, 190.4, 258.7, 42.2, 141.5,
332 210.9, 279.6, 198.8, 31.0, 267.5,
333 122.8, 311.4, 260.3, 328.9, 391.3,
334 206.6, 374.0, 422.0, 432.0, 398.0,
335 554.0, 353.0, 326.0, 74.6, 220.5,
336 197.4, 362.0, 170.0, 330.5, 211.3,
337 262.3, 349.6, 51.3, 187.0, 236.9,
338 121.9, 35.8, 247.0, 292.6, 268.0,
339 262.3, 49.0, 398.9, 444.0, 22.91,
340 68.0, 155.0, 84.0, 74.2, 254.7,
345 HeEff, HeEff, HeEff, 1.0, HeEff,
346 HeEff, HeEff, HeEff, 1.0, 1.0,
347 1.0, HeEff, HeEff, HeEff, HeEff,
348 HeEff, HeEff, HeEff, HeEff, HeEff,
349 HeEff, HeEff, HeEff, 1.0, HeEff,
350 HeEff, HeEff, HeEff, HeEff, HeEff,
351 HeEff, HeEff, 1.0, HeEff, HeEff,
352 HeEff, 1.0, HeEff, HeEff, HeEff,
353 HeEff, 1.0, HeEff, HeEff, 1.0,
354 1.0, 1.0, 1.0, 1.0, HeEff,
359 3.0, 7.0, 10.0, 4.0, 6.0,
360 9.0, 12.0, 7.0, 4.0, 24.0,
361 12.0, 14.0, 10.0, 13.0, 5.0,
362 5.0, 14.0, 18.0, 17.0, 17.0,
363 24.0, 15.0, 13.0, 9.0, 8.0,
364 6.0, 14.0, 8.0, 8.0, 9.0,
365 10.0, 15.0, 6.0, 7.0, 7.0,
366 3.0, 5.0, 5.0, 5.0, 5.0,
367 9.0, 3.0, 16.0, 14.0, 3.0,
368 9.0, 16.0, 11.0, 9.0, 10.0,
375 if(chFormula ==
name[i]) {
377 (
material->GetTotNbOfAtomsPerVolume()) /
378 (expCharge[i] * numberOfAtomsPerMolecula[i]) ;
400 G4double beta25 = std::sqrt(1.0 - 1.0/(gamma25*gamma25)) ;
401 G4double beta125 = std::sqrt(1.0 - 1.0/(gamma125*gamma125)) ;
404 (1.0 +
G4Exp( 1.48 * ( beta125/beta25 - 7.0 ) ) ) /
405 (1.0 +
G4Exp( 1.48 * (
beta/beta25 - 7.0 ) ) ) ;
std::vector< const G4Element * > G4ElementVector
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static const G4int numberOfMolecula
static constexpr double cm2
static constexpr double keV
static constexpr double eV
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
G4double GetKineticEnergy() const
G4double GetPDGMass() const
virtual G4double StoppingPower(const G4Material *material, G4double kineticEnergy)=0
virtual G4bool HasMaterial(const G4Material *material)=0
virtual G4double ElectronicStoppingPower(G4double z, G4double kineticEnergy) const =0
G4double ChemicalFactor(G4double kineticEnergy, G4double eloss125) const
G4bool IsInCharge(const G4DynamicParticle *particle, const G4Material *material) const override
G4bool MolecIsInZiegler1988(const G4Material *material)
G4double LowEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const override
G4double HighEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const override
G4VhElectronicStoppingPower * eStopingPowerTable
~G4hParametrisedLossModel()
G4double theZieglerFactor
G4double TheValue(const G4DynamicParticle *particle, const G4Material *material) override
void SetExpStopPower125(G4double value)
G4double StoppingPower(const G4Material *material, G4double kineticEnergy)
G4hParametrisedLossModel(const G4String &name)
const char * name(G4int ptype)