- Timestamp:
- Nov 25, 2009, 5:13:58 PM (15 years ago)
- Location:
- trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh
r1007 r1196 26 26 // 27 27 // $Id: G4Chips.hh,v 1.19 2006/06/29 20:05:53 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-0 2$28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4Chips ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QBesIKJY.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QBesIKJY.hh,v 1.3 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QBesIKJY ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QCHIPSWorld.hh,v 1.26 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCHIPSWorld ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QCandidate.hh,v 1.29 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidate ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QCandidateVector.hh,v 1.22 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QChipolino.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QChipolino ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QContent.hh,v 1. 29 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QContent.hh,v 1.31 2009/07/24 16:37:03 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QContent ---------------- … … 55 55 public: 56 56 G4QContent(G4int d=0, G4int u=0, G4int s=0, G4int ad=0, G4int au=0, G4int as=0); 57 G4QContent(std::pair<G4int,G4int> PP); // Create HadronQC from two partons 57 58 G4QContent(const G4QContent& rhs); // Copy constructor by value 58 59 G4QContent(G4QContent* rhs); // Copy constructor by pointer … … 116 117 G4int GetADAS() const; // A#of anti-ds-di-quarks 117 118 G4int GetAUAS() const; // A#of anti-us-di-quarks 119 120 std::pair<G4int,G4int> MakePartonPair() const;// Make PDG's of PartonPairs for Mes&Baryon 121 G4int AddParton(G4int pPDG) const; // Add parton with pPDG to the hadron with this QC 118 122 119 123 // Modifiers -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QDecayChan.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QDecayChan ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QDecayChanVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QEnvironment.hh,v 1.3 3 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QEnvironment.hh,v 1.36 2009/11/16 18:15:01 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QEnvironment ---------------- … … 44 44 #define G4QEnvironment_h 1 45 45 46 #include "G4RandomDirection.hh" 46 47 #include "G4QuasmonVector.hh" 47 48 … … 122 123 123 124 //General function makes Random Unit 3D-Vector 124 G4ThreeVector RndmDir();125 //G4ThreeVector RndmDir(); 125 126 126 127 // Inline functions -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QException.hh,v 1.11 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QException ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QHadron.hh,v 1. 37 2009/02/23 09:49:24 mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QHadron.hh,v 1.46 2009/09/08 14:04:14 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QHadron ---------------- … … 47 47 #include "G4QParticle.hh" 48 48 #include "G4QPartonVector.hh" 49 #include "G4QPartonPair.hh" 50 #include "G4LorentzRotation.hh" 49 51 #include <list> 50 52 … … 76 78 G4QPDGCode GetQPDG() const; // Get QPDG of the Hadron 77 79 G4double GetSpin() const{return .5*(GetPDGCode()%10-1);} 78 G4LorentzVector Get4Momentum() const; // Get 4-mom of the Hadron 80 G4LorentzVector Get4Momentum() const{return theMomentum;} // Get 4-mom of Hadron 81 G4ThreeVector Get3Momentum() const{return theMomentum.vect();}// Get 3-mom ofH 82 G4double GetEnergy() const{return theMomentum.e();} // Get E of Hadron 79 83 G4QContent GetQC() const; // Get private quark content 80 84 G4double GetMass() const; // Get a mass of the Hadron … … 86 90 G4int GetBaryonNumber() const; // Get Baryon Number of the Hadron 87 91 const G4ThreeVector& GetPosition() const; // Get hadron coordinates 88 G4int GetSoftCollisionCount(); // Get QGS Counter of collisions89 G4bool IsSplit() {return isSplit;} // Check that hadron has been split90 92 G4double GetBindingEnergy() {return bindE;}// Returns binding E in NucMatter 91 93 G4double GetFormationTime() {return formTime;} // Returns formation time 92 94 std::list<G4QParton*> GetColor() {return Color;} // pointer to quarks/anti-diquarks 95 std::list<G4QParton*> GetAntiColor() {return AntiColor;}//pointer to anti-quarks/diquarks 93 96 // Modifiers 94 97 void SetQPDG(const G4QPDGCode& QPDG); // Set QPDG of the Hadron 98 void SetPDGCode(const G4QPDGCode& PDG){SetQPDG(G4QPDGCode(PDG));}// Set PDGCode of Hadron 95 99 void Set4Momentum(const G4LorentzVector& aMom); // Set 4-mom of the Hadron 96 100 void SetQC(const G4QContent& newQC); // Set new private quark content … … 99 103 void MakeAntiHadron(); // Make AntiHadron of this Hadron 100 104 void SetPosition(const G4ThreeVector& aPosition); // Set coordinates of hadron position 101 void IncrementCollisionCount(G4int aCount); // Increnment counter of collisions 102 void SetCollisionCount(G4int aCount); // Set counter of QGSM collisions 103 void Splitting() {isSplit = true;} // Put Up a flag that splitting is done 105 void IncrementCollisionCount(G4int aCount) {theCollisionCount+=aCount;}// IncrTheCCounter 104 106 void SplitUp(); // Make QGSM String Splitting of Hadron 107 G4QPartonPair* SplitInTwoPartons(); // RandomSplit ofTheHadron in 2 partons 105 108 G4QParton* GetNextParton(); // Next Parton in a string 106 109 G4QParton* GetNextAntiParton(); // Next Anti-Parton in a string … … 108 111 void Boost(const G4LorentzVector& theBoost); // Boosts hadron's 4-Momentum using 4M 109 112 void Boost(const G4ThreeVector& B){theMomentum.boost(B);} // Boosts 4-Momentum using v/c 113 void LorentzRotate(const G4LorentzRotation& rotation){theMomentum=rotation*theMomentum;} 110 114 void SetFormationTime(G4double fT){formTime=fT;} // Defines formationTime for the Hadron 111 115 … … 126 130 G4LorentzVector& dir, G4double cosp); 127 131 void Init3D(); // Initializes 3D nucleus with (Pos,4M)nucleons 128 129 132 private: 130 133 // Private methods 131 134 void DefineQC(G4int PDGCode); 132 135 G4QParton* BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode); 133 G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta); 136 G4double SampleCHIPSX(G4double anXtot, G4int nSea); 137 G4double* RandomX(G4int nPart); 134 138 void GetValenceQuarkFlavors(G4QParton* &Part1,G4QParton* &Part2); 135 139 G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare); … … 137 141 G4bool SplitBaryon(G4int PDGcode, G4int* aEnd, G4int* bEnd); 138 142 143 protected: 144 G4LorentzVector theMomentum; // The 4-mom of Hadron 145 139 146 private: 140 147 // Static Parameters of QGSM Splitting 141 static G4double alpha; // changing rapidity distribution for all142 static G4double beta; // changing rapidity distribution for projectile region143 static G4double theMinPz; // Can be from 14 to 140 MeV144 148 static G4double StrangeSuppress; // ? M.K. 145 static G4double sigmaPt; // Can be 0 149 static G4double sigmaPt; // Can be 0 ? 146 150 static G4double widthOfPtSquare; // ? M.K. 147 static G4double minTransverseMass;// ? M.K.148 151 // Body 149 152 G4QPDGCode theQPDG; // Instance of QPDG for the Hadron 150 G4LorentzVector theMomentum; // The 4-mom of Hadron151 153 G4QContent valQ; // QC (@@ for Quasmon and Chipolino?) 152 154 G4int nFragm; // 0 - stable, N - decayed in N part's … … 156 158 G4bool isSplit; // Flag, that splitting was done 157 159 G4bool Direction; // FALSE=target, TRUE=projectile 158 std::list<G4QParton*> Color;// container for quarks & anti-diquarks159 std::list<G4QParton*> AntiColor;// container for anti-quarks & diquarks160 std::list<G4QParton*> Color; // container for quarks & anti-diquarks 161 std::list<G4QParton*> AntiColor; // container for anti-quarks & diquarks 160 162 G4double bindE; // Binding energy in nuclear matter 161 163 G4double formTime; // Formation time for the hadron … … 171 173 inline G4QPDGCode G4QHadron::GetQPDG() const {return theQPDG;} 172 174 inline G4QContent G4QHadron::GetQC() const {return valQ;} 173 inline G4LorentzVector G4QHadron::Get4Momentum() const {return theMomentum;}174 175 inline G4int G4QHadron::GetNFragments() const {return nFragm;} 175 176 //@@ This is an example how to make other inline selectors for the 4-Momentum of the Hadron … … 181 182 inline G4int G4QHadron::GetBaryonNumber() const {return valQ.GetBaryonNumber();} 182 183 inline const G4ThreeVector& G4QHadron::GetPosition() const {return thePosition;} 183 inline G4int G4QHadron::GetSoftCollisionCount() {return theCollisionCount;}184 //inline G4int G4QHadron::GetSoftCollisionCount() {return theCollisionCount;} 184 185 185 186 inline void G4QHadron::MakeAntiHadron() {if(TestRealNeutral()) NegPDGCode();} … … 188 189 inline void G4QHadron::SetNFragments(const G4int& nf) {nFragm=nf;} 189 190 inline void G4QHadron::SetPosition(const G4ThreeVector& position) {thePosition=position;} 190 inline void G4QHadron::IncrementCollisionCount(G4int aCount) {theCollisionCount+=aCount;}191 inline void G4QHadron::SetCollisionCount(G4int aCount) {theCollisionCount =aCount;}192 191 193 192 inline void G4QHadron::NegPDGCode() {theQPDG.NegPDGCode(); valQ.Anti();} 194 193 inline G4bool G4QHadron::TestRealNeutral() { return theQPDG.TestRealNeutral();} 195 194 196 inline G4QParton* G4QHadron::GetNextParton()197 {198 if(Color.size()==0) return 0;199 G4QParton* result = Color.back();200 Color.pop_back();201 return result;202 }203 204 inline G4QParton* G4QHadron::GetNextAntiParton()205 {206 if(AntiColor.size() == 0) return 0;207 G4QParton* result = AntiColor.front();208 AntiColor.pop_front();209 return result;210 }211 195 #endif -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QHadronVector.hh,v 1.23 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- … … 43 43 // 44 44 // $Id: G4QHadronVector.hh,v 1.23 2009/02/23 09:49:24 mkossov Exp $ 45 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $45 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 46 46 // 47 47 // ------------------------------------------------------------ -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QInteraction.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QInteraction.hh,v 1. 3 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QInteraction.hh,v 1.7 2009/08/28 14:49:10 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 … … 42 42 // ------------------------------------------------------------------- 43 43 // Short description: Classify the interaction in soft/hard/diffractive 44 // parts for firther treatment by the QGS algorithm. 44 // parts for firther treatment by the QGS algorithm. Pure data class... 45 // Except for the SplitHadrons, which can be done elsewhere (@@ M.K.) 45 46 // --------------------------------------------------------------------- 46 47 … … 58 59 G4QHadron* GetTarget() const {return theTarget;} 59 60 G4int GetNumberOfSoftCollisions() {return theNumberOfSoft;} 61 G4int GetNumberOfDINRCollisions() {return theNumberOfDINR;} 60 62 G4int GetNumberOfHardCollisions() {return theNumberOfHard;} 61 63 G4int GetNumberOfDiffractiveCollisions() {return theNumberOfDiffractive;} 62 void SetTarget(G4QHadron *aTarget) {theTarget = aTarget;}63 void SetProjectile(G4QHadron *aProjectile) {theProjectile = aProjectile;}64 void SetTarget(G4QHadron* aTarget) {theTarget = aTarget;} 65 void SetProjectile(G4QHadron* aProjectile) {theProjectile = aProjectile;} 64 66 void SetNumberOfSoftCollisions(G4int nofSoft) {theNumberOfSoft = nofSoft;} 67 void SetNumberOfDINRCollisions(G4int nofDINR) {theNumberOfDINR = nofDINR;} 65 68 void SetNumberOfHardCollisions(G4int nofHard) {theNumberOfHard = nofHard;} 66 69 void SetNumberOfDiffractiveCollisions(G4int nofDiff) {theNumberOfDiffractive = nofDiff;} … … 75 78 G4QHadron* theProjectile; 76 79 G4QHadron* theTarget; 80 G4int theNumberOfDINR; 77 81 G4int theNumberOfHard; 78 82 G4int theNumberOfSoft; … … 81 85 82 86 #endif 83 84 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QInteractionVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QInteractionVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- … … 38 38 // 39 39 // $Id: G4QInteractionVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 40 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $40 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 41 41 // 42 42 // ------------------------------------------------------------------ -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QIsotope.hh,v 1.6 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QNucleus.hh,v 1. 34 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QNucleus.hh,v 1.45 2009/08/31 11:21:48 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QNucleus ---------------- … … 41 41 #include "G4QCandidateVector.hh" 42 42 #include "G4QHadronVector.hh" 43 #include "G4LorentzRotation.hh" 43 44 #include "G4QChipolino.hh" 44 45 #include <utility> 45 46 #include <vector> 46 47 #include "globals.hh" 48 #include "G4RandomDirection.hh" 47 49 48 50 class G4QNucleus : public G4QHadron … … 56 58 G4QNucleus(G4int z, G4int n, G4int s=0); // At Rest ZNS-Constructor 57 59 G4QNucleus(G4int z, G4int n, G4int s, G4LorentzVector p);// Full ZNS-Constructor 58 //G4QNucleus(const G4QNucleus& right); // Copy Constructor by value59 G4QNucleus( G4QNucleus* right); // Copy Constructor by pointer60 G4QNucleus(G4QNucleus* right, G4bool cop3D = false); // Copy Constructor by pointer 61 G4QNucleus(const G4QNucleus &right, G4bool cop3D=false); // Copy Constructor by value 60 62 ~G4QNucleus(); // Public Destructor 61 63 // Overloaded Operators … … 76 78 G4double GetProbability(G4int bn=0) const {return probVect[bn];} // clust(BarN)probabil 77 79 G4double GetMZNS() const {return GetQPDG().GetNuclMass(Z,N,S);} // not H or Q 80 G4double GetTbIntegral(); // Calculate the integral of T(b) 78 81 G4double GetGSMass() const {return GetQPDG().GetMass();}//Nucleus GSMass (not Hadron) 79 G4QContent GetQCZNS() const // Get ZNS quark content of Nucleus82 G4QContent GetQCZNS() const // Get ZNS quark content of Nucleus 80 83 { 81 84 if(S>=0) return G4QContent(Z+N+N+S,Z+Z+N+S,S,0,0,0); … … 84 87 G4int GetNDefMesonC() const{return nDefMesonC;}; // max#of predefed mesonCandidates 85 88 G4int GetNDefBaryonC()const{return nDefBaryonC;};// max#of predefed baryonCandidates 86 std::pair<G4double, G4double> RefetchImpactXandY() const {return theImpactParameter;}87 89 G4double GetDensity(const G4ThreeVector&aPos) {return rho0*GetRelativeDensity(aPos);} 90 G4double GetRho0() {return rho0;} // One nucleon prob-density 88 91 G4double GetRelativeDensity(const G4ThreeVector& aPosition); // Densyty/rho0 92 G4double GetRelWSDensity(const G4double& r) // Wood-Saxon rho/rho0(r) 93 {return 1./(1.+exp((r-radius)/WoodSaxonSurf));} 94 G4double GetRelOMDensity(const G4double& r2){return exp(-r2/radius);} // OscModelRelDens 89 95 G4double GetRadius(const G4double maxRelativeDenisty=0.5); // Radius of %ofDensity 90 96 G4double GetOuterRadius(); // Get radius of the most far nucleon 91 97 G4double GetDeriv(const G4ThreeVector& point); // Derivitive of density 92 98 G4double GetFermiMomentum(G4double density); // Returns modul of FermyMomentum(dens) 93 G4ThreeVector Get3DFermiMomentum(G4double density, G4double maxMom=-1.)94 {95 if(maxMom<0) maxMom=GetFermiMomentum(density);96 return maxMom*RandomUnitSphere();97 }98 99 G4QHadron* GetNextNucleon() 99 {return (currentNucleon>=0&¤tNucleon<GetA()) ? theNucleons[currentNucleon++] :0;} 100 //std::vector<G4double>* GetBThickness() const {return Tb;} // T(b) function, step .1 fm 100 { 101 //G4cout<<"G4QNucleus::GetNextNucleon: cN="<<currentNucleon<<", A="<<GetA()<<G4endl; 102 return (currentNucleon>=0&¤tNucleon<GetA()) ? theNucleons[currentNucleon++] : 0; 103 } 104 void SubtractNucleon(G4QHadron* pNucleon); // Subtract the nucleon from the 3D Nucleus 105 void DeleteNucleons(); // Deletes all residual nucleons 106 G4LorentzVector GetNucleons4Momentum() 107 { 108 G4LorentzVector sum(0.,0.,0.,0.); 109 for(unsigned i=0; i<theNucleons.size(); i++) sum += theNucleons[i]->Get4Momentum(); 110 sum.setE(std::sqrt(sqr(GetGSMass())+sum.v().mag2())); // Energy is corrected ! 111 return sum; 112 } 101 113 std::vector<G4double> const* GetBThickness() {return &Tb;} // T(b) function, step .1 fm 102 114 … … 117 129 G4bool Split2Baryons(); // Is it possible to split two baryons? 118 130 void ActivateBThickness(); // Calculate T(b) for nucleus (db=.1fm) 131 G4double GetBThickness(G4double b); // Calculates T(b) 132 G4double GetThickness(G4double b); // Calculates T(b)/rho(0) 119 133 void InitByPDG(G4int newPDG); // Init existing nucleus by new PDG 120 134 void InitByQC(G4QContent newQC) // Init existing nucleus by new QCont … … 135 149 G4QNucleus operator*=(const G4int& rhs); // Multiplication of the Nucleus 136 150 G4bool StartLoop(); // returns size of theNucleons (cN=0) 137 G4bool ReduceSum(G4ThreeVector* momentum, G4double*); // Reduce momentum nonconservation 138 void DoLorentzBoost(const G4LorentzVector& theBoost); // Boost nucleons by 4-vector 139 void DoLorentzBoost(const G4ThreeVector& theBeta);// Boost nucleons by v/c 151 G4bool ReduceSum(G4ThreeVector* vectors, G4ThreeVector sum);// Reduce zero-sum of vectors 152 void SimpleSumReduction(G4ThreeVector* vectors, G4ThreeVector sum); // Reduce zero-V-sum 153 void DoLorentzBoost(const G4LorentzVector& theBoost) // Boost nucleons by 4-vector 154 { 155 theMomentum.boost(theBoost); 156 for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->Boost(theBoost); 157 } 158 void DoLorentzRotation(const G4LorentzRotation& theLoRot) // Lorentz Rotate nucleons 159 { 160 theMomentum=theLoRot*theMomentum; 161 for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->LorentzRotate(theLoRot); 162 } 163 void DoLorentzBoost(const G4ThreeVector& theBeta)// Boost nucleons by v/c 164 { 165 theMomentum.boost(theBeta); 166 for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->Boost(theBeta); 167 } 140 168 void DoLorentzContraction(const G4LorentzVector&B){DoLorentzContraction(B.vect()/B.e());} 141 169 void DoLorentzContraction(const G4ThreeVector& theBeta); // Lorentz Contraction by v/c 142 void DoTranslation(const G4ThreeVector& theShift); // Used only in G HAD-TFT170 void DoTranslation(const G4ThreeVector& theShift); // Used only in G4QFragmentation 143 171 144 172 // Static functions … … 147 175 148 176 // Specific General Functions 149 G4ThreeVector RandomUnitSphere(); // Randomize position inside UnitSphere150 177 G4int RandomizeBinom(G4double p,G4int N); // Randomize according to Binomial Law 151 178 G4double CoulombBarrier(const G4double& cZ=1, const G4double& cA=1, G4double dZ=0., … … 179 206 static G4double mediRatio; // relative vacuum hadronization probability 180 207 static G4double nucleonDistance;// Distance between nucleons (0.8 fm) 208 static G4double WoodSaxonSurf; // Surface parameter of Wood-Saxon density (0.545 fm) 181 209 // The basic 182 210 G4int Z; // Z of the Nucleus … … 190 218 G4double probVect[256]; // Cluster probability ("a#of issues" can be real) Vector 191 219 // 3D 192 std::pair<G4double, G4double> theImpactParameter; // 2D impact parameter vector bbar193 G4 QHadronVector theNucleons; // Vector of nucleons of which Nucleus consists of194 G4 int currentNucleon; // Current nucleon for the NextNucleon (? M.K.)195 G4double r ho0; // Normalazation density196 G4double radius; // Nuclear radius197 //std::vector<G4double>* Tb; // T(b) function with step .1 fm (@@ make .1 a parameter)198 std::vector<G4double> Tb; // T(b) function with step .1 fm (@@ make .1 a parameter)220 G4QHadronVector theNucleons; // Vector of nucleons of which the Nucleus consists of 221 G4int currentNucleon; // Current nucleon for the NextNucleon (? M.K.) 222 G4double rho0; // Normalazation density 223 G4double radius; // Nuclear radius 224 std::vector<G4double> Tb; // T(b) function with step .1 fm (@@ make .1 a parameter) 225 G4bool TbActive; // Flag that the T(b) is activated 226 G4bool RhoActive; // Flag that the Density is activated 199 227 }; 200 228 … … 202 230 std::ostream& operator<<(std::ostream& lhs, const G4QNucleus& rhs); 203 231 204 205 232 #endif -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QPDGCode.hh,v 1. 27 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QPDGCode.hh,v 1.30 2009/11/04 11:01:59 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QPDGCode ---------------- … … 45 45 #include <iostream> 46 46 #include "globals.hh" 47 #include "G4ParticleTable.hh" 47 // Geant4 particles for consistency of masses only 48 // Leptons 49 #include "G4MuonPlus.hh" 50 #include "G4MuonMinus.hh" 51 #include "G4TauMinus.hh" 52 #include "G4TauPlus.hh" 53 #include "G4Electron.hh" 54 #include "G4Positron.hh" 55 #include "G4NeutrinoTau.hh" 56 #include "G4AntiNeutrinoTau.hh" 57 #include "G4NeutrinoMu.hh" 58 #include "G4AntiNeutrinoMu.hh" 59 #include "G4NeutrinoE.hh" 60 #include "G4AntiNeutrinoE.hh" 61 // Mesons 62 #include "G4PionPlus.hh" 63 #include "G4PionMinus.hh" 64 #include "G4PionZero.hh" 65 #include "G4Eta.hh" 66 #include "G4EtaPrime.hh" 67 68 #include "G4KaonPlus.hh" 69 #include "G4KaonMinus.hh" 70 #include "G4KaonZero.hh" 71 #include "G4AntiKaonZero.hh" 72 #include "G4KaonZeroLong.hh" 73 #include "G4KaonZeroShort.hh" 74 75 #include "G4DMesonPlus.hh" 76 #include "G4DMesonMinus.hh" 77 #include "G4DMesonZero.hh" 78 #include "G4AntiDMesonZero.hh" 79 #include "G4DsMesonPlus.hh" 80 #include "G4DsMesonMinus.hh" 81 #include "G4JPsi.hh" 82 83 #include "G4BMesonPlus.hh" 84 #include "G4BMesonMinus.hh" 85 #include "G4BMesonZero.hh" 86 #include "G4AntiBMesonZero.hh" 87 #include "G4BsMesonZero.hh" 88 #include "G4AntiBsMesonZero.hh" 89 90 91 // Barions 92 #include "G4Proton.hh" 93 #include "G4AntiProton.hh" 94 #include "G4Neutron.hh" 95 #include "G4AntiNeutron.hh" 96 97 #include "G4Lambda.hh" 98 #include "G4SigmaPlus.hh" 99 #include "G4SigmaZero.hh" 100 #include "G4SigmaMinus.hh" 101 #include "G4XiMinus.hh" 102 #include "G4XiZero.hh" 103 #include "G4OmegaMinus.hh" 104 105 #include "G4AntiLambda.hh" 106 #include "G4AntiSigmaPlus.hh" 107 #include "G4AntiSigmaZero.hh" 108 #include "G4AntiSigmaMinus.hh" 109 #include "G4AntiXiMinus.hh" 110 #include "G4AntiXiZero.hh" 111 #include "G4AntiOmegaMinus.hh" 112 113 #include "G4LambdacPlus.hh" 114 #include "G4SigmacPlusPlus.hh" 115 #include "G4SigmacPlus.hh" 116 #include "G4SigmacZero.hh" 117 #include "G4XicPlus.hh" 118 #include "G4XicZero.hh" 119 #include "G4OmegacZero.hh" 120 121 #include "G4AntiLambdacPlus.hh" 122 #include "G4AntiSigmacPlusPlus.hh" 123 #include "G4AntiSigmacPlus.hh" 124 #include "G4AntiSigmacZero.hh" 125 #include "G4AntiXicPlus.hh" 126 #include "G4AntiXicZero.hh" 127 #include "G4AntiOmegacZero.hh" 128 129 // Nuclei 130 #include "G4Alpha.hh" 131 #include "G4Deuteron.hh" 132 #include "G4He3.hh" 133 #include "G4Triton.hh" 134 135 //ions 136 #include "G4GenericIon.hh" 48 137 #include "G4NucleiProperties.hh" 49 #include "G4NucleiPropertiesTable.hh" 50 #include "G4ParticleTypes.hh" 138 // --- End of consistency headers --- 51 139 52 140 #include "G4QContent.hh" … … 102 190 // General 103 191 G4bool TestRealNeutral(); 192 104 193 void NegPDGCode(); 105 194 void ConvertPDGToZNS(G4int PDG, G4int& z, G4int& n, G4int& s); 195 std::pair<G4int,G4int> MakeTwoBaryons(G4int L1, G4int L2, G4int R1, G4int R2); 106 196 107 197 private: -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QPDGCodeVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QParentCluster.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QParentCluster ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QParentClusterVector.hh,v 1.19 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QParticle.hh,v 1.25 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QParticle ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QParticleVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParton.hh
r1055 r1196 28 28 #define G4QParton_h 1 29 29 30 // $Id: G4QParton.hh,v 1. 3 2009/02/23 09:49:24mkossov Exp $31 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $30 // $Id: G4QParton.hh,v 1.8 2009/07/17 16:54:57 mkossov Exp $ 31 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 32 32 // 33 33 // ------------------------------------------------------------ … … 45 45 46 46 #include "globals.hh" 47 #include "G4QContent.hh" 48 #include "G4LorentzVector.hh" 47 49 #include "G4ThreeVector.hh" 48 #include "G4LorentzVector.hh"49 50 #include <iostream> 50 #include "G4ParticleTable.hh"51 51 #include "Randomize.hh" 52 52 … … 55 55 public: 56 56 // Constructors 57 G4QParton() 58 { 59 // CHIPS is working only with u, d, and s quarks (SU(3)xSU(3)) (no gluons! M.K.) 60 // Random Flavor/Colour/Spin definition for default constructor (with .3 s-suppresion) 61 PDGencoding=(G4int)(2.3*G4UniformRand())+1; //@@ What about antiquarks? (M.K.) 62 theDefinition=G4ParticleTable::GetParticleTable()->FindParticle(PDGencoding); 63 // random colour (1,2,3)=(R,G,B) for quarks and (-1,-2,-3)=(aR,aG,aB) for anti-quarks 64 theColour = (G4int)(3*G4UniformRand())+1; 65 if(theColour>3) theColour = 3; 66 theIsoSpinZ = theDefinition->GetPDGIsospin3(); 67 theSpinZ = (G4int)(2*G4UniformRand()) - 0.5; 68 } 69 G4QParton(G4int PDGencoding); // Collor/Spin are still random 57 G4QParton(); // Default fullRandom constructor 58 G4QParton(G4int aPGG); // Collor/Spin are still random 70 59 G4QParton(const G4QParton &right); 71 60 G4QParton(const G4QParton* right); … … 80 69 81 70 // Modifiers 71 void DefineEPz(G4LorentzVector hadr4Mom){theMomentum+=hadr4Mom*theX;} // CHIPS solution 82 72 void DefineMomentumInZ(G4double aLightConeMomentum, G4bool aDirection); 73 void SetPDGCode(G4int aPDG); 83 74 void SetColour(G4int aColour) {theColour = aColour;} 84 75 void SetX(G4double anX) {theX = anX;} 85 76 void Set4Momentum(const G4LorentzVector& aMomentum) {theMomentum=aMomentum;} 86 77 void SetPosition(const G4ThreeVector& aPosition) {thePosition=aPosition;} 87 void SetIsoSpinZ(G4double anIsoSpinZ) {theIsoSpinZ = anIsoSpinZ;}88 78 void SetSpinZ(G4double aSpinZ) {theSpinZ = aSpinZ;} 79 G4bool ReduceDiQADiQ(G4QParton* d1, G4QParton* d2); // Reduce DiQ-aDiQ to Q-aQ (general) 89 80 90 81 // Selectors 91 G4int GetPDGCode() const {return P DGencoding;}92 G4 ParticleDefinition* GetDefinition() {return theDefinition;}93 const G4ThreeVector& GetPosition() const{return thePosition;}82 G4int GetPDGCode() const {return PGGCode;} 83 G4QContent GetQC() const {return QCont;} 84 const G4ThreeVector& GetPosition() const {return thePosition;} 94 85 const G4LorentzVector& Get4Momentum() const {return theMomentum;} 95 86 G4double GetX() {return theX;} 96 87 G4int GetColour() {return theColour;} 97 88 G4double GetSpinZ() {return theSpinZ;} 98 G4double GetIsoSpinZ() {return theIsoSpinZ;} 99 G4double GetMass() {return theDefinition->GetPDGMass();} 100 G4String GetParticleSubType() {return theDefinition->GetParticleSubType();} 89 const G4int& GetType() const {return theType;} 101 90 private: 102 91 // Body 103 G4int PDGencoding; 104 G4ParticleDefinition* theDefinition; 92 G4int PGGCode; 93 G4QContent QCont; // Quark Content of the parton 94 G4int theType; // 0 = gluon, 1 = quark-antiquark, 2 = diquark/antidiquark 95 G4int theColour; 96 G4double theSpinZ; 97 G4double theX; 98 G4ThreeVector thePosition; 105 99 G4LorentzVector theMomentum; 106 G4ThreeVector thePosition;107 G4int theColour;108 G4double theIsoSpinZ;109 G4double theSpinZ;110 G4double theX;111 100 }; 112 101 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonPair.hh
r1055 r1196 28 28 // 29 29 // $Id: G4QPartonPair.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 30 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $30 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 31 31 // 32 32 // ------------------------------------------------------------ -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonPairVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QPartonPairVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QPartonVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QCandidateVector ---------------- … … 40 40 // 41 41 // $Id: G4QPartonVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 42 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $42 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 43 43 // 44 44 // ------------------------------------------------------------ -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QString.hh
r1055 r1196 26 26 // 27 27 // 28 // $Id: G4QString.hh,v 1. 3 2009/02/23 09:49:24mkossov Exp $29 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // $Id: G4QString.hh,v 1.11 2009/08/24 14:41:49 mkossov Exp $ 29 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 30 30 31 31 #ifndef G4QString_h … … 60 60 #include "G4LorentzRotation.hh" 61 61 #include "G4QHadronVector.hh" 62 #include "G4QHadronBuilder.hh"63 62 #include "G4QPartonPair.hh" 64 63 #include "G4QPartonVector.hh" … … 73 72 G4QString(); // formal creation of the string with future excitation 74 73 G4QString(G4QParton* Color,G4QParton* Gluon, G4QParton* AntiColor, G4int Dir=PROJECTILE); 75 G4QString(G4QParton* Col,G4QParton* AntiCol, G4int Dir=PROJECTILE); 74 G4QString(G4QParton* Col, G4QParton* AntiCol, G4int Dir=PROJECTILE); 75 G4QString(G4QPartonPair* ColAntiCol); 76 76 G4QString(const G4QString &right); 77 G4QString(const G4QString &old, G4QParton* newdecay, const G4LorentzVector *momentum); 78 G4QString(const G4QString &old, G4QParton* newdecay); 79 G4QString(G4QParton* newdecay, const G4LorentzVector* momentum); 77 80 78 81 ~G4QString(); … … 83 86 const G4ThreeVector& GetPosition() const {return thePosition;} 84 87 const G4QPartonVector* GetPartonList() const {return &thePartons;} 85 G4QParton* GetGluon() const {return thePartons[1];}86 G4QParton* GetGluon(G4int GluonPos) const {return thePartons[1 + GluonPos];}87 88 G4QParton* GetLeftParton() const {return *thePartons.begin();} 88 89 G4QParton* GetRightParton() const {return *(thePartons.end()-1);} 89 G4bool IsItKinkyString() const {return (thePartons.size() > 2);}90 90 G4int GetDirection() const {return theDirection;} 91 G4bool IsExcited() const {return true;} // Can be absolete? @@ M.K.92 91 G4LorentzVector Get4Momentum() const; 93 //G4QHadron* GetAsQHadron(); //@@ Create a QHadron, corresponding to not excited string 94 G4QParton* GetColorParton() const; 95 G4QParton* GetAntiColorParton() const; 96 G4QParton* GetStableParton() const{ return theStableParton;} // stable at the moment 97 G4QParton* GetDecayParton() const{return theDecayParton;}// now involved in fragmentation 92 G4QContent GetQC() const {return GetLeftParton()->GetQC()+GetRightParton()->GetQC();} 93 G4int GetCharge() const {return GetQC().GetCharge();} 94 G4int GetBaryonNumber() const {return GetQC().GetBaryonNumber();} 95 G4int GetStrangeness() const {return GetQC().GetStrangeness();} 98 96 G4int GetDecayDirection() const; 99 G4bool FourQuarkString() const; // Checks that the string is qq-(qq)bar string 100 G4bool DecayIsQuark() const {return theDecayParton->GetParticleSubType()=="quark";} 101 G4bool StableIsQuark() const {return theStableParton->GetParticleSubType()=="quark";} 102 G4ThreeVector StablePt(); // Get Pt of the stable quark 103 G4ThreeVector DecayPt(); // Get Pt of the decaying quark 104 G4double LightConePlus(){return Pplus;} 105 G4double LightConeMinus() {return Pminus;} 106 G4double LightConeDecay(); 107 G4LorentzVector GetFragmentation4Mom() const; //!! Instead of Get$Momentum in FragmString 108 G4double Mass2() const {return Pplus*Pminus-(Ptleft+Ptright).mag2();} 109 G4double Mass() const{return std::sqrt(Mass2());} 110 G4bool StopFragmentation() {return FragmentationMass(&G4QHadronBuilder::BuildHighSpin) 111 + MassCut > GetFragmentation4Mom().mag();} 112 G4bool IsFragmentable() {return FragmentationMass() + MassCut < Mass();} 113 G4ThreeVector SampleQuarkPt(); 114 G4bool SplitLast(G4QString* string, G4QHadronVector* LeftHV, G4QHadronVector* RightHV); 97 G4bool DecayIsQuark() const {return theDecayParton->GetType()==1;} 98 G4bool StableIsQuark() const {return theStableParton->GetType()==1;} 99 G4ThreeVector DecayPt(); // Get Pt of the decaying quark @@ Called once 100 G4double Mass2() const { return Pplus*Pminus-(Ptleft+Ptright).mag2();} 101 G4double Mass() const // @@ Very dangerous! USE ONLY FORE THE LIGHT CONE ALGORITHM !! 102 { 103 G4double m2=Mass2(); 104 if(m2>0) return std::sqrt(Mass2()); 105 else return 0.; // @@ Make Warning 106 } 107 G4bool StopFragmentation() 108 { 109 G4LorentzVector mom(Ptleft+Ptright, 0.5*(Pplus+Pminus)); 110 mom.setPz(0.5*(Pplus-Pminus)); 111 return FragmentationMass(1) + MassCut > mom.mag(); 112 } 113 G4bool IsFragmentable() {return FragmentationMass() + MassCut < Mass();} // @@ Mass() ? 114 G4ThreeVector SampleQuarkPt(); // @@ Called once 115 G4QHadron* CreateHadron(G4QParton* black, G4QParton* white); 116 G4QHadron* CreateLowSpinHadron(G4QParton* black, G4QParton* white); 117 G4QHadron* CreateHighSpinHadron(G4QParton* black, G4QParton* white); 115 118 116 void Sample4Momentum(G4LorentzVector* Mom, G4double M, G4LorentzVector* aMom,117 G4double aM, G4double InitialMass);118 119 // Modifiers 119 void SetPosition(const G4ThreeVector& aPosition) {thePosition= aPosition;} 120 void SetDirection(G4int dir) {theDirection=dir;} 120 void SetPosition(const G4ThreeVector& aPosition){thePosition= aPosition;} 121 void SetDirection(G4int dir) {if(dir==1 || dir==-1) theDirection=dir;} 122 void SetLeftParton(G4QParton* LP) {thePartons[0]=LP;} // !! Not deleting the substituty 123 void SetRightParton(G4QParton* RP) {thePartons.pop_back(); thePartons.push_back(RP);} 124 void KillString() {theDirection=0;} // @@ Can be absolete 121 125 void LorentzRotate(const G4LorentzRotation& rotation); 122 void InsertParton(G4QParton* aParton, const G4QParton* addafter = NULL);126 //void InsertParton(G4QParton* aParton, const G4QParton* addafter = NULL); 123 127 void Boost(G4ThreeVector& Velocity); 124 G4LorentzRotation TransformToCenterOfMass(); 125 G4LorentzRotation TransformToAlignedCms(); 126 void DiffString(G4QHadron* aHadron, G4bool isProjectile); 128 G4LorentzRotation TransformToAlignedCms(); // @@ caled once 129 //void DiffString(G4QHadron* aHadron, G4bool isProjectile); @@ Mast be used!! 127 130 void ExciteString(G4QParton* Col,G4QParton* AntiCol, G4int Dir); 128 131 G4QHadronVector* FragmentString(G4bool QL); // Fragment String using QGSM=true/LUND=false 129 G4QString* CPExcited(); // Creates a string, using only CMS end-partons of the string130 132 G4QHadronVector* LightFragmentationTest(); 131 G4double FragmentationMass(G4QHcreate build=0, G4QHadronPair* pdefs=0); 132 void CalculateHadronTimePosition(G4double theInitialStringMass, G4QHadronVector*); 133 G4double FragmentationMass(G4int HighSpin = 0, G4QHadronPair* pdefs = 0); 133 134 void SetLeftPartonStable(); 134 135 void SetRightPartonStable(); 135 void UpdateString(G4QParton* decay, const G4LorentzVector* mom); 136 G4QString(G4QParton* newdecay, const G4LorentzVector* momentum); 137 G4QHadron* Splitup(G4bool QL); // Split Hadron & update the string, QGSM:true,Lund:false 136 G4QHadron* Splitup(G4bool QL); 138 137 G4LorentzVector* SplitEandP(G4QHadron* pHadron, G4bool QL); // QGSM:QL=true,Lund:QL=false 139 G4QParton* CreateParton(G4int PDGcode) {return new G4QParton(PDGcode);}140 138 G4QPartonPair CreatePartonPair(G4int NeedParticle, G4bool AllowDiquarks=true); 141 139 G4QHadron* QuarkSplitup(G4QParton* decay, G4QParton* &created); … … 144 142 145 143 // Static functions 146 static void SetParameters(G4double mCut, G4double clustM, G4double sigQT, G4double DQSup,147 G4double DQBU, G4double smPar, G4double SSup, G4double SigPt, G4int SLmax, G4int CLmax);144 static void SetParameters(G4double mCut, G4double sigQT, G4double DQSup, G4double DQBU, 145 G4double smPar, G4double SSup, G4double SigPt); 148 146 149 147 private: 148 enum Spin {SpinZero=1, SpinHalf=2, SpinOne=3, SpinThreeHalf=4}; 150 149 // Private functions 150 G4QHadron* CreateMeson(G4QParton* black, G4QParton* white, Spin spin); 151 G4QHadron* CreateBaryon(G4QParton* black,G4QParton* white, Spin spin); 151 152 G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare) const; 152 153 G4double GetLundLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding, … … 158 159 // Parameters of Longitudinal String Fragmentation 159 160 static G4double MassCut; // minimum mass cut for the string 160 static G4double ClusterMass; // minimum cluster mass for the fragmentation161 161 static G4double SigmaQT; // quark transverse momentum distribution parameter 162 162 static G4double DiquarkSuppress; // is Diquark suppression parameter … … 165 165 static G4double StrangeSuppress; // Strangeness suppression parameter 166 166 static G4double widthOfPtSquare; // width^2 of pt for string excitation 167 static G4int StringLoopInterrupt; // String fragmentation LOOP limit168 static G4int ClusterLoopInterrupt; // Cluster fragmentation LOOP limit169 167 170 168 // Body 171 G4int theDirection; // must be 1 or -1 (PROJECTILE or TARGET)169 G4int theDirection; // must be 1 (PROJECTILE) or -1 (TARGET), 0 - DEAD 172 170 G4ThreeVector thePosition; // Defined by the first quark position 173 G4QPartonVector thePartons; // would like initial capacity for 3 Partons (? M.K.) 174 G4QHadronBuilder* hadronizer; // Hadronizer of hodrons out of partons 171 G4QPartonVector thePartons; // Partons on the ends of the string @@ Use PartonPair 175 172 G4ThreeVector Ptleft,Ptright; // Pt (px,py) for partons (pz ignored!) 176 173 G4double Pplus, Pminus; // p-, p+ of string, Plus is assigned to Left! -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QStringVector.hh
r1055 r1196 26 26 // 27 27 // $Id: G4QStringVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QStringVector ---------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4Quasmon.hh,v 1.4 1 2009/03/23 14:14:35mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4Quasmon.hh,v 1.46 2009/11/16 18:15:01 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4Quasmon ---------------- … … 95 95 96 96 //Modifiers 97 void Set4Momentum(G4LorentzVector Q4M) {q4Mom=Q4M;} // Set new value for the Quasmon 4mom 98 void SetQC(G4QContent QQC) {valQ=QQC;} // Set new Quark Cont for the Quasmon 99 void Boost(const G4LorentzVector& theBoost); // Boosts hadron's 4Momentum using 4M 100 void Boost(const G4ThreeVector& B){q4Mom.boost(B);} // Boosts 4-Momentum using v/c 97 101 // Public wrapper for HadronizeQuasmon(,) 98 102 G4QHadronVector* Fragment(G4QNucleus& nucEnviron, G4int nQ = 1); 99 103 G4QHadronVector* DecayQuasmon(); // Decay Quasmon if it's Res or Chipo 100 G4QHadronVector* DecayQHadron(G4QHadron* hadron); // Decay Q uasmon if it's Res or Chipo104 G4QHadronVector* DecayQHadron(G4QHadron* hadron); // Decay QHadron if it's Res or Chipo 101 105 void ClearOutput(); // Clear but not destroy the output 102 106 void InitQuasmon(const G4QContent& qQCont, const G4LorentzVector& q4M); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh
r1055 r1196 25 25 // 26 26 // 27 // $Id: G4QuasmonVector.hh,v 1.2 0 2009/02/23 09:49:24mkossov Exp $28 // GEANT4 tag $Name: geant4-09-03- beta-cand-01 $27 // $Id: G4QuasmonVector.hh,v 1.22 2009/11/16 18:15:01 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-03-cand-01 $ 29 29 // 30 30 // ---------------- G4QuasmonVector ----------------
Note: See TracChangeset
for help on using the changeset viewer.