68 outFile <<
"G4LCapture is one of the Low Energy Parameterized\n"
69 <<
"(LEP) models used to implement neutron capture on nuclei.\n"
70 <<
"It is a re-engineered version of the GHEISHA code of\n"
71 <<
"H. Fesefeldt which simply adds the neutron mass and energy\n"
72 <<
"to the target nucleus, and emits gammas isotropically as\n"
73 <<
"long as there is sufficient excitation energy in the\n"
74 <<
"daughter nucleus. The model is applicable to all incident\n"
75 <<
"neutron energies.\n";
97 G4cout <<
"G4LCapture:ApplyYourself: incident particle:" <<
G4endl;
110 G4cout <<
"G4LCapture:ApplyYourself: material:" <<
G4endl;
113 G4cout <<
"atomic mass " <<
114 Atomas(N, Z) <<
"GeV" <<
G4endl;
116 E = E + Atomas(N, Z);
118 E0 = std::sqrt(std::abs(E02));
119 if (E02 < 0) E0 = -E0;
134 if (Z == 1 && N == 1) {
137 G4double ran = G4RandGauss::shoot();
138 p = 0.0065 + ran*0.0010;
144 G4double sint = std::sqrt(std::abs(1. - cost*cost));
153 a = (a/(E + E0) - e)/E0;
168 if (Z > 1 || N > 1) {
171 cost = -1. + 2.*ran1;
172 sint = std::sqrt(std::abs(1. - cost*cost));
175 px = xp*sint*std::sin(phi);
176 py = xp*sint*std::cos(phi);
180 a = px*Px + py*Py + pz*Pz;
181 a = (a/(E + E0) - e)/E0;
198 return std::pair<G4double, G4double>(5*perCent,250*GeV);
CLHEP::Hep3Vector G4ThreeVector
G4DLLIMPORT std::ostream G4cout
static G4Gamma * GammaDefinition()
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP)
const G4ParticleDefinition * GetDefinition() const
const G4LorentzVector & Get4Momentum() const
G4HadFinalState theParticleChange
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
virtual void ModelDescription(std::ostream &outFile) const
virtual const std::pair< G4double, G4double > GetFatalEnergyCheckLevels() const
G4LCapture(const G4String &name="G4LCapture")
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
G4double GetPDGMass() const
G4double GetPDGCharge() const