Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 (Vladimir.Ivanchenko@cern.ch)
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