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