File indexing completed on 2025-01-18 09:59:00
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 #ifndef G4QGSMFragmentation_h
0034 #define G4QGSMFragmentation_h 1
0035
0036 #include "G4VLongitudinalStringDecay.hh"
0037
0038
0039 class G4QGSMFragmentation:public G4VLongitudinalStringDecay
0040 {
0041 public:
0042 G4QGSMFragmentation();
0043 ~G4QGSMFragmentation();
0044 virtual G4KineticTrackVector* FragmentString(const G4ExcitedString& theString);
0045
0046 private:
0047
0048 G4QGSMFragmentation(const G4QGSMFragmentation &right);
0049 const G4QGSMFragmentation & operator=(const G4QGSMFragmentation &right);
0050 G4bool operator==(const G4QGSMFragmentation &right) const;
0051 G4bool operator!=(const G4QGSMFragmentation &right) const;
0052
0053 private:
0054 virtual G4bool StopFragmenting(const G4FragmentingString * string);
0055 virtual G4bool IsItFragmentable(const G4FragmentingString * string);
0056
0057 virtual G4bool SplitLast(G4FragmentingString * string,
0058 G4KineticTrackVector * LeftVector,
0059 G4KineticTrackVector * RightVector);
0060
0061 virtual void Sample4Momentum(G4LorentzVector* Mom, G4double Mass, G4LorentzVector* AntiMom,
0062 G4double AntiMass, G4double InitialMass);
0063
0064 virtual G4KineticTrack * Splitup(G4FragmentingString *string,
0065 G4FragmentingString *&newString);
0066
0067
0068
0069
0070
0071 virtual G4ParticleDefinition * DiQuarkSplitup(G4ParticleDefinition* decay,
0072 G4ParticleDefinition *&created);
0073
0074 virtual G4LorentzVector * SplitEandP(G4ParticleDefinition * pHadron,
0075 G4FragmentingString * string,
0076 G4FragmentingString * newString);
0077
0078 virtual G4double GetLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding,
0079 G4ParticleDefinition* pHadron, G4double Px, G4double Py);
0080
0081 private:
0082
0083 G4double arho;
0084 G4double aphi;
0085 G4double aJPs;
0086 G4double aUps;
0087 G4double an;
0088 G4double ala;
0089
0090 G4double alaC;
0091 G4double alaB;
0092 G4double aXi;
0093 G4double aXiC;
0094 G4double aXiB;
0095 G4double aXiCC;
0096 G4double aXiCB;
0097 G4double aXiBB;
0098
0099 G4double aksi;
0100 G4double alft;
0101
0102 G4double FFq2q[5][5][2];
0103 G4double FFq2qq[5][15][2];
0104 G4double FFqq2q[15][5][2];
0105 G4double FFqq2qq[15][5][2];
0106
0107 private:
0108 void SetFFq2q();
0109 void SetFFq2qq();
0110 void SetFFqq2qq();
0111 void SetFFqq2q();
0112
0113 G4int IndexDiQ[5][5];
0114 };
0115
0116
0117
0118 #endif
0119