52#ifndef G4IONDEDXSCALINGICRU73_HH
53#define G4IONDEDXSCALINGICRU73_HH
66 G4int maxAtomicNumberIon = 102);
89 G4int atomicNumberIon,
93 void UpdateCacheParticle(
96 void UpdateCacheMaterial(
99 void CreateReferenceParticles();
109 G4int minAtomicNumber;
110 G4int maxAtomicNumber;
114 G4int atomicNumberRefFe;
115 G4int massNumberRefFe;
122 G4int atomicNumberRefAr;
123 G4int massNumberRefAr;
133 G4int cacheMassNumber;
134 G4int cacheAtomicNumber;
145inline void G4IonDEDXScalingICRU73::UpdateCacheParticle (
148 if(particle != cacheParticle) {
150 cacheParticle = particle;
151 cacheAtomicNumber = particle -> GetAtomicNumber();
152 cacheMassNumber = particle -> GetAtomicMass();
153 cacheCharge = particle -> GetPDGCharge();
154 cacheMass = particle -> GetPDGMass();
155 cacheAtomicNumberPow23 = std::pow(
G4double(cacheAtomicNumber), 2./3.);
161inline void G4IonDEDXScalingICRU73::UpdateCacheMaterial (
164 if(cacheMaterial != material) {
166 cacheMaterial = material;
170 size_t nmbElements = material -> GetNumberOfElements();
171 if( nmbElements > 1 ) useFe =
false;
173 if( material -> GetName() ==
"G4_WATER" ) useFe =
true;
179inline G4double G4IonDEDXScalingICRU73::EquilibriumCharge(
185 G4double totalEnergy = kineticEnergy + mass;
186 G4double betaSquared = kineticEnergy *
187 (totalEnergy + mass) / (totalEnergy * totalEnergy);
189 G4double beta = std::sqrt( betaSquared );
191 G4double velOverBohrVel = beta / CLHEP::fine_structure_const;
193 G4double q1 = 1.0 - std::exp(-velOverBohrVel / atomicNumberPow);
G4double ScalingFactorDEDX(const G4ParticleDefinition *particle, const G4Material *, G4double kineticEnergy)
~G4IonDEDXScalingICRU73()
G4int AtomicNumberBaseIon(G4int atomicNumberIon, const G4Material *)
G4double ScalingFactorEnergy(const G4ParticleDefinition *particle, const G4Material *material)