source: trunk/source/processes/electromagnetic/lowenergy/src/G4QAOLowEnergyLoss.cc@ 1197

Last change on this file since 1197 was 819, checked in by garnier, 17 years ago

import all except CVS

File size: 24.4 KB
Line 
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// GEANT 4 class implementation file
29//
30// History: New Implementation
31//
32// ---------- G4QAOLowEnergyLoss physics process -------
33// by Stephane Chauvie, 5 May 2000
34// Modified:
35//
36// 24/05/2000 MGP Modified to remove compilation warnings on Linux and DEC
37// Introduced sizes of L0, L1, L2 arrays
38// 23/05/2000 MGP Made compliant to design
39// 02/08/2000 V.Ivanchenko Clean up according new design
40// 16/09/2000 S. Chauvie Oscillator for all materials
41// 03/10/2000 V.Ivanchenko CodeWizard clean up
42// 05/11/2000 V.Ivanchenko "Aluminum" - correct name, end of cycle
43// over shells, and two bugs from previous edition
44// 10/05/2001 V.Ivanchenko Clean up againist Linux compilation with -Wall
45// 13/05/2001 S. Chauvie corrected bugs
46// 01/06/2001 V.Ivanchenko replace names by Z, change the validity range
47// from 50 keV to 5 KeV and change sign of the
48// Barkas term
49// 4/06/2001 S. Chauvie Corrected small bugs
50//
51// ************************************************************
52// It is the Quantal Harmonic Oscillator Model for energy loss
53// of slow antiproton
54// ************************************************************
55// --------------------------------------------------------------
56
57//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
58
59#include "G4QAOLowEnergyLoss.hh"
60#include "G4DynamicParticle.hh"
61#include "G4Material.hh"
62#include "G4ParticleDefinition.hh"
63#include "G4AntiProton.hh"
64
65//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
66
67G4QAOLowEnergyLoss::G4QAOLowEnergyLoss(const G4String& name)
68 : G4VLowEnergyModel(name)
69{
70 numberOfMaterials = 6;
71 sizeL0 = 67;
72 sizeL1 = 22;
73 sizeL2 = 14;
74}
75
76
77G4QAOLowEnergyLoss::~G4QAOLowEnergyLoss()
78{;}
79
80
81G4double G4QAOLowEnergyLoss::HighEnergyLimit(const G4ParticleDefinition* ,
82 const G4Material* ) const
83{
84 return 2.0*MeV ;
85}
86
87
88G4double G4QAOLowEnergyLoss::LowEnergyLimit(const G4ParticleDefinition* ,
89 const G4Material* ) const
90{
91 // return 50.0*keV ;
92 return 5.0*keV ;
93}
94
95
96G4double G4QAOLowEnergyLoss::HighEnergyLimit(const G4ParticleDefinition* ) const
97{
98 return 2.0*MeV ;
99}
100
101G4double G4QAOLowEnergyLoss::LowEnergyLimit(const G4ParticleDefinition* ) const
102{
103 // return 50.0*keV ;
104 return 5.0*keV ;
105}
106
107
108G4bool G4QAOLowEnergyLoss::IsInCharge(const G4DynamicParticle* particle,
109 const G4Material* material) const
110{
111 G4bool isInCharge = false;
112
113 G4bool hasMaterial = false;
114
115 if (material->GetNumberOfElements() == 1) hasMaterial = true;
116
117 if ((particle->GetDefinition()) == (G4AntiProton::AntiProtonDefinition())
118 && hasMaterial) isInCharge = true;
119
120 return isInCharge;
121
122}
123
124G4bool G4QAOLowEnergyLoss::IsInCharge(const G4ParticleDefinition* aParticle,
125 const G4Material* material) const
126{
127
128 G4bool isInCharge = false;
129
130 G4bool hasMaterial = false;
131
132 if (material->GetNumberOfElements() == 1) hasMaterial = true;
133
134
135 if (aParticle == (G4AntiProton::AntiProtonDefinition())
136 && hasMaterial) isInCharge = true;
137
138 return isInCharge;
139
140}
141
142
143G4double G4QAOLowEnergyLoss::TheValue(const G4DynamicParticle* particle,
144 const G4Material* material)
145{
146 G4double zParticle = (G4int)(particle->GetCharge())/eplus;
147
148 G4double energy = particle->GetKineticEnergy() ;
149 G4double eloss = EnergyLoss(material,energy,zParticle) ;
150
151 return eloss ;
152}
153
154
155G4double G4QAOLowEnergyLoss::TheValue(const G4ParticleDefinition* aParticle,
156 const G4Material* material,
157 G4double kineticEnergy)
158{
159 G4double zParticle = (aParticle->GetPDGCharge())/eplus;
160
161 G4double eloss = EnergyLoss(material,kineticEnergy,zParticle) ;
162
163 return eloss ;
164}
165
166
167
168G4double G4QAOLowEnergyLoss::EnergyLoss(const G4Material* material,
169 G4double kineticEnergy,
170 G4double zParticle) const
171{
172 G4int nbOfShell = GetNumberOfShell(material);
173 if(nbOfShell < 1) nbOfShell = 1;
174
175 //G4int iz = (G4int)(material->GetZ());
176 //if(iz < 1) iz = 1;
177 //else if(iz > 100) iz = 100;
178 //G4int nbOfShell = fNumberOfShells[iz];
179
180 /*
181 if(material->GetName()=="Graphite"){
182 G4cout << " E(MeV)= " << kineticEnergy/MeV << " n= "
183 << nbOfShell
184 << " for " << material->GetZ() << G4endl;
185 }
186 */
187 G4double dedx=0;
188
189 G4double v = c_light * std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 );
190 G4double coeff = twopi * proton_mass_c2 *
191 (material-> GetTotNbOfElectPerVolume()) /
192 electron_mass_c2 ;
193 G4double fBetheVelocity = fine_structure_const * c_light / v;
194 coeff *= fine_structure_const * fine_structure_const * hbarc_squared /
195 kineticEnergy ;
196
197 //G4double beta = std::sqrt( 2.0 * kineticEnergy / proton_mass_c2 );
198 //G4double fBetheVelocity = std::sqrt( 2.0 * 25.0 * keV / proton_mass_c2 )/beta;
199 //G4double coeff= twopi_mc2_rcl2*(material->GetElectronDensity())/(beta*beta);
200
201
202 G4double l0Term = 0, l1Term = 0, l2Term = 0;
203
204 for (G4int nos = 0 ; nos < nbOfShell ; nos++){
205
206 G4double l0 = 0, l1 = 0, l2 = 0;
207 G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * v * v ) /
208 ( c_squared * GetShellEnergy(material,nos) );
209 //G4double NormalizedEnergy = ( 2.0 * electron_mass_c2 * beta * beta ) /
210 // GetShellEnergy(material,nos);
211 G4double shStrength = GetShellStrength(material,nos);
212
213 l0 = GetL0(NormalizedEnergy);
214 l0Term += shStrength * l0;
215
216 l1 = GetL1(NormalizedEnergy);
217 l1Term += shStrength * l1;
218
219 l2 = GetL2(NormalizedEnergy);
220 l2Term += shStrength * l2;
221
222 /*
223 if(material->GetName()=="Graphite"){
224 G4cout << nos << ". "
225 << " E(MeV)= " << kineticEnergy/MeV
226 << " normE= " << NormalizedEnergy
227 << " sh en= " << GetShellEnergy(material,nos)
228 << " str= " << shStrength
229 << " v0/v= " << fBetheVelocity
230 << " l0= " << l0Term
231 << " l1= " << l1Term
232 << " l2= " << l2Term
233 << G4endl;
234 }
235 */
236 }
237
238 dedx = coeff * zParticle * zParticle * (l0Term
239 + zParticle * fBetheVelocity * l1Term
240 + zParticle * zParticle * fBetheVelocity * fBetheVelocity * l2Term);
241
242 // G4cout << " E(MeV)= " << kineticEnergy/MeV
243 // << " dedx(Mev/mm)= " << dedx*mm/MeV << G4endl;
244
245 return dedx ;
246
247}
248
249
250G4int G4QAOLowEnergyLoss::GetNumberOfShell(const G4Material* material) const
251{
252 // Set return value from table
253 G4int Z = (G4int)(material->GetZ());
254 G4int nShell = 0;
255
256 // Set return value if in material available from Aahrus
257 for(G4int i=0; i<numberOfMaterials; i++) {
258
259 if(materialAvailable[i] == Z){
260 nShell = nbofShellForMaterial[i];
261 break;
262 }
263 else nShell = fNumberOfShells[Z];
264 }
265
266 return nShell;
267}
268
269
270
271G4double G4QAOLowEnergyLoss::GetShellEnergy(const G4Material* material,
272 G4int nbOfTheShell) const
273{
274 //
275 G4double shellEnergy = alShellEnergy[0];
276
277 if(material->GetZ() == 13) shellEnergy = alShellEnergy[nbOfTheShell];
278 else if(material->GetZ() == 14)shellEnergy = siShellEnergy[nbOfTheShell];
279 else if(material->GetZ() == 29)shellEnergy = cuShellEnergy[nbOfTheShell];
280 else if(material->GetZ() == 73)shellEnergy = taShellEnergy[nbOfTheShell];
281 else if(material->GetZ() == 79)shellEnergy = auShellEnergy[nbOfTheShell];
282 else if(material->GetZ() == 78)shellEnergy = ptShellEnergy[nbOfTheShell];
283 else if (material->GetNumberOfElements() == 1)
284 shellEnergy = GetOscillatorEnergy(material, nbOfTheShell);
285 else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
286 << "The model is not available for "
287 << material->GetName()
288 << G4endl;
289
290 return shellEnergy;
291}
292
293
294G4double G4QAOLowEnergyLoss::GetOscillatorEnergy(const G4Material* material,
295 G4int nbOfTheShell) const
296{
297
298 const G4Element* element = material->GetElement(0);
299
300 G4int Z = (G4int)(element->GetZ());
301
302G4double squaredPlasmonEnergy = 28.816 * 28.816 * 1e-6
303 * material->GetDensity()/g/cm3
304 * (Z/element->GetN()) ;
305//G4double squaredPlasmonEnergy = 28.16 * 28.16 * 1e-6
306// * (material->GetDensity()) * (cm3/g)
307// * Z / (element->GetN()) ;
308
309 G4double plasmonTerm = 0.66667 * GetOccupationNumber(Z,nbOfTheShell)
310 * squaredPlasmonEnergy / (Z*Z) ;
311
312 G4double ionTerm = std::exp(0.5) * (element->GetAtomicShell(nbOfTheShell)) ;
313
314 ionTerm = ionTerm*ionTerm ;
315
316 G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm );
317
318/* if(material->GetName()=="Graphite"){
319 G4cout << "\t" << Z
320 << "\t" << nbOfTheShell
321 << "\t" << squaredPlasmonEnergy
322 << "\t" << plasmonTerm
323 << "\t" << ionTerm
324 << "\t" << GetOccupationNumber(Z,nbOfTheShell)
325 << "\t" << element->GetAtomicShell(nbOfTheShell)
326 << "\t" << oscShellEnergy << G4endl;}
327*/
328 return oscShellEnergy;
329}
330
331
332G4double G4QAOLowEnergyLoss::GetShellStrength(const G4Material* material,
333 G4int nbOfTheShell) const
334{
335 G4double shellStrength = alShellStrength[0];
336
337 if(material->GetZ() == 13) shellStrength = alShellStrength[nbOfTheShell];
338 else if(material->GetZ() == 14)shellStrength =siShellStrength[nbOfTheShell];
339 else if(material->GetZ() == 29)shellStrength =cuShellStrength[nbOfTheShell];
340 else if(material->GetZ() == 73)shellStrength =taShellStrength[nbOfTheShell];
341 else if(material->GetZ() == 79)shellStrength =auShellStrength[nbOfTheShell];
342 else if(material->GetZ() == 78)shellStrength =ptShellStrength[nbOfTheShell];
343 else if (material->GetNumberOfElements() == 1){
344 G4int Z = (G4int)(material->GetZ());
345 shellStrength = GetOccupationNumber(Z,nbOfTheShell) / Z ;}
346 else G4cout << "WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
347 << "The model is not available for "
348 << material->GetName()
349 << G4endl;
350
351 return shellStrength;
352}
353
354G4double G4QAOLowEnergyLoss::GetOccupationNumber(G4int Z, G4int ShellNb) const
355{
356
357 G4int indice = ShellNb ;
358 for (G4int z = 1 ; z < Z ; z++) {indice += fNumberOfShells[z];}
359
360 return nbOfElectronPerSubShell[indice+1];
361}
362
363
364G4double G4QAOLowEnergyLoss::GetL0(G4double normEnergy) const
365{
366 G4int n;
367
368 for(n = 0; n < sizeL0; n++) {
369 if( normEnergy < L0[n][0] ) break;
370 }
371 if(0 == n) n = 1 ;
372 if(n >= sizeL0) n = sizeL0 - 1 ;
373
374 G4double l0 = L0[n][1];
375 G4double l0p = L0[n-1][1];
376 G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) /
377 (L0[n][0] - L0[n-1][0]);
378 return bethe ;
379
380}
381
382G4double G4QAOLowEnergyLoss::GetL1(G4double normEnergy) const
383{
384 G4int n;
385
386 for(n = 0; n < sizeL1; n++) {
387 if( normEnergy < L1[n][0] ) break;
388 }
389 if(0 == n) n = 1 ;
390 if(n >= sizeL1) n = sizeL1 - 1 ;
391
392 G4double l1 = L1[n][1];
393 G4double l1p = L1[n-1][1];
394 G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) /
395 (L1[n][0] - L1[n-1][0]);
396
397 return barkas;
398
399}
400
401
402G4double G4QAOLowEnergyLoss::GetL2(G4double normEnergy) const
403{
404 G4int n;
405 for(n = 0; n < sizeL2; n++) {
406 if( normEnergy < L2[n][0] ) break;
407 }
408 if(0 == n) n = 1 ;
409 if(n >= sizeL2) n = sizeL2 - 1 ;
410
411 G4double l2 = L2[n][1];
412 G4double l2p = L2[n-1][1];
413 G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) /
414 (L2[n][0] - L2[n-1][0]);
415
416 return bloch;
417}
418
419
420const G4int G4QAOLowEnergyLoss::materialAvailable[6] = {13,14,29,73,79,78};
421 /*
422 "Aluminum",
423 "Silicon",
424 "Copper",
425 "Tantalum",
426 "Gold",
427 "Platinum"};
428 */
429const G4int G4QAOLowEnergyLoss::nbofShellForMaterial[6] = {3,3,4,6,6,6 };
430
431G4double G4QAOLowEnergyLoss::alShellEnergy[3] ={ 2795e-6, 202e-6, 16.9e-6};
432G4double G4QAOLowEnergyLoss::alShellStrength[3]={ 0.1349, 0.6387, 0.2264};
433G4double G4QAOLowEnergyLoss::siShellEnergy[3] ={ 3179e-6, 249e-6, 20.3e-6 };
434G4double G4QAOLowEnergyLoss::siShellStrength[3]={ 0.1222, 0.5972, 0.2806};
435G4double G4QAOLowEnergyLoss::cuShellEnergy[4] ={ 16931e-6, 1930e-6, 199e-6, 39.6e-6};
436G4double G4QAOLowEnergyLoss::cuShellStrength[4]={ 0.0505, 0.2561, 0.4913, 0.2021};
437G4double G4QAOLowEnergyLoss::taShellEnergy[6] ={ 88926e-6, 18012e-6, 3210e-6, 575e-6, 108.7e-6, 30.8e-6};
438G4double G4QAOLowEnergyLoss::taShellStrength[6]={ 0.0126, 0.0896, 0.2599, 0.3413, 0.2057, 0.0908};
439G4double G4QAOLowEnergyLoss::auShellEnergy[6]={ 96235e-6, 25918e-6, 4116e-6, 599e-6, 87.3e-6, 36.9e-6};
440G4double G4QAOLowEnergyLoss::auShellStrength[6]={ 0.0139, 0.0803, 0.2473, 0.423, 0.1124, 0.1231};
441G4double G4QAOLowEnergyLoss::ptShellEnergy[6]={ 95017e-6, 25590e-6, 4063e-6, 576e-6, 81.9e-6, 31.4e-6};
442G4double G4QAOLowEnergyLoss::ptShellStrength[6]={ 0.0129, 0.0745, 0.2295, 0.4627, 0.1324, 0.0879};
443
444
445const G4double G4QAOLowEnergyLoss::L0[67][2] =
446{
447 {0.00, 0.000001},
448 {0.10, 0.000001},
449 {0.12, 0.00001},
450 {0.14, 0.00005},
451 {0.16, 0.00014},
452 {0.18, 0.00030},
453 {0.20, 0.00057},
454 {0.25, 0.00189},
455 {0.30, 0.00429},
456 {0.35, 0.00784},
457 {0.40, 0.01248},
458 {0.45, 0.01811},
459 {0.50, 0.02462},
460 {0.60, 0.03980},
461 {0.70, 0.05731},
462 {0.80, 0.07662},
463 {0.90, 0.09733},
464 {1.00, 0.11916},
465 {1.20, 0.16532},
466 {1.40, 0.21376},
467 {1.60, 0.26362},
468 {1.80, 0.31428},
469 {2.00, 0.36532},
470 {2.50, 0.49272},
471 {3.00, 0.61765},
472 {3.50, 0.73863},
473 {4.00, 0.85496},
474 {4.50, 0.96634},
475 {5.00, 1.07272},
476 {6.00, 1.27086},
477 {7.00, 1.45075},
478 {8.00, 1.61412},
479 {9.00, 1.76277},
480 {10.00, 1.89836},
481 {12.00, 2.13625},
482 {14.00, 2.33787},
483 {16.00, 2.51093},
484 {18.00, 2.66134},
485 {20.00, 2.79358},
486 {25.00, 3.06539},
487 {30.00, 3.27902},
488 {35.00, 3.45430},
489 {40.00, 3.60281},
490 {45.00, 3.73167},
491 {50.00, 3.84555},
492 {60.00, 4.04011},
493 {70.00, 4.20264},
494 {80.00, 4.34229},
495 {90.00, 4.46474},
496 {100.00, 4.57378},
497 {120.00, 4.76155},
498 {140.00, 4.91953},
499 {160.00, 5.05590},
500 {180.00, 5.17588},
501 {200.00, 5.28299},
502 {250.00, 5.50925},
503 {300.00, 5.69364},
504 {350.00, 5.84926},
505 {400.00, 5.98388},
506 {450.00, 6.10252},
507 {500.00, 6.20856},
508 {600.00, 6.39189},
509 {700.00, 6.54677},
510 {800.00, 6.68084},
511 {900.00, 6.79905},
512 {1000.00, 6.90474}
513};
514
515
516const G4double G4QAOLowEnergyLoss::L1[22][2] =
517{
518 {0.00, -0.000001},
519 {0.10, -0.00001},
520 {0.20, -0.00049},
521 {0.30, -0.00084},
522 {0.40, 0.00085},
523 {0.50, 0.00519},
524 {0.60, 0.01198},
525 {0.70, 0.02074},
526 {0.80, 0.03133},
527 {0.90, 0.04369},
528 {1.00, 0.06035},
529 {2.00, 0.24023},
530 {3.00, 0.44284},
531 {4.00, 0.62012},
532 {5.00, 0.77031},
533 {6.00, 0.90390},
534 {7.00, 1.02705},
535 {8.00, 1.10867},
536 {9.00, 1.17546},
537 {10.00, 1.21599},
538 {15.00, 1.24349},
539 {20.00, 1.16752}
540};
541
542
543const G4double G4QAOLowEnergyLoss::L2[14][2] =
544{
545 {0.00, 0.000001},
546 {0.10, 0.00001},
547 {0.20, 0.00000},
548 {0.40, -0.00120},
549 {0.60, -0.00036},
550 {0.80, 0.00372},
551 {1.00, 0.01298},
552 {2.00, 0.08296},
553 {4.00, 0.21953},
554 {6.00, 0.23903},
555 {8.00, 0.20893},
556 {10.00, 0.10879},
557 {20.00, -0.88409},
558 {40.00, -1.13902}
559};
560
561
562const G4int G4QAOLowEnergyLoss::nbOfElectronPerSubShell[1540] =
563{
564 0, // consistency with G4AtomicShells
565 1,//------ H
566 2,//------ He
567 2, 1,//------ Li
568 2, 2,//------ Be
569 2, 2, 1,//------ B
570 2, 2, 2,//------ C
571 2, 2, 2, 1,//------ N
572 2, 2, 2, 2,//------ O
573 2, 2, 5,//------ F
574 2, 2, 2, 4,//------ Ne
575 2, 2, 2, 4, 1,//------ Na
576 2, 2, 2, 4, 2,//------ Mg
577 2, 2, 2, 4, 2, 1,//------ Al
578 2, 2, 2, 4, 2, 2,//------ Si
579 2, 2, 2, 4, 2, 3,//------ P
580 2, 2, 2, 4, 2, 4,//------
581 2, 2, 2, 4, 2, 5,//------
582 2, 2, 2, 4, 2, 2, 4,//------
583 2, 2, 2, 4, 2, 2, 4, 1,//------
584 2, 2, 2, 4, 2, 2, 4, 2,//------
585 2, 2, 2, 4, 2, 2, 4, 1, 2,//------
586 2, 2, 2, 4, 2, 2, 4, 2, 2,//------
587 2, 2, 2, 4, 2, 2, 4, 3, 2,//------
588 2, 2, 2, 4, 2, 2, 4, 4, 2,//------
589 2, 2, 2, 4, 2, 2, 4, 5, 2,//------
590 2, 2, 2, 4, 2, 2, 4, 6, 2,//------
591 2, 2, 2, 4, 2, 2, 4, 7, 2,//------
592 2, 2, 2, 4, 2, 2, 4, 4, 4, 2,//------
593 2, 2, 2, 4, 2, 2, 4, 4, 5, 2,//------
594 2, 2, 2, 4, 2, 2, 4, 4, 6, 2,//------
595 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 1,//------
596 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2,//------
597 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 3,//------
598 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 4,//------
599 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 5,//------
600 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4,//------
601 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1,//------
602 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2,//------
603 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,//------
604 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2, 2,//------
605 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 3, 2,//------
606 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 2,//------
607 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 5, 2,//------
608 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 6, 2,//------
609 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 7, 2,//------
610 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 4, 2,//------
611 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 5, 2,//------
612 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2,//------
613 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 1,//------
614 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2,//------
615 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 3,//------
616 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 4,//------
617 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 5,//------
618 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4,//------
619 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1,//------
620 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 2,//------
621 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,//------
622 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 2, 4, 2,//------
623 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 3, 2, 2, 4, 2,//------
624 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 4, 2, 2, 4, 2,//------
625 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 5, 2, 2, 4, 2,//------
626 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 2, 2, 4, 2,//------
627 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 2,//------
628 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 1, 2,//------
629 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 9, 2, 2, 4, 2,//------
630 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 10, 2, 2, 4, 2,//------
631 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 11, 2, 2, 4, 2,//------
632 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 12, 2, 2, 4, 2,//------
633 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 13, 2, 2, 4, 2,//------
634 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2,//------
635 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, 2,//------
636 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, 2,//------
637 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 3, 2,//------
638 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 2,//------
639 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 5, 2,//------
640 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 6, 2,//------
641 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 7, 2,//------
642 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 9, 1,//------
643 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 1,//------
644 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2,//------
645 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 1,//------
646 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2,//------
647 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 3,//------
648 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 4,//------
649 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 3,//------
650 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,//------
651 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,//------
652 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,//------
653 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,//------
654 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,//------
655 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,//------
656 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,//------
657 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,//------
658 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,//------
659 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,//------
660 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,//------
661 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,//------
662 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,//------
663 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,//------
664 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 //-----
665};
666
667const G4int G4QAOLowEnergyLoss::fNumberOfShells[101] =
668{
669 0 , // nonexisting zero element
670
671 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 3 , 4 , // 1 - 10
672
673 5 , 5 , 6 , 6 , 6 , 6 , 6 , 7 , 8 , 8 , // 11 - 20
674
675 9 , 9 , 9 , 9 , 9 , 9 , 9 , 10 , 10 , 10 , // 21 - 30
676
67711 , 11 , 11 , 11 , 11 , 12 , 13 , 13 , 14 , 14 , // 31 - 40
678
67914 , 14 , 14 , 14 , 14 , 15 , 15 , 15 , 16 , 16 , // 41 - 50
680
681// ----------------------------------------------------------
682
68316 , 16 , 16 , 17 , 18 , 18 , 19 , 19 , 19 , 19 , // 51 - 60
684
68519 , 19 , 19 , 20 , 19 , 19 , 19 , 19 , 19 , 20 , // 61 - 70
686
68721 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 22 , 22 , // 71 - 80
688
68923 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 , // 81 - 90
690
69127 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26 // 91 - 100
692
693};
694
695
Note: See TracBrowser for help on using the repository browser.