G4QParticle.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 //      ---------------- G4QParticle ----------------
00030 //             by Mikhail Kossov, Sept 1999.
00031 //      class for Particles in the CHIPS Model
00032 // -------------------------------------------------------------------
00033 //       1         2         3         4         5         6         7         8         9
00034 //34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
00035 // -----------------------------------------------------------------------
00036 // Short description: The G4QParticle is a part of the CHIPS World. It is
00037 // characterized by the quark content, spin, mass, width and a vector of
00038 // the decay channels (G4QDecayCannelVector).
00039 // -----------------------------------------------------------------------
00040 //#define debug
00041 //#define pdebug
00042 
00043 #include "G4QParticleVector.hh"
00044 
00045 G4QParticle::G4QParticle()
00046 {
00047 #ifdef debug
00048   G4cout<<"G4QParticle::Constr: Default constructor is called"<<G4endl;
00049 #endif
00050 }
00051 
00052 G4QParticle::G4QParticle(G4int thePDG)
00053 {
00054   aQPDG      = G4QPDGCode(thePDG);
00055   aQuarkCont = aQPDG.GetQuarkContent();
00056   aDecay     = InitDecayVector(aQPDG.GetQCode());
00057 }
00058 
00059 G4QParticle::G4QParticle(G4bool f, G4int theQCode)
00060 {
00061   aQPDG      = G4QPDGCode(f,theQCode);
00062 #ifdef debug
00063   G4cout<<"G4QParticle::Constr: PDG="<<aQPDG.GetPDGCode()<<G4endl;
00064 #endif
00065   aQuarkCont = aQPDG.GetQuarkContent();
00066   aDecay     = InitDecayVector(theQCode);
00067 }
00068 
00069 G4QParticle::G4QParticle(const G4QParticle& right)
00070 {
00071   aQPDG                = right.aQPDG;
00072   //aDecay (Vector)
00073   G4int nD             = right.aDecay.size(); 
00074   if(nD) for(G4int id=0; id<nD; id++)
00075   {
00076     G4QDecayChan* curD = new G4QDecayChan(right.aDecay[id]);
00077     aDecay.push_back(curD);
00078   }
00079 
00080   aQuarkCont           = right.aQuarkCont;
00081 }
00082 
00083 G4QParticle::G4QParticle(G4QParticle* right)
00084 {
00085   aQPDG                = right->aQPDG;
00086   //aDecay (Vector)
00087   G4int nD             = right->aDecay.size();
00088   if(nD) for(G4int id=0; id<nD; id++)
00089   {
00090     G4QDecayChan* curD = new G4QDecayChan(right->aDecay[id]);
00091     aDecay.push_back(curD);
00092   }
00093 
00094   aQuarkCont           = right->aQuarkCont;
00095 }
00096 
00097 G4QParticle::~G4QParticle() 
00098 {
00099   G4int nDC=aDecay.size();
00100   //G4cout<<"G4QParticle::Destructor: Before nDC="<<nDC<<G4endl; // TMP
00101   if(nDC) std::for_each(aDecay.begin(), aDecay.end(), DeleteQDecayChan());
00102   //G4cout<<"G4QParticle::Destructor: After"<<G4endl; // TMP
00103   aDecay.clear();
00104 }
00105 
00106 // Assignment operator
00107 const G4QParticle& G4QParticle::operator=(const G4QParticle &right)
00108 {
00109   if(this != &right)                          // Beware of self assignment
00110   {
00111     aQPDG                = right.aQPDG;
00112     //aDecay (Vector)
00113     G4int iD             = aDecay.size();
00114     if(iD) for(G4int jd=0; jd<iD; jd++) delete aDecay[jd];
00115     aDecay.clear();
00116     G4int nD             = right.aDecay.size();
00117     if(nD) for(G4int id=0; id<nD; id++)
00118     {
00119       G4QDecayChan* curD = new G4QDecayChan(right.aDecay[id]);
00120       aDecay.push_back(curD);
00121     }
00122 
00123     aQuarkCont           = right.aQuarkCont;
00124   }
00125   return *this;
00126 }
00127 
00128 // Standard output for QParticle
00129 std::ostream& operator<<(std::ostream& lhs, G4QParticle& rhs)
00130 {
00131   G4QPDGCode rhsQPDG = rhs.GetQPDG();
00132   lhs << G4endl << "Particle with PDG=" << rhsQPDG << ", Spin=" << rhs.GetSpin()
00133       << ", mass=" << rhs.GetMass() << ", width=" << rhs.GetWidth() << G4endl;
00134   lhs<<" Quark Content of the Particle="<<rhs.GetQContent()<<", Decay Channels:"<<G4endl;
00135   G4QDecayChanVector DCV = rhs.GetDecayVector();
00136   G4int n = DCV.size();
00137   for (int i=0; i<n; i++)
00138   {
00139     lhs << DCV[i]->GetDecayChanLimit() << "PDG codes";
00140     G4QPDGCodeVector PCV=DCV[i]->GetVecOfSecHadrons();
00141     G4int m_value = PCV.size();
00142     for (int j=0; j<m_value; j++)
00143     {
00144       if(!j) lhs << ":";
00145       else   lhs << ",";
00146       lhs << PCV[j]->GetPDGCode() ;
00147     }
00148   }
00149   return lhs;
00150 }
00151 
00152 // Initialize the PDG-Particle by QCode @@ Can be improved, using PDG.DATA file
00153 G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ)
00154 {
00155   //static G4int nP = 486;                  // Up to A=80
00156   //static const G4int nP = 494;              // Up to A=80(?) "Isonuclear revision"
00157   static const G4int nP = 512; // A<57 "Leptons/Hypernuclei" G4QCHIPSWorld::GetParticles(!)
00158   //static G4QDecayChanVector* DecayDB = new G4QDecayChanVector[nP];
00159   static G4QDecayChanVector DecayDB[nP];
00160   static int limit= 0;
00161   if(nQ>=limit && nQ<nP)
00162   {
00163     //*** Secondary PDG-particles should be ordered in a Channel by increasing width***!***
00164     //** Channels should be ordered by increasing minimum mass of the secondary particles**
00165     //if(limit<=  0 && nQ>=  0)DecayDB[  0] = 0;    // e-     (11)
00166     //if(limit<=  1 && nQ>=  1)DecayDB[  1] = 0;    // nu_e   (12)
00167     //if(limit<=  2 && nQ>=  2)DecayDB[  2] = 0;    // mu-    (13)
00168     //if(limit<=  3 && nQ>=  3)DecayDB[  3] = 0;    // mu_e   (14)
00169     //if(limit<=  4 && nQ>=  4)DecayDB[  4] = 0;    // tau-   (15)
00170     //if(limit<=  5 && nQ>=  5)DecayDB[  5] = 0;    // nu_tau (16)
00171     //if(limit<=  6 && nQ>=  6)DecayDB[  6] = 0;    // gamma  (22)
00172     if(limit<=  7 && nQ>=  7)                       // Z0     (23)
00173     {
00174       DecayDB[  7].push_back(new G4QDecayChan(.036,  11, -11));
00175       DecayDB[  7].push_back(new G4QDecayChan(.073,  13, -13));
00176       DecayDB[  7].push_back(new G4QDecayChan(.107,  15, -15));
00177       DecayDB[  7].push_back(new G4QDecayChan(.174,  12, -12)); // @@ Fake invisible decays
00178       DecayDB[  7].push_back(new G4QDecayChan(.240,  14, -14));
00179       DecayDB[  7].push_back(new G4QDecayChan(.307,  16, -16));
00180       DecayDB[  7].push_back(new G4QDecayChan(.400,2112,-2112)); // @@ Fake Hadronic decays
00181       DecayDB[  7].push_back(new G4QDecayChan(.500,2212,-2212)); // @@ Need heavy quarks
00182       DecayDB[  7].push_back(new G4QDecayChan(.600,2212,-2212, 111));
00183       DecayDB[  7].push_back(new G4QDecayChan(.700,2112,-2112, 111));
00184       DecayDB[  7].push_back(new G4QDecayChan(.800,2212,-2112,-211));
00185       DecayDB[  7].push_back(new G4QDecayChan(.990,2112,-2212, 211));
00186       DecayDB[  7].push_back(new G4QDecayChan(1.00,2112,-3122, 111));
00187     }
00188     if(limit<=  8 && nQ>=  8)                       // W-     (24) @@ Update HadronicDecays
00189     {
00190       DecayDB[  8].push_back(new G4QDecayChan(.107,  11, -12));
00191       DecayDB[  8].push_back(new G4QDecayChan(.214,  13, -14));
00192       DecayDB[  8].push_back(new G4QDecayChan(.321,  15, -16));
00193       DecayDB[  8].push_back(new G4QDecayChan(.421,2112,-2212)); // @@ Fake Hadronic decays
00194       DecayDB[  8].push_back(new G4QDecayChan(.521,2112,-2112,-211));
00195       DecayDB[  8].push_back(new G4QDecayChan(.621,2212,-2212,-211));
00196       DecayDB[  8].push_back(new G4QDecayChan(.721,3122,-3122,-211));
00197       DecayDB[  8].push_back(new G4QDecayChan(.821,2112,-2212, 111));
00198       DecayDB[  8].push_back(new G4QDecayChan(.921,3122,-2212, 111));
00199       DecayDB[  8].push_back(new G4QDecayChan(1.00,2112,-3122,-211));
00200     }
00201     //if(limit<=  9 && nQ>=  9)DecayDB[  9] = 0;    // H0     (25)
00202     //if(limit<= 10 && nQ>= 10)DecayDB[ 10] = 0;    // H-     (37)
00203     if(limit<= 11 && nQ>= 11)    // Low sigma=pi,pi S-wave : f_0 (800)
00204     {
00205       DecayDB[ 11].push_back(new G4QDecayChan(.333,211,-211));
00206       DecayDB[ 11].push_back(new G4QDecayChan(1.00,111, 111));
00207     }
00208     if(limit<= 12 && nQ>= 12)    // Midle Regeon-Pomeron   : f_0 (980)
00209     {
00210       DecayDB[ 12].push_back(new G4QDecayChan(.333,211,-211));
00211       DecayDB[ 12].push_back(new G4QDecayChan(1.00,111, 111));
00212     }
00213     if(limit<= 13 && nQ>= 13)    // High Regeon-Pomeron    : f_0 (1500)
00214     {
00215       DecayDB[ 13].push_back(new G4QDecayChan(.019,221, 331));
00216       DecayDB[ 13].push_back(new G4QDecayChan(.070,221, 221));
00217       DecayDB[ 13].push_back(new G4QDecayChan(.113,311,-311));
00218       DecayDB[ 13].push_back(new G4QDecayChan(.156,321,-321));
00219       DecayDB[ 13].push_back(new G4QDecayChan(.578,211,-211)); //@@ include 4pi decays
00220       DecayDB[ 13].push_back(new G4QDecayChan(1.00,111, 111));
00221     }
00222     //if(limit<= 14 && nQ>= 14)DecayDB[ 14].push_back(new G4QDecayChan(1.00,22,22));//Pi0
00223     //if(limit<= 15 && nQ>= 15)DecayDB[ 15] = 0;    // Pi +
00224     if(limit<= 16 && nQ>= 16)    // eta
00225     {
00226       DecayDB[ 16].push_back(new G4QDecayChan(.226,211,-211,111));
00227       DecayDB[ 16].push_back(new G4QDecayChan(.551,111, 111,111));
00228       DecayDB[ 16].push_back(new G4QDecayChan(.598,211,-211, 22));
00229       DecayDB[ 16].push_back(new G4QDecayChan(.606, 11, -11, 22)); //@@ .002 (pi+)(pi-)2gam
00230       DecayDB[ 16].push_back(new G4QDecayChan(1.00, 22,  22));
00231     }
00232     //if(limit<= 17 && nQ>= 17)    // K 0 (K_short - probab 1/2) @@@@@@@@@@@@
00233     //{
00234     //  DecayDB[ 17].push_back(new G4QDecayChan(.6861,211,-211));
00235     //  DecayDB[ 17].push_back(new G4QDecayChan(1.00, 111, 111));
00236     //}
00237     //if(limit<= 18 && nQ>= 18)DecayDB[  8] = 0;    // K +
00238     if(limit<= 19 && nQ>= 19)    // eta'
00239     {
00240       DecayDB[ 19].push_back(new G4QDecayChan(.443,211,-211,221));
00241       DecayDB[ 19].push_back(new G4QDecayChan(.652,111, 111,221));
00242       DecayDB[ 19].push_back(new G4QDecayChan(.947, 22, 223));
00243       DecayDB[ 19].push_back(new G4QDecayChan(.949,111, 111,111));
00244       DecayDB[ 19].push_back(new G4QDecayChan(.979, 22, 113));
00245       DecayDB[ 19].push_back(new G4QDecayChan(1.00, 22,  22));
00246     }
00247     //if(limit<= 20 && nQ>= 20)DecayDB[ 20] = 0;    // n
00248     //if(limit<= 21 && nQ>= 21)DecayDB[ 21] = 0;    // p
00249     //if(limit<= 22 && nQ>= 22)    // Lambda =--=>> all week decays are closed at this time
00250     //{
00251     //  DecayDB[ 22].push_back(new G4QDecayChan(.640,2212,-211));
00252     //  DecayDB[ 22].push_back(new G4QDecayChan(1.00,2112, 111));
00253     //}
00254     //if(limit<= 23 &&nQ>=23)DecayDB[23].push_back(new G4QDecayChan(1.,2112,-211));//Sigma-
00255     if(limit<= 24 &&nQ>=24)DecayDB[24].push_back(new G4QDecayChan(1.,3122,22));//Sigma0(EM)
00256     //if(limit<= 25 && nQ>= 25)    // Sigma +
00257     //{
00258     //  DecayDB[ 25].push_back(new G4QDecayChan(.484,2112, 211));
00259     //  DecayDB[ 25].push_back(new G4QDecayChan(1.00,2212, 111));
00260     //}
00261     //if(limit<= 26 && nQ>=26)DecayDB[26].push_back(new G4QDecayChan(1.,3122,-211));// Ksi-
00262     //if(limit<= 27 && nQ>=27)DecayDB[27].push_back(new G4QDecayChan(1.,3122, 111));// Ksi0
00263     if(limit<= 28 && nQ>= 28)DecayDB[ 28].push_back(new G4QDecayChan(1., 211,-211));// rho0
00264     if(limit<= 29 && nQ>= 29)DecayDB[ 29].push_back(new G4QDecayChan(1., 211, 111));// rho+
00265     if(limit<= 30 && nQ>= 30)    // omega
00266     {
00267       DecayDB[ 30].push_back(new G4QDecayChan(.891, 211,-211,111));
00268       DecayDB[ 30].push_back(new G4QDecayChan(.908, 211,-211));
00269       DecayDB[ 30].push_back(new G4QDecayChan(.997,  22, 111));
00270       DecayDB[ 30].push_back(new G4QDecayChan(.998,  11, -11, 111)); //@@NeedsMoreAccurate
00271       DecayDB[ 30].push_back(new G4QDecayChan(.998,  13, -13, 111));
00272       DecayDB[ 30].push_back(new G4QDecayChan(1.00,  22, 221));
00273     }
00274     if(limit<= 31 && nQ>= 31)    // K* 0
00275     {
00276       DecayDB[ 31].push_back(new G4QDecayChan(.667,-211, 321));
00277       DecayDB[ 31].push_back(new G4QDecayChan(1.00, 111, 311));
00278     }
00279     if(limit<= 32 && nQ>= 32)    // K* +
00280     {
00281       DecayDB[ 32].push_back(new G4QDecayChan(.667, 211, 311));
00282       DecayDB[ 32].push_back(new G4QDecayChan(1.00, 111, 321));
00283     }
00284     if(limit<= 33 && nQ>= 33)    // phi
00285     {
00286       DecayDB[ 33].push_back(new G4QDecayChan(.491, 311,-311));
00287       DecayDB[ 33].push_back(new G4QDecayChan(.831, 321,-321));
00288       DecayDB[ 33].push_back(new G4QDecayChan(.844,  22, 221));
00289       DecayDB[ 33].push_back(new G4QDecayChan(.846,  22, 111));
00290       DecayDB[ 33].push_back(new G4QDecayChan(.897, 211,-213));
00291       DecayDB[ 33].push_back(new G4QDecayChan(.948,-211, 213));
00292       DecayDB[ 33].push_back(new G4QDecayChan(1.00, 111, 113));
00293     }
00294     if(limit<= 34 && nQ>= 34)DecayDB[34].push_back(new G4QDecayChan(1.,2112,-211));//Delta-
00295     if(limit<= 35 && nQ>= 35)    // Delta 0
00296     {
00297       DecayDB[ 35].push_back(new G4QDecayChan(.333,2212,-211));
00298       DecayDB[ 35].push_back(new G4QDecayChan(1.00,2112, 111));
00299     }
00300     if(limit<= 36 && nQ>= 36)    // Delta +
00301     {
00302       DecayDB[ 36].push_back(new G4QDecayChan(.333,2112, 211));
00303       DecayDB[ 36].push_back(new G4QDecayChan(1.00,2212, 111));
00304     }
00305     if(limit<= 37 && nQ>= 37)DecayDB[37].push_back(new G4QDecayChan(1.,2212,211));//Delta++
00306     if(limit<= 38 && nQ>= 38)    // Lambda* (1520)
00307     {
00308       DecayDB[ 38].push_back(new G4QDecayChan(.225,3112,-311));
00309       DecayDB[ 38].push_back(new G4QDecayChan(.450,3222,-321));
00310       DecayDB[ 38].push_back(new G4QDecayChan(.453,3112,211,111));
00311       DecayDB[ 38].push_back(new G4QDecayChan(.456,3212,211,-211));
00312       DecayDB[ 38].push_back(new G4QDecayChan(.459,3212,111,111));
00313       DecayDB[ 38].push_back(new G4QDecayChan(.462,3222,-211,111));
00314       DecayDB[ 38].push_back(new G4QDecayChan(.512,3122,211,-211));
00315       DecayDB[ 38].push_back(new G4QDecayChan(.562,3122,111,111));
00316       DecayDB[ 38].push_back(new G4QDecayChan(.702,3222,-211));
00317       DecayDB[ 38].push_back(new G4QDecayChan(.842,3212, 111));
00318       DecayDB[ 38].push_back(new G4QDecayChan(.982,3112, 211));
00319       DecayDB[ 38].push_back(new G4QDecayChan(1.00,3122,  22));
00320     }
00321     if(limit<= 39 && nQ>= 39)    // Sigma* -
00322     {
00323       DecayDB[ 39].push_back(new G4QDecayChan(.060,3112, 111));
00324       DecayDB[ 39].push_back(new G4QDecayChan(.120,3212,-211));
00325       DecayDB[ 39].push_back(new G4QDecayChan(1.00,3122,-211));
00326     }
00327     if(limit<= 40 && nQ>= 40)    // Sigma* 0
00328     {
00329       DecayDB[ 40].push_back(new G4QDecayChan(.040,3112, 211));
00330       DecayDB[ 40].push_back(new G4QDecayChan(.080,3222,-211));
00331       DecayDB[ 40].push_back(new G4QDecayChan(.120,3212, 111));
00332       DecayDB[ 40].push_back(new G4QDecayChan(1.00,3122, 111));
00333     }
00334     if(limit<= 41 && nQ>= 41)    // Sigma* +
00335     {
00336       DecayDB[ 41].push_back(new G4QDecayChan(.060,3212, 211));
00337       DecayDB[ 41].push_back(new G4QDecayChan(.120,3222, 111));
00338       DecayDB[ 41].push_back(new G4QDecayChan(1.00,3122, 211));
00339     }
00340     if(limit<= 42 && nQ>= 42)    // Ksi* -
00341     {
00342       DecayDB[ 42].push_back(new G4QDecayChan(.667,3322,-211));
00343       DecayDB[ 42].push_back(new G4QDecayChan(1.00,3312, 111));
00344     }
00345     if(limit<= 43 && nQ>= 43)    // Ksi* 0
00346     {
00347       DecayDB[ 43].push_back(new G4QDecayChan(.667,3312, 211));
00348       DecayDB[ 43].push_back(new G4QDecayChan(1.00,3322, 111));
00349     }
00350     //if(limit<= 44 && nQ>= 44)    // OMEGA - (Weak)
00351     //{
00352     //  DecayDB[ 44].push_back(new G4QDecayChan(.678,3122, 321));
00353     //  DecayDB[ 44].push_back(new G4QDecayChan(.914,3322,-211));
00354     //  DecayDB[ 44].push_back(new G4QDecayChan(1.00,3312, 111));
00355     //}
00356     if(limit<= 45 && nQ>= 45)    // a_2 0
00357     {
00358       DecayDB[ 45].push_back(new G4QDecayChan(.070, 211,-211,223));
00359       DecayDB[ 45].push_back(new G4QDecayChan(.106, 111, 111,223));
00360       DecayDB[ 45].push_back(new G4QDecayChan(.131, 321,-321));
00361       DecayDB[ 45].push_back(new G4QDecayChan(.156, 311,-311));
00362       DecayDB[ 45].push_back(new G4QDecayChan(.301, 111, 221));
00363       DecayDB[ 45].push_back(new G4QDecayChan(.534,-211, 213));
00364       DecayDB[ 45].push_back(new G4QDecayChan(.767, 211,-213));
00365       DecayDB[ 45].push_back(new G4QDecayChan(1.00, 111, 113));
00366     }
00367     if(limit<= 46 && nQ>= 46)    // a_2 +
00368     {
00369       DecayDB[ 46].push_back(new G4QDecayChan(.106,111,211,223));
00370       DecayDB[ 46].push_back(new G4QDecayChan(.156, 321,-311));
00371       DecayDB[ 46].push_back(new G4QDecayChan(.301, 211, 221));
00372       DecayDB[ 46].push_back(new G4QDecayChan(.651, 211, 113));
00373       DecayDB[ 46].push_back(new G4QDecayChan(1.00, 111, 213));
00374     }
00375     if(limit<= 47 && nQ>= 47)    // f_2 0
00376     {
00377       DecayDB[ 47].push_back(new G4QDecayChan(.005, 221, 221));
00378       DecayDB[ 47].push_back(new G4QDecayChan(.028, 311,-311));
00379       DecayDB[ 47].push_back(new G4QDecayChan(.051, 321,-321));
00380       DecayDB[ 47].push_back(new G4QDecayChan(.123, 111, 113));
00381       DecayDB[ 47].push_back(new G4QDecayChan(.126, 111, 221));
00382       DecayDB[ 47].push_back(new G4QDecayChan(.152, 211,-211,113));
00383       DecayDB[ 47].push_back(new G4QDecayChan(.717, 211,-211));
00384       DecayDB[ 47].push_back(new G4QDecayChan(1.00, 111, 111));
00385     }
00386     if(limit<= 48 && nQ>= 48)    // K_2 0
00387     {
00388       DecayDB[ 48].push_back(new G4QDecayChan(.028, 311, 223));
00389       DecayDB[ 48].push_back(new G4QDecayChan(.074, 211,-211,313));
00390       DecayDB[ 48].push_back(new G4QDecayChan(.143,111,-211,323));
00391       DecayDB[ 48].push_back(new G4QDecayChan(.166,111, 111,313));
00392       DecayDB[ 48].push_back(new G4QDecayChan(.190,-211, 323));
00393       DecayDB[ 48].push_back(new G4QDecayChan(.314, 111, 313));
00394       DecayDB[ 48].push_back(new G4QDecayChan(.357, 311, 113));
00395       DecayDB[ 48].push_back(new G4QDecayChan(.500, 321,-213));
00396       DecayDB[ 48].push_back(new G4QDecayChan(.750,-211, 321));
00397       DecayDB[ 48].push_back(new G4QDecayChan(1.00, 111, 311));
00398     }
00399     if(limit<= 49 && nQ>= 49)    // K_2 +
00400     {
00401       DecayDB[ 49].push_back(new G4QDecayChan(.028, 321, 223));
00402       DecayDB[ 49].push_back(new G4QDecayChan(.074,211,-211,323));
00403       DecayDB[ 49].push_back(new G4QDecayChan(.143,111, 211,313));
00404       DecayDB[ 49].push_back(new G4QDecayChan(.166,111, 111,323));
00405       DecayDB[ 49].push_back(new G4QDecayChan(.190, 211, 313));
00406       DecayDB[ 49].push_back(new G4QDecayChan(.314, 111, 323));
00407       DecayDB[ 49].push_back(new G4QDecayChan(.357, 311, 213));
00408       DecayDB[ 49].push_back(new G4QDecayChan(.500, 321, 113));
00409       DecayDB[ 49].push_back(new G4QDecayChan(.750, 211, 311));
00410       DecayDB[ 49].push_back(new G4QDecayChan(1.00, 111, 321));
00411     }
00412     if(limit<= 50 && nQ>= 50)    // f_2' 0
00413     {
00414       DecayDB[ 50].push_back(new G4QDecayChan(.103, 221, 221));
00415       DecayDB[ 50].push_back(new G4QDecayChan(.547, 311,-311));
00416       DecayDB[ 50].push_back(new G4QDecayChan(.991, 321,-321));
00417       DecayDB[ 50].push_back(new G4QDecayChan(.997, 211,-211));
00418       DecayDB[ 50].push_back(new G4QDecayChan(1.00, 111, 111));
00419     }
00420     if(limit<= 51 && nQ>= 51)    // N_5/2 0
00421     {
00422       DecayDB[ 51].push_back(new G4QDecayChan(.040, 211, 1114));
00423       DecayDB[ 51].push_back(new G4QDecayChan(.080, 111, 2114));
00424       DecayDB[ 51].push_back(new G4QDecayChan(.120,-211, 2214));
00425       DecayDB[ 51].push_back(new G4QDecayChan(.180, 2112, 113));
00426       DecayDB[ 51].push_back(new G4QDecayChan(.210, 2212,-213));
00427       DecayDB[ 51].push_back(new G4QDecayChan(.340, 2112, 110));
00428       DecayDB[ 51].push_back(new G4QDecayChan(.780, 2212,-211));
00429       DecayDB[ 51].push_back(new G4QDecayChan(1.00, 2112, 111));
00430     }
00431     if(limit<= 52 && nQ>= 52)    // N_5/2 +
00432     {
00433       DecayDB[ 52].push_back(new G4QDecayChan(.040,-211, 2224));
00434       DecayDB[ 52].push_back(new G4QDecayChan(.080, 211, 2114));
00435       DecayDB[ 52].push_back(new G4QDecayChan(.120, 111, 2214));
00436       DecayDB[ 52].push_back(new G4QDecayChan(.180, 2112, 213));
00437       DecayDB[ 52].push_back(new G4QDecayChan(.210, 2212, 113));
00438       DecayDB[ 52].push_back(new G4QDecayChan(.340, 2212, 229));
00439       DecayDB[ 52].push_back(new G4QDecayChan(.780, 2112, 211));
00440       DecayDB[ 52].push_back(new G4QDecayChan(1.00, 2212, 111));
00441     }
00442     if(limit<= 53 && nQ>= 53)    // LAMBDA_5/2
00443     {
00444       DecayDB[ 53].push_back(new G4QDecayChan(.350, 2112,-311));
00445       DecayDB[ 53].push_back(new G4QDecayChan(.700, 2212,-321));
00446       DecayDB[ 53].push_back(new G4QDecayChan(.740, 211, 3114));
00447       DecayDB[ 53].push_back(new G4QDecayChan(.780,-211, 3224));
00448       DecayDB[ 53].push_back(new G4QDecayChan(.820, 111, 3214));
00449       DecayDB[ 53].push_back(new G4QDecayChan(.880, 3112, 211));
00450       DecayDB[ 53].push_back(new G4QDecayChan(.940, 3222,-211));
00451       DecayDB[ 53].push_back(new G4QDecayChan(1.00, 3212, 111));
00452     }
00453     if(limit<= 54 && nQ>= 54)    // SIGMA_5/2 -
00454     {
00455       DecayDB[ 54].push_back(new G4QDecayChan(.600, 2112,-321));
00456       DecayDB[ 54].push_back(new G4QDecayChan(.660,-211, 3214));
00457       DecayDB[ 54].push_back(new G4QDecayChan(.720, 111, 3114));
00458       DecayDB[ 54].push_back(new G4QDecayChan(.810, 3212,-211));
00459       DecayDB[ 54].push_back(new G4QDecayChan(.900, 3112, 111));
00460       DecayDB[ 54].push_back(new G4QDecayChan(1.00, 3122,-211));
00461     }
00462     if(limit<= 55 && nQ>= 55)    // SIGMA_5/2 0
00463     {
00464       DecayDB[ 55].push_back(new G4QDecayChan(.300, 2112,-311));
00465       DecayDB[ 55].push_back(new G4QDecayChan(.600, 2212,-321));
00466       DecayDB[ 55].push_back(new G4QDecayChan(.640, 211, 3114));
00467       DecayDB[ 55].push_back(new G4QDecayChan(.680,-211, 3224));
00468       DecayDB[ 55].push_back(new G4QDecayChan(.720, 111, 3214));
00469       DecayDB[ 55].push_back(new G4QDecayChan(.780, 3112, 211));
00470       DecayDB[ 55].push_back(new G4QDecayChan(.840, 3222,-211));
00471       DecayDB[ 55].push_back(new G4QDecayChan(.900, 3212, 111));
00472       DecayDB[ 55].push_back(new G4QDecayChan(1.00, 3122, 111));
00473     }
00474     if(limit<= 56 && nQ>= 56)    // SIGMA_5/2 +
00475     {
00476       DecayDB[ 56].push_back(new G4QDecayChan(.600, 2212,-311));
00477       DecayDB[ 56].push_back(new G4QDecayChan(.660, 211, 3214));
00478       DecayDB[ 56].push_back(new G4QDecayChan(.720, 111, 3224));
00479       DecayDB[ 56].push_back(new G4QDecayChan(.810, 3212, 211));
00480       DecayDB[ 56].push_back(new G4QDecayChan(.900, 3222, 111));
00481       DecayDB[ 56].push_back(new G4QDecayChan(1.00, 3122, 211));
00482     }
00483     if(limit<= 57 && nQ>= 57)    // KSI_5/2 -
00484     {
00485       DecayDB[ 57].push_back(new G4QDecayChan(.400, 3112,-311));
00486       DecayDB[ 57].push_back(new G4QDecayChan(.800, 3212,-321));
00487       DecayDB[ 57].push_back(new G4QDecayChan(1.00, 3122,-321));
00488     }
00489     if(limit<= 58 && nQ>= 58)    // KSI_5/2 0
00490     {
00491       DecayDB[ 58].push_back(new G4QDecayChan(.400, 3212,-311));
00492       DecayDB[ 58].push_back(new G4QDecayChan(.800, 3222,-321));
00493       DecayDB[ 58].push_back(new G4QDecayChan(1.00, 3122,-311));
00494     }
00495     if(limit<= 59 && nQ>= 59)    // rho_3 0
00496     {
00497       DecayDB[ 59].push_back(new G4QDecayChan(.019,311,-313));
00498       DecayDB[ 59].push_back(new G4QDecayChan(.038,321,-323));
00499       DecayDB[ 59].push_back(new G4QDecayChan(.046,311,-311));
00500       DecayDB[ 59].push_back(new G4QDecayChan(.054,321,-321));
00501       DecayDB[ 59].push_back(new G4QDecayChan(.224,111, 223));
00502       DecayDB[ 59].push_back(new G4QDecayChan(.404,111,-211,213));
00503       DecayDB[ 59].push_back(new G4QDecayChan(.584,111, 211,-213));
00504       DecayDB[ 59].push_back(new G4QDecayChan(.764,111, 111,113));
00505       DecayDB[ 59].push_back(new G4QDecayChan(1.00,211,-211));
00506     }
00507     if(limit<= 60 && nQ>= 60)    // rho_3 +
00508     {
00509       DecayDB[ 60].push_back(new G4QDecayChan(.019, 321,-313));
00510       DecayDB[ 60].push_back(new G4QDecayChan(.038,-311, 323));
00511       DecayDB[ 60].push_back(new G4QDecayChan(.054, 321,-311));
00512       DecayDB[ 60].push_back(new G4QDecayChan(.224, 211, 223));
00513       DecayDB[ 60].push_back(new G4QDecayChan(.404,211,-211,213));
00514       DecayDB[ 60].push_back(new G4QDecayChan(.584,211,211,-213));
00515       DecayDB[ 60].push_back(new G4QDecayChan(.764,211,111,113));
00516       DecayDB[ 60].push_back(new G4QDecayChan(1.00, 211, 111));
00517     }
00518     if(limit<= 61 && nQ>= 61)    // omega_3
00519     {
00520       DecayDB[ 61].push_back(new G4QDecayChan(.020,211,-211,223));
00521       DecayDB[ 61].push_back(new G4QDecayChan(.040,111, 111,223));
00522       DecayDB[ 61].push_back(new G4QDecayChan(.060, 211,-213));
00523       DecayDB[ 61].push_back(new G4QDecayChan(.080,-211, 213));
00524       DecayDB[ 61].push_back(new G4QDecayChan(1.00, 111, 113));
00525     }
00526     if(limit<= 62 && nQ>= 62)    // K_3 0
00527     {
00528       DecayDB[ 62].push_back(new G4QDecayChan(.030, 111, 315));
00529       DecayDB[ 62].push_back(new G4QDecayChan(.060,-211, 325));
00530       DecayDB[ 62].push_back(new G4QDecayChan(.340, 311, 331));
00531       DecayDB[ 62].push_back(new G4QDecayChan(.400, 111, 313));
00532       DecayDB[ 62].push_back(new G4QDecayChan(.520,-211, 323));
00533       DecayDB[ 62].push_back(new G4QDecayChan(.620, 311, 113));
00534       DecayDB[ 62].push_back(new G4QDecayChan(.820, 321,-213));
00535       DecayDB[ 62].push_back(new G4QDecayChan(.940,-211, 321));
00536       DecayDB[ 62].push_back(new G4QDecayChan(1.00, 111, 311));
00537     }
00538     if(limit<= 63 && nQ>= 63)    // K_3 +
00539     {
00540       DecayDB[ 63].push_back(new G4QDecayChan(.030, 211, 315));
00541       DecayDB[ 63].push_back(new G4QDecayChan(.060, 111, 325));
00542       DecayDB[ 63].push_back(new G4QDecayChan(.340, 321, 331));
00543       DecayDB[ 63].push_back(new G4QDecayChan(.400, 211, 313));
00544       DecayDB[ 63].push_back(new G4QDecayChan(.520, 111, 323));
00545       DecayDB[ 63].push_back(new G4QDecayChan(.620, 311, 213));
00546       DecayDB[ 63].push_back(new G4QDecayChan(.820, 321, 113));
00547       DecayDB[ 63].push_back(new G4QDecayChan(.940, 211, 311));
00548       DecayDB[ 63].push_back(new G4QDecayChan(1.00, 111, 321));
00549     }
00550     if(limit<= 64 && nQ>= 64)    // phi_3
00551     {
00552       DecayDB[ 64].push_back(new G4QDecayChan(.250, 321,-321));
00553       DecayDB[ 64].push_back(new G4QDecayChan(.500, 311,-311));
00554       DecayDB[ 64].push_back(new G4QDecayChan(.625, 321,-323));
00555       DecayDB[ 64].push_back(new G4QDecayChan(.750,-321, 323));
00556       DecayDB[ 64].push_back(new G4QDecayChan(.875, 311,-313));
00557       DecayDB[ 64].push_back(new G4QDecayChan(1.00,-311, 313));
00558     }
00559     if(limit<= 65 && nQ>= 65)    // DELTA_7/2 -
00560     {
00561       DecayDB[ 65].push_back(new G4QDecayChan(.200, 2112,-213 ));
00562       DecayDB[ 65].push_back(new G4QDecayChan(.320,-211 , 2114));
00563       DecayDB[ 65].push_back(new G4QDecayChan(.500, 111 , 1114));
00564       DecayDB[ 65].push_back(new G4QDecayChan(1.00, 2112,-211 ));
00565     }
00566     if(limit<= 66 && nQ>= 66)    // DELTA_7/2 0
00567     {
00568       DecayDB[ 66].push_back(new G4QDecayChan(.133, 2112, 113 ));
00569       DecayDB[ 66].push_back(new G4QDecayChan(.200, 2212,-213 ));
00570       DecayDB[ 66].push_back(new G4QDecayChan(.360,-211 , 2214));
00571       DecayDB[ 66].push_back(new G4QDecayChan(.480, 211 , 1114));
00572       DecayDB[ 66].push_back(new G4QDecayChan(.500, 111 , 2114));
00573       DecayDB[ 66].push_back(new G4QDecayChan(.666, 2212,-211 ));
00574       DecayDB[ 66].push_back(new G4QDecayChan(1.00, 2112, 111 ));
00575     }
00576     if(limit<= 67 && nQ>= 67)    // DELTA_7/2 +
00577     {
00578       DecayDB[ 67].push_back(new G4QDecayChan(.133, 2112, 213 ));
00579       DecayDB[ 67].push_back(new G4QDecayChan(.200, 2212, 113 ));
00580       DecayDB[ 67].push_back(new G4QDecayChan(.360,-211 , 2224));
00581       DecayDB[ 67].push_back(new G4QDecayChan(.480, 211 , 2114));
00582       DecayDB[ 67].push_back(new G4QDecayChan(.500, 111 , 2214));
00583       DecayDB[ 67].push_back(new G4QDecayChan(.666, 2112, 211 ));
00584       DecayDB[ 67].push_back(new G4QDecayChan(1.00, 2212, 111 ));
00585     }
00586     if(limit<= 68 && nQ>= 68)    // DELTA_7/2 ++
00587     {
00588       DecayDB[ 68].push_back(new G4QDecayChan(.200, 2212, 213 ));
00589       DecayDB[ 68].push_back(new G4QDecayChan(.320, 211 , 2214));
00590       DecayDB[ 68].push_back(new G4QDecayChan(.500, 111 , 2224));
00591       DecayDB[ 68].push_back(new G4QDecayChan(1.00, 2212, 211 ));
00592     }
00593     if(limit<= 69 && nQ>= 69)     // LAMBDA_7/2
00594     {
00595       DecayDB[ 69].push_back(new G4QDecayChan(.160, 3122, 223 ));
00596       DecayDB[ 69].push_back(new G4QDecayChan(.260, 2112,-313 ));
00597       DecayDB[ 69].push_back(new G4QDecayChan(.360, 2212,-323 ));
00598       DecayDB[ 69].push_back(new G4QDecayChan(.400, 3312, 321 ));
00599       DecayDB[ 69].push_back(new G4QDecayChan(.440, 3322, 311 ));
00600       DecayDB[ 69].push_back(new G4QDecayChan(.480, 3122, 221 ));
00601       DecayDB[ 69].push_back(new G4QDecayChan(.520, 2112,-311 ));
00602       DecayDB[ 69].push_back(new G4QDecayChan(.560, 2212,-321 ));
00603       DecayDB[ 69].push_back(new G4QDecayChan(.600, 3112, 211 ));
00604       DecayDB[ 69].push_back(new G4QDecayChan(.800, 3222,-211 ));
00605       DecayDB[ 69].push_back(new G4QDecayChan(1.00, 3212, 111 ));
00606     }
00607     if(limit<= 70 && nQ>= 70)    // SIGMA_7/2 -
00608     {
00609       DecayDB[ 70].push_back(new G4QDecayChan(.030, 2112,-323 ));
00610       DecayDB[ 70].push_back(new G4QDecayChan(.165,-311 , 1114));
00611       DecayDB[ 70].push_back(new G4QDecayChan(.210,-321 , 2114));
00612       DecayDB[ 70].push_back(new G4QDecayChan(.390,-211 , 3124));
00613       DecayDB[ 70].push_back(new G4QDecayChan(.450,-211 , 3214));
00614       DecayDB[ 70].push_back(new G4QDecayChan(.510, 111 , 3114));
00615       DecayDB[ 70].push_back(new G4QDecayChan(.540, 311 , 3314));
00616       DecayDB[ 70].push_back(new G4QDecayChan(.570,-211 , 3212));
00617       DecayDB[ 70].push_back(new G4QDecayChan(.600, 111 , 3112));
00618       DecayDB[ 70].push_back(new G4QDecayChan(.780,-321 , 2112));
00619       DecayDB[ 70].push_back(new G4QDecayChan(1.00,-211 , 3122));
00620     }
00621     if(limit<= 71 && nQ>= 71)    // SIGMA_7/2 0
00622     {
00623       DecayDB[ 71].push_back(new G4QDecayChan(.015, 2112,-313 ));
00624       DecayDB[ 71].push_back(new G4QDecayChan(.030, 2212,-321 ));
00625       DecayDB[ 71].push_back(new G4QDecayChan(.120,-311 , 2114));
00626       DecayDB[ 71].push_back(new G4QDecayChan(.210,-321 , 2214));
00627       DecayDB[ 71].push_back(new G4QDecayChan(.390, 111 , 3124));
00628       DecayDB[ 71].push_back(new G4QDecayChan(.450,-211 , 3224));
00629       DecayDB[ 71].push_back(new G4QDecayChan(.510, 211 , 3114));
00630       DecayDB[ 71].push_back(new G4QDecayChan(.525, 311 , 3324));
00631       DecayDB[ 71].push_back(new G4QDecayChan(.540, 321 , 3314));
00632       DecayDB[ 71].push_back(new G4QDecayChan(.570,-211 , 3222));
00633       DecayDB[ 71].push_back(new G4QDecayChan(.600, 211 , 3112));
00634       DecayDB[ 71].push_back(new G4QDecayChan(.690,-311 , 2112));
00635       DecayDB[ 71].push_back(new G4QDecayChan(.780,-321 , 2212));
00636       DecayDB[ 71].push_back(new G4QDecayChan(1.00, 111 , 3122));
00637     }
00638     if(limit<= 72 && nQ>= 72)    // SIGMA_7/2 +
00639     {
00640       DecayDB[ 72].push_back(new G4QDecayChan(.030, 2212,-313 ));
00641       DecayDB[ 72].push_back(new G4QDecayChan(.165,-321 , 2224));
00642       DecayDB[ 72].push_back(new G4QDecayChan(.210,-311 , 2214));
00643       DecayDB[ 72].push_back(new G4QDecayChan(.390, 211 , 3124));
00644       DecayDB[ 72].push_back(new G4QDecayChan(.450, 211 , 3214));
00645       DecayDB[ 72].push_back(new G4QDecayChan(.510, 111 , 3224));
00646       DecayDB[ 72].push_back(new G4QDecayChan(.540, 321 , 3324));
00647       DecayDB[ 72].push_back(new G4QDecayChan(.570, 211 , 3212));
00648       DecayDB[ 72].push_back(new G4QDecayChan(.600, 111 , 3222));
00649       DecayDB[ 72].push_back(new G4QDecayChan(.780,-311 , 2212));
00650       DecayDB[ 72].push_back(new G4QDecayChan(1.00, 211 , 3122));
00651     }
00652     if(limit<= 73 && nQ>= 73)    // KSI_7/2 -
00653     {
00654       DecayDB[ 73].push_back(new G4QDecayChan(.400, 3112,-311));
00655       DecayDB[ 73].push_back(new G4QDecayChan(.800, 3212,-321));
00656       DecayDB[ 73].push_back(new G4QDecayChan(1.00, 3122,-321));
00657     }
00658     if(limit<= 74 && nQ>= 74)    // KSI_7/2 0
00659     {
00660       DecayDB[ 74].push_back(new G4QDecayChan(.400, 3212,-311));
00661       DecayDB[ 74].push_back(new G4QDecayChan(.800, 3222,-321));
00662       DecayDB[ 74].push_back(new G4QDecayChan(1.00, 3122,-311));
00663     }
00664     if(limit<= 75 && nQ>= 75)    // OMEGA_7/2 -
00665     {
00666       DecayDB[ 75].push_back(new G4QDecayChan(.250,-311 , 3314));
00667       DecayDB[ 75].push_back(new G4QDecayChan(.500,-321 , 3324));
00668       DecayDB[ 75].push_back(new G4QDecayChan(.750, 3312,-313 ));
00669       DecayDB[ 75].push_back(new G4QDecayChan(1.00, 3322,-323 ));
00670     }
00671     if(limit<= 76 && nQ>= 76)    // a_4 0
00672     {
00673       DecayDB[ 76].push_back(new G4QDecayChan(.200, 311,-311));
00674       DecayDB[ 76].push_back(new G4QDecayChan(.400, 321,-321));
00675       DecayDB[ 76].push_back(new G4QDecayChan(.600, 111, 221));
00676       DecayDB[ 76].push_back(new G4QDecayChan(1.00, 111, 211,-211));
00677     }
00678     if(limit<= 77 && nQ>= 77)    // a_4 +
00679     {
00680       DecayDB[ 77].push_back(new G4QDecayChan(.400, 321,-311));
00681       DecayDB[ 77].push_back(new G4QDecayChan(.600, 211, 221));
00682       DecayDB[ 77].push_back(new G4QDecayChan(.800, 211, 211,-211));
00683       DecayDB[ 77].push_back(new G4QDecayChan(1.00, 211, 111, 111));
00684     }
00685     if(limit<= 78 && nQ>= 78)    // f_4 0
00686     {
00687       DecayDB[ 78].push_back(new G4QDecayChan(.020, 333, 333));
00688       DecayDB[ 78].push_back(new G4QDecayChan(.340, 223, 223));
00689       DecayDB[ 78].push_back(new G4QDecayChan(.350, 221, 221));
00690       DecayDB[ 78].push_back(new G4QDecayChan(.360, 311,-311));
00691       DecayDB[ 78].push_back(new G4QDecayChan(.370, 321,-321));
00692       DecayDB[ 78].push_back(new G4QDecayChan(.670, 213,-213));
00693       DecayDB[ 78].push_back(new G4QDecayChan(.820, 113, 113));
00694       DecayDB[ 78].push_back(new G4QDecayChan(.940, 211,-211));
00695       DecayDB[ 78].push_back(new G4QDecayChan(1.00, 111, 111));
00696     }
00697     if(limit<= 79 && nQ>= 79)    // K_4 0
00698     {
00699       DecayDB[ 79].push_back(new G4QDecayChan(.060, 333, 313));
00700       DecayDB[ 79].push_back(new G4QDecayChan(.260, 223, 313));
00701       DecayDB[ 79].push_back(new G4QDecayChan(.380, 313, 113));
00702       DecayDB[ 79].push_back(new G4QDecayChan(.400, 323,-213));
00703       DecayDB[ 79].push_back(new G4QDecayChan(.500, 223, 311));
00704       DecayDB[ 79].push_back(new G4QDecayChan(.550, 311, 113));
00705       DecayDB[ 79].push_back(new G4QDecayChan(.600, 321,-213));
00706       DecayDB[ 79].push_back(new G4QDecayChan(.700, 311, 113));
00707       DecayDB[ 79].push_back(new G4QDecayChan(.800, 321,-213));
00708       DecayDB[ 79].push_back(new G4QDecayChan(.900, 311, 111));
00709       DecayDB[ 79].push_back(new G4QDecayChan(1.00, 321,-211));
00710     }
00711     if(limit<= 80 && nQ>= 80)    // K_4 +
00712     {
00713       DecayDB[ 80].push_back(new G4QDecayChan(.060, 333, 323));
00714       DecayDB[ 80].push_back(new G4QDecayChan(.260, 223, 323));
00715       DecayDB[ 80].push_back(new G4QDecayChan(.380, 313, 213));
00716       DecayDB[ 80].push_back(new G4QDecayChan(.400, 323, 113));
00717       DecayDB[ 80].push_back(new G4QDecayChan(.500, 223, 321));
00718       DecayDB[ 80].push_back(new G4QDecayChan(.550, 321, 113));
00719       DecayDB[ 80].push_back(new G4QDecayChan(.600, 311, 213));
00720       DecayDB[ 80].push_back(new G4QDecayChan(.700, 311, 211));
00721       DecayDB[ 80].push_back(new G4QDecayChan(.800, 321, 111));
00722       DecayDB[ 80].push_back(new G4QDecayChan(.900, 311, 211));
00723       DecayDB[ 80].push_back(new G4QDecayChan(1.00, 321, 111));
00724     }
00725     if(limit<=81&&nQ>=81)DecayDB[81].push_back(new G4QDecayChan(1., 333,333));//phi_4(2300)
00726     if(limit<=82&&nQ>=82)DecayDB[82].push_back(new G4QDecayChan(1.,2212, 2224));//pDelta++
00727     if(limit<=83&&nQ>=83)DecayDB[83].push_back(new G4QDecayChan(1.,2112, 1114));//nDelta-
00728     if(limit<=84&&nQ>=84)DecayDB[84].push_back(new G4QDecayChan(1.,2224, 2224));//D++D++
00729     if(limit<=85&&nQ>=85)DecayDB[85].push_back(new G4QDecayChan(1.,1114, 1114));//Del-Del-
00730     if(limit<=86&&nQ>=86)DecayDB[86].push_back(new G4QDecayChan(1.,2212,2212,2224));//ppD++
00731     if(limit<=87&&nQ>=87)DecayDB[87].push_back(new G4QDecayChan(1.,2112,2112,1114));//nnD-
00732     if(limit<=88&&nQ>=88)DecayDB[88].push_back(new G4QDecayChan(1.,2212,2224,2224));//p2D++
00733     if(limit<=89&&nQ>=89)DecayDB[89].push_back(new G4QDecayChan(1.,2112,1114,1114));//nD-D-
00734     //if(limit<=90&&nQ>=90)DecayDB[90] = 0; // neutron (n) as a quark exchange fragment
00735     //if(limit<=91&&nQ>=91)DecayDB[91] = 0; // proton (p)  as a quark exchange fragment
00736     //if(limit<=92&&nQ>=92)DecayDB[92] = 0; // neutron (L/Sigma0) as aQuarkExchangeFragment
00737     //if(limit<=93&&nQ>=93)DecayDB[93] = 0; // neutron (Sigma-) as a quarkExchangeFragment
00738     //if(limit<=94&&nQ>=94)DecayDB[94] = 0; // neutron (Sigma+) as a quarkExchangeFragment
00739     //if(limit<=95&&nQ>=95)DecayDB[95] = 0; // neutron (Xi-) as a quark exchange fragment
00740     //if(limit<=96&&nQ>=96)DecayDB[96] = 0; // neutron (Xi0) as a quark exchange fragment
00741     //if(limit<=97&&nQ>=97)DecayDB[97] = 0; // neutron (Omega-) as a quarkExchangeFragment
00742     if(limit<=98&&nQ>=98)DecayDB[98].push_back(new G4QDecayChan(1.,2112, 2112)); //nn (src)
00743     if(limit<=99&&nQ>=99)DecayDB[99].push_back(new G4QDecayChan(1.,2212, 2112)); //d/pn(?)
00744     if(limit<=100&&nQ>=100)DecayDB[100].push_back(new G4QDecayChan(1.,2212,2212));//pp(src)
00745     if(limit<=101&&nQ>=101)DecayDB[101].push_back(new G4QDecayChan(1.,3122,2112));//Ln
00746     if(limit<=102&&nQ>=102)DecayDB[102].push_back(new G4QDecayChan(1.,3122,2212));//Lp
00747     if(limit<=104&&nQ>=104)DecayDB[104].push_back(new G4QDecayChan(1.,3112,2112));//nSig-
00748     if(limit<=103&&nQ>=103)DecayDB[103].push_back(new G4QDecayChan(1.,3122,3122));//LL
00749     if(limit<=105&&nQ>=105)DecayDB[105].push_back(new G4QDecayChan(1.,3222,2212));//pSig+
00750     //if(limit<=106&&nQ>=106)DecayDB[106] = 0; // t
00751     //if(limit<=107&&nQ>=107)DecayDB[107] = 0; // He3
00752     //Lnn=>Lambda+n+n decay to avoid the final state Hypernucleus
00753     if(limit<=108&&nQ>=108)DecayDB[108].push_back(new G4QDecayChan(1.,3122,2112,2112));
00754     if(limit<=109&&nQ>=109)DecayDB[109].push_back(new G4QDecayChan(1.,3122,90001001));// Ld
00755     //Lpp=>Lambda+p+p decay to avoid the final state Hypernucleus
00756     if(limit<=110&&nQ>=110)DecayDB[110].push_back(new G4QDecayChan(1.,3122,2212,2212));
00757     //LLn=>Lambda+Lambda+n decay to avoid the final state Hypernucleus
00758     if(limit<=111&&nQ>=111)DecayDB[111].push_back(new G4QDecayChan(1.,3122,3122,2112));
00759     //LLp=>Lambda+Lambda+p decay to avoid the final state Hypernucleus
00760     if(limit<=112&&nQ>=112)DecayDB[112].push_back(new G4QDecayChan(1.,3122,3122,2212));
00761     // nnSigma-=>n+n+Sigma- decay to avoid the final state Hypernucleus
00762     if(limit<=113&&nQ>=113)DecayDB[113].push_back(new G4QDecayChan(1.,2112,2112,3112));
00763     // ------- Nuclear fragments
00764     //if(limit<=114 && nQ>=114)
00765     //{
00766     //  if(limit<114) limit=101;
00767     //  for (int i=limit; i<nQ; i++) DecayDB[i] = 0;
00768     //}
00769     //Update the limit
00770     limit=nQ+1;
00771 #ifdef debug
00772     G4cout<<"G4QParticle::InitDecayVector: limit is set to "<<limit<<G4endl;
00773 #endif
00774   }
00775   //if(!nQ)G4cout<<"G4QParticle::InitDecayVector:Q=0,nD="<<DecayDB[abs(nQ)].size()<<G4endl;
00776   return DecayDB[std::abs(nQ)];
00777 }
00778 
00779 // Initialize the Particle by a Q Code
00780 void G4QParticle::InitQParticle(G4int theQCode)
00781 {
00782   aQPDG.InitByQCode(theQCode);
00783   aQuarkCont = aQPDG.GetQuarkContent();
00784   aDecay     = InitDecayVector(theQCode);
00785   //if(!theQCode)G4cout<<"G4QPar::InitQP:PDG="<<GetPDGCode()<<",n="<<aDecay.size()<<G4endl;
00786 }
00787 
00788 // Initialize the Particle by a PDG Code
00789 void G4QParticle::InitPDGParticle(G4int thePDGCode)
00790 {
00791   aQPDG      = G4QPDGCode(thePDGCode);
00792   aQuarkCont = aQPDG.GetQuarkContent();
00793   aDecay     = InitDecayVector(aQPDG.GetQCode());
00794 }

Generated on Mon May 27 17:49:38 2013 for Geant4 by  doxygen 1.4.7