98 fTime = projectile.GetGlobalTime();
101 G4double muBindingEnergy = projectile.GetBoundEnergy();
113 G4double muMom =std::sqrt(muBindingEnergy*(muBindingEnergy + 2.0*
fMuMass));
124 if((1 == Z && 1 == A) || (2 == Z && 3 == A)) {
134 residualMass*residualMass/availableEnergy);
144 }
else if((1 == Z && 2 == A) || (2 == Z && 4 == A)) {
157 residualMass*residualMass/availableEnergy);
181 G4int reentryCount = 0;
188 pDef = nucleons[
index].GetDefinition();
206 momResidual = momInitial - momNu;
207 eEx = momResidual.
mag() - residualMass;
208 if(eEx < 0.0 && eEx + nenergy >= 0.0) {
209 momResidual.
set(0.0, 0.0, 0.0, residualMass);
215 if(reentryCount > 100 && eEx < 0.0) {
218 ed <<
"Target Z= " << Z
219 <<
" A= " << A <<
" Eex(MeV)= " << eEx/
MeV <<
G4endl;
220 ed <<
" ApplyYourself does not completed after 100 attempts -" 221 <<
" excitation energy is set to zero";
222 G4Exception(
"G4MuMinusCapturePrecompound::ApplyYourself",
"had006",
224 momResidual.
set(0.0, 0.0, 0.0, residualMass);
234 initialState.SetNumberOfExcitedParticle(2,0);
235 initialState.SetNumberOfHoles(1,1);
239 size_t n = rpv->size();
240 for(
size_t i=0; i<
n; ++i) {
252 G4cout <<
"G4MuMinusCapturePrecompound::ApplyYourself: Nsec= " 254 <<
" E0(MeV)= " <<availableEnergy/
MeV 255 <<
" Mres(GeV)= " <<residualMass/
GeV
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4int GetNumberOfSecondaries() const
std::ostringstream G4ExceptionDescription
const G4ParticleDefinition * fNeutron
virtual G4ReactionProductVector * DeExcite(G4Fragment &aFragment)=0
const G4ParticleDefinition * fProton
G4ThreeVector G4RandomDirection()
void SetStatusChange(G4HadFinalStateStatus aS)
G4VPreCompoundModel * fPreCompound
std::vector< G4ReactionProduct * > G4ReactionProductVector
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
static G4NeutrinoMu * NeutrinoMu()
HepLorentzVector & boost(double, double, double)
void Init(G4int theA, G4int theZ)
static G4Triton * Triton()
void AddNewParticle(const G4ParticleDefinition *aParticle, G4ThreeVector &direction, G4double kinEnergy)
const std::vector< G4Nucleon > & GetNucleons()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void set(double x, double y, double z, double t)
G4Fancy3DNucleus fNucleus
G4double GetPDGMass() const
Hep3Vector boostVector() const
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4String & GetModelName() const
G4ThreeVector GetMomentum() const