Warning, file /include/Geant4/G4PreCompoundInterface.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038 #ifndef G4PreCompoundInterface_h
0039 #define G4PreCompoundInterface_h 1
0040
0041 #include "G4VPreCompoundModel.hh"
0042 #include "G4Fragment.hh"
0043 #include "G4ReactionProductVector.hh"
0044 #include "G4ReactionProduct.hh"
0045 #include "G4ExcitationHandler.hh"
0046
0047 class G4PreCompoundEmissionInt;
0048 class G4VPreCompoundTransitions;
0049 class G4NuclearLevelData;
0050 class G4ParticleDefinition;
0051
0052 class G4PreCompoundInterface : public G4VPreCompoundModel
0053 {
0054 public:
0055
0056 G4PreCompoundInterface();
0057
0058 ~G4PreCompoundInterface() override;
0059
0060 G4ReactionProductVector* DeExcite(G4Fragment& aFragment) override;
0061
0062 void BuildPhysicsTable(const G4ParticleDefinition&) override;
0063 void InitialiseModel() override;
0064
0065 void ModelDescription(std::ostream& outFile) const override;
0066 void DeExciteModelDescription(std::ostream&) const override;
0067
0068 G4PreCompoundInterface(const G4PreCompoundInterface &) = delete;
0069 const G4PreCompoundInterface& operator=
0070 (const G4PreCompoundInterface &right) = delete;
0071 G4bool operator==(const G4PreCompoundInterface &right) const = delete;
0072 G4bool operator!=(const G4PreCompoundInterface &right) const = delete;
0073
0074 private:
0075
0076 void BreakUpFragment(G4Fragment&, G4ReactionProductVector*);
0077
0078 inline
0079 void PerformEquilibriumEmission(const G4Fragment&,
0080 G4ReactionProductVector*) const;
0081
0082 G4PreCompoundEmissionInt* theEmission{nullptr};
0083 G4VPreCompoundTransitions* theTransition{nullptr};
0084 G4NuclearLevelData* fNuclData{nullptr};
0085
0086 G4double fLowLimitExc{0.0};
0087 G4double fHighLimitExc{DBL_MAX};
0088
0089 G4bool isActive{true};
0090 G4bool isInitialised{false};
0091
0092 G4int minZ{9};
0093 G4int minA{17};
0094 G4int fVerbose{1};
0095 };
0096
0097 inline void G4PreCompoundInterface::PerformEquilibriumEmission(
0098 const G4Fragment& aFragment,
0099 G4ReactionProductVector* result) const
0100 {
0101 auto deexResult = GetExcitationHandler()->BreakItUp(aFragment);
0102 for (auto & frag : *deexResult) { result->push_back(std::move(frag)); }
0103 delete deexResult;
0104 }
0105
0106 #endif
0107