Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4IonDEDXScalingICRU73 Class Reference

#include <G4IonDEDXScalingICRU73.hh>

Inheritance diagram for G4IonDEDXScalingICRU73:
G4VIonDEDXScalingAlgorithm

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 *)
 
- Public Member Functions inherited from G4VIonDEDXScalingAlgorithm
 G4VIonDEDXScalingAlgorithm ()
 
virtual ~G4VIonDEDXScalingAlgorithm ()
 

Detailed Description

Definition at line 62 of file G4IonDEDXScalingICRU73.hh.

Constructor & Destructor Documentation

G4IonDEDXScalingICRU73::G4IonDEDXScalingICRU73 ( G4int  minAtomicNumberIon = 19,
G4int  maxAtomicNumberIon = 102 
)

Definition at line 62 of file G4IonDEDXScalingICRU73.cc.

64  :
65  minAtomicNumber( minAtomicNumberIon ),
66  maxAtomicNumber( maxAtomicNumberIon ),
67  referencePrepared( false ),
68  atomicNumberRefFe( 26 ),
69  massNumberRefFe( 56 ),
70  atomicNumberRefPow23Fe( 0 ),
71  chargeRefFe( 0 ),
72  massRefFe( 0 ),
73  atomicNumberRefAr( 18 ),
74  massNumberRefAr( 40 ),
75  atomicNumberRefPow23Ar( 0 ),
76  chargeRefAr( 0 ),
77  massRefAr( 0 ),
78  useFe( true ),
79  cacheParticle( 0 ),
80  cacheMassNumber( 0 ),
81  cacheAtomicNumber( 0 ),
82  cacheAtomicNumberPow23( 0 ),
83  cacheCharge( 0 ),
84  cacheMass( 0 ),
85  cacheMaterial( 0 ) {
86 
87 }
G4IonDEDXScalingICRU73::~G4IonDEDXScalingICRU73 ( )

Definition at line 91 of file G4IonDEDXScalingICRU73.cc.

91  {
92 }

Member Function Documentation

G4int G4IonDEDXScalingICRU73::AtomicNumberBaseIon ( G4int  atomicNumberIon,
const G4Material material 
)
virtual

Reimplemented from G4VIonDEDXScalingAlgorithm.

Definition at line 203 of file G4IonDEDXScalingICRU73.cc.

205  { // Target material
206 
207  UpdateCacheMaterial(material);
208 
209  G4int atomicNumber = atomicNumberIon;
210 
211  if(atomicNumberIon >= minAtomicNumber &&
212  atomicNumberIon <= maxAtomicNumber &&
213  atomicNumberIon != atomicNumberRefFe &&
214  atomicNumberIon != atomicNumberRefAr) {
215 
216  if(!referencePrepared) CreateReferenceParticles();
217 
218  if( useFe ) atomicNumber = atomicNumberRefFe;
219  else atomicNumber = atomicNumberRefAr;
220  }
221 
222  return atomicNumber;
223 }
int G4int
Definition: G4Types.hh:78
G4double G4IonDEDXScalingICRU73::ScalingFactorDEDX ( const G4ParticleDefinition particle,
const G4Material material,
G4double  kineticEnergy 
)
virtual

Reimplemented from G4VIonDEDXScalingAlgorithm.

Definition at line 143 of file G4IonDEDXScalingICRU73.cc.

146  { // Kinetic energy
147 
148  G4double factor = 1.0;
149 
150  UpdateCacheParticle(particle);
151  UpdateCacheMaterial(material);
152 
153  if(cacheAtomicNumber >= minAtomicNumber &&
154  cacheAtomicNumber <= maxAtomicNumber &&
155  cacheAtomicNumber != atomicNumberRefFe &&
156  cacheAtomicNumber != atomicNumberRefAr) {
157 
158  if(!referencePrepared) CreateReferenceParticles();
159 
160  if( useFe ) {
161 
162  G4double equilibriumCharge = EquilibriumCharge(cacheMass,
163  cacheCharge,
164  cacheAtomicNumberPow23,
165  kineticEnergy);
166 
167  G4double scaledKineticEnergy = kineticEnergy * (massRefFe / cacheMass);
168 
169  G4double equilibriumChargeRefFe = EquilibriumCharge(massRefFe,
170  chargeRefFe,
171  atomicNumberRefPow23Fe,
172  scaledKineticEnergy);
173 
174  factor = equilibriumCharge * equilibriumCharge/
175  ( equilibriumChargeRefFe * equilibriumChargeRefFe );
176 
177  }
178  else {
179 
180  G4double equilibriumCharge = EquilibriumCharge(cacheMass,
181  cacheCharge,
182  cacheAtomicNumberPow23,
183  kineticEnergy);
184 
185  G4double scaledKineticEnergy = kineticEnergy * (massRefAr / cacheMass);
186 
187  G4double equilibriumChargeRefAr = EquilibriumCharge(massRefAr,
188  chargeRefAr,
189  atomicNumberRefPow23Ar,
190  scaledKineticEnergy);
191 
192  factor = equilibriumCharge * equilibriumCharge/
193  ( equilibriumChargeRefAr * equilibriumChargeRefAr );
194 
195  }
196  }
197 
198  return factor;
199 }
double G4double
Definition: G4Types.hh:76
G4double G4IonDEDXScalingICRU73::ScalingFactorEnergy ( const G4ParticleDefinition particle,
const G4Material material 
)
virtual

Reimplemented from G4VIonDEDXScalingAlgorithm.

Definition at line 116 of file G4IonDEDXScalingICRU73.cc.

118  { // Target material
119 
120  G4double factor = 1.0;
121 
122  UpdateCacheParticle(particle);
123  UpdateCacheMaterial(material);
124 
125  if(cacheAtomicNumber >= minAtomicNumber &&
126  cacheAtomicNumber <= maxAtomicNumber &&
127  cacheAtomicNumber != atomicNumberRefFe &&
128  cacheAtomicNumber != atomicNumberRefAr) {
129 
130  if(!referencePrepared) CreateReferenceParticles();
131 
132  if( useFe )
133  factor = cacheMassNumber * (massRefFe / cacheMass) / massNumberRefFe;
134  else
135  factor = cacheMassNumber * (massRefAr / cacheMass) / massNumberRefAr;
136  }
137 
138  return factor;
139 }
double G4double
Definition: G4Types.hh:76

The documentation for this class was generated from the following files: