26#ifndef G4QGSParticipants_h
27#define G4QGSParticipants_h 1
73 void StoreInvolvedNucleon();
74 void ReggeonCascade();
83 G4int& residualMassNumber,
G4int& residualCharge );
93 const G4int numberOfInvolvedNucleons,
99 const G4int numberOfInvolvedNucleons,
G4Nucleon* involvedNucleons[],
105 const G4int numberOfInvolvedNucleons,
109 void CreateStrings();
113 void SetCofNuclearDestruction(
const G4double aValue );
114 void SetR2ofNuclearDestruction(
const G4double aValue );
116 void SetExcitationEnergyPerWoundedNucleon(
const G4double aValue );
118 void SetDofNuclearDestruction(
const G4double aValue );
119 void SetPt2ofNuclearDestruction(
const G4double aValue );
120 void SetMaxPt2ofNuclearDestruction(
const G4double aValue );
123 G4double GetCofNuclearDestruction();
124 G4double GetR2ofNuclearDestruction();
126 G4double GetExcitationEnergyPerWoundedNucleon();
128 G4double GetDofNuclearDestruction();
129 G4double GetPt2ofNuclearDestruction();
130 G4double GetMaxPt2ofNuclearDestruction();
173 G4int InteractionMode;
180 G4Nucleon* TheInvolvedNucleonsOfTarget[250];
181 G4int NumberOfInvolvedNucleonsOfTarget;
183 G4Nucleon* TheInvolvedNucleonsOfProjectile[250];
184 G4int NumberOfInvolvedNucleonsOfProjectile;
187 G4int ProjectileResidualMassNumber;
188 G4int ProjectileResidualCharge;
189 G4double ProjectileResidualExcitationEnergy;
192 G4int TargetResidualMassNumber;
193 G4int TargetResidualCharge;
194 G4double TargetResidualExcitationEnergy;
201 G4double ExcitationEnergyPerWoundedNucleon;
205 G4double MaxPt2ofNuclearDestruction;
229inline G4V3DNucleus* G4QGSParticipants::GetTargetNucleus()
const {
233inline G4V3DNucleus* G4QGSParticipants::GetProjectileNucleus()
const {
240inline void G4QGSParticipants::SetCofNuclearDestruction(
const G4double aValue ) {
241 CofNuclearDestruction = aValue;
244inline void G4QGSParticipants::SetR2ofNuclearDestruction(
const G4double aValue ) {
245 R2ofNuclearDestruction = aValue;
248inline void G4QGSParticipants::SetExcitationEnergyPerWoundedNucleon(
const G4double aValue ) {
249 ExcitationEnergyPerWoundedNucleon = aValue;
252inline void G4QGSParticipants::SetDofNuclearDestruction(
const G4double aValue ) {
253 DofNuclearDestruction = aValue;
256inline void G4QGSParticipants::SetPt2ofNuclearDestruction(
const G4double aValue ) {
257 Pt2ofNuclearDestruction = aValue;
260inline void G4QGSParticipants::SetMaxPt2ofNuclearDestruction(
const G4double aValue ) {
261 MaxPt2ofNuclearDestruction = aValue;
265inline G4double G4QGSParticipants::GetCofNuclearDestruction() {
266 return CofNuclearDestruction;
269inline G4double G4QGSParticipants::GetR2ofNuclearDestruction() {
270 return R2ofNuclearDestruction;
273inline G4double G4QGSParticipants::GetExcitationEnergyPerWoundedNucleon() {
274 return ExcitationEnergyPerWoundedNucleon;
277inline G4double G4QGSParticipants::GetDofNuclearDestruction() {
278 return DofNuclearDestruction;
281inline G4double G4QGSParticipants::GetPt2ofNuclearDestruction() {
282 return Pt2ofNuclearDestruction;
285inline G4double G4QGSParticipants::GetMaxPt2ofNuclearDestruction() {
286 return MaxPt2ofNuclearDestruction;
const G4double ThresholdParameter
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta)
G4ThreeVector theCurrentVelocity
G4QuarkExchange theQuarkExchange
G4SingleDiffractiveExcitation theSingleDiffExcitation
virtual void DoLorentzBoost(G4ThreeVector aBoost)
std::vector< G4InteractionContent * > theInteractions
G4bool DeterminePartonMomenta()
G4PartonPair * GetNextPartonPair()
virtual G4VSplitableHadron * SelectInteractions(const G4ReactionProduct &thePrimary)
G4bool operator!=(const G4QGSParticipants &right) const
void PerformDiffractiveCollisions()
G4QGSDiffractiveExcitation theDiffExcitaton
G4QGSMSplitableHadron * theProjectileSplitable
void StartPartonPairLoop()
virtual ~G4QGSParticipants()
const G4double QGSMThreshold
G4bool operator==(const G4QGSParticipants &right) const
const G4double theNucleonRadius
void BuildInteractions(const G4ReactionProduct &thePrimary)
const G4QGSParticipants & operator=(const G4QGSParticipants &right)
std::vector< G4PartonPair * > thePartonPairs
std::vector< G4VSplitableHadron * > theTargets
void PerformSoftCollisions()
virtual void DoLorentzBoost(const G4LorentzVector &theBoost)=0
G4V3DNucleus * theNucleus
void operator()(G4InteractionContent *aC)
void operator()(G4PartonPair *aP)
void operator()(G4VSplitableHadron *aS)