Warning, file /include/Geant4/G4PreCompoundEmissionInt.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 #ifndef G4PreCompoundEmissionInt_h
0038 #define G4PreCompoundEmissionInt_h 1
0039
0040 #include "G4VPreCompoundFragment.hh"
0041 #include "G4ReactionProduct.hh"
0042 #include "G4Fragment.hh"
0043 #include "G4PreCompoundFragmentVector.hh"
0044
0045 class G4VPreCompoundEmissionFactory;
0046 class G4Pow;
0047 class G4NuclearLevelData;
0048
0049 class G4PreCompoundEmissionInt
0050 {
0051 public:
0052
0053 explicit G4PreCompoundEmissionInt(G4int verb);
0054
0055 ~G4PreCompoundEmissionInt();
0056
0057 void SetDefaultModel();
0058
0059 void SetHETCModel();
0060
0061 G4ReactionProduct* PerformEmission(G4Fragment& aFragment);
0062
0063 inline G4double GetTotalProbability(const G4Fragment& aFragment);
0064
0065 inline void SetOPTxs(G4int);
0066
0067 inline void UseSICB(G4bool);
0068
0069 G4PreCompoundEmissionInt(const G4PreCompoundEmissionInt& right) = delete;
0070 const G4PreCompoundEmissionInt& operator=
0071 (const G4PreCompoundEmissionInt& right) = delete;
0072 G4bool operator==(const G4PreCompoundEmissionInt& right) const = delete;
0073 G4bool operator!=(const G4PreCompoundEmissionInt& right) const = delete;
0074
0075 private:
0076
0077 void AngularDistribution(G4VPreCompoundFragment* theFragment,
0078 const G4Fragment& aFragment,
0079 G4double kineticEnergy);
0080
0081 G4double rho(G4int p, G4int h, G4double gg,
0082 G4double E, G4double Ef) const;
0083
0084 G4Pow* g4calc;
0085 G4NuclearLevelData* fNuclData;
0086
0087 G4PreCompoundFragmentVector* theFragmentsVector{nullptr};
0088 G4VPreCompoundEmissionFactory* theFragmentsFactory{nullptr};
0089
0090
0091 G4ThreeVector theFinalMomentum;
0092 G4double fFermiEnergy;
0093
0094 G4bool fUseAngularGenerator;
0095
0096 G4int fModelID;
0097 G4int fVerbose;
0098 };
0099
0100 inline G4double
0101 G4PreCompoundEmissionInt::GetTotalProbability(const G4Fragment& aFragment)
0102 {
0103 return theFragmentsVector->CalculateProbabilities(aFragment);
0104 }
0105
0106 inline void G4PreCompoundEmissionInt::SetOPTxs(G4int opt)
0107 {
0108 theFragmentsVector->SetOPTxs(opt);
0109 }
0110
0111 inline void G4PreCompoundEmissionInt::UseSICB(G4bool use)
0112 {
0113 theFragmentsVector->UseSICB(use);
0114 }
0115
0116 #endif