56 lowestEnergyLimit = 0.1*
eV;
57 minExcitation = 1*
keV;
67 delete photonEvaporation;
94 if(M - mass <= lowestEnergyLimit) {
99 G4cout <<
"G4NeutronRadCapture::DoIt: Eini(MeV)="
102 <<
" Z= " << Z <<
" A= " << A <<
G4endl;
104 G4double e1 = (M - mass)*(M + mass)/(2*M);
106 if(cost > 1.0) {cost = 1.0;}
107 else if(cost < -1.0) {cost = -1.0;}
108 G4double sint = std::sqrt((1. - cost)*(1.0 + cost));
110 G4LorentzVector lv2(e1*sint*std::cos(phi),e1*sint*std::sin(phi),e1*cost,e1);
123 else if (Z == 2 && A == 3) {theDef =
G4He3::He3();}
125 else { theDef = theTableOfIons->
GetIon(Z,A,0); }
128 G4cout <<
"Gamma 4-mom: " << lv2 <<
" "
144 G4cout <<
"G4NeutronRadCapture::ApplyYourself initial G4Fragmet:" <<
G4endl;
153 fv->push_back(aFragment);
154 size_t n = fv->size();
157 G4cout <<
"G4NeutronRadCapture: " << n <<
" final particle" <<
G4endl;
159 for(
size_t i=0; i<
n; ++i) {
171 else if (Z == 2 && A == 3) {theDef =
G4He3::He3();}
177 theDef = theTableOfIons->
GetIon(Z, A, level);
184 if(eexc > minExcitation) {
188 for(level=1; level<9; ++level) {
189 ion = theTableOfIons->
GetIon(Z, A, level);
197 if(std::fabs(eexc - elevel2) < minExcitation) {
198 excitation = eexc - elevel2;
202 }
else if(elevel2 - eexc >= eexc - elevel1) {
203 excitation = eexc - elevel1;
208 excitation = eexc - elevel2;
220 if(etot < 0.0) { etot = 0.0; }
224 <<
" Ekin(MeV)= " << etot/
MeV
234 if(timeF < 0.0) { timeF = 0.0; }
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
virtual ~G4NeutronRadCapture()
Hep3Vector boostVector() const
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetExcitationEnergy() const
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
const G4String & GetParticleName() const
void SetStatusChange(G4HadFinalStateStatus aS)
void SetMinEnergy(G4double anEnergy)
G4IonTable * GetIonTable() const
G4GLOB_DLL std::ostream G4cout
G4double GetCreationTime() const
const G4LorentzVector & GetMomentum() const
HepLorentzVector & boost(double, double, double)
G4double GetKineticEnergy() const
G4double GetGlobalTime() const
std::vector< G4Fragment * > G4FragmentVector
static G4Triton * Triton()
const G4LorentzVector & Get4Momentum() const
static G4Deuteron * Deuteron()
void SetTime(G4double aT)
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
G4ParticleDefinition * GetParticleDefinition() const
void SetMaxEnergy(const G4double anEnergy)
G4HadFinalState theParticleChange
virtual G4FragmentVector * BreakUpFragment(G4Fragment *theNucleus)
void AddSecondary(G4DynamicParticle *aP)
G4double GetExcitationEnergy() const