11 #ifndef SimG4Core_CustomPhysics_FullModelReactionDynamics_h 12 #define SimG4Core_CustomPhysics_FullModelReactionDynamics_h 1 14 #include "G4ParticleTypes.hh" 15 #include "G4DynamicParticle.hh" 16 #include "G4ReactionProduct.hh" 17 #include "G4Nucleus.hh" 18 #include "G4FastVector.hh" 19 #include "G4HadProjectile.hh" 30 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
32 G4ReactionProduct &modifiedOriginal,
33 const G4HadProjectile *originalIncident,
34 G4ReactionProduct ¤tParticle,
35 G4ReactionProduct &targetParticle,
36 const G4Nucleus &targetNucleus,
37 G4bool &incidentHasChanged,
38 G4bool &targetHasChanged,
40 G4ReactionProduct &leadingStrangeParticle);
44 const G4ReactionProduct &modifiedOriginal,
45 G4ReactionProduct ¤tParticle,
46 G4ReactionProduct &targetParticle,
47 const G4Nucleus &targetNucleus,
48 G4bool &incidentHasChanged,
49 G4bool &targetHasChanged);
52 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
54 G4ReactionProduct &modifiedOriginal,
55 const G4HadProjectile *originalIncident,
56 G4ReactionProduct ¤tParticle,
57 G4ReactionProduct &targetParticle,
58 const G4Nucleus &targetNucleus,
59 G4bool &incidentHasChanged,
60 G4bool &targetHasChanged,
62 G4ReactionProduct &leadingStrangeParticle);
65 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
67 G4ReactionProduct &modifiedOriginal,
68 const G4DynamicParticle *originalTarget,
69 G4ReactionProduct ¤tParticle,
70 G4ReactionProduct &targetParticle,
71 const G4Nucleus &targetNucleus,
72 G4bool &targetHasChanged);
77 const G4double totalEnergy,
78 const G4bool constantCrossSection,
79 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
84 const G4ReactionProduct &modifiedOriginal,
85 const G4DynamicParticle *originalTarget,
86 G4ReactionProduct ¤tParticle,
87 G4ReactionProduct &targetParticle,
88 G4bool &incidentHasChanged,
89 G4bool &targetHasChanged);
92 G4FastVector<G4ReactionProduct, 4> &vec,
94 const G4HadProjectile *originalIncident,
95 const G4Nucleus &aNucleus,
96 const G4double theAtomicMass,
97 const G4double *massVec);
103 void Rotate(
const G4double numberofFinalStateNucleons,
104 const G4ThreeVector &
temp,
105 const G4ReactionProduct &modifiedOriginal,
106 const G4HadProjectile *originalIncident,
107 const G4Nucleus &targetNucleus,
108 G4ReactionProduct ¤tParticle,
109 G4ReactionProduct &targetParticle,
110 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
113 void Defs1(
const G4ReactionProduct &modifiedOriginal,
114 G4ReactionProduct ¤tParticle,
115 G4ReactionProduct &targetParticle,
116 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
123 const G4double sprob,
124 const G4double kineticMinimum,
125 const G4double kineticFactor,
126 const G4ReactionProduct &modifiedOriginal,
128 const G4Nucleus &aNucleus,
129 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
132 void MomentumCheck(
const G4ReactionProduct &modifiedOriginal,
133 G4ReactionProduct ¤tParticle,
134 G4ReactionProduct &targetParticle,
135 G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec,
void Defs1(const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
void MomentumCheck(const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
FullModelReactionDynamics()
void TwoBody(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, const G4DynamicParticle *originalTarget, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, G4bool &targetHasChanged)
void ProduceStrangeParticlePairs(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, const G4DynamicParticle *originalTarget, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, G4bool &targetHasChanged)
G4bool TwoCluster(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, G4bool &incidentHasChanged, G4bool &targetHasChanged, G4bool leadFlag, G4ReactionProduct &leadingStrangeParticle)
void NuclearReaction(G4FastVector< G4ReactionProduct, 4 > &vec, G4int &vecLen, const G4HadProjectile *originalIncident, const G4Nucleus &aNucleus, const G4double theAtomicMass, const G4double *massVec)
G4double GenerateNBodyEvent(const G4double totalEnergy, const G4bool constantCrossSection, G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
G4bool GenerateXandPt(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, G4bool &incidentHasChanged, G4bool &targetHasChanged, G4bool leadFlag, G4ReactionProduct &leadingStrangeParticle)
FullModelReactionDynamics & operator=(const FullModelReactionDynamics &)=delete
void AddBlackTrackParticles(const G4double epnb, const G4int npnb, const G4double edta, const G4int ndta, const G4double sprob, const G4double kineticMinimum, const G4double kineticFactor, const G4ReactionProduct &modifiedOriginal, G4double spall, const G4Nucleus &aNucleus, G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
void Rotate(const G4double numberofFinalStateNucleons, const G4ThreeVector &temp, const G4ReactionProduct &modifiedOriginal, const G4HadProjectile *originalIncident, const G4Nucleus &targetNucleus, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
~FullModelReactionDynamics()=default
void SuppressChargedPions(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, G4bool &incidentHasChanged, G4bool &targetHasChanged)