#include <G4IonDEDXScalingICRU73.hh>
Inheritance diagram for G4IonDEDXScalingICRU73:
Public Member Functions | |
G4IonDEDXScalingICRU73 (G4int minAtomicNumberIon=19, G4int maxAtomicNumberIon=102) | |
~G4IonDEDXScalingICRU73 () | |
G4double | ScalingFactorEnergy (const G4ParticleDefinition *particle, const G4Material *material) |
G4double | ScalingFactorDEDX (const G4ParticleDefinition *particle, const G4Material *, G4double kineticEnergy) |
G4int | AtomicNumberBaseIon (G4int atomicNumberIon, const G4Material *) |
Definition at line 62 of file G4IonDEDXScalingICRU73.hh.
G4IonDEDXScalingICRU73::G4IonDEDXScalingICRU73 | ( | G4int | minAtomicNumberIon = 19 , |
|
G4int | maxAtomicNumberIon = 102 | |||
) |
Definition at line 61 of file G4IonDEDXScalingICRU73.cc.
00063 : 00064 minAtomicNumber( minAtomicNumberIon ), 00065 maxAtomicNumber( maxAtomicNumberIon ), 00066 referenceFe( 0 ), 00067 atomicNumberRefFe( 26 ), 00068 massNumberRefFe( 56 ), 00069 atomicNumberRefPow23Fe( 0 ), 00070 chargeRefFe( 0 ), 00071 massRefFe( 0 ), 00072 referenceAr( 0 ), 00073 atomicNumberRefAr( 18 ), 00074 massNumberRefAr( 40 ), 00075 atomicNumberRefPow23Ar( 0 ), 00076 chargeRefAr( 0 ), 00077 massRefAr( 0 ), 00078 useFe( true ), 00079 cacheParticle( 0 ), 00080 cacheMassNumber( 0 ), 00081 cacheAtomicNumber( 0 ), 00082 cacheAtomicNumberPow23( 0 ), 00083 cacheCharge( 0 ), 00084 cacheMass( 0 ), 00085 cacheMaterial( 0 ) { 00086 00087 }
G4IonDEDXScalingICRU73::~G4IonDEDXScalingICRU73 | ( | ) |
G4int G4IonDEDXScalingICRU73::AtomicNumberBaseIon | ( | G4int | atomicNumberIon, | |
const G4Material * | ||||
) | [virtual] |
Reimplemented from G4VIonDEDXScalingAlgorithm.
Definition at line 209 of file G4IonDEDXScalingICRU73.cc.
00211 { // Target material 00212 00213 UpdateCacheMaterial(material); 00214 00215 G4int atomicNumber = atomicNumberIon; 00216 00217 if(atomicNumberIon >= minAtomicNumber && 00218 atomicNumberIon <= maxAtomicNumber && 00219 atomicNumberIon != atomicNumberRefFe && 00220 atomicNumberIon != atomicNumberRefAr) { 00221 00222 if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles(); 00223 00224 if( useFe ) atomicNumber = atomicNumberRefFe; 00225 else atomicNumber = atomicNumberRefAr; 00226 } 00227 00228 return atomicNumber; 00229 }
G4double G4IonDEDXScalingICRU73::ScalingFactorDEDX | ( | const G4ParticleDefinition * | particle, | |
const G4Material * | , | |||
G4double | kineticEnergy | |||
) | [virtual] |
Reimplemented from G4VIonDEDXScalingAlgorithm.
Definition at line 149 of file G4IonDEDXScalingICRU73.cc.
00152 { // Kinetic energy 00153 00154 G4double factor = 1.0; 00155 00156 UpdateCacheParticle(particle); 00157 UpdateCacheMaterial(material); 00158 00159 if(cacheAtomicNumber >= minAtomicNumber && 00160 cacheAtomicNumber <= maxAtomicNumber && 00161 cacheAtomicNumber != atomicNumberRefFe && 00162 cacheAtomicNumber != atomicNumberRefAr) { 00163 00164 if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles(); 00165 00166 if( useFe ) { 00167 00168 G4double equilibriumCharge = EquilibriumCharge(cacheMass, 00169 cacheCharge, 00170 cacheAtomicNumberPow23, 00171 kineticEnergy); 00172 00173 G4double scaledKineticEnergy = kineticEnergy * (massRefFe / cacheMass); 00174 00175 G4double equilibriumChargeRefFe = EquilibriumCharge(massRefFe, 00176 chargeRefFe, 00177 atomicNumberRefPow23Fe, 00178 scaledKineticEnergy); 00179 00180 factor = equilibriumCharge * equilibriumCharge/ 00181 ( equilibriumChargeRefFe * equilibriumChargeRefFe ); 00182 00183 } 00184 else { 00185 00186 G4double equilibriumCharge = EquilibriumCharge(cacheMass, 00187 cacheCharge, 00188 cacheAtomicNumberPow23, 00189 kineticEnergy); 00190 00191 G4double scaledKineticEnergy = kineticEnergy * (massRefAr / cacheMass); 00192 00193 G4double equilibriumChargeRefAr = EquilibriumCharge(massRefAr, 00194 chargeRefAr, 00195 atomicNumberRefPow23Ar, 00196 scaledKineticEnergy); 00197 00198 factor = equilibriumCharge * equilibriumCharge/ 00199 ( equilibriumChargeRefAr * equilibriumChargeRefAr ); 00200 00201 } 00202 } 00203 00204 return factor; 00205 }
G4double G4IonDEDXScalingICRU73::ScalingFactorEnergy | ( | const G4ParticleDefinition * | particle, | |
const G4Material * | material | |||
) | [virtual] |
Reimplemented from G4VIonDEDXScalingAlgorithm.
Definition at line 122 of file G4IonDEDXScalingICRU73.cc.
00124 { // Target material 00125 00126 G4double factor = 1.0; 00127 00128 UpdateCacheParticle(particle); 00129 UpdateCacheMaterial(material); 00130 00131 if(cacheAtomicNumber >= minAtomicNumber && 00132 cacheAtomicNumber <= maxAtomicNumber && 00133 cacheAtomicNumber != atomicNumberRefFe && 00134 cacheAtomicNumber != atomicNumberRefAr) { 00135 00136 if(referenceFe == 0 || referenceAr == 0) CreateReferenceParticles(); 00137 00138 if( useFe ) 00139 factor = cacheMassNumber * (massRefFe / cacheMass) / massNumberRefFe; 00140 else 00141 factor = cacheMassNumber * (massRefAr / cacheMass) / massNumberRefAr; 00142 } 00143 00144 return factor; 00145 }