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 G4LorentzVectorGet4Momentum () const
 
const G4ParticleDefinitionGetDefinition () const
 
virtual G4PartonGetNextAntiParton ()
 
virtual G4PartonGetNextParton ()
 
const G4ThreeVectorGetPosition () 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

G4PartonBuildSeaQuark (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 G4QGSMSplitableHadronoperator= (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 G4ParticleDefinitiontheDefinition
 
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: