67 theZieglerFactor =
eV*
cm2*1.0e-15;
68 thePlasmonFactor = 28.816 * 28.816 * 1
e-6;
88 for (
G4int i=0; i<numberOfElements; i++)
90 currentElement = (*theElementVector)[i] ;
104 G4int nbOfShell = GetNumberOfShell(Z);
105 if(nbOfShell < 1) nbOfShell = 1;
115 G4double l0Term = 0, l1Term = 0, l2Term = 0;
117 for (
G4int nos = 0 ; nos < nbOfShell ; nos++){
122 G4double shStrength = GetShellStrength(Z, nos);
124 l0 = GetL0(NormalizedEnergy);
125 l0Term += shStrength * l0;
127 l1 = GetL1(NormalizedEnergy);
128 l1Term += shStrength * l1;
130 l2 = GetL2(NormalizedEnergy);
131 l2Term += shStrength * l2;
149 dedx = coeff * (l0Term - fBetheVelocity*l1Term + fBetheVelocity*fBetheVelocity*l2Term);
154 if(dedx < 0.0) dedx = 0.0;
165 for(
G4int i=0; i<numberOfMaterials; i++) {
167 if(materialAvailable[i] == Z){
168 nShell = nbofShellForMaterial[i];
171 else nShell = fNumberOfShells[
Z];
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);
196 G4double squaredPlasmonEnergy = thePlasmonFactor;
199 squaredPlasmonEnergy *= (currentMaterial->
GetDensity()*zeff*
cm3)
200 / (
g * currentElement->
GetN());
202 G4double occn = GetOccupationNumber(Z,nbOfTheShell);
203 G4double plasmonTerm = 0.66667 * occn * squaredPlasmonEnergy/(zeff*zeff);
207 ionTerm = ionTerm*ionTerm ;
209 G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm );
221 return oscShellEnergy;
227 G4double shellStrength = alShellStrength[0];
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;
237 return shellStrength;
243 G4int indice = ShellNb ;
244 for (
G4int z = 1 ;
z <
Z ;
z++) {indice += fNumberOfShells[
z];}
254 for(n = 0; n < sizeL0; n++) {
255 if( normEnergy < L0[n][0] )
break;
258 if(n >= sizeL0) n = sizeL0 - 1 ;
262 G4double bethe = l0p + (l0 - l0p) * ( normEnergy - L0[n-1][0]) /
263 (L0[
n][0] - L0[n-1][0]);
272 for(n = 0; n < sizeL1; n++) {
273 if( normEnergy < L1[n][0] )
break;
276 if(n >= sizeL1) n = sizeL1 - 1 ;
280 G4double barkas= l1p + (l1 - l1p) * ( normEnergy - L1[n-1][0]) /
281 (L1[
n][0] - L1[n-1][0]);
291 for(n = 0; n < sizeL2; n++) {
292 if( normEnergy < L2[n][0] )
break;
295 if(n >= sizeL2) n = sizeL2 - 1 ;
299 G4double bloch = l2p + (l2 - l2p) * ( normEnergy - L2[n-1][0]) /
300 (L2[
n][0] - L2[n-1][0]);
306 const G4int G4hQAOModel::materialAvailable[6] = {13,14,29,73,79,78};
315 const G4int G4hQAOModel::nbofShellForMaterial[6] = {3,3,4,6,6,6};
317 const G4double G4hQAOModel::alShellEnergy[3] ={ 2795
e-6, 202
e-6, 16.9e-6};
318 const G4double G4hQAOModel::alShellStrength[3]={ 0.1349, 0.6387, 0.2264};
319 const G4double G4hQAOModel::siShellEnergy[3] ={ 3179
e-6, 249
e-6, 20.3e-6 };
320 const G4double G4hQAOModel::siShellStrength[3]={ 0.1222, 0.5972, 0.2806};
321 const G4double G4hQAOModel::cuShellEnergy[4] ={ 16931
e-6, 1930
e-6, 199e-6, 39.6e-6};
322 const G4double G4hQAOModel::cuShellStrength[4]={ 0.0505, 0.2561, 0.4913, 0.2021};
323 const G4double G4hQAOModel::taShellEnergy[6] ={ 88926
e-6, 18012
e-6, 3210e-6, 575e-6, 108.7e-6, 30.8e-6};
324 const G4double G4hQAOModel::taShellStrength[6]={ 0.0126, 0.0896, 0.2599, 0.3413, 0.2057, 0.0908};
325 const G4double G4hQAOModel::auShellEnergy[6]={ 96235
e-6, 25918
e-6, 4116e-6, 599e-6, 87.3e-6, 36.9e-6};
326 const G4double G4hQAOModel::auShellStrength[6]={ 0.0139, 0.0803, 0.2473, 0.423, 0.1124, 0.1231};
327 const G4double G4hQAOModel::ptShellEnergy[6]={ 95017
e-6, 25590
e-6, 4063e-6, 576e-6, 81.9e-6, 31.4e-6};
328 const G4double G4hQAOModel::ptShellStrength[6]={ 0.0129, 0.0745, 0.2295, 0.4627, 0.1324, 0.0879};
331 const G4double G4hQAOModel::L0[67][2] =
402 const G4double G4hQAOModel::L1[22][2] =
429 const G4double G4hQAOModel::L2[14][2] =
448 const G4int G4hQAOModel::nbOfElectronPerSubShell[1540] =
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
553 const G4int G4hQAOModel::fNumberOfShells[101] =
557 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 3 , 4 ,
559 5 , 5 , 6 , 6 , 6 , 6 , 6 , 7 , 8 , 8 ,
561 9 , 9 , 9 , 9 , 9 , 9 , 9 , 10 , 10 , 10 ,
563 11 , 11 , 11 , 11 , 11 , 12 , 13 , 13 , 14 , 14 ,
565 14 , 14 , 14 , 14 , 14 , 15 , 15 , 15 , 16 , 16 ,
569 16 , 16 , 16 , 17 , 18 , 18 , 19 , 19 , 19 , 19 ,
571 19 , 19 , 19 , 20 , 19 , 19 , 19 , 19 , 19 , 20 ,
573 21 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 22 , 22 ,
575 23 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 ,
577 27 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26