114 G4bool isInCharge =
false;
116 G4bool hasMaterial =
false;
121 && hasMaterial) isInCharge =
true;
131 G4bool isInCharge =
false;
133 G4bool hasMaterial =
false;
139 && hasMaterial) isInCharge =
true;
176 if(nbOfShell < 1) nbOfShell = 1;
194 (material-> GetTotNbOfElectPerVolume()) /
205 G4double l0Term = 0, l1Term = 0, l2Term = 0;
207 for (
G4int nos = 0 ; nos < nbOfShell ; nos++){
216 l0 =
GetL0(NormalizedEnergy);
217 l0Term += shStrength * l0;
219 l1 =
GetL1(NormalizedEnergy);
220 l1Term += shStrength * l1;
222 l2 =
GetL2(NormalizedEnergy);
223 l2Term += shStrength * l2;
241 dedx = coeff * zParticle * zParticle * (l0Term
242 + zParticle * fBetheVelocity * l1Term
243 + zParticle * zParticle * fBetheVelocity * fBetheVelocity * l2Term);
275 G4int nbOfTheShell)
const
288 else G4cout <<
"WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
289 <<
"The model is not available for "
298 G4int nbOfTheShell)
const
305 G4double squaredPlasmonEnergy = 28.816 * 28.816 * 1
e-6
307 * (Z/element->
GetN()) ;
313 * squaredPlasmonEnergy / (Z*
Z) ;
317 ionTerm = ionTerm*ionTerm ;
319 G4double oscShellEnergy = std::sqrt( ionTerm + plasmonTerm );
331 return oscShellEnergy;
335 G4int nbOfTheShell)
const
348 else G4cout <<
"WARNING - G4QAOLowEnergyLoss::GetShellEnergy - "
349 <<
"The model is not available for "
353 return shellStrength;
359 G4int indice = ShellNb ;
370 for(n = 0; n <
sizeL0; n++) {
371 if( normEnergy <
L0[n][0] )
break;
374 if(n >= sizeL0) n = sizeL0 - 1 ;
378 G4double bethe = l0p + (l0 - l0p) * ( normEnergy -
L0[n-1][0]) /
379 (
L0[
n][0] -
L0[n-1][0]);
388 for(n = 0; n <
sizeL1; n++) {
389 if( normEnergy <
L1[n][0] )
break;
392 if(n >= sizeL1) n = sizeL1 - 1 ;
396 G4double barkas= l1p + (l1 - l1p) * ( normEnergy -
L1[n-1][0]) /
397 (
L1[
n][0] -
L1[n-1][0]);
407 for(n = 0; n <
sizeL2; n++) {
408 if( normEnergy <
L2[n][0] )
break;
411 if(n >= sizeL2) n = sizeL2 - 1 ;
415 G4double bloch = l2p + (l2 - l2p) * ( normEnergy -
L2[n-1][0]) /
416 (
L2[
n][0] -
L2[n-1][0]);
582 2, 2, 2, 4, 2, 2, 4, 1,
583 2, 2, 2, 4, 2, 2, 4, 2,
584 2, 2, 2, 4, 2, 2, 4, 1, 2,
585 2, 2, 2, 4, 2, 2, 4, 2, 2,
586 2, 2, 2, 4, 2, 2, 4, 3, 2,
587 2, 2, 2, 4, 2, 2, 4, 4, 2,
588 2, 2, 2, 4, 2, 2, 4, 5, 2,
589 2, 2, 2, 4, 2, 2, 4, 6, 2,
590 2, 2, 2, 4, 2, 2, 4, 7, 2,
591 2, 2, 2, 4, 2, 2, 4, 4, 4, 2,
592 2, 2, 2, 4, 2, 2, 4, 4, 5, 2,
593 2, 2, 2, 4, 2, 2, 4, 4, 6, 2,
594 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 1,
595 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2,
596 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 3,
597 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 4,
598 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 5,
599 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4,
600 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1,
601 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2,
602 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,
603 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 2, 2,
604 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 3, 2,
605 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 2,
606 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 5, 2,
607 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 6, 2,
608 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 7, 2,
609 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 4, 2,
610 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 5, 2,
611 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2,
612 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 1,
613 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2,
614 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 3,
615 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 4,
616 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 5,
617 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4,
618 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1,
619 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 2,
620 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 4, 1, 2,
621 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 2, 2, 2, 4, 2,
622 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 3, 2, 2, 4, 2,
623 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 4, 2, 2, 4, 2,
624 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 5, 2, 2, 4, 2,
625 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 2, 2, 4, 2,
626 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 2,
627 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 7, 2, 2, 4, 1, 2,
628 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 9, 2, 2, 4, 2,
629 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 10, 2, 2, 4, 2,
630 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 11, 2, 2, 4, 2,
631 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 12, 2, 2, 4, 2,
632 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 13, 2, 2, 4, 2,
633 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2,
634 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 1, 2,
635 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 2, 2,
636 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 3, 2,
637 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 2,
638 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 5, 2,
639 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 6, 2,
640 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 7, 2,
641 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 9, 1,
642 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 1,
643 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2,
644 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 1,
645 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2,
646 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 3,
647 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 4,
648 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 3,
649 2, 2, 2, 4, 2, 2, 4, 4, 6, 2, 2, 4, 4, 6, 6, 8, 2, 2, 4, 4, 6, 2, 2, 4,
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, 1,
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, 2,
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, 1, 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, 2, 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, 2, 4, 1, 2,
655 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,
656 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,
657 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,
658 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,
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, 1, 2,
660 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,
661 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,
662 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,
663 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
670 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 3 , 4 ,
672 5 , 5 , 6 , 6 , 6 , 6 , 6 , 7 , 8 , 8 ,
674 9 , 9 , 9 , 9 , 9 , 9 , 9 , 10 , 10 , 10 ,
676 11 , 11 , 11 , 11 , 11 , 12 , 13 , 13 , 14 , 14 ,
678 14 , 14 , 14 , 14 , 14 , 15 , 15 , 15 , 16 , 16 ,
682 16 , 16 , 16 , 17 , 18 , 18 , 19 , 19 , 19 , 19 ,
684 19 , 19 , 19 , 20 , 19 , 19 , 19 , 19 , 19 , 20 ,
686 21 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 22 , 22 ,
688 23 , 23 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 ,
690 27 , 27 , 27 , 26 , 26 , 27 , 27 , 26 , 26 , 26
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double GetAtomicShell(G4int index) const
static const G4double taShellEnergy[6]
static const G4double auShellEnergy[6]
static constexpr double MeV
static const G4double ptShellEnergy[6]
static const G4int fNumberOfShells[101]
G4double GetL1(G4double normEnergy) const
static constexpr double keV
static const G4double L2[14][2]
G4double HighEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const
G4double GetPDGCharge() const
static const G4double alShellEnergy[3]
static const G4int materialAvailable[6]
static constexpr double proton_mass_c2
const G4String & GetName() const
static constexpr double g
static constexpr double c_squared
G4ParticleDefinition * GetDefinition() const
G4double GetL2(G4double normEnergy) const
G4int GetNumberOfShell(const G4Material *material) const
G4double GetL0(G4double normEnergy) const
G4double GetShellEnergy(const G4Material *material, G4int nbOfTheShell) const
static constexpr double electron_mass_c2
G4double GetShellStrength(const G4Material *material, G4int nbOfTheShell) const
G4double LowEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const
static constexpr double twopi
G4double GetCharge() const
G4QAOLowEnergyLoss(const G4String &name)
static const G4double cuShellEnergy[4]
static const G4double cuShellStrength[4]
static const G4double taShellStrength[6]
static const G4double alShellStrength[3]
G4double GetOscillatorEnergy(const G4Material *material, G4int nbOfTheShell) const
static const G4double L1[22][2]
G4double TheValue(const G4DynamicParticle *particle, const G4Material *material)
static constexpr double eplus
static constexpr double c_light
static const G4double siShellStrength[3]
G4double EnergyLoss(const G4Material *material, G4double kineticEnergy, G4double zParticle) const
G4double GetKineticEnergy() const
static const G4double siShellEnergy[3]
G4GLOB_DLL std::ostream G4cout
static const G4int nbofShellForMaterial[6]
static const G4double L0[67][2]
G4double GetOccupationNumber(G4int Z, G4int ShellNb) const
static const G4int nbOfElectronPerSubShell[1540]
static const G4double ptShellStrength[6]
static constexpr double fine_structure_const
static G4AntiProton * AntiProtonDefinition()
static constexpr double hbarc_squared
static constexpr double cm3
static const G4double auShellStrength[6]
const G4Element * GetElement(G4int iel) const
G4bool IsInCharge(const G4DynamicParticle *particle, const G4Material *material) const
size_t GetNumberOfElements() const
G4double GetDensity() const