117 G4cout <<
"### G4Evaporation::InitialiseChannelFactory for "
121 (*theChannels)[i]->SetOPTxs(
OPTxs);
122 (*theChannels)[i]->Initialise();
184 G4double totprob, prob, oldprob = 0.0;
185 size_t maxchannel, i;
189 G4cout <<
"### G4Evaporation::BreakItUp loop" <<
G4endl;
194 for(
G4int ia=0; ia<Amax; ++ia) {
199 if(
A <= 1) {
break; }
209 (abun > 0.0 || (
A == 3 && (
Z == 1 ||
Z == 2)))) {
break; }
214 G4cout <<
"Evaporation# " << ia <<
" Z= " <<
Z <<
" A= " <<
A
216 <<
" aban= " << abun <<
G4endl;
220 prob = (*theChannels)[i]->GetEmissionProbability(theResidualNucleus);
222 G4cout <<
" Channel# " << i <<
" prob= " << prob <<
G4endl;
228 if(i>=8 && prob > 0.0) {
229 if(prob <= totprob*1.e-8 && oldprob <= totprob*1.e-8) {
241 G4cout <<
"$$$ Start chain of gamma evaporation" <<
G4endl;
243 (*theChannels)[0]->BreakUpChain(theResult, theResidualNucleus);
268 for(i=0; i<maxchannel; ++i) {
if(
probabilities[i] >= totprob) {
break; } }
271 G4Fragment* frag = (*theChannels)[i]->EmittedFragment(theResidualNucleus);
275 if(frag) { theResult->push_back(frag); }
std::vector< G4Fragment * > G4FragmentVector
static constexpr double keV
G4GLOB_DLL std::ostream G4cout
G4DeexChannelType GetDeexChannelsType() const
G4double GetMinExcitation() const
G4Evaporation(G4VEvaporationChannel *photoEvaporation=nullptr)
virtual void InitialiseChannels() final
G4UnstableFragmentBreakUp * unstableBreakUp
G4NuclearLevelData * fLevelData
void SetCombinedChannel()
G4IonTable * theTableOfIons
std::vector< G4double > probabilities
void InitialiseChannelFactory()
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus) final
G4double GetExcitationEnergy() const
static G4NistManager * Instance()
G4double GetIsotopeAbundance(G4int Z, G4int N) const
G4DeexPrecoParameters * GetParameters()
const G4LevelManager * GetLevelManager(G4int Z, G4int A)
static G4NuclearLevelData * GetInstance()
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
virtual G4bool BreakUpChain(G4FragmentVector *, G4Fragment *) final
void SetVerbose(G4int val)
virtual std::vector< G4VEvaporationChannel * > * GetChannel()=0
G4VEvaporationChannel * thePhotonEvaporation
virtual void SetPhotonEvaporation(G4VEvaporationChannel *ptr)
G4VEvaporationFactory * theChannelFactory
std::vector< G4VEvaporationChannel * > * theChannels
virtual G4bool IsApplicable(G4int Z, G4int A, G4double mass) const =0