138 }
else if(exEnergy < minExcitation && nist->GetIsotopeAbundance(Z, A) > 0.0) {
154 size_t nsec = theTempResult->size();
162 G4bool deletePrimary =
true;
163 G4FragmentVector::iterator j;
164 for (j = theTempResult->begin(); j != theTempResult->end(); ++j) {
165 if((*j) == theInitialStatePtr) { deletePrimary =
false; }
166 A = (*j)->GetA_asInt();
174 G4double exEnergy1 = (*j)->GetExcitationEnergy();
178 Z = (*j)->GetZ_asInt();
190 if( deletePrimary ) {
delete theInitialStatePtr; }
192 delete theTempResult;
205 static const G4int countmax = 1000;
214 ed <<
"Infinite loop in the de-excitation module: " << kk
216 <<
" Initial fragment: \n" << theInitialState
217 <<
"\n Current fragment: \n" << *frag;
219 ed,
"Stop execution");
239 for(
size_t j=0; j<nsec; ++j) {
240 exEnergy =
results[j]->GetExcitationEnergy();
260 for (
size_t j = 0; j<nsec; ++j) {
269 exEnergy =
results[j]->GetExcitationEnergy();
300 for (kk=0; kk<kkmax; ++kk) {
325 theReactionProductVector->reserve(
theResults.size() );
327 G4int theFragmentA, theFragmentZ;
332 for (kk=0; kk<kkmax; ++kk) {
341 if (theFragmentA == 0) {
343 }
else if (theFragmentA == 1 && theFragmentZ == 0) {
345 }
else if (theFragmentA == 1 && theFragmentZ == 1) {
347 }
else if (theFragmentA == 2 && theFragmentZ == 1) {
349 }
else if (theFragmentA == 3 && theFragmentZ == 1) {
351 }
else if (theFragmentA == 3 && theFragmentZ == 2) {
353 }
else if (theFragmentA == 4 && theFragmentZ == 2) {
368 if(theKindOfFragment) {
373 theReactionProductVector->push_back(theNew);
378 if(theKindOfFragment) {
381 if(etot <= ionmass) {
384 G4double ptot = std::sqrt((etot - ionmass)*(etot + ionmass));
391 theReactionProductVector->push_back(theNew);
403 return theReactionProductVector;
G4bool IsApplicable(G4int Z, G4int A, G4double mass) const
static G4Triton * TritonDefinition()
G4double GetExcitationEnergy() const
static G4He3 * He3Definition()
std::vector< G4Fragment * > theResults
std::ostringstream G4ExceptionDescription
virtual G4bool BreakUpChain(G4FragmentVector *theResult, G4Fragment *theNucleus)
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4double GetGroundStateMass() const
static G4Proton * ProtonDefinition()
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus)
G4double GetIsotopeAbundance(G4int Z, G4int N) const
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)=0
std::vector< G4Fragment * > results
const G4ParticleDefinition * GetParticleDefinition() const
std::vector< G4ReactionProduct * > G4ReactionProductVector
std::vector< G4Fragment * > thePhotoEvapList
double A(double temperature)
std::vector< G4Fragment * > theEvapList
void SetTotalEnergy(const G4double en)
std::vector< G4Fragment * > G4FragmentVector
G4VEvaporationChannel * thePhotonEvaporation
G4FermiFragmentsPool * thePool
G4int maxAForFermiBreakUp
G4VMultiFragmentation * theMultiFragmentation
G4VFermiBreakUp * theFermiModel
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus)=0
G4double minEForMultiFrag
const G4LorentzVector & GetMomentum() const
G4double GetPDGMass() const
G4VEvaporation * theEvaporation
void SetFormationTime(G4double aTime)
static G4Deuteron * DeuteronDefinition()
static G4Alpha * AlphaDefinition()
static G4Neutron * NeutronDefinition()
G4double GetCreationTime() const
G4int maxZForFermiBreakUp
G4IonTable * theTableOfIons