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 const 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,
104 Cascade[*nParticle].
SetMass( mass );
124 const G4double KEnergy = 13.6 *
eV * Z * Z * mass/ electron_mass_c2;
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));
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));
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];
174 }
while( nLevel > 0 );
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());
235 ecm = 0.5*std::sqrt(ecm);
236 bst = NN.boostVector();
void SetParticleDef(G4ParticleDefinition *c)
CLHEP::Hep3Vector G4ThreeVector
void AddNewParticle(G4ParticleDefinition *aParticle, G4ThreeVector &Momentum, G4double mass, G4int *nParticle, G4GHEKinematicsVector *Cascade)
G4ParticleDefinition * theElectron
G4ThreeVector & GetRandomVec()
static G4AntiNeutrinoE * AntiNeutrinoE()
G4MuMinusCaptureCascade()
static G4NeutrinoMu * NeutrinoMu()
G4int DoCascade(const G4double Z, const G4double A, G4GHEKinematicsVector *Cascade)
G4double GetLinApprox(G4int N, const G4double *X, const G4double *Y, G4double Xuser)
G4double GetKShellEnergy(G4double Z)
G4double GetPDGMass() const
void SetMomentumAndUpdate(G4ParticleMomentum mom)
~G4MuMinusCaptureCascade()
void DoBoundMuonMinusDecay(G4double Z, G4int *nCascade, G4GHEKinematicsVector *Cascade)
void SetMass(G4double mas)
static G4MuonMinus * MuonMinus()
static G4Electron * Electron()
G4ParticleDefinition * theGamma
CLHEP::HepLorentzVector G4LorentzVector