G4PreCompoundModel
public G4VPreCompoundModel
Model implementation for pre-equilibrium decay models in geant4. To be used in your physics list, in case you neeed this kind of physics. Can be used as a stand-allone model, but also in conjunction with an intra-nuclear transport, or any of the string-parton models.
- G4PreCompoundEmission
- G4VPreCompoundTransitions- G4GNASHTransitions
- G4PreCompoundTransitions
 
class
public:
  explicit G4PreCompoundModel(G4ExcitationHandler* ptr = nullptr); 
  virtual ~G4PreCompoundModel();
  virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, 
                      G4Nucleus & theNucleus) final;
  virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment) final;
  virtual void BuildPhysicsTable(const G4ParticleDefinition&) final;
  virtual void InitialiseModel() final;
  virtual void ModelDescription(std::ostream& outFile) const final;
  virtual void DeExciteModelDescription(std::ostream& outFile) const final;
  //====== obsolete Set methods =======
  void UseHETCEmission();
  void UseDefaultEmission();
  void UseGNASHTransition();
  void UseDefaultTransition();
  //for cross section selection
  void SetOPTxs(G4int opt);
  //for the rest of external choices
  void UseSICB();
  void UseNGB();
  void UseSCO();
  void UseCEMtr();
  //======================================
private:  
  inline 
  void PerformEquilibriumEmission(const G4Fragment & aFragment, 
                  G4ReactionProductVector * theResult) const;
  void PrintWarning(const G4String& mname);
  G4PreCompoundModel(const G4PreCompoundModel &) = delete;
  const G4PreCompoundModel& operator=(const G4PreCompoundModel &right) = delete;
  G4bool operator==(const G4PreCompoundModel &right) const = delete;
  G4bool operator!=(const G4PreCompoundModel &right) const = delete;
  //==============
  // Data Members 
  //==============
  G4PreCompoundEmission*     theEmission;
  G4VPreCompoundTransitions* theTransition;
  const G4ParticleDefinition* proton;
  const G4ParticleDefinition* neutron;
  G4double fLevelDensity;
  G4double fLimitEnergy;
  //for the rest of external choices
  G4bool useSCO;
  G4bool isInitialised;
  G4bool isActive;
  G4int  minZ;
  G4int  minA;
  G4HadFinalState theResult;