Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4hQAOModel.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// -------------------------------------------------------------------
28//
29// GEANT4 Class file
30//
31//
32// File name: G4hQAOModel
33//
34// Author: V.Ivanchenko ([email protected])
35//
36// Creation date: 27 April 2004
37//
38// Modifications:
39//
40// Class Description:
41//
42// Electronic stopping power for negative heavy partiles
43//
44// Class Description: End
45//
46// -------------------------------------------------------------------
47//
48//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
49
50#include "G4hQAOModel.hh"
52#include "G4SystemOfUnits.hh"
53#include "G4UnitsTable.hh"
54#include "G4Element.hh"
55#include "G4Material.hh"
56
57//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
58
60 numberOfMaterials(6),
61 sizeL0(67),
62 sizeL1(22),
63 sizeL2(14),
64 currentMaterial(0),
65 currentElement(0)
66{
67 theZieglerFactor = eV*cm2*1.0e-15;
68 thePlasmonFactor = 28.816 * 28.816 * 1e-6;
69}
70
71//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
72
74{}
75
76//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
77
79 G4double kineticEnergy)
80{
81 G4double eloss = 0.0 ;
82 G4int numberOfElements = material->GetNumberOfElements() ;
83 const G4ElementVector* theElementVector = material->GetElementVector();
84 const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector() ;
85 currentMaterial = material;
86
87 // loop for the elements in the material
88 for (G4int i=0; i<numberOfElements; i++)
89 {
90 currentElement = (*theElementVector)[i] ;
91 G4double z = currentElement->GetZ() ;
92 eloss += ElectronicStoppingPower(z,kineticEnergy)*theAtomicNumDensityVector[i];
93 }
94
95 return eloss;
96}
97
98//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
99
101 G4double kineticEnergy) const
102{
103 G4int Z = (G4int)z;
104 G4int nbOfShell = GetNumberOfShell(Z);
105 if(nbOfShell < 1) nbOfShell = 1;
106
107 G4double dedx=0.0;
108
109 G4double v = c_light * std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 );
110 G4double coeff = twopi*proton_mass_c2*z / (electron_mass_c2*theZieglerFactor) ;
111 G4double fBetheVelocity = fine_structure_const * c_light / v;
112 coeff *= fine_structure_const * fine_structure_const * hbarc_squared /
113 kineticEnergy ;
114
115 G4double l0Term = 0, l1Term = 0, l2Term = 0;
116
117 for (G4int nos = 0 ; nos < nbOfShell ; nos++){
118
119 G4double l0 = 0, l1 = 0, l2 = 0;
120 G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * v * v ) /
121 ( c_squared * GetShellEnergy(Z, nos) );
122 G4double shStrength = GetShellStrength(Z, nos);
123
124 l0 = GetL0(NormalizedEnergy);
125 l0Term += shStrength * l0;
126
127 l1 = GetL1(NormalizedEnergy);
128 l1Term += shStrength * l1;
129
130 l2 = GetL2(NormalizedEnergy);
131 l2Term += shStrength * l2;
132
133/*
134 //if(Z == 6){
135 G4cout << nos << ". "
136 << " E(MeV)= " << kineticEnergy/MeV
137 << " normE= " << NormalizedEnergy
138 << " sh en= " << GetShellEnergy(Z,nos)
139 << " str= " << shStrength
140 << " v0/v= " << fBetheVelocity
141 << " l0= " << l0Term
142 << " l1= " << l1Term
143 << " l2= " << l2Term
144 << G4endl;
145 // }
146*/
147 }
148
149 dedx = coeff * (l0Term - fBetheVelocity*l1Term + fBetheVelocity*fBetheVelocity*l2Term);
150
151 //G4cout << " E(MeV)= " << kineticEnergy/MeV
152 // << " dedx(Mev/mm)= " << dedx*mm/MeV << G4endl;
153
154 if(dedx < 0.0) dedx = 0.0;
155 return dedx;
156}
157
158
159G4int G4hQAOModel::GetNumberOfShell(G4int Z) const
160{
161 // Set return value from table
162 G4int nShell = 0;
163
164 // Set return value if in material available from Aahrus
165 for(G4int i=0; i<numberOfMaterials; i++) {
166
167 if(materialAvailable[i] == Z){
168 nShell = nbofShellForMaterial[i];
169 break;
170 }
171 else nShell = fNumberOfShells[Z];
172 }
173
174 return nShell;
175}
176
177
178
179G4double G4hQAOModel::GetShellEnergy(G4int Z, G4int nbOfTheShell) const
180{
181 G4double shellEnergy = alShellEnergy[0];
182 if (Z == 13) shellEnergy = alShellEnergy[nbOfTheShell];
183 else if(Z == 14) shellEnergy = siShellEnergy[nbOfTheShell];
184 else if(Z == 29) shellEnergy = cuShellEnergy[nbOfTheShell];
185 else if(Z == 73) shellEnergy = taShellEnergy[nbOfTheShell];
186 else if(Z == 79) shellEnergy = auShellEnergy[nbOfTheShell];
187 else if(Z == 78) shellEnergy = ptShellEnergy[nbOfTheShell];
188 else shellEnergy = GetOscillatorEnergy(Z, nbOfTheShell);
189
190 return shellEnergy;
191}
192
193
194G4double G4hQAOModel::GetOscillatorEnergy(G4int Z, G4int nbOfTheShell) const
195{
196 G4double squaredPlasmonEnergy = thePlasmonFactor;
197 G4double zeff = (G4double)Z;
198 if(currentMaterial)
199 squaredPlasmonEnergy *= (currentMaterial->GetDensity()*zeff*cm3)
200 / (g * currentElement->GetN());
201
202 G4double occn = GetOccupationNumber(Z,nbOfTheShell);
203 G4double plasmonTerm = 0.66667 * occn * squaredPlasmonEnergy/(zeff*zeff);
204
205 G4double ionTerm = std::exp(0.5) * currentElement->GetAtomicShell(nbOfTheShell);
206
207 ionTerm = ionTerm*ionTerm ;
208
209 G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm );
210
211/* if(material->GetName()=="Graphite"){
212 G4cout << "\t" << Z
213 << "\t" << nbOfTheShell
214 << "\t" << squaredPlasmonEnergy
215 << "\t" << plasmonTerm
216 << "\t" << ionTerm
217 << "\t" << GetOccupationNumber(Z,nbOfTheShell)
218 << "\t" << element->GetAtomicShell(nbOfTheShell)
219 << "\t" << oscShellEnergy << G4endl;}
220*/
221 return oscShellEnergy;
222}
223
224
225G4double G4hQAOModel::GetShellStrength(G4int Z, G4int nbOfTheShell) const
226{
227 G4double shellStrength = alShellStrength[0];
228
229 if(Z == 13) shellStrength = alShellStrength[nbOfTheShell];
230 else if(Z == 14) shellStrength = siShellStrength[nbOfTheShell];
231 else if(Z == 29) shellStrength = cuShellStrength[nbOfTheShell];
232 else if(Z == 73) shellStrength = taShellStrength[nbOfTheShell];
233 else if(Z == 79) shellStrength = auShellStrength[nbOfTheShell];
234 else if(Z == 78) shellStrength = ptShellStrength[nbOfTheShell];
235 else shellStrength = GetOccupationNumber(Z,nbOfTheShell) / (G4double)Z;
236
237 return shellStrength;
238}
239
240G4double G4hQAOModel::GetOccupationNumber(G4int Z, G4int ShellNb) const
241{
242
243 G4int indice = ShellNb ;
244 for (G4int z = 1 ; z < Z ; z++) {indice += fNumberOfShells[z];}
245 G4double x = (G4double)(nbOfElectronPerSubShell[indice+1]);
246 return x;
247}
248
249
250G4double G4hQAOModel::GetL0(G4double normEnergy) const
251{
252 G4int n;
253
254 for(n = 0; n < sizeL0; n++) {
255 if( normEnergy < L0[n][0] ) break;
256 }
257 if(0 == n) n = 1 ;
258 if(n >= sizeL0) n = sizeL0 - 1 ;
259
260 G4double l0 = L0[n][1];
261 G4double l0p = L0[n-1][1];
262 G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) /
263 (L0[n][0] - L0[n-1][0]);
264 return bethe ;
265
266}
267
268G4double G4hQAOModel::GetL1(G4double normEnergy) const
269{
270 G4int n;
271
272 for(n = 0; n < sizeL1; n++) {
273 if( normEnergy < L1[n][0] ) break;
274 }
275 if(0 == n) n = 1 ;
276 if(n >= sizeL1) n = sizeL1 - 1 ;
277
278 G4double l1 = L1[n][1];
279 G4double l1p = L1[n-1][1];
280 G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) /
281 (L1[n][0] - L1[n-1][0]);
282
283 return barkas;
284
285}
286
287
288G4double G4hQAOModel::GetL2(G4double normEnergy) const
289{
290 G4int n;
291 for(n = 0; n < sizeL2; n++) {
292 if( normEnergy < L2[n][0] ) break;
293 }
294 if(0 == n) n = 1 ;
295 if(n >= sizeL2) n = sizeL2 - 1 ;
296
297 G4double l2 = L2[n][1];
298 G4double l2p = L2[n-1][1];
299 G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) /
300 (L2[n][0] - L2[n-1][0]);
301
302 return bloch;
303}
304
305
306const G4int G4hQAOModel::materialAvailable[6] = {13,14,29,73,79,78};
307 /*
308 "Aluminum",
309 "Silicon",
310 "Copper",
311 "Tantalum",
312 "Gold",
313 "Platinum"};
314 */
315const G4int G4hQAOModel::nbofShellForMaterial[6] = {3,3,4,6,6,6};
316
317const G4double G4hQAOModel::alShellEnergy[3] ={ 2795e-6, 202e-6, 16.9e-6};
318const G4double G4hQAOModel::alShellStrength[3]={ 0.1349, 0.6387, 0.2264};
319const G4double G4hQAOModel::siShellEnergy[3] ={ 3179e-6, 249e-6, 20.3e-6 };
320const G4double G4hQAOModel::siShellStrength[3]={ 0.1222, 0.5972, 0.2806};
321const G4double G4hQAOModel::cuShellEnergy[4] ={ 16931e-6, 1930e-6, 199e-6, 39.6e-6};
322const G4double G4hQAOModel::cuShellStrength[4]={ 0.0505, 0.2561, 0.4913, 0.2021};
323const G4double G4hQAOModel::taShellEnergy[6] ={ 88926e-6, 18012e-6, 3210e-6, 575e-6, 108.7e-6, 30.8e-6};
324const G4double G4hQAOModel::taShellStrength[6]={ 0.0126, 0.0896, 0.2599, 0.3413, 0.2057, 0.0908};
325const G4double G4hQAOModel::auShellEnergy[6]={ 96235e-6, 25918e-6, 4116e-6, 599e-6, 87.3e-6, 36.9e-6};
326const G4double G4hQAOModel::auShellStrength[6]={ 0.0139, 0.0803, 0.2473, 0.423, 0.1124, 0.1231};
327const G4double G4hQAOModel::ptShellEnergy[6]={ 95017e-6, 25590e-6, 4063e-6, 576e-6, 81.9e-6, 31.4e-6};
328const G4double G4hQAOModel::ptShellStrength[6]={ 0.0129, 0.0745, 0.2295, 0.4627, 0.1324, 0.0879};
329
330
331const G4double G4hQAOModel::L0[67][2] =
332{
333 {0.00, 0.000001},
334 {0.10, 0.000001},
335 {0.12, 0.00001},
336 {0.14, 0.00005},
337 {0.16, 0.00014},
338 {0.18, 0.00030},
339 {0.20, 0.00057},
340 {0.25, 0.00189},
341 {0.30, 0.00429},
342 {0.35, 0.00784},
343 {0.40, 0.01248},
344 {0.45, 0.01811},
345 {0.50, 0.02462},
346 {0.60, 0.03980},
347 {0.70, 0.05731},
348 {0.80, 0.07662},
349 {0.90, 0.09733},
350 {1.00, 0.11916},
351 {1.20, 0.16532},
352 {1.40, 0.21376},
353 {1.60, 0.26362},
354 {1.80, 0.31428},
355 {2.00, 0.36532},
356 {2.50, 0.49272},
357 {3.00, 0.61765},
358 {3.50, 0.73863},
359 {4.00, 0.85496},
360 {4.50, 0.96634},
361 {5.00, 1.07272},
362 {6.00, 1.27086},
363 {7.00, 1.45075},
364 {8.00, 1.61412},
365 {9.00, 1.76277},
366 {10.00, 1.89836},
367 {12.00, 2.13625},
368 {14.00, 2.33787},
369 {16.00, 2.51093},
370 {18.00, 2.66134},
371 {20.00, 2.79358},
372 {25.00, 3.06539},
373 {30.00, 3.27902},
374 {35.00, 3.45430},
375 {40.00, 3.60281},
376 {45.00, 3.73167},
377 {50.00, 3.84555},
378 {60.00, 4.04011},
379 {70.00, 4.20264},
380 {80.00, 4.34229},
381 {90.00, 4.46474},
382 {100.00, 4.57378},
383 {120.00, 4.76155},
384 {140.00, 4.91953},
385 {160.00, 5.05590},
386 {180.00, 5.17588},
387 {200.00, 5.28299},
388 {250.00, 5.50925},
389 {300.00, 5.69364},
390 {350.00, 5.84926},
391 {400.00, 5.98388},
392 {450.00, 6.10252},
393 {500.00, 6.20856},
394 {600.00, 6.39189},
395 {700.00, 6.54677},
396 {800.00, 6.68084},
397 {900.00, 6.79905},
398 {1000.00, 6.90474}
399};
400
401
402const G4double G4hQAOModel::L1[22][2] =
403{
404 {0.00, -0.000001},
405 {0.10, -0.00001},
406 {0.20, -0.00049},
407 {0.30, -0.00084},
408 {0.40, 0.00085},
409 {0.50, 0.00519},
410 {0.60, 0.01198},
411 {0.70, 0.02074},
412 {0.80, 0.03133},
413 {0.90, 0.04369},
414 {1.00, 0.06035},
415 {2.00, 0.24023},
416 {3.00, 0.44284},
417 {4.00, 0.62012},
418 {5.00, 0.77031},
419 {6.00, 0.90390},
420 {7.00, 1.02705},
421 {8.00, 1.10867},
422 {9.00, 1.17546},
423 {10.00, 1.21599},
424 {15.00, 1.24349},
425 {20.00, 1.16752}
426};
427
428
429const G4double G4hQAOModel::L2[14][2] =
430{
431 {0.00, 0.000001},
432 {0.10, 0.00001},
433 {0.20, 0.00000},
434 {0.40, -0.00120},
435 {0.60, -0.00036},
436 {0.80, 0.00372},
437 {1.00, 0.01298},
438 {2.00, 0.08296},
439 {4.00, 0.21953},
440 {6.00, 0.23903},
441 {8.00, 0.20893},
442 {10.00, 0.10879},
443 {20.00, -0.88409},
444 {40.00, -1.13902}
445};
446
447
448const G4int G4hQAOModel::nbOfElectronPerSubShell[1540] =
449{
450 0, // consistency with G4AtomicShells
451 1,//------ H
452 2,//------ He
453 2, 1,//------ Li
454 2, 2,//------ Be
455 2, 2, 1,//------ B
456 2, 2, 2,//------ C
457 2, 2, 2, 1,//------ N
458 2, 2, 2, 2,//------ O
459 2, 2, 5,//------ F
460 2, 2, 2, 4,//------ Ne
461 2, 2, 2, 4, 1,//------ Na
462 2, 2, 2, 4, 2,//------ Mg
463 2, 2, 2, 4, 2, 1,//------ Al
464 2, 2, 2, 4, 2, 2,//------ Si
465 2, 2, 2, 4, 2, 3,//------ P
466 2, 2, 2, 4, 2, 4,//------
467 2, 2, 2, 4, 2, 5,//------
468 2, 2, 2, 4, 2, 2, 4,//------
469 2, 2, 2, 4, 2, 2, 4, 1,//------
470 2, 2, 2, 4, 2, 2, 4, 2,//------
471 2, 2, 2, 4, 2, 2, 4, 1, 2,//------
472 2, 2, 2, 4, 2, 2, 4, 2, 2,//------
473 2, 2, 2, 4, 2, 2, 4, 3, 2,//------
474 2, 2, 2, 4, 2, 2, 4, 4, 2,//------
475 2, 2, 2, 4, 2, 2, 4, 5, 2,//------
476 2, 2, 2, 4, 2, 2, 4, 6, 2,//------
477 2, 2, 2, 4, 2, 2, 4, 7, 2,//------
478 2, 2, 2, 4, 2, 2, 4, 4, 4, 2,//------
479 2, 2, 2, 4, 2, 2, 4, 4, 5, 2,//------
480 2, 2, 2, 4, 2, 2, 4, 4, 6, 2,//------
481 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 1,//------
482 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2,//------
483 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 3,//------
484 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 4,//------
485 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 5,//------
486 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4,//------
487 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1,//------
488 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2,//------
489 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,//------
490 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2, 2,//------
491 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 3, 2,//------
492 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 2,//------
493 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 5, 2,//------
494 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 6, 2,//------
495 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 7, 2,//------
496 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 4, 2,//------
497 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 5, 2,//------
498 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2,//------
499 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 1,//------
500 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2,//------
501 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 3,//------
502 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 4,//------
503 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 5,//------
504 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4,//------
505 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1,//------
506 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 2,//------
507 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,//------
508 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 2, 4, 2,//------
509 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 3, 2, 2, 4, 2,//------
510 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 4, 2, 2, 4, 2,//------
511 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 5, 2, 2, 4, 2,//------
512 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 2, 2, 4, 2,//------
513 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 2,//------
514 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 1, 2,//------
515 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 9, 2, 2, 4, 2,//------
516 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 10, 2, 2, 4, 2,//------
517 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 11, 2, 2, 4, 2,//------
518 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 12, 2, 2, 4, 2,//------
519 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 13, 2, 2, 4, 2,//------
520 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2,//------
521 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, 2,//------
522 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, 2,//------
523 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 3, 2,//------
524 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 2,//------
525 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 5, 2,//------
526 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 6, 2,//------
527 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 7, 2,//------
528 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 9, 1,//------
529 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 1,//------
530 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2,//------
531 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 1,//------
532 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2,//------
533 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 3,//------
534 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 4,//------
535 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 3,//------
536 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,//------
537 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4, 1,//------
538 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4, 2,//------
539 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,//------
540 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4, 2, 2,//------
541 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 2, 4, 1, 2,//------
542 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 3, 2, 2, 4, 1, 2,//------
543 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 4, 2, 2, 4, 1, 2,//------
544 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 6, 2, 2, 4, 2,//------
545 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 7, 2, 2, 4, 2,//------
546 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 7, 2, 2, 4, 1, 2,//------
547 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 8, 2, 2, 4, 1, 2,//------
548 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 10, 2, 2, 4, 2,//------
549 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 11, 2, 2, 4, 2,//------
550 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 12, 2, 2, 4, 2 //-----
551};
552
553const G4int G4hQAOModel::fNumberOfShells[101] =
554{
555 0 , // nonexisting zero element
556
557 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 3 , 4 , // 1 - 10
558
559 5 , 5 , 6 , 6 , 6 , 6 , 6 , 7 , 8 , 8 , // 11 - 20
560
561 9 , 9 , 9 , 9 , 9 , 9 , 9 , 10 , 10 , 10 , // 21 - 30
562
56311 , 11 , 11 , 11 , 11 , 12 , 13 , 13 , 14 , 14 , // 31 - 40
564
56514 , 14 , 14 , 14 , 14 , 15 , 15 , 15 , 16 , 16 , // 41 - 50
566
567// ----------------------------------------------------------
568
56916 , 16 , 16 , 17 , 18 , 18 , 19 , 19 , 19 , 19 , // 51 - 60
570
57119 , 19 , 19 , 20 , 19 , 19 , 19 , 19 , 19 , 20 , // 61 - 70
572
57321 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 22 , 22 , // 71 - 80
574
57523 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 , // 81 - 90
576
57727 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26 // 91 - 100
578
579};
580
std::vector< G4Element * > G4ElementVector
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4double GetZ() const
Definition: G4Element.hh:131
G4double GetN() const
Definition: G4Element.hh:134
G4double GetAtomicShell(G4int index) const
Definition: G4Element.cc:367
G4double GetDensity() const
Definition: G4Material.hh:179
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:189
size_t GetNumberOfElements() const
Definition: G4Material.hh:185
const G4double * GetAtomicNumDensityVector() const
Definition: G4Material.hh:215
G4double ElectronicStoppingPower(G4double z, G4double kineticEnergy) const
Definition: G4hQAOModel.cc:100
G4double StoppingPower(const G4Material *material, G4double kineticEnergy)
Definition: G4hQAOModel.cc:78