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" 38 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
40 G4ReactionProduct &modifiedOriginal,
41 const G4HadProjectile *originalIncident,
42 G4ReactionProduct ¤tParticle,
43 G4ReactionProduct &targetParticle,
44 const G4Nucleus &targetNucleus,
45 G4bool &incidentHasChanged,
46 G4bool &targetHasChanged,
48 G4ReactionProduct &leadingStrangeParticle );
51 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
53 const G4ReactionProduct &modifiedOriginal,
54 G4ReactionProduct ¤tParticle,
55 G4ReactionProduct &targetParticle,
56 const G4Nucleus &targetNucleus,
57 G4bool &incidentHasChanged,
58 G4bool &targetHasChanged );
61 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
63 G4ReactionProduct &modifiedOriginal,
64 const G4HadProjectile *originalIncident,
65 G4ReactionProduct ¤tParticle,
66 G4ReactionProduct &targetParticle,
67 const G4Nucleus &targetNucleus,
68 G4bool &incidentHasChanged,
69 G4bool &targetHasChanged,
71 G4ReactionProduct &leadingStrangeParticle );
74 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
76 G4ReactionProduct &modifiedOriginal,
77 const G4DynamicParticle *originalTarget,
78 G4ReactionProduct ¤tParticle,
79 G4ReactionProduct &targetParticle,
80 const G4Nucleus &targetNucleus,
81 G4bool &targetHasChanged );
86 const G4double totalEnergy,
87 const G4bool constantCrossSection,
88 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
92 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
94 const G4ReactionProduct &modifiedOriginal,
95 const G4DynamicParticle *originalTarget,
96 G4ReactionProduct ¤tParticle,
97 G4ReactionProduct &targetParticle,
98 G4bool &incidentHasChanged,
99 G4bool &targetHasChanged );
102 G4FastVector<G4ReactionProduct,4> &vec,
104 const G4HadProjectile *originalIncident,
105 const G4Nucleus &aNucleus,
106 const G4double theAtomicMass,
107 const G4double *massVec );
112 const G4double numberofFinalStateNucleons,
113 const G4ThreeVector &
temp,
114 const G4ReactionProduct &modifiedOriginal,
115 const G4HadProjectile *originalIncident,
116 const G4Nucleus &targetNucleus,
117 G4ReactionProduct ¤tParticle,
118 G4ReactionProduct &targetParticle,
119 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
123 const G4ReactionProduct &modifiedOriginal,
124 G4ReactionProduct ¤tParticle,
125 G4ReactionProduct &targetParticle,
126 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
134 const G4double sprob,
135 const G4double kineticMinimum,
136 const G4double kineticFactor,
137 const G4ReactionProduct &modifiedOriginal,
139 const G4Nucleus &aNucleus,
140 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
144 const G4ReactionProduct &modifiedOriginal,
145 G4ReactionProduct ¤tParticle,
146 G4ReactionProduct &targetParticle,
147 G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec,
virtual G4double FindInelasticity()
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)
G4int Poisson(G4double x)
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)
virtual G4double FindTimeDelay()
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)
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)
virtual ~FullModelReactionDynamics()
void SuppressChargedPions(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, G4bool &incidentHasChanged, G4bool &targetHasChanged)