Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/parton_string/qgsm/src/G4SPBaryon.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 //
  2 // ********************************************************************
  3 // * License and Disclaimer                                           *
  4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.                             *
 10 // *                                                                  *
 11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                                                  *
 18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // ********************************************************************
 25 //
 26 #include "G4SPBaryon.hh"
 27 #include "Randomize.hh"
 28 #include "G4ParticleTable.hh"
 29 
 30 // correcting numbers, HPW Dec 1999
 31 
 32 G4int G4SPBaryon::FindQuark(G4int diQuark) const
 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 }
 54 
 55 
 56 G4double G4SPBaryon::GetProbability(G4int diQuark) const
 57 {
 58   G4double sum = 0;
 59   typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
 60   iter i;
 61   for (i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
 62   {
 63     if (std::abs((*i)->GetDiQuark()) == std::abs(diQuark))
 64     {
 65       sum += (*i)->GetProbability();
 66     }
 67   }
 68   return sum;
 69 }
 70 
 71 
 72 G4int G4SPBaryon::
 73 MatchDiQuarkAndGetQuark(const G4SPBaryon & aBaryon, G4int & aDiQuark) const
 74 {
 75   G4int    result=0;
 76   typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
 77   iter i;
 78   G4double running = 0;
 79   G4double total = 0;
 80   for (i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
 81   {
 82     total += aBaryon.GetProbability((*i)->GetDiQuark());
 83   }
 84   G4double random = G4UniformRand();
 85   for(i = thePartonInfo.begin(); i!=thePartonInfo.end(); i++)
 86   {
 87     running += aBaryon.GetProbability((*i)->GetDiQuark());
 88     if (random<running/total)
 89     {
 90       result = (*i)->GetQuark();  // (diquark annihilated)
 91       aDiQuark = (*i)->GetDiQuark();
 92       break;
 93     }
 94   }
 95   return result;
 96 }
 97 
 98 
 99 void G4SPBaryon::
100 SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const
101 {
102   typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
103 
104   G4double random = G4UniformRand();
105   G4double sum = 0;
106   iter i;
107 
108   for (i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++)
109   {
110     sum += (*i)->GetProbability();
111     if (sum > random)
112     {
113       if (theDefinition->GetPDGEncoding() < 0)
114       {
115         quark = (*i)->GetDiQuark();
116         diQuark = (*i)->GetQuark();
117       }
118       else
119       {
120         quark = (*i)->GetQuark();
121         diQuark = (*i)->GetDiQuark();
122       }
123       break;
124     }
125   }
126 }
127 
128 
129 void G4SPBaryon::
130 FindDiquark(G4int quark, G4int & diQuark) const
131 {
132   typedef std::vector<G4SPPartonInfo *>::const_iterator iter;
133   G4double sum = 0;
134   iter i;
135   for (i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++)
136   {
137     if (std::abs((*i)->GetQuark()) == std::abs(quark))
138     {
139       sum += (*i)->GetProbability();
140     }
141   }
142   G4double random = G4UniformRand();
143   G4double running = 0;
144   for (i=thePartonInfo.begin() ; i!=thePartonInfo.end(); i++) {
145     if (std::abs((*i)->GetQuark()) == std::abs(quark))
146     {
147       running += (*i)->GetProbability();
148       if (running/sum >= random)
149       {
150         diQuark = (*i)->GetDiQuark();
151         break;
152       }
153     }
154   }
155 }
156 
157 
158 G4SPBaryon::
159 G4SPBaryon(G4Proton * aProton)
160 {
161   theDefinition = aProton;
162   thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3./2.)); // uu_1, d 
163   thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 1./6.*2.)); // ud_1, u
164   thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.));    // ud_0, u
165 }
166 
167 G4SPBaryon::
168 G4SPBaryon(G4AntiProton * aAntiProton)
169 {
170   theDefinition = aAntiProton;
171   thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.));
172   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./6.));
173   thePartonInfo.push_back(new G4SPPartonInfo(-2101, -2, 1./2.));
174 }
175 
176 
177 G4SPBaryon::
178 G4SPBaryon(G4Neutron * aNeutron)
179 {
180   theDefinition = aNeutron;
181   thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 1./6.*2.)); // ud_1, d
182   thePartonInfo.push_back(new G4SPPartonInfo(2101, 1, 1./2.   )); // ud_0, d
183   thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3./2 )); // dd_1, u
184 }
185 
186 G4SPBaryon::
187 G4SPBaryon(G4AntiNeutron * aAntiNeutron)
188 {
189   theDefinition = aAntiNeutron;
190   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 1./6.));
191   thePartonInfo.push_back(new G4SPPartonInfo(-2101, -1, 1./2.));
192   thePartonInfo.push_back(new G4SPPartonInfo(-1103, -2, 1./3.));
193 }
194 
195 
196 G4SPBaryon::
197 G4SPBaryon(G4Lambda * aLambda)
198 {
199   theDefinition = aLambda;
200   thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));  // ud_1, s
201   thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./4.));  // su_1, d
202   thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./12.)); // su_0, d
203   thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./4.));  // sd_1, u
204   thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u
205 }
206 
207 G4SPBaryon::
208 G4SPBaryon(G4AntiLambda * aAntiLambda)
209 {
210   theDefinition = aAntiLambda;
211   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
212   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./4.));
213   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./12.));
214   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./4.));
215   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./12.));
216 }
217 
218 
219 G4SPBaryon::
220 G4SPBaryon(G4SigmaPlus * aSigmaPlus)
221 {
222   theDefinition = aSigmaPlus;
223   thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); // uu_1, s
224   thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); // su_1, u
225   thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); // su_0, u
226 }
227 
228 G4SPBaryon::
229 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus)
230 {
231   theDefinition = aAntiSigmaPlus;
232   thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.));
233   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 1./6.));
234   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -2, 1./2.));
235 }
236 
237 
238 G4SPBaryon::
239 G4SPBaryon(G4SigmaZero * aSigmaZero)
240 {
241   theDefinition = aSigmaZero;
242   thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));  // ud_1, s
243   thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); // su_1, d
244   thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.));  // su_0, d
245   thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); // sd_1, u
246   thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.));  // sd_0, u
247 }
248 
249 G4SPBaryon::
250 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero)
251 {
252   theDefinition = aAntiSigmaZero;
253   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
254   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./12.));
255   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -1, 1./4.));
256   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./12.));
257   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -2, 1./4.));
258 }
259 
260 
261 G4SPBaryon::
262 G4SPBaryon(G4SigmaMinus * aSigmaMinus)
263 {
264   theDefinition = aSigmaMinus;
265   thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); // dd_1, s
266   thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); // sd_1, d
267   thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); // sd_0, d
268 }
269 
270 G4SPBaryon::
271 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus)
272 {
273   theDefinition = aAntiSigmaMinus;
274   thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.));
275   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 1./6.));
276   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -1, 1./2.));
277 }
278 
279 
280 G4SPBaryon::
281 G4SPBaryon(G4XiZero * aXiZero)
282 {
283   theDefinition = aXiZero;
284   thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); // su_1, s
285   thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); // su_0, s
286   thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); // ss_1, u
287 }
288 
289 G4SPBaryon::
290 G4SPBaryon(G4AntiXiZero * aAntiXiZero)
291 {
292   theDefinition = aAntiXiZero;
293   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./6.));
294   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -3, 1./2.));
295   thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 1./3.));
296 }
297 
298 
299 G4SPBaryon::
300 G4SPBaryon(G4XiMinus * aXiMinus)
301 {
302   theDefinition = aXiMinus;
303   thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); // sd_1, s
304   thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); // sd_0, s
305   thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); // ss_1, d
306 }
307 
308 G4SPBaryon::
309 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus)
310 {
311   theDefinition = aAntiXiMinus;
312   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.));
313   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.));
314   thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
315 }
316 
317 
318 G4SPBaryon::
319 G4SPBaryon(G4OmegaMinus * anOmegaMinus)
320 {
321   theDefinition = anOmegaMinus;
322   thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); // ss_1, s
323 }
324 
325 G4SPBaryon::
326 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus)
327 {
328   theDefinition = anAntiOmegaMinus;
329   thePartonInfo.push_back(new G4SPPartonInfo(-3303, -3, 1.));
330 }
331 
332 
333 // non static particles
334 G4SPBaryon::
335 G4SPBaryon(G4ParticleDefinition * aDefinition)
336 {
337   theDefinition = aDefinition;
338   if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2224)) // Delta++
339   {
340     thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); // uu_1, u
341   }
342   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2224)) // anti Delta++
343   {
344     thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.));
345   }
346   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2214)) // Delta+
347   {
348     thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d
349     thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); // ud_1, u
350   }
351   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2214)) // anti Delta+
352   {
353     thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.));
354     thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.));
355   }
356   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2114)) // Delta0
357   {
358     thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); // ud_1, d
359     thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u
360   }
361   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2114)) // anti Delta0
362   {
363     thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.));
364     thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.));
365   }
366   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(1114)) // Delta-
367   {
368     thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); // dd_1, d
369   }
370   else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-1114)) // anti Delta-
371   {
372     thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.));
373   }  
374 }
375 
376 
377 G4SPBaryon::~G4SPBaryon()
378 {
379   for (unsigned int i=0;i<thePartonInfo.size(); i++) delete thePartonInfo[i];
380 }
381 
382 
383 // Extension to charmed and bottom baryons and anti-baryons
384 //    G4SPPartonInfo(G4int diq, G4int q, G4double prob)
385 
386 G4SPBaryon::G4SPBaryon(G4LambdacPlus * aLambdacPlus) {
387   // lambda_c+(udc) treated as lambda(uds) with s replaced by c.
388   theDefinition = aLambdacPlus;
389   thePartonInfo.push_back(new G4SPPartonInfo(2103, 4, 1./3.));  // ud_1, c
390   thePartonInfo.push_back(new G4SPPartonInfo(4203, 1, 1./4.));  // cu_1, d
391   thePartonInfo.push_back(new G4SPPartonInfo(4201, 1, 1./12.)); // cu_0, d
392   thePartonInfo.push_back(new G4SPPartonInfo(4103, 2, 1./4.));  // cd_1, u
393   thePartonInfo.push_back(new G4SPPartonInfo(4101, 2, 1./12.)); // cd_0, u
394 }
395 
396 G4SPBaryon::G4SPBaryon(G4AntiLambdacPlus * aAntiLambdacPlus) {
397   theDefinition = aAntiLambdacPlus;
398   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -4, 1./3.));
399   thePartonInfo.push_back(new G4SPPartonInfo(-4203, -1, 1./4.));
400   thePartonInfo.push_back(new G4SPPartonInfo(-4201, -1, 1./12.));
401   thePartonInfo.push_back(new G4SPPartonInfo(-4103, -2, 1./4.));
402   thePartonInfo.push_back(new G4SPPartonInfo(-4101, -2, 1./12.));
403 }
404 
405 
406 G4SPBaryon::G4SPBaryon(G4SigmacPlusPlus * aSigmacPlusPlus) {
407   // sigma_c++(uuc) treated as sigma+(uus) with s replaced by c.
408   theDefinition = aSigmacPlusPlus;
409   thePartonInfo.push_back(new G4SPPartonInfo(2203, 4, 1./3.)); // uu_1, c
410   thePartonInfo.push_back(new G4SPPartonInfo(4203, 2, 1./6.)); // cu_1, u
411   thePartonInfo.push_back(new G4SPPartonInfo(4201, 2, 1./2.)); // cu_0, u
412 }
413 
414 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlusPlus * aAntiSigmacPlusPlus) {
415   theDefinition = aAntiSigmacPlusPlus;
416   thePartonInfo.push_back(new G4SPPartonInfo(-2203, -4, 1./3.));
417   thePartonInfo.push_back(new G4SPPartonInfo(-4203, -2, 1./6.));
418   thePartonInfo.push_back(new G4SPPartonInfo(-4201, -2, 1./2.));
419 }
420 
421 
422 G4SPBaryon::G4SPBaryon(G4SigmacPlus * aSigmacPlus) {
423   // sigma_c+(udc) treated as sigma0(uds) with s replaced by c.
424   theDefinition = aSigmacPlus;
425   thePartonInfo.push_back(new G4SPPartonInfo(2103, 4, 1./3.));  // ud_1, c
426   thePartonInfo.push_back(new G4SPPartonInfo(4203, 1, 1./12.)); // cu_1, d
427   thePartonInfo.push_back(new G4SPPartonInfo(4201, 1, 1./4.));  // cu_0, d
428   thePartonInfo.push_back(new G4SPPartonInfo(4103, 2, 1./12.)); // cd_1, u
429   thePartonInfo.push_back(new G4SPPartonInfo(4101, 2, 1./4.));  // cd_0, u
430 }
431 
432 G4SPBaryon::G4SPBaryon(G4AntiSigmacPlus * aAntiSigmacPlus) {
433   theDefinition = aAntiSigmacPlus;
434   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -4, 1./3.));
435   thePartonInfo.push_back(new G4SPPartonInfo(-4203, -1, 1./12.));
436   thePartonInfo.push_back(new G4SPPartonInfo(-4201, -1, 1./4.));
437   thePartonInfo.push_back(new G4SPPartonInfo(-4103, -2, 1./12.));
438   thePartonInfo.push_back(new G4SPPartonInfo(-4101, -2, 1./4.));
439 }
440 
441 
442 G4SPBaryon::G4SPBaryon(G4SigmacZero * aSigmacZero) {
443   // sigma_c0(ddc) treated as sigma-(dds) replacing s with c.
444   theDefinition = aSigmacZero;
445   thePartonInfo.push_back(new G4SPPartonInfo(1103, 4, 1./3.)); // dd_1, c
446   thePartonInfo.push_back(new G4SPPartonInfo(4103, 1, 1./6.)); // cd_1, d
447   thePartonInfo.push_back(new G4SPPartonInfo(4101, 1, 1./2.)); // cd_0, d
448 }
449 
450 G4SPBaryon::G4SPBaryon(G4AntiSigmacZero * aAntiSigmacZero) {
451   theDefinition = aAntiSigmacZero;
452   thePartonInfo.push_back(new G4SPPartonInfo(-1103, -4, 1./3.));
453   thePartonInfo.push_back(new G4SPPartonInfo(-4103, -1, 1./6.));
454   thePartonInfo.push_back(new G4SPPartonInfo(-4101, -1, 1./2.));
455 }
456 
457 
458 G4SPBaryon::G4SPBaryon(G4XicPlus * aXicPlus) {
459   // xi_c+(usc) treated as xi0(uss) replacing s with c.
460   theDefinition = aXicPlus;
461   thePartonInfo.push_back(new G4SPPartonInfo(3203, 4, 1./6.)); // su_1, c
462   thePartonInfo.push_back(new G4SPPartonInfo(3201, 4, 1./2.)); // su_0, c
463   thePartonInfo.push_back(new G4SPPartonInfo(4303, 2, 1./3.)); // cs_1, u  
464 }
465 
466 G4SPBaryon::G4SPBaryon(G4AntiXicPlus * aAntiXicPlus) {
467   theDefinition = aAntiXicPlus;
468   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -4, 1./6.));
469   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -4, 1./2.));
470   thePartonInfo.push_back(new G4SPPartonInfo(-4303, -2, 1./3.));
471 }
472 
473 
474 G4SPBaryon::G4SPBaryon(G4XicZero * aXicZero) {
475   // xi_c0(dsc) treated as xi-(dss) replacing s with c.
476   theDefinition = aXicZero;
477   thePartonInfo.push_back(new G4SPPartonInfo(3103, 4, 1./6.)); // sd_1, c
478   thePartonInfo.push_back(new G4SPPartonInfo(3101, 4, 1./2.)); // sd_0, c
479   thePartonInfo.push_back(new G4SPPartonInfo(4303, 1, 1./3.)); // cs_1, d
480 }
481 
482 G4SPBaryon::G4SPBaryon(G4AntiXicZero * aAntiXicZero) {
483   theDefinition = aAntiXicZero;
484   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -4, 1./6.));
485   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -4, 1./2.));
486   thePartonInfo.push_back(new G4SPPartonInfo(-4303, -1, 1./3.));
487 }
488 
489 
490 G4SPBaryon::G4SPBaryon(G4OmegacZero * aOmegacZero) {
491   // omega_c0(ssc) treated as omega-(sss) with s replaced by c.
492   theDefinition = aOmegacZero;
493   thePartonInfo.push_back(new G4SPPartonInfo(3303, 4, 1.)); // ss_1, c
494 }
495 
496 G4SPBaryon::G4SPBaryon(G4AntiOmegacZero * aAntiOmegacZero) {
497   theDefinition = aAntiOmegacZero;
498   thePartonInfo.push_back(new G4SPPartonInfo(-3303, -4, 1.));
499 }
500 
501 
502 G4SPBaryon::G4SPBaryon(G4Lambdab * aLambdab) {
503   // lambda_b(udb) treated as lambda-(uds) replacing s with b.
504   theDefinition = aLambdab;
505   thePartonInfo.push_back(new G4SPPartonInfo(2103, 5, 1./3.));  // ud_1, b
506   thePartonInfo.push_back(new G4SPPartonInfo(5203, 1, 1./4.));  // bu_1, d
507   thePartonInfo.push_back(new G4SPPartonInfo(5201, 1, 1./12.)); // bu_0, d
508   thePartonInfo.push_back(new G4SPPartonInfo(5103, 2, 1./4.));  // bd_1, u
509   thePartonInfo.push_back(new G4SPPartonInfo(5101, 2, 1./12.)); // bd_0, u
510 }
511 
512 G4SPBaryon::G4SPBaryon(G4AntiLambdab * aAntiLambdab) {
513   theDefinition = aAntiLambdab;
514   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -5, 1./3.));
515   thePartonInfo.push_back(new G4SPPartonInfo(-5203, -1, 1./4.));
516   thePartonInfo.push_back(new G4SPPartonInfo(-5201, -1, 1./12.));
517   thePartonInfo.push_back(new G4SPPartonInfo(-5103, -2, 1./4.));
518   thePartonInfo.push_back(new G4SPPartonInfo(-5101, -2, 1./12.));
519 }
520 
521 
522 G4SPBaryon::G4SPBaryon(G4SigmabPlus * aSigmabPlus) {
523   // sigma_b+(uub) treated as sigma+(uus) replacing s with b.
524   theDefinition = aSigmabPlus;
525   thePartonInfo.push_back(new G4SPPartonInfo(2203, 5, 1./3.)); // uu_1, b
526   thePartonInfo.push_back(new G4SPPartonInfo(5203, 2, 1./6.)); // bu_1, u
527   thePartonInfo.push_back(new G4SPPartonInfo(5201, 2, 1./2.)); // bu_0, u
528 }
529 
530 G4SPBaryon::G4SPBaryon(G4AntiSigmabPlus * aAntiSigmabPlus) {
531   theDefinition = aAntiSigmabPlus;
532   thePartonInfo.push_back(new G4SPPartonInfo(-2203, -5, 1./3.));
533   thePartonInfo.push_back(new G4SPPartonInfo(-5203, -2, 1./6.));
534   thePartonInfo.push_back(new G4SPPartonInfo(-5201, -2, 1./2.));
535 }
536 
537 
538 G4SPBaryon::G4SPBaryon(G4SigmabZero * aSigmabZero) {
539   // sigma_b0(udb) treated as sigma0(uds) replacing s with b.
540   theDefinition = aSigmabZero;
541   thePartonInfo.push_back(new G4SPPartonInfo(2103, 5, 1./3.));  // ud_1, b
542   thePartonInfo.push_back(new G4SPPartonInfo(5203, 1, 1./12.)); // bu_1, d
543   thePartonInfo.push_back(new G4SPPartonInfo(5201, 1, 1./4.));  // bu_0, d
544   thePartonInfo.push_back(new G4SPPartonInfo(5103, 2, 1./12.)); // bd_1, u
545   thePartonInfo.push_back(new G4SPPartonInfo(5101, 2, 1./4.));  // bd_0, u
546 }
547 
548 G4SPBaryon::G4SPBaryon(G4AntiSigmabZero * aAntiSigmabZero) {
549   theDefinition = aAntiSigmabZero;
550   thePartonInfo.push_back(new G4SPPartonInfo(-2103, -5, 1./3.));
551   thePartonInfo.push_back(new G4SPPartonInfo(-5203, -1, 1./12.));
552   thePartonInfo.push_back(new G4SPPartonInfo(-5201, -1, 1./4.));
553   thePartonInfo.push_back(new G4SPPartonInfo(-5103, -2, 1./12.));
554   thePartonInfo.push_back(new G4SPPartonInfo(-5101, -2, 1./4.));
555 }
556 
557 
558 G4SPBaryon::G4SPBaryon(G4SigmabMinus * aSigmabMinus) {
559   // sigma_b-(ddb) treated as sigma-(dds) replacing s with b.
560   theDefinition = aSigmabMinus;
561   thePartonInfo.push_back(new G4SPPartonInfo(1103, 5, 1./3.)); // dd_1, b
562   thePartonInfo.push_back(new G4SPPartonInfo(5103, 1, 1./6.)); // bd_1, d
563   thePartonInfo.push_back(new G4SPPartonInfo(5101, 1, 1./2.)); // bd_0, d
564 }
565 
566 G4SPBaryon::G4SPBaryon(G4AntiSigmabMinus * aAntiSigmabMinus) {
567   theDefinition = aAntiSigmabMinus;
568   thePartonInfo.push_back(new G4SPPartonInfo(-1103, -5, 1./3.));
569   thePartonInfo.push_back(new G4SPPartonInfo(-5103, -1, 1./6.));
570   thePartonInfo.push_back(new G4SPPartonInfo(-5101, -1, 1./2.));
571 }
572 
573 
574 G4SPBaryon::G4SPBaryon(G4XibZero * aXibZero) {
575   // xi_b0(usb) treated as xi0(uss) replacing s with b.
576   theDefinition = aXibZero;
577   thePartonInfo.push_back(new G4SPPartonInfo(3203, 5, 1./6.)); // su_1, b
578   thePartonInfo.push_back(new G4SPPartonInfo(3201, 5, 1./2.)); // su_0, b
579   thePartonInfo.push_back(new G4SPPartonInfo(5303, 2, 1./3.)); // bs_1, u
580 }
581 
582 G4SPBaryon::G4SPBaryon(G4AntiXibZero * aAntiXibZero) {
583   theDefinition = aAntiXibZero;
584   thePartonInfo.push_back(new G4SPPartonInfo(-3203, -5, 1./6.));
585   thePartonInfo.push_back(new G4SPPartonInfo(-3201, -5, 1./2.));
586   thePartonInfo.push_back(new G4SPPartonInfo(-5303, -2, 1./3.));
587 }
588 
589 
590 G4SPBaryon::G4SPBaryon(G4XibMinus * aXibMinus) {
591   // xi_b-(dsb) treated as xi-(dss) replacing s with b.
592   theDefinition = aXibMinus;
593   thePartonInfo.push_back(new G4SPPartonInfo(3103, 5, 1./6.)); // sd_1, b
594   thePartonInfo.push_back(new G4SPPartonInfo(3101, 5, 1./2.)); // sd_0, b
595   thePartonInfo.push_back(new G4SPPartonInfo(5303, 1, 1./3.)); // bs_1, d
596 }
597 
598 G4SPBaryon::G4SPBaryon(G4AntiXibMinus * aAntiXibMinus) {
599   theDefinition = aAntiXibMinus;
600   thePartonInfo.push_back(new G4SPPartonInfo(-3103, -5, 1./6.));
601   thePartonInfo.push_back(new G4SPPartonInfo(-3101, -5, 1./2.));
602   thePartonInfo.push_back(new G4SPPartonInfo(-5303, -1, 1./3.));
603 }
604 
605 
606 G4SPBaryon::G4SPBaryon(G4OmegabMinus * aOmegabMinus) {
607   // omega_b-(ssb) treated as omega-(sss) replacing s with b.
608   theDefinition = aOmegabMinus;
609   thePartonInfo.push_back(new G4SPPartonInfo(3303, 5, 1.)); // ss_1, b
610 }
611 
612 G4SPBaryon::G4SPBaryon(G4AntiOmegabMinus * aAntiOmegabMinus) {
613   theDefinition = aAntiOmegabMinus;
614   thePartonInfo.push_back(new G4SPPartonInfo(-3303, -5, 1.));
615 }
616