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;
145 inline 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.);
161 inline void G4IonDEDXScalingICRU73::UpdateCacheMaterial (
164 if(cacheMaterial != material) {
170 size_t nmbElements = material -> GetNumberOfElements();
171 if( nmbElements > 1 ) useFe =
false;
173 if( material -> GetName() ==
"G4_WATER" ) useFe =
true;
179 inline 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);