136 if (
Color.size()!=0)
return;
188 RightMom.
setPx(HadronMom.
px() - pt.
x());
189 RightMom.
setPy(HadronMom.
py() - pt.
y());
197 G4double RightMinus = 0.5*(Local1 + Local2);
200 if(LeftMinus <= 0.) {
201 RightMinus = 0.5*(Local1 - Local2);
202 LeftMinus = HadronMom.
minus() - RightMinus;
210 LeftMom.
setPz(0.5*(LeftPlus - LeftMinus));
211 LeftMom.
setE (0.5*(LeftPlus + LeftMinus));
212 RightMom.
setPz(0.5*(RightPlus - RightMinus));
213 RightMom.
setE (0.5*(RightPlus + RightMinus));
220 Color.push_back(Left);
245 for (aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++)
258 Color.push_back(aParton);
263 aParton->
SetSpinZ(-firstPartonSpinZ);
278 Color.push_back(pColorParton);
485 const G4int maxNumberOfLoops = 1000;
486 G4int loopCounter = -1;
488 ++loopCounter < maxNumberOfLoops ) {;}
489 if ( loopCounter >= maxNumberOfLoops ) {
490 R = 0.99*maxPtSquare;
500 if (isAntiQuark) aPDGCode*=-1;
515 for(
G4int ii=1; ii<100; ii++)
525 G4double xMax=1-(totalSea+1)*anXmin;
529 throw G4HadronicException(__FILE__, __LINE__,
"G4QGSMSplitableHadron - Fatal: Cannot sample parton densities under these constraints.");
531 const G4int maxNumberOfLoops = 1000;
532 G4int loopCounter = 0;
543 while( (x2>y) && ++loopCounter < maxNumberOfLoops );
544 if ( loopCounter >= maxNumberOfLoops ) {
545 x1 = 0.5*( anXmin + xMax );
static G4PionMinus * PionMinus()
T max(const T t1, const T t2)
brief Return the largest of the two arguments
const G4ParticleDefinition * GetDefinition() const
void SetSpinZ(G4double aSpinZ)
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare)
static constexpr double keV
Float_t x1[n_points_granero]
void GetValenceQuarkFlavors(const G4ParticleDefinition *aPart, G4Parton *&Parton1, G4Parton *&Parton2)
G4bool SplitMeson(G4int PDGcode, G4int *aEnd, G4int *bEnd)
G4double GetPDGMass() const
G4double G4Log(G4double x)
G4double powN(G4double x, G4int n) const
void SetColour(G4int aColour)
G4double GetPDGSpin() const
static G4Pow * GetInstance()
const G4ThreeVector & GetPosition() const
G4double powA(G4double A, G4double y) const
virtual ~G4QGSMSplitableHadron()
G4int GetBaryonNumber() const
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta)
static constexpr double twopi
G4bool SplitBarion(G4int PDGCode, G4int *q_or_qqbar, G4int *qbar_or_qq)
G4Parton * BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair)
G4BaryonSplitter theBaryonSplitter
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double G4ParticleHPJENDLHEData::G4double result
void SetPosition(const G4ThreeVector &aPosition)
std::deque< G4Parton * > AntiColor
G4int GetSoftCollisionCount()
G4MesonSplitter theMesonSplitter
G4double minTransverseMass
G4int GetPDGEncoding() const
const G4LorentzVector & Get4Momentum() const
Float_t x2[n_points_geant4]
void DiffractiveSplitUp()
static constexpr double GeV
void Set4Momentum(const G4LorentzVector &aMomentum)