75 const G4int ListK = 28;
77 1., 2., 4., 6., 8., 11., 14., 17., 18., 21., 24.,
78 26., 29., 32., 38., 40., 41., 44., 49., 53., 55.,
79 60., 65., 70., 75., 81., 85., 92.};
80 static G4double ListKEnergy[ListK] = {
81 0.00275, 0.011, 0.043, 0.098, 0.173, 0.326,
82 0.524, 0.765, 0.853, 1.146, 1.472,
83 1.708, 2.081, 2.475, 3.323, 3.627,
84 3.779, 4.237, 5.016, 5.647, 5.966,
85 6.793, 7.602, 8.421, 9.249, 10.222,
89 G4double KEnergy = GetLinApprox(ListK,ListZK,ListKEnergy,Z);
104 Cascade[*nParticle].
SetMass( mass );
122 G4double mass = MuMass * massA / (MuMass + massA) ;
127 for(
G4int i = 2; i < 15; i++ ) {
128 EnergyLevel[i-1] = KEnergy / (i*i) ;
138 G4double ptot = std::sqrt(EnergyLevel[13]*(EnergyLevel[13] + 2.0*Emass));
141 AddNewParticle(theElectron,moment,Emass,&nPart,Cascade);
149 if((nAuger < nElec) && ((pGamma + 10000.0) *
G4UniformRand() < 10000.0) ) {
151 DeltaE = EnergyLevel[nLevel-1] - EnergyLevel[nLevel];
154 ptot = std::sqrt(DeltaE * (DeltaE + 2.0*Emass));
157 AddNewParticle(theElectron, moment, Emass, &nPart, Cascade);
165 G4int iLevel = nLevel - 1 ;
166 if(var > 10.0) iLevel -=
G4int(var-10.0) + 1;
167 if( iLevel < 0 ) iLevel = 0;
168 DeltaE = EnergyLevel[iLevel] - EnergyLevel[nLevel];
171 AddNewParticle(theGamma, moment, 0.0, &nPart, Cascade);
174 }
while( nLevel > 0 );
186 G4double xmax = ( 1.0 + Emass*Emass/ (MuMass*MuMass) );
195 G4double pmu = std::sqrt(KEnergy*(KEnergy + 2.0*MuMass));
208 Eelect = x*MuMass*0.5;
211 Pelect = std::sqrt( Eelect*Eelect - Emass*Emass );
219 Eelect = EL.
e() - Emass - 2.0*KEnergy;
225 }
while (Eelect < 0.0 || ecm < 0.0);
230 moment = std::sqrt(Eelect * (Eelect + 2.0*Emass))*(EL.
vect().
unit());
231 AddNewParticle(theElectron, moment, Emass, nCascade, Cascade);
235 ecm = 0.5*std::sqrt(ecm);