104{
105 if(p != fParticle) { SetParticle(p); }
106
107
108 if(nullptr == xsdata[0]) {
110 if(nullptr == xsdata[0]) {
111 isFirst = true;
112 G4String filename(
"dna/sigma_ionisation_h_rudd");
115
116 filename = "dna/sigma_ionisation_p_rudd";
119
120 filename = "dna/sigma_ionisation_alphaplusplus_rudd";
123
124 filename = "dna/sigma_ionisation_li_rudd";
127
128 filename = "dna/sigma_ionisation_be_rudd";
131
132 filename = "dna/sigma_ionisation_b_rudd";
135
136 filename = "dna/sigma_ionisation_c_rudd";
139
140 filename = "dna/sigma_ionisation_n_rudd";
143
144 filename = "dna/sigma_ionisation_o_rudd";
147
148 filename = "dna/sigma_ionisation_si_rudd";
151
152 filename = "dna/sigma_ionisation_fe_rudd";
155 filename = "dna/sigma_ionisation_alphaplus_rudd";
158
159 filename = "dna/sigma_ionisation_he_rudd";
162 }
163
165 fpWaterDensity =
167
168 l.unlock();
169 }
170
171
175 if(pname == "proton") {
176 idx = 1;
177 xscurrent = xsdata[1];
178 fElow = fLowestEnergy;
179 } else if(pname == "hydrogen") {
180 idx = 0;
181 xscurrent = xsdata[0];
182 fElow = fLowestEnergy;
183 } else if(pname == "alpha") {
184 idx = 1;
185 xscurrent = xsdata[2];
186 isHelium = true;
187 fElow = fLimitEnergy;
188 } else if(pname == "alpha+") {
189 idx = 1;
190 isHelium = true;
191 xscurrent = xsalphaplus;
192 fElow = fLimitEnergy;
193
194 slaterEffectiveCharge[0]=2.0;
195 slaterEffectiveCharge[1]=2.0;
196 slaterEffectiveCharge[2]=2.0;
197 sCoefficient[0]=0.7;
198 sCoefficient[1]=0.15;
199 sCoefficient[2]=0.15;
200 } else if(pname == "helium") {
201 idx = 0;
202 isHelium = true;
203 fElow = fLimitEnergy;
204 xscurrent = xshelium;
205 slaterEffectiveCharge[0]=1.7;
206 slaterEffectiveCharge[1]=1.15;
207 slaterEffectiveCharge[2]=1.15;
208 sCoefficient[0]=0.5;
209 sCoefficient[1]=0.25;
210 sCoefficient[2]=0.25;
211 } else {
212 isIon = true;
213 }
214
216
217
219
220 if (verbose > 0) {
221 G4cout <<
"### G4DNARuddIonisationExtendedModel::Initialise(..) " << pname
222 << "/n idx=" << idx << " Amass=" << fAmass
223 <<
" isIon=" << isIon <<
" isHelium=" << isHelium <<
G4endl;
224 }
225 }
226}
G4bool LoadData(const G4String &argFileName) override
const std::vector< G4double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
static G4DNAMolecularMaterial * Instance()
G4ParticleChangeForGamma * fParticleChangeForGamma
static G4EmParameters * Instance()
G4bool DNAStationary() const
G4VAtomDeexcitation * AtomDeexcitation()
G4Material * FindMaterial(const G4String &name) const
static G4NistManager * Instance()
const G4String & GetParticleName() const
G4ParticleChangeForGamma * GetParticleChangeForGamma()