69     useGNASHTransition(false), OPTxs(3), useSICB(false), 
 
   70     useNGB(false), useSCO(false), useCEMtr(true), maxZ(3), maxA(5) 
 
   85   theTransition->
UseNGB(useNGB);
 
  101     outFile << 
"The GEANT4 precompound model is considered as an extension of the\n" 
  102         <<  
"hadron kinetic model. It gives a possibility to extend the low energy range\n" 
  103         <<  
"of the hadron kinetic model for nucleon-nucleus inelastic collision and it \n" 
  104         <<  
"provides a ”smooth” transition from kinetic stage of reaction described by the\n" 
  105         <<  
"hadron kinetic model to the equilibrium stage of reaction described by the\n" 
  106         <<  
"equilibrium deexcitation models.\n" 
  107         <<  
"The initial information for calculation of pre-compound nuclear stage\n" 
  108         <<  
"consists of the atomic mass number A, charge Z of residual nucleus, its\n" 
  109         <<  
"four momentum P0 , excitation energy U and number of excitons n, which equals\n" 
  110         <<  
"the sum of the number of particles p (from them p_Z are charged) and the number of\n" 
  112         <<  
"At the preequilibrium stage of reaction, we follow the exciton model approach in ref. [1],\n" 
  113         <<  
"taking into account the competition among all possible nuclear transitions\n" 
  114         <<  
"with ∆n = +2, −2, 0 (which are defined by their associated transition probabilities) and\n" 
  115         <<  
"the emission of neutrons, protons, deutrons, thritium and helium nuclei (also defined by\n" 
  116         <<  
"their associated emission  probabilities according to exciton model)\n" 
  118         <<  
"[1] K.K. Gudima, S.G. Mashnik, V.D. Toneev, Nucl. Phys. A401 329 (1983)\n" 
  127   if(primary != neutron && primary != proton) {
 
  128     std::ostringstream errOs;
 
  129     errOs << 
"BAD primary type in G4PreCompoundModel: "  
  136   if(primary == proton) { Zp = 1; }
 
  169   for(G4ReactionProductVector::iterator i= result->begin(); i != result->end(); ++i)
 
  173                   (*i)->GetTotalEnergy(),
 
  174                   (*i)->GetMomentum());
 
  197   if ((Z < maxZ && A < maxA) || Eex < MeV /*|| Eex > 3.*
MeV*A*/) {
 
  198     PerformEquilibriumEmission(aFragment, Result);
 
  217     G4int EquilibriumExcitonNumber = 
 
  227     G4bool ThereIsTransition = 
false;
 
  244       if (test <= EquilibriumExcitonNumber) { go_ahead=
true; }
 
  247       if (useSCO && go_ahead)
 
  255       G4double TotalTransitionProbability = 
 
  266       if(!go_ahead || P1 <= P2+P3 || 
 
  270       PerformEquilibriumEmission(aFragment,Result);
 
  285           PerformEquilibriumEmission(aFragment,Result);
 
  292       G4double TotalProbability = TotalEmissionProbability 
 
  293         + TotalTransitionProbability;
 
  296       if (TotalProbability*
G4UniformRand() > TotalEmissionProbability) 
 
  300           ThereIsTransition = 
true;     
 
  308           ThereIsTransition = 
false;
 
  312     } 
while (ThereIsTransition);   
 
  323   useHETCEmission = 
true; 
 
  329   useHETCEmission = 
false; 
 
  334   useGNASHTransition = 
true; 
 
  335   delete theTransition;
 
  337   theTransition->
UseNGB(useNGB);
 
  342   useGNASHTransition = 
false; 
 
  343   delete theTransition;
 
  345   theTransition->
UseNGB(useNGB);
 
virtual void PerformTransition(G4Fragment &aFragment)=0
 
void UseDefaultEmission()
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
virtual ~G4PreCompoundModel()
 
G4PreCompoundModel(G4ExcitationHandler *ptr=0)
 
G4double G4NeutronHPJENDLHEData::G4double result
 
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
 
G4double GetTransitionProb2() const 
 
void UseGNASHTransition()
 
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &thePrimary, G4Nucleus &theNucleus)
 
const G4String & GetParticleName() const 
 
void SetStatusChange(G4HadFinalStateStatus aS)
 
void SetExcitationHandler(G4ExcitationHandler *ptr)
 
std::vector< G4ReactionProduct * > G4ReactionProductVector
 
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
 
G4ExcitationHandler * GetExcitationHandler() const 
 
void UseDefaultTransition()
 
const G4ParticleDefinition * GetDefinition() const 
 
void UseCEMtr(G4bool use)
 
G4double GetGlobalTime() const 
 
static G4Proton * Proton()
 
static G4Neutron * Neutron()
 
G4double GetTransitionProb1() const 
 
const G4LorentzVector & Get4Momentum() const 
 
virtual G4ReactionProductVector * DeExcite(G4Fragment &aFragment)
 
virtual G4double CalculateProbability(const G4Fragment &aFragment)=0
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
G4ReactionProduct * PerformEmission(G4Fragment &aFragment)
 
void SetCreationTime(G4double time)
 
G4int GetNumberOfExcitons() const 
 
virtual void ModelDescription(std::ostream &outFile) const 
 
G4double GetTransitionProb3() const 
 
void AddSecondary(G4DynamicParticle *aP)
 
G4double GetLevelDensity()
 
G4double GetExcitationEnergy() const 
 
void Initialize(const G4Fragment &aFragment)
 
G4double GetTotalProbability(const G4Fragment &aFragment)
 
CLHEP::HepLorentzVector G4LorentzVector