Geant4-11
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
G4QGSMSplitableHadron Class Reference

#include <G4QGSMSplitableHadron.hh>

Inheritance diagram for G4QGSMSplitableHadron:
G4VSplitableHadron

Public Member Functions

 G4QGSMSplitableHadron ()
 
 G4QGSMSplitableHadron (const G4Nucleon &aNucleon)
 
 G4QGSMSplitableHadron (const G4Nucleon &aNucleon, G4bool Direction)
 
 G4QGSMSplitableHadron (const G4ReactionProduct &aPrimary)
 
 G4QGSMSplitableHadron (const G4ReactionProduct &aPrimary, G4bool Direction)
 
const G4LorentzVector & Get4Momentum () const
 
const G4ParticleDefinition * GetDefinition () const
 
virtual G4Parton * GetNextAntiParton ()
 
virtual G4Parton * GetNextParton ()
 
const G4ThreeVector & GetPosition () const
 
G4int GetSoftCollisionCount ()
 
G4int GetStatus ()
 
G4double GetTimeOfCreation ()
 
void IncrementCollisionCount (G4int aCount)
 
G4bool IsSplit ()
 
G4bool operator!= (const G4VSplitableHadron &right) const
 
G4bool operator== (const G4VSplitableHadron &right) const
 
void Set4Momentum (const G4LorentzVector &a4Momentum)
 
void SetCollisionCount (G4int aCount)
 
void SetDefinition (const G4ParticleDefinition *aDefinition)
 
virtual void SetFirstParton (G4int PDGcode)
 
void SetPosition (const G4ThreeVector &aPosition)
 
virtual void SetSecondParton (G4int PDGcode)
 
void SetStatus (const G4int aStatus)
 
void SetTimeOfCreation (G4double aTime)
 
virtual void SplitUp ()
 
virtual ~G4QGSMSplitableHadron ()
 

Protected Member Functions

void Splitting ()
 

Private Member Functions

G4Parton * BuildSeaQuark (G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair)
 
void DiffractiveSplitUp ()
 
G4ThreeVector GaussianPt (G4double widthSquare, G4double maxPtSquare)
 
void GetValenceQuarkFlavors (const G4ParticleDefinition *aPart, G4Parton *&Parton1, G4Parton *&Parton2)
 
void InitParameters ()
 
const G4QGSMSplitableHadron & operator= (const G4QGSMSplitableHadron &right)
 
G4double SampleX (G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta)
 
void SoftSplitUp ()
 

Private Attributes

G4double alpha
 
std::deque< G4Parton * > AntiColor
 
G4double beta
 
std::deque< G4Parton * > Color
 
G4int curStatus
 
G4bool Direction
 
unsigned int iAP
 
unsigned int iP
 
G4bool isSplit
 
G4double minTransverseMass
 
G4double sigmaPt
 
G4double StrangeSuppress
 
G4LorentzVector the4Momentum
 
G4BaryonSplitter theBaryonSplitter
 
G4int theCollisionCount
 
const G4ParticleDefinition * theDefinition
 
G4MesonSplitter theMesonSplitter
 
G4double theMinPz
 
G4ThreeVector thePosition
 
G4double TimeOfCreation
 
G4double widthOfPtSquare
 

Detailed Description

Definition at line 41 of file G4QGSMSplitableHadron.hh.

Constructor & Destructor Documentation

◆ G4QGSMSplitableHadron() [1/5]

G4QGSMSplitableHadron::G4QGSMSplitableHadron ( )

Definition at line 76 of file G4QGSMSplitableHadron.cc.

References InitParameters().

◆ G4QGSMSplitableHadron() [2/5]

G4QGSMSplitableHadron::G4QGSMSplitableHadron ( const G4ReactionProduct &  aPrimary)

Definition at line 89 of file G4QGSMSplitableHadron.cc.

90: G4VSplitableHadron(aPrimary)
91{
93}

References InitParameters().

◆ G4QGSMSplitableHadron() [3/5]

G4QGSMSplitableHadron::G4QGSMSplitableHadron ( const G4ReactionProduct &  aPrimary,
G4bool  Direction 
)

Definition at line 81 of file G4QGSMSplitableHadron.cc.

82:G4VSplitableHadron(aPrimary)
83{
85 Direction = aDirection;
86}

References Direction, and InitParameters().

◆ G4QGSMSplitableHadron() [4/5]

G4QGSMSplitableHadron::G4QGSMSplitableHadron ( const G4Nucleon &  aNucleon)

Definition at line 95 of file G4QGSMSplitableHadron.cc.

96: G4VSplitableHadron(aNucleon)
97{
99}

References InitParameters().

◆ G4QGSMSplitableHadron() [5/5]

G4QGSMSplitableHadron::G4QGSMSplitableHadron ( const G4Nucleon &  aNucleon,
G4bool  Direction 
)

Definition at line 101 of file G4QGSMSplitableHadron.cc.

102: G4VSplitableHadron(aNucleon)
103{
105 Direction = aDirection;
106}

References Direction, and InitParameters().

◆ ~G4QGSMSplitableHadron()

G4QGSMSplitableHadron::~G4QGSMSplitableHadron ( )
virtual

Definition at line 108 of file G4QGSMSplitableHadron.cc.

108{}

Member Function Documentation

◆ BuildSeaQuark()

G4Parton * G4QGSMSplitableHadron::BuildSeaQuark ( G4bool  isAntiQuark,
G4int  aPDGCode,
G4int  nSeaPair 
)
private

Definition at line 279 of file G4QGSMSplitableHadron.cc.

281{
282 if (isAntiQuark) aPDGCode*=-1;
283 G4Parton* result = new G4Parton(aPDGCode);
284 result->SetPosition(GetPosition());
286 G4LorentzVector a4Momentum(aPtVector, 0);
287 result->Set4Momentum(a4Momentum);
288 return result;
289}
void Set4Momentum(const G4LorentzVector &aMomentum)
Definition: G4Parton.hh:148
void SetPosition(const G4ThreeVector &aPosition)
Definition: G4Parton.hh:137
G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare)
const G4ThreeVector & GetPosition() const
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, GaussianPt(), G4VSplitableHadron::GetPosition(), G4Parton::Set4Momentum(), G4Parton::SetPosition(), and sigmaPt.

Referenced by SoftSplitUp().

◆ DiffractiveSplitUp()

void G4QGSMSplitableHadron::DiffractiveSplitUp ( )
private

Definition at line 128 of file G4QGSMSplitableHadron.cc.

129{
130 // take the particle definitions and get the partons HPW
131 G4Parton * Left = NULL;
132 G4Parton * Right = NULL;
134 Left->SetPosition(GetPosition());
135 Right->SetPosition(GetPosition());
136
137 G4LorentzVector HadronMom = Get4Momentum();
138
139 G4double maxAvailMomentum2 = sqr(HadronMom.mag()/2.);
140
142 if (maxAvailMomentum2/widthOfPtSquare>0.01) pt = GaussianPt(widthOfPtSquare, maxAvailMomentum2);
143
144 G4LorentzVector LeftMom(pt, 0.);
145 G4LorentzVector RightMom;
146 RightMom.setPx(HadronMom.px() - pt.x());
147 RightMom.setPy(HadronMom.py() - pt.y());
148
149 G4double Local1 = HadronMom.minus() + (RightMom.perp2() - LeftMom.perp2())/HadronMom.plus();
150 G4double Local2 = std::sqrt(std::max(0., sqr(Local1) - 4.*RightMom.perp2()*HadronMom.minus()/HadronMom.plus()));
151
152 if (Direction) Local2 = -Local2;
153 G4double RightMinus = 0.5*(Local1 + Local2);
154 G4double LeftMinus = HadronMom.minus() - RightMinus;
155
156 if (LeftMinus <= 0.) {
157 RightMinus = 0.5*(Local1 - Local2);
158 LeftMinus = HadronMom.minus() - RightMinus;
159 }
160
161 G4double LeftPlus = LeftMom.perp2()/LeftMinus;
162 G4double RightPlus = HadronMom.plus() - LeftPlus;
163
164 LeftMom.setPz(0.5*(LeftPlus - LeftMinus));
165 LeftMom.setE (0.5*(LeftPlus + LeftMinus));
166 RightMom.setPz(0.5*(RightPlus - RightMinus));
167 RightMom.setE (0.5*(RightPlus + RightMinus));
168
169 Left->Set4Momentum(LeftMom);
170 Right->Set4Momentum(RightMom);
171
172 Color.push_back(Left);
173 AntiColor.push_back(Right);
174 iP=0; iAP=0;
175}
double G4double
Definition: G4Types.hh:83
double minus() const
double perp2() const
std::deque< G4Parton * > AntiColor
std::deque< G4Parton * > Color
void GetValenceQuarkFlavors(const G4ParticleDefinition *aPart, G4Parton *&Parton1, G4Parton *&Parton2)
const G4ParticleDefinition * GetDefinition() const
const G4LorentzVector & Get4Momentum() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T sqr(const T &x)
Definition: templates.hh:128

References AntiColor, Color, Direction, GaussianPt(), G4VSplitableHadron::Get4Momentum(), G4VSplitableHadron::GetDefinition(), G4VSplitableHadron::GetPosition(), GetValenceQuarkFlavors(), iAP, iP, CLHEP::HepLorentzVector::mag(), G4INCL::Math::max(), minTransverseMass, CLHEP::HepLorentzVector::minus(), CLHEP::HepLorentzVector::perp2(), CLHEP::HepLorentzVector::plus(), CLHEP::HepLorentzVector::px(), CLHEP::HepLorentzVector::py(), G4Parton::Set4Momentum(), CLHEP::HepLorentzVector::setE(), G4Parton::SetPosition(), CLHEP::HepLorentzVector::setPx(), CLHEP::HepLorentzVector::setPy(), CLHEP::HepLorentzVector::setPz(), sqr(), widthOfPtSquare, CLHEP::Hep3Vector::x(), and CLHEP::Hep3Vector::y().

Referenced by SplitUp().

◆ GaussianPt()

G4ThreeVector G4QGSMSplitableHadron::GaussianPt ( G4double  widthSquare,
G4double  maxPtSquare 
)
private

Definition at line 263 of file G4QGSMSplitableHadron.cc.

264{
265 G4double R;
266 const G4int maxNumberOfLoops = 1000;
267 G4int loopCounter = -1;
268 while( ((R = -widthSquare*G4Log(G4UniformRand())) > maxPtSquare) &&
269 ++loopCounter < maxNumberOfLoops ) {;} /* Loop checking, 07.08.2015, A.Ribon */
270 if ( loopCounter >= maxNumberOfLoops ) {
271 R = 0.99*maxPtSquare; // Just an acceptable value, without any physics consideration.
272 }
273 R = std::sqrt(R);
275 return G4ThreeVector (R*std::cos(phi), R*std::sin(phi), 0.);
276}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
static constexpr double twopi
Definition: G4SIunits.hh:56
CLHEP::Hep3Vector G4ThreeVector
int G4int
Definition: G4Types.hh:85
#define G4UniformRand()
Definition: Randomize.hh:52

References G4Log(), G4UniformRand, and twopi.

Referenced by BuildSeaQuark(), and DiffractiveSplitUp().

◆ Get4Momentum()

const G4LorentzVector & G4VSplitableHadron::Get4Momentum ( ) const
inlineinherited

◆ GetDefinition()

const G4ParticleDefinition * G4VSplitableHadron::GetDefinition ( ) const
inlineinherited

◆ GetNextAntiParton()

G4Parton * G4QGSMSplitableHadron::GetNextAntiParton ( )
inlinevirtual

Implements G4VSplitableHadron.

Definition at line 107 of file G4QGSMSplitableHadron.hh.

108{
109 if(AntiColor.size() == 0) return 0;
110
111 G4Parton * result = AntiColor.operator[](iAP);
112 iAP++; if(iAP == AntiColor.size()) iAP=0;
113 return result;
114}

References AntiColor, and iAP.

Referenced by G4QGSParticipants::CreateStrings(), and G4QGSParticipants::DeterminePartonMomenta().

◆ GetNextParton()

G4Parton * G4QGSMSplitableHadron::GetNextParton ( )
inlinevirtual

Implements G4VSplitableHadron.

Definition at line 98 of file G4QGSMSplitableHadron.hh.

99{
100 if(Color.size()==0) return 0;
101
102 G4Parton * result = Color.operator[](iP);
103 iP++; if(iP == Color.size()) iP=0;
104 return result;
105}

References Color, and iP.

Referenced by G4QGSParticipants::CreateStrings(), and G4QGSParticipants::DeterminePartonMomenta().

◆ GetPosition()

const G4ThreeVector & G4VSplitableHadron::GetPosition ( void  ) const
inlineinherited

◆ GetSoftCollisionCount()

G4int G4VSplitableHadron::GetSoftCollisionCount ( )
inlineinherited

◆ GetStatus()

G4int G4VSplitableHadron::GetStatus ( )
inlineinherited

◆ GetTimeOfCreation()

G4double G4VSplitableHadron::GetTimeOfCreation ( )
inlineinherited

◆ GetValenceQuarkFlavors()

void G4QGSMSplitableHadron::GetValenceQuarkFlavors ( const G4ParticleDefinition *  aPart,
G4Parton *&  Parton1,
G4Parton *&  Parton2 
)
private

Definition at line 224 of file G4QGSMSplitableHadron.cc.

226{
227 // Note! convention aEnd = q or (qq)bar and bEnd = qbar or qq.
228 G4int aEnd;
229 G4int bEnd;
230 G4int HadronEncoding = aPart->GetPDGEncoding();
231 if (aPart->GetBaryonNumber() == 0)
232 {
233 theMesonSplitter.SplitMeson(HadronEncoding, &aEnd, &bEnd);
234 }
235 else
236 {
237 theBaryonSplitter.SplitBarion(HadronEncoding, &aEnd, &bEnd);
238 }
239
240 Parton1 = new G4Parton(aEnd);
241 Parton1->SetPosition(GetPosition());
242
243 Parton2 = new G4Parton(bEnd);
244 Parton2->SetPosition(GetPosition());
245
246 // colour of parton 1 choosen at random by G4Parton(aEnd)
247 // colour of parton 2 is the opposite:
248
249 Parton2->SetColour(-(Parton1->GetColour()));
250
251 // isospin-3 of both partons is handled by G4Parton(PDGCode)
252
253 // spin-3 of parton 1 and 2 choosen at random by G4Parton(aEnd)
254 // spin-3 of parton 2 may be constrained by spin of original particle:
255
256 if ( std::abs(Parton1->GetSpinZ() + Parton2->GetSpinZ()) > aPart->GetPDGSpin())
257 {
258 Parton2->SetSpinZ(-(Parton2->GetSpinZ()));
259 }
260}
G4bool SplitBarion(G4int PDGCode, G4int *q_or_qqbar, G4int *qbar_or_qq)
G4bool SplitMeson(G4int PDGcode, G4int *aEnd, G4int *bEnd)
void SetSpinZ(G4double aSpinZ)
Definition: G4Parton.hh:95
G4double GetSpinZ()
Definition: G4Parton.hh:96
G4int GetColour()
Definition: G4Parton.hh:90
void SetColour(G4int aColour)
Definition: G4Parton.hh:89
G4MesonSplitter theMesonSplitter
G4BaryonSplitter theBaryonSplitter

References G4ParticleDefinition::GetBaryonNumber(), G4Parton::GetColour(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetPDGSpin(), G4VSplitableHadron::GetPosition(), G4Parton::GetSpinZ(), G4Parton::SetColour(), G4Parton::SetPosition(), G4Parton::SetSpinZ(), G4BaryonSplitter::SplitBarion(), G4MesonSplitter::SplitMeson(), theBaryonSplitter, and theMesonSplitter.

Referenced by DiffractiveSplitUp(), and SoftSplitUp().

◆ IncrementCollisionCount()

void G4VSplitableHadron::IncrementCollisionCount ( G4int  aCount)
inlineinherited

◆ InitParameters()

void G4QGSMSplitableHadron::InitParameters ( )
private

Definition at line 54 of file G4QGSMSplitableHadron.cc.

55{
56 // changing rapidity distribution for all
57 alpha = -0.5; // Note that this number is still assumed in the algorithm
58 // needs to be generalized.
59 // changing rapidity distribution for projectile like
60 beta = 2.5;// Note that this number is still assumed in the algorithm
61 // needs to be generalized.
63 // theMinPz = 0.1*G4PionMinus::PionMinus()->GetPDGMass();
64 // theMinPz = G4PionMinus::PionMinus()->GetPDGMass();
65 // as low as possible, otherwise, we have unphysical boundary conditions in the sampling.
66 StrangeSuppress = 0.48;
67 sigmaPt = 0.*GeV; // widens eta slightly, if increased to 1.7,
68 // but Maxim's algorithm breaks energy conservation to be revised.
69 widthOfPtSquare = 0.5*sqr(GeV);
72 iP =0;// Color.begin();
73 iAP =0;// AntiColor.begin();
74}
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double GeV
Definition: G4SIunits.hh:203
#define FALSE
Definition: Globals.hh:23
static G4PionMinus * PionMinus()
Definition: G4PionMinus.cc:97

References alpha, beta, Direction, FALSE, G4ParticleDefinition::GetPDGMass(), GeV, iAP, iP, keV, minTransverseMass, G4PionMinus::PionMinus(), sigmaPt, sqr(), StrangeSuppress, theMinPz, and widthOfPtSquare.

Referenced by G4QGSMSplitableHadron().

◆ IsSplit()

G4bool G4VSplitableHadron::IsSplit ( )
inlineinherited

Definition at line 88 of file G4VSplitableHadron.hh.

88{ return isSplit;}

References G4VSplitableHadron::isSplit.

Referenced by G4DiffractiveSplitableHadron::SplitUp(), and SplitUp().

◆ operator!=()

G4bool G4VSplitableHadron::operator!= ( const G4VSplitableHadron &  right) const
inherited

Definition at line 106 of file G4VSplitableHadron.cc.

107{
108 return this!=&right;
109}

◆ operator=()

const G4QGSMSplitableHadron & G4QGSMSplitableHadron::operator= ( const G4QGSMSplitableHadron &  right)
private

◆ operator==()

G4bool G4VSplitableHadron::operator== ( const G4VSplitableHadron &  right) const
inherited

Definition at line 101 of file G4VSplitableHadron.cc.

102{
103 return this==&right;
104}

◆ SampleX()

G4double G4QGSMSplitableHadron::SampleX ( G4double  anXmin,
G4int  nSea,
G4int  theTotalSea,
G4double  aBeta 
)
private

Definition at line 292 of file G4QGSMSplitableHadron.cc.

294{
295 G4double result;
296 G4double x1, x2;
297 G4double ymax = 0;
298 for(G4int ii=1; ii<100; ii++)
299 {
301 y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, alpha+1) -
302 G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea );
303 y *= G4Pow::GetInstance()->powA(1-anXmin-totalSea*anXmin, aBeta+1) -
304 G4Pow::GetInstance()->powA(anXmin, aBeta+1);
305 if (y>ymax) ymax = y;
306 }
307 G4double y;
308 G4double xMax=1-(totalSea+1)*anXmin;
309 if (anXmin > xMax)
310 {
311 throw G4HadronicException(__FILE__, __LINE__,
312 "G4QGSMSplitableHadron - Fatal: Cannot sample parton densities under these constraints.");
313 }
314 const G4int maxNumberOfLoops = 1000;
315 G4int loopCounter = 0;
316 do
317 {
318 x1 = G4RandFlat::shoot(anXmin, xMax);
319 y = G4Pow::GetInstance()->powA(x1, alpha);
320 y *= G4Pow::GetInstance()->powN( G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, alpha+1) -
321 G4Pow::GetInstance()->powA(anXmin, alpha+1), nSea );
322 y *= G4Pow::GetInstance()->powA(1-x1-totalSea*anXmin, aBeta+1) -
323 G4Pow::GetInstance()->powA(anXmin, aBeta+1);
324 x2 = ymax*G4UniformRand();
325 } while( (x2>y) && ++loopCounter < maxNumberOfLoops ); /* Loop checking, 07.08.2015, A.Ribon */
326 if ( loopCounter >= maxNumberOfLoops ) {
327 x1 = 0.5*( anXmin + xMax ); // Just an acceptable value, without any physics consideration.
328 }
329 result = x1;
330 return result;
331}
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:166
G4double powA(G4double A, G4double y) const
Definition: G4Pow.hh:230
ThreeVector shoot(const G4int Ap, const G4int Af)

References alpha, G4UniformRand, G4Pow::GetInstance(), G4Pow::powA(), G4Pow::powN(), and G4INCL::DeJongSpin::shoot().

◆ Set4Momentum()

void G4VSplitableHadron::Set4Momentum ( const G4LorentzVector &  a4Momentum)
inlineinherited

◆ SetCollisionCount()

void G4VSplitableHadron::SetCollisionCount ( G4int  aCount)
inlineinherited

◆ SetDefinition()

void G4VSplitableHadron::SetDefinition ( const G4ParticleDefinition *  aDefinition)
inlineinherited

◆ SetFirstParton()

void G4QGSMSplitableHadron::SetFirstParton ( G4int  PDGcode)
inlinevirtual

Implements G4VSplitableHadron.

Definition at line 116 of file G4QGSMSplitableHadron.hh.

117{PDGcode++;}

◆ SetPosition()

void G4VSplitableHadron::SetPosition ( const G4ThreeVector &  aPosition)
inlineinherited

◆ SetSecondParton()

void G4QGSMSplitableHadron::SetSecondParton ( G4int  PDGcode)
inlinevirtual

Implements G4VSplitableHadron.

Definition at line 118 of file G4QGSMSplitableHadron.hh.

119{PDGcode++;}

◆ SetStatus()

void G4VSplitableHadron::SetStatus ( const G4int  aStatus)
inlineinherited

◆ SetTimeOfCreation()

void G4VSplitableHadron::SetTimeOfCreation ( G4double  aTime)
inlineinherited

◆ SoftSplitUp()

void G4QGSMSplitableHadron::SoftSplitUp ( )
private

Definition at line 178 of file G4QGSMSplitableHadron.cc.

179{
180 G4int nSeaPair = GetSoftCollisionCount()-1;
181
182 G4LorentzVector tmp(0., 0., 0., 0.);
183
184 G4int aSeaPair;
185 for (aSeaPair = 0; aSeaPair < nSeaPair; aSeaPair++)
186 {
187 // choose quark flavour, d:u:s = 1:1:(1/StrangeSuppress-2)
188 G4int aPDGCode = 1 + (G4int)(G4UniformRand()/StrangeSuppress);
189
190 // BuildSeaQuark() determines quark spin, isospin and colour
191 // via parton-constructor G4Parton(aPDGCode)
192 G4Parton * aParton = BuildSeaQuark(false, aPDGCode, nSeaPair);
193
194 G4int firstPartonColour = aParton->GetColour();
195 G4double firstPartonSpinZ = aParton->GetSpinZ();
196
197 aParton->Set4Momentum(tmp);
198 Color.push_back(aParton);
199
200 // create anti-quark
201 aParton = BuildSeaQuark(true, aPDGCode, nSeaPair);
202 aParton->SetSpinZ(-firstPartonSpinZ);
203 aParton->SetColour(-firstPartonColour);
204 AntiColor.push_back(aParton);
205 }
206
207 // Valence quark
208 G4Parton* pColorParton = NULL;
209 G4Parton* pAntiColorParton = NULL;
210 GetValenceQuarkFlavors(GetDefinition(), pColorParton, pAntiColorParton);
211
212 pColorParton->Set4Momentum(tmp);
213 pAntiColorParton->Set4Momentum(tmp);
214
215 Color.push_back(pColorParton);
216 AntiColor.push_back(pAntiColorParton);
217
218 iP=0; iAP=0;
219
220 return;
221}
G4Parton * BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair)

References AntiColor, BuildSeaQuark(), Color, G4UniformRand, G4Parton::GetColour(), G4VSplitableHadron::GetDefinition(), G4VSplitableHadron::GetSoftCollisionCount(), G4Parton::GetSpinZ(), GetValenceQuarkFlavors(), iAP, iP, G4Parton::Set4Momentum(), G4Parton::SetColour(), G4Parton::SetSpinZ(), and StrangeSuppress.

Referenced by SplitUp().

◆ Splitting()

void G4VSplitableHadron::Splitting ( )
inlineprotectedinherited

Definition at line 93 of file G4VSplitableHadron.hh.

93{isSplit = true;}

References G4VSplitableHadron::isSplit.

Referenced by G4DiffractiveSplitableHadron::SplitUp(), and SplitUp().

◆ SplitUp()

void G4QGSMSplitableHadron::SplitUp ( )
virtual

Implements G4VSplitableHadron.

Definition at line 113 of file G4QGSMSplitableHadron.cc.

114{
115 if (IsSplit()) return;
116 Splitting(); // To mark that a hadron is split
117 if (Color.size()!=0) return;
118 if (GetSoftCollisionCount() == 0) // GetSoftCollisionCount() from G4VSplitableHadron
119 {
121 }
122 else
123 {
124 SoftSplitUp();
125 }
126}

References Color, DiffractiveSplitUp(), G4VSplitableHadron::GetSoftCollisionCount(), G4VSplitableHadron::IsSplit(), SoftSplitUp(), and G4VSplitableHadron::Splitting().

Field Documentation

◆ alpha

G4double G4QGSMSplitableHadron::alpha
private

Definition at line 89 of file G4QGSMSplitableHadron.hh.

Referenced by InitParameters(), and SampleX().

◆ AntiColor

std::deque<G4Parton *> G4QGSMSplitableHadron::AntiColor
private

Definition at line 78 of file G4QGSMSplitableHadron.hh.

Referenced by DiffractiveSplitUp(), GetNextAntiParton(), and SoftSplitUp().

◆ beta

G4double G4QGSMSplitableHadron::beta
private

Definition at line 90 of file G4QGSMSplitableHadron.hh.

Referenced by InitParameters().

◆ Color

std::deque<G4Parton *> G4QGSMSplitableHadron::Color
private

Definition at line 77 of file G4QGSMSplitableHadron.hh.

Referenced by DiffractiveSplitUp(), GetNextParton(), SoftSplitUp(), and SplitUp().

◆ curStatus

G4int G4VSplitableHadron::curStatus
privateinherited

◆ Direction

G4bool G4QGSMSplitableHadron::Direction
private

◆ iAP

unsigned int G4QGSMSplitableHadron::iAP
private

◆ iP

unsigned int G4QGSMSplitableHadron::iP
private

◆ isSplit

G4bool G4VSplitableHadron::isSplit
privateinherited

◆ minTransverseMass

G4double G4QGSMSplitableHadron::minTransverseMass
private

Definition at line 95 of file G4QGSMSplitableHadron.hh.

Referenced by DiffractiveSplitUp(), and InitParameters().

◆ sigmaPt

G4double G4QGSMSplitableHadron::sigmaPt
private

Definition at line 93 of file G4QGSMSplitableHadron.hh.

Referenced by BuildSeaQuark(), and InitParameters().

◆ StrangeSuppress

G4double G4QGSMSplitableHadron::StrangeSuppress
private

Definition at line 92 of file G4QGSMSplitableHadron.hh.

Referenced by InitParameters(), and SoftSplitUp().

◆ the4Momentum

G4LorentzVector G4VSplitableHadron::the4Momentum
privateinherited

◆ theBaryonSplitter

G4BaryonSplitter G4QGSMSplitableHadron::theBaryonSplitter
private

Definition at line 85 of file G4QGSMSplitableHadron.hh.

Referenced by GetValenceQuarkFlavors().

◆ theCollisionCount

G4int G4VSplitableHadron::theCollisionCount
privateinherited

◆ theDefinition

const G4ParticleDefinition* G4VSplitableHadron::theDefinition
privateinherited

◆ theMesonSplitter

G4MesonSplitter G4QGSMSplitableHadron::theMesonSplitter
private

Definition at line 84 of file G4QGSMSplitableHadron.hh.

Referenced by GetValenceQuarkFlavors().

◆ theMinPz

G4double G4QGSMSplitableHadron::theMinPz
private

Definition at line 91 of file G4QGSMSplitableHadron.hh.

Referenced by InitParameters().

◆ thePosition

G4ThreeVector G4VSplitableHadron::thePosition
privateinherited

◆ TimeOfCreation

G4double G4VSplitableHadron::TimeOfCreation
privateinherited

◆ widthOfPtSquare

G4double G4QGSMSplitableHadron::widthOfPtSquare
private

Definition at line 94 of file G4QGSMSplitableHadron.hh.

Referenced by DiffractiveSplitUp(), and InitParameters().


The documentation for this class was generated from the following files: