69     useGNASHTransition(false), OPTxs(3), useSICB(false), 
 
   70     useNGB(false), useSCO(false), useCEMtr(true), maxZ(3), maxA(5) 
 
  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" 
  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*/) {
 
  217     G4int EquilibriumExcitonNumber = 
 
  227     G4bool ThereIsTransition = 
false;
 
  244       if (test <= EquilibriumExcitonNumber) { go_ahead=
true; }
 
  255       G4double TotalTransitionProbability = 
 
  266       if(!go_ahead || P1 <= P2+P3 || 
 
  292           G4double TotalProbability = TotalEmissionProbability 
 
  293             + TotalTransitionProbability;
 
  296           if (TotalProbability*
G4UniformRand() > TotalEmissionProbability) 
 
  300               ThereIsTransition = 
true;         
 
  308               ThereIsTransition = 
false;
 
  312     } 
while (ThereIsTransition);   
 
virtual void PerformTransition(G4Fragment &aFragment)=0
 
void UseDefaultEmission()
 
void PerformEquilibriumEmission(const G4Fragment &aFragment, G4ReactionProductVector *theResult) const 
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
virtual ~G4PreCompoundModel()
 
static const G4double * P1[nN]
 
G4PreCompoundEmission * theEmission
 
G4PreCompoundModel(G4ExcitationHandler *ptr=0)
 
const G4ParticleDefinition * neutron
 
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
 
G4bool useGNASHTransition
 
G4double GetTransitionProb2() const 
 
void UseGNASHTransition()
 
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &thePrimary, G4Nucleus &theNucleus)
 
const G4String & GetParticleName() const 
 
G4HadFinalState theResult
 
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 
 
G4VPreCompoundTransitions * theTransition
 
void UseCEMtr(G4bool use)
 
G4double GetGlobalTime() const 
 
static G4Proton * Proton()
 
static G4Neutron * Neutron()
 
G4double GetTransitionProb1() const 
 
static const G4double A[nN]
 
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 
 
static const G4double * P2[nN]
 
G4double GetTransitionProb3() const 
 
const G4ParticleDefinition * proton
 
void AddSecondary(G4DynamicParticle *aP)
 
G4double GetLevelDensity()
 
G4double GetExcitationEnergy() const 
 
void Initialize(const G4Fragment &aFragment)
 
G4double GetTotalProbability(const G4Fragment &aFragment)
 
CLHEP::HepLorentzVector G4LorentzVector