192 while(Xmin>=1-(2*nSeaPair+1)*
Xmin) Xmin*=0.95;
195 for (aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++)
222 Color.push_back(aParton);
227 aParton->
SetSpinZ(-firstPartonSpinZ);
255 if (ColorEncoding < 0)
269 Color.push_back(pColorParton);
283 const G4int maxNumberOfAttempts = 1000;
288 G4int NumberOfUnsampledSeaQuarks = 2*nSeaPair;
289 ColorX =
SampleX(Xmin, NumberOfUnsampledSeaQuarks, 2*nSeaPair, aBeta);
290 Color.back()->SetX(SumX = ColorX);
291 for(
G4int aPair = 0; aPair < nSeaPair; aPair++)
293 NumberOfUnsampledSeaQuarks--;
294 ColorX =
SampleX(Xmin, NumberOfUnsampledSeaQuarks, 2*nSeaPair, aBeta);
295 Color[aPair]->SetX(ColorX);
297 NumberOfUnsampledSeaQuarks--;
298 AntiColorX =
SampleX(Xmin, NumberOfUnsampledSeaQuarks, 2*nSeaPair, aBeta);
301 if (1. - SumX <= Xmin)
break;
304 while ( (1. - SumX <= Xmin) && nAttempt < maxNumberOfAttempts );
305 if ( nAttempt >= maxNumberOfAttempts )
return;
310 for(aSeaPair = 0; aSeaPair < nSeaPair+1; aSeaPair++)
static G4KaonPlus * KaonPlusDefinition()
const G4ThreeVector & GetPosition() const
const G4LorentzVector & Get4Momentum() const
G4Parton * BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair)
G4int GetSoftCollisionCount()
static G4KaonMinus * KaonMinusDefinition()
void Set4Momentum(const G4LorentzVector &aMomentum)
std::deque< G4Parton * > AntiColor
void GetValenceQuarkFlavors(const G4ParticleDefinition *aPart, G4Parton *&Parton1, G4Parton *&Parton2)
static G4PionZero * PionZeroDefinition()
void DefineMomentumInZ(G4double aLightConeMomentum, G4bool aDirection)
const G4LorentzVector & Get4Momentum() const
static G4PionMinus * PionMinusDefinition()
static G4PionPlus * PionPlusDefinition()
void SetColour(G4int aColour)
G4double G4Log(G4double x)
void SetSpinZ(G4double aSpinZ)
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta)
G4double GetPDGMass() const
const G4ParticleDefinition * GetDefinition() const
static G4Gamma * GammaDefinition()