Warning, file /include/Geant4/G4QGSModel.icc 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 template<class ParticipantType>
0029 G4QGSModel<ParticipantType>::G4QGSModel()
0030 {
0031 SetEnergyMomentumCheckLevels(2*CLHEP::perCent, 150*CLHEP::MeV);
0032 }
0033
0034 template<class ParticipantType>
0035 G4QGSModel<ParticipantType>::~G4QGSModel()
0036 {}
0037
0038 template<class ParticipantType>
0039 void G4QGSModel<ParticipantType>::Init(const G4Nucleus & aNucleus,
0040 const G4DynamicParticle & aProjectile)
0041 {
0042
0043 theParticipants.Init(aNucleus.GetA_asInt(),aNucleus.GetZ_asInt());
0044
0045 G4LorentzVector Mom = aProjectile.Get4Momentum();
0046
0047 G4ReactionProduct theProjectile;
0048 theProjectile.SetDefinition(aProjectile.GetDefinition());
0049 theProjectile.SetTotalEnergy(Mom.e());
0050 theProjectile.SetMomentum(Mom.vect());
0051
0052
0053 theParticipants.BuildInteractions(theProjectile);
0054 }
0055
0056 template<class ParticipantType>
0057 G4ExcitedStringVector * G4QGSModel<ParticipantType>::GetStrings()
0058 {
0059
0060
0061 G4PartonPair* aPair;
0062 G4ExcitedStringVector* theStrings = new G4ExcitedStringVector;
0063 G4ExcitedString * aString;
0064 while( (aPair = theParticipants.GetNextPartonPair()) )
0065 {
0066 if (aPair->GetCollisionType() == G4PartonPair::DIFFRACTIVE)
0067 {
0068 aString = theDiffractiveStringBuilder.BuildString(aPair);
0069 }
0070 else
0071 {
0072 aString = theSoftStringBuilder.BuildString(aPair);
0073 }
0074
0075
0076 theStrings->push_back(aString);
0077 delete aPair;
0078 }
0079
0080 return theStrings;
0081 }
0082
0083 template<class ParticipantType>
0084 G4V3DNucleus* G4QGSModel<ParticipantType>::GetWoundedNucleus() const
0085 {
0086 return theParticipants.GetWoundedNucleus();
0087 }
0088
0089 template<class ParticipantType>
0090 G4V3DNucleus* G4QGSModel<ParticipantType>::GetProjectileNucleus() const
0091 {
0092 return nullptr;
0093 }
0094
0095 template<class ParticipantType>
0096 void G4QGSModel<ParticipantType>::ModelDescription(std::ostream& outFile) const
0097 {
0098 outFile << "The Quark-Gluon String (QGS) model simulates the interaction\n"
0099 << "of protons, neutrons, pions and kaons with nuclei in the\n"
0100 << "approximate energy range 20 GeV to 50 TeV. The model handles\n"
0101 << "the selection of collision partners, splitting of the nucleons\n"
0102 << "into quarks and di-quarks, the formation and excitation of\n"
0103 << "quark-gluon strings, string hadronization and diffractive dissociation.\n";
0104 }
0105
0106