File indexing completed on 2025-01-18 09:58:18
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 #ifndef G4FTFAnnihilation_h
0029 #define G4FTFAnnihilation_h 1
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 #include "globals.hh"
0042 #include "G4FTFParameters.hh"
0043 #include "G4ThreeVector.hh"
0044
0045 class G4VSplitableHadron;
0046 class G4ExcitedString;
0047
0048
0049 class G4FTFAnnihilation {
0050 public:
0051 G4FTFAnnihilation();
0052 virtual ~G4FTFAnnihilation();
0053
0054 virtual G4bool Annihilate( G4VSplitableHadron* aPartner,
0055 G4VSplitableHadron* bPartner,
0056 G4VSplitableHadron*& AdditionalString,
0057 G4FTFParameters* theParameters ) const;
0058
0059 private:
0060 G4FTFAnnihilation( const G4FTFAnnihilation& right );
0061 const G4FTFAnnihilation& operator=( const G4FTFAnnihilation& right );
0062 G4bool operator==( const G4FTFAnnihilation& right ) const;
0063 G4bool operator!=( const G4FTFAnnihilation& right ) const;
0064
0065
0066 struct CommonVariables {
0067 G4int AQ[3], Q[3];
0068 G4bool RotateStrings = false;
0069 G4double S = 0.0, SqrtS = 0.0;
0070 G4LorentzVector Pprojectile, Ptarget;
0071 G4LorentzRotation toLab, RandomRotation;
0072 };
0073 G4bool Create3QuarkAntiQuarkStrings( G4VSplitableHadron* aPartner,
0074 G4VSplitableHadron* bPartner,
0075 G4VSplitableHadron*& AdditionalString,
0076 G4FTFParameters* theParameters,
0077 CommonVariables& common ) const;
0078 G4int Create1DiquarkAntiDiquarkString( G4VSplitableHadron* aPartner,
0079 G4VSplitableHadron* bPartner,
0080 CommonVariables& common ) const;
0081 G4int Create2QuarkAntiQuarkStrings( G4VSplitableHadron* aPartner,
0082 G4VSplitableHadron* bPartner,
0083 G4FTFParameters* theParameters,
0084 CommonVariables& common ) const;
0085 G4bool Create1QuarkAntiQuarkString( G4VSplitableHadron* aPartner,
0086 G4VSplitableHadron* bPartner,
0087 G4FTFParameters* theParameters,
0088 CommonVariables& common ) const;
0089
0090 G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const;
0091 G4double ChooseX( G4double Alpha, G4double Beta ) const;
0092 void UnpackBaryon( G4int IdPDG, G4int& Q1, G4int& Q2, G4int& Q3 ) const;
0093 };
0094
0095 #endif
0096