Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4SPBaryon Class Reference

#include <G4SPBaryon.hh>

Public Member Functions

 G4SPBaryon (G4Proton *aProton)
 
 G4SPBaryon (G4Neutron *aNeutron)
 
 G4SPBaryon (G4Lambda *aLambda)
 
 G4SPBaryon (G4SigmaPlus *aSigmaPlus)
 
 G4SPBaryon (G4SigmaZero *aSigmaZero)
 
 G4SPBaryon (G4SigmaMinus *aSigmaMinus)
 
 G4SPBaryon (G4XiMinus *aXiMinus)
 
 G4SPBaryon (G4XiZero *aXiZero)
 
 G4SPBaryon (G4OmegaMinus *anOmegaMinus)
 
 G4SPBaryon (G4AntiProton *aAntiProton)
 
 G4SPBaryon (G4AntiNeutron *aAntiNeutron)
 
 G4SPBaryon (G4AntiLambda *aAntiLambda)
 
 G4SPBaryon (G4AntiSigmaPlus *aAntiSigmaPlus)
 
 G4SPBaryon (G4AntiSigmaZero *aAntiSigmaZero)
 
 G4SPBaryon (G4AntiSigmaMinus *aAntiSigmaMinus)
 
 G4SPBaryon (G4AntiXiMinus *aAntiXiMinus)
 
 G4SPBaryon (G4AntiXiZero *aAntiXiZero)
 
 G4SPBaryon (G4AntiOmegaMinus *anAntiOmegaMinus)
 
 G4SPBaryon (G4ParticleDefinition *aDefinition)
 
 ~G4SPBaryon ()
 
G4ParticleDefinitionGetDefinition ()
 
void SampleQuarkAndDiquark (G4int &quark, G4int &diQuark) const
 
void FindDiquark (G4int quark, G4int &diQuark) const
 
G4int FindQuark (G4int diQuark) const
 
G4double GetProbability (G4int diQuark) const
 
G4int MatchDiQuarkAndGetQuark (const G4SPBaryon &aBaryon, G4int &aDiQuark) const
 

Detailed Description

Definition at line 56 of file G4SPBaryon.hh.

Constructor & Destructor Documentation

G4SPBaryon::G4SPBaryon ( G4Proton aProton)

Definition at line 154 of file G4SPBaryon.cc.

155 {
156  theDefinition = aProton;
157  thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d
158  thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.)); // ud_1, u
159  thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u
160 }
G4SPBaryon::G4SPBaryon ( G4Neutron aNeutron)

Definition at line 172 of file G4SPBaryon.cc.

173 {
174  theDefinition = aNeutron;
175  thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.)); // ud_1, d
176  thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.)); // ud_0, d
177  thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u
178 }
G4SPBaryon::G4SPBaryon ( G4Lambda aLambda)

Definition at line 190 of file G4SPBaryon.cc.

191 {
192  theDefinition = aLambda;
193  thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s
194  thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.)); // su_1, d
195  thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d
196  thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.)); // sd_1, u
197  thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u
198 }
G4SPBaryon::G4SPBaryon ( G4SigmaPlus aSigmaPlus)

Definition at line 212 of file G4SPBaryon.cc.

213 {
214  theDefinition = aSigmaPlus;
215  thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.));
216  thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.));
217  thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.));
218 }
G4SPBaryon::G4SPBaryon ( G4SigmaZero aSigmaZero)

Definition at line 230 of file G4SPBaryon.cc.

231 {
232  theDefinition = aSigmaZero;
233  thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));
234  thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.));
235  thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.));
236  thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.));
237  thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.));
238 }
G4SPBaryon::G4SPBaryon ( G4SigmaMinus aSigmaMinus)

Definition at line 252 of file G4SPBaryon.cc.

253 {
254  theDefinition = aSigmaMinus;
255  thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.));
256  thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.));
257  thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.));
258 }
G4SPBaryon::G4SPBaryon ( G4XiMinus aXiMinus)

Definition at line 270 of file G4SPBaryon.cc.

271 {
272  theDefinition = aXiMinus;
273  thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.));
274  thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.));
275  thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.));
276 }
G4SPBaryon::G4SPBaryon ( G4XiZero aXiZero)

Definition at line 288 of file G4SPBaryon.cc.

289 {
290  theDefinition = aXiZero;
291  thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.));
292  thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.));
293  thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.));
294 }
G4SPBaryon::G4SPBaryon ( G4OmegaMinus anOmegaMinus)

Definition at line 306 of file G4SPBaryon.cc.

307 {
308  theDefinition = anOmegaMinus;
309  thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.));
310 }
G4SPBaryon::G4SPBaryon ( G4AntiProton aAntiProton)

Definition at line 163 of file G4SPBaryon.cc.

164 {
165  theDefinition = aAntiProton;
166  thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.));
167  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./6.));
168  thePartonInfo.push_back(new G4SPPartonInfo(-2101, -2, 1./2.));
169 }
G4SPBaryon::G4SPBaryon ( G4AntiNeutron aAntiNeutron)

Definition at line 181 of file G4SPBaryon.cc.

182 {
183  theDefinition = aAntiNeutron;
184  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.));
185  thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.));
186  thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.));
187 }
G4SPBaryon::G4SPBaryon ( G4AntiLambda aAntiLambda)

Definition at line 201 of file G4SPBaryon.cc.

202 {
203  theDefinition = aAntiLambda;
204  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
205  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.));
206  thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.));
207  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.));
208  thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.));
209 }
G4SPBaryon::G4SPBaryon ( G4AntiSigmaPlus aAntiSigmaPlus)

Definition at line 221 of file G4SPBaryon.cc.

222 {
223  theDefinition = aAntiSigmaPlus;
224  thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.));
225  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.));
226  thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.));
227 }
G4SPBaryon::G4SPBaryon ( G4AntiSigmaZero aAntiSigmaZero)

Definition at line 241 of file G4SPBaryon.cc.

242 {
243  theDefinition = aAntiSigmaZero;
244  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
245  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.));
246  thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.));
247  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.));
248  thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.));
249 }
G4SPBaryon::G4SPBaryon ( G4AntiSigmaMinus aAntiSigmaMinus)

Definition at line 261 of file G4SPBaryon.cc.

262 {
263  theDefinition = aAntiSigmaMinus;
264  thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.));
265  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.));
266  thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.));
267 }
G4SPBaryon::G4SPBaryon ( G4AntiXiMinus aAntiXiMinus)

Definition at line 279 of file G4SPBaryon.cc.

280 {
281  theDefinition = aAntiXiMinus;
282  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.));
283  thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.));
284  thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
285 }
G4SPBaryon::G4SPBaryon ( G4AntiXiZero aAntiXiZero)

Definition at line 297 of file G4SPBaryon.cc.

298 {
299  theDefinition = aAntiXiZero;
300  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.));
301  thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.));
302  thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.));
303 }
G4SPBaryon::G4SPBaryon ( G4AntiOmegaMinus anAntiOmegaMinus)

Definition at line 314 of file G4SPBaryon.cc.

315 {
316  theDefinition = anAntiOmegaMinus;
317  thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.));
318 }
G4SPBaryon::G4SPBaryon ( G4ParticleDefinition aDefinition)

Definition at line 322 of file G4SPBaryon.cc.

References G4ParticleTable::GetParticleTable().

323 {
324  theDefinition = aDefinition;
325  if(theDefinition ==
326  G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++
327  {
328  thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.));
329  }
330  else if(theDefinition ==
331  G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++
332  {
333  thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.));
334  }
335  else if(theDefinition ==
336  G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+
337  {
338  thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.));
339  thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.));
340  }
341  else if(theDefinition ==
342  G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+
343  {
344  thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.));
345  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.));
346  }
347  else if(theDefinition ==
348  G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0
349  {
350  thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.));
351  thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./3.));
352  }
353  else if(theDefinition ==
354  G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0
355  {
356  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.));
357  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.));
358  }
359  else if(theDefinition ==
360  G4ParticleTable::GetParticleTable()->FindParticle(1114))// D-
361  {
362  thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.));
363  }
364  else if(theDefinition ==
365  G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D-
366  {
367  thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.));
368  }
369  else if(theDefinition ==
370  G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+
371  {
372  thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.));
373  thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.));
374  }
375  else if(theDefinition ==
376  G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+
377  {
378  thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.));
379  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.));
380  }
381  else if(theDefinition ==
382  G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0
383  {
384  thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));
385  thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.));
386  thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.));
387  }
388  else if(theDefinition ==
389  G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0
390  {
391  thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
392  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.));
393  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.));
394  }
395  else if(theDefinition ==
396  G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*-
397  {
398  thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.));
399  thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.));
400  }
401  else if(theDefinition ==
402  G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*-
403  {
404  thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.));
405  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.));
406  }
407  else if(theDefinition ==
408  G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0
409  {
410  thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.));
411  thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.));
412  }
413  else if(theDefinition ==
414  G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0
415  {
416  thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.));
417  thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.));
418  }
419  else if(theDefinition ==
420  G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*-
421  {
422  thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.));
423  thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.));
424  }
425  else if(theDefinition ==
426  G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*-
427  {
428  thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.));
429  thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
430  }
431 }
static G4ParticleTable * GetParticleTable()
G4SPBaryon::~G4SPBaryon ( )

Definition at line 433 of file G4SPBaryon.cc.

434 {
435  for(unsigned int i=0;i<thePartonInfo.size(); i++) delete thePartonInfo[i];
436 }

Member Function Documentation

void G4SPBaryon::FindDiquark ( G4int  quark,
G4int diQuark 
) const

Definition at line 124 of file G4SPBaryon.cc.

References G4UniformRand.

Referenced by G4BaryonSplitter::FindDiquark().

125 {
126  typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
127  G4double sum = 0;
128  iter i;
129  for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++)
130  {
131  if (std::abs((*i)->GetQuark()) == std::abs(quark))
132  {
133  sum += (*i)->GetProbability();
134  }
135  }
136  G4double random = G4UniformRand();
137  G4double running = 0;
138  for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++)
139  {
140  if (std::abs((*i)->GetQuark()) == std::abs(quark))
141  {
142  running += (*i)->GetProbability();
143  if (running/sum >= random)
144  {
145  diQuark = (*i)->GetDiQuark();
146  break;
147  }
148  }
149  }
150 }
#define G4UniformRand()
Definition: Randomize.hh:87
double G4double
Definition: G4Types.hh:76
G4int G4SPBaryon::FindQuark ( G4int  diQuark) const

Definition at line 32 of file G4SPBaryon.cc.

References G4UniformRand, and GetProbability().

33 {
34  G4double sum = GetProbability(diQuark);
35  G4double random = G4UniformRand();
36  G4double running = 0;
37  G4int Quark(0);
38  typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
39  iter i;
40  for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
41  {
42  if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark))
43  {
44  running += (*i)->GetProbability();
45  if (running/sum >= random)
46  {
47  Quark = (*i)->GetQuark();
48  break;
49  }
50  }
51  }
52  return Quark;
53 }
int G4int
Definition: G4Types.hh:78
#define G4UniformRand()
Definition: Randomize.hh:87
G4double GetProbability(G4int diQuark) const
Definition: G4SPBaryon.cc:55
double G4double
Definition: G4Types.hh:76
G4ParticleDefinition* G4SPBaryon::GetDefinition ( )
inline

Definition at line 86 of file G4SPBaryon.hh.

86 {return theDefinition;}
G4double G4SPBaryon::GetProbability ( G4int  diQuark) const

Definition at line 55 of file G4SPBaryon.cc.

Referenced by FindQuark(), and MatchDiQuarkAndGetQuark().

56 {
57  G4double sum = 0;
58  typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
59  iter i;
60  for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
61  {
62  if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark))
63  {
64  sum += (*i)->GetProbability();
65  }
66  }
67  return sum;
68 }
double G4double
Definition: G4Types.hh:76
G4int G4SPBaryon::MatchDiQuarkAndGetQuark ( const G4SPBaryon aBaryon,
G4int aDiQuark 
) const

Definition at line 71 of file G4SPBaryon.cc.

References G4UniformRand, GetProbability(), and G4INCL::CrossSections::total().

72 {
73  G4int result=0;
74  typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
75  iter i;
76  G4double running = 0;
77  G4double total = 0;
78  for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
79  {
80  total += aBaryon.GetProbability((*i)->GetDiQuark());
81  }
82  G4double random = G4UniformRand()*total;
83  for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
84  {
85  running += aBaryon.GetProbability((*i)->GetDiQuark());
86  if(random/total<running)
87  {
88  result = (*i)->GetQuark(); // (diquark annihilated)
89  aDiQuark = (*i)->GetDiQuark();
90  break;
91  }
92  }
93  return result;
94 }
int G4int
Definition: G4Types.hh:78
#define G4UniformRand()
Definition: Randomize.hh:87
G4double GetProbability(G4int diQuark) const
Definition: G4SPBaryon.cc:55
G4double total(Particle const *const p1, Particle const *const p2)
double G4double
Definition: G4Types.hh:76
void G4SPBaryon::SampleQuarkAndDiquark ( G4int quark,
G4int diQuark 
) const

Definition at line 97 of file G4SPBaryon.cc.

References G4UniformRand, and G4ParticleDefinition::GetPDGEncoding().

Referenced by G4BaryonSplitter::SplitBarion().

98 {
99  typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
100  G4double random = G4UniformRand();
101  G4double sum = 0;
102  iter i;
103  for(i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++)
104  {
105  sum += (*i)->GetProbability();
106  if (sum > random)
107  {
108  if (theDefinition->GetPDGEncoding() < 0)
109  {
110  quark = (*i)->GetDiQuark();
111  diQuark = (*i)->GetQuark();
112  }
113  else
114  {
115  quark = (*i)->GetQuark();
116  diQuark = (*i)->GetDiQuark();
117  }
118  break;
119  }
120  }
121 }
#define G4UniformRand()
Definition: Randomize.hh:87
double G4double
Definition: G4Types.hh:76

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