67 static const G4int nlevels = 28;
68 static const G4int listK[nlevels] = {
69 1, 2, 4, 6, 8, 11, 14, 17, 18, 21, 24,
70 26, 29, 32, 38, 40, 41, 44, 49, 53, 55,
71 60, 65, 70, 75, 81, 85, 92};
72 static const G4double listKEnergy[nlevels] = {
73 0.00275, 0.011, 0.043, 0.098, 0.173, 0.326,
74 0.524, 0.765, 0.853, 1.146, 1.472,
75 1.708, 2.081, 2.475, 3.323, 3.627,
76 3.779, 4.237, 5.016, 5.647, 5.966,
77 6.793, 7.602, 8.421, 9.249, 10.222,
80 fKLevelEnergy[0] = 0.0;
81 fKLevelEnergy[1] = listKEnergy[0];
83 for(
G4int i=1; i<nlevels; ++i) {
84 G4int z1 = listK[idx];
91 fKLevelEnergy[
z] = (y1 + (y2 - y1)*(
z - z1)/dz)*
z*
z;
94 fKLevelEnergy[z2] = listKEnergy[i];
97 for(
G4int i = 0; i<14; ++i) { fLevelEnergy[i] = 0.0; }
118 G4double mass = fMuMass * massA / (fMuMass + massA) ;
122 fLevelEnergy[0] = fKLevelEnergy[
std::min(Z, 92)];
123 for(
G4int i=1; i<14; ++i) {
124 fLevelEnergy[i] = e/(
G4double)((i+1)*(i+1));
134 AddNewParticle(theElectron,edep);
143 if((nAuger < nElec) && ((pGamma + 10000.0) *
G4UniformRand() < 10000.0) ) {
145 deltaE = fLevelEnergy[nLevel-1] - fLevelEnergy[nLevel];
147 AddNewParticle(theElectron, deltaE);
155 G4int iLevel = nLevel - 1 ;
156 if(var > 10.0) iLevel -=
G4int(var-10.0) + 1;
157 if( iLevel < 0 ) iLevel = 0;
158 deltaE = fLevelEnergy[iLevel] - fLevelEnergy[nLevel];
160 AddNewParticle(theGamma, deltaE);
165 }
while( nLevel > 0 );
175 outFile <<
"Simulation of electromagnetic cascade from capture level"
176 <<
" to K-shell of the mesonic atom\n."
177 <<
"Probabilities of gamma and Auger transitions from\n"
178 <<
" N.C.Mukhopadhyay Phys. Rep. 30 (1977) 1.\n";
static G4double GetNuclearMass(const G4double A, const G4double Z)
virtual ~G4EmCaptureCascade()
virtual void ModelDescription(std::ostream &outFile) const
void SetStatusChange(G4HadFinalStateStatus aS)
double A(double temperature)
G4double GetGlobalTime() const
static constexpr double eV
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
G4double GetPDGMass() const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static G4MuonMinus * MuonMinus()
void SetLocalEnergyDeposit(G4double aE)
static G4Electron * Electron()