00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
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
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
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
00101 if(nDC) std::for_each(aDecay.begin(), aDecay.end(), DeleteQDecayChan());
00102
00103 aDecay.clear();
00104 }
00105
00106
00107 const G4QParticle& G4QParticle::operator=(const G4QParticle &right)
00108 {
00109 if(this != &right)
00110 {
00111 aQPDG = right.aQPDG;
00112
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
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
00153 G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ)
00154 {
00155
00156
00157 static const G4int nP = 512;
00158
00159 static G4QDecayChanVector DecayDB[nP];
00160 static int limit= 0;
00161 if(nQ>=limit && nQ<nP)
00162 {
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172 if(limit<= 7 && nQ>= 7)
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));
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));
00181 DecayDB[ 7].push_back(new G4QDecayChan(.500,2212,-2212));
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)
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));
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
00202
00203 if(limit<= 11 && nQ>= 11)
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)
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)
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));
00220 DecayDB[ 13].push_back(new G4QDecayChan(1.00,111, 111));
00221 }
00222
00223
00224 if(limit<= 16 && nQ>= 16)
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));
00230 DecayDB[ 16].push_back(new G4QDecayChan(1.00, 22, 22));
00231 }
00232
00233
00234
00235
00236
00237
00238 if(limit<= 19 && nQ>= 19)
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
00248
00249
00250
00251
00252
00253
00254
00255 if(limit<= 24 &&nQ>=24)DecayDB[24].push_back(new G4QDecayChan(1.,3122,22));
00256
00257
00258
00259
00260
00261
00262
00263 if(limit<= 28 && nQ>= 28)DecayDB[ 28].push_back(new G4QDecayChan(1., 211,-211));
00264 if(limit<= 29 && nQ>= 29)DecayDB[ 29].push_back(new G4QDecayChan(1., 211, 111));
00265 if(limit<= 30 && nQ>= 30)
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));
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)
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)
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)
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));
00295 if(limit<= 35 && nQ>= 35)
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)
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));
00306 if(limit<= 38 && nQ>= 38)
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)
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)
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)
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)
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)
00346 {
00347 DecayDB[ 43].push_back(new G4QDecayChan(.667,3312, 211));
00348 DecayDB[ 43].push_back(new G4QDecayChan(1.00,3322, 111));
00349 }
00350
00351
00352
00353
00354
00355
00356 if(limit<= 45 && nQ>= 45)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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));
00726 if(limit<=82&&nQ>=82)DecayDB[82].push_back(new G4QDecayChan(1.,2212, 2224));
00727 if(limit<=83&&nQ>=83)DecayDB[83].push_back(new G4QDecayChan(1.,2112, 1114));
00728 if(limit<=84&&nQ>=84)DecayDB[84].push_back(new G4QDecayChan(1.,2224, 2224));
00729 if(limit<=85&&nQ>=85)DecayDB[85].push_back(new G4QDecayChan(1.,1114, 1114));
00730 if(limit<=86&&nQ>=86)DecayDB[86].push_back(new G4QDecayChan(1.,2212,2212,2224));
00731 if(limit<=87&&nQ>=87)DecayDB[87].push_back(new G4QDecayChan(1.,2112,2112,1114));
00732 if(limit<=88&&nQ>=88)DecayDB[88].push_back(new G4QDecayChan(1.,2212,2224,2224));
00733 if(limit<=89&&nQ>=89)DecayDB[89].push_back(new G4QDecayChan(1.,2112,1114,1114));
00734
00735
00736
00737
00738
00739
00740
00741
00742 if(limit<=98&&nQ>=98)DecayDB[98].push_back(new G4QDecayChan(1.,2112, 2112));
00743 if(limit<=99&&nQ>=99)DecayDB[99].push_back(new G4QDecayChan(1.,2212, 2112));
00744 if(limit<=100&&nQ>=100)DecayDB[100].push_back(new G4QDecayChan(1.,2212,2212));
00745 if(limit<=101&&nQ>=101)DecayDB[101].push_back(new G4QDecayChan(1.,3122,2112));
00746 if(limit<=102&&nQ>=102)DecayDB[102].push_back(new G4QDecayChan(1.,3122,2212));
00747 if(limit<=104&&nQ>=104)DecayDB[104].push_back(new G4QDecayChan(1.,3112,2112));
00748 if(limit<=103&&nQ>=103)DecayDB[103].push_back(new G4QDecayChan(1.,3122,3122));
00749 if(limit<=105&&nQ>=105)DecayDB[105].push_back(new G4QDecayChan(1.,3222,2212));
00750
00751
00752
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));
00755
00756 if(limit<=110&&nQ>=110)DecayDB[110].push_back(new G4QDecayChan(1.,3122,2212,2212));
00757
00758 if(limit<=111&&nQ>=111)DecayDB[111].push_back(new G4QDecayChan(1.,3122,3122,2112));
00759
00760 if(limit<=112&&nQ>=112)DecayDB[112].push_back(new G4QDecayChan(1.,3122,3122,2212));
00761
00762 if(limit<=113&&nQ>=113)DecayDB[113].push_back(new G4QDecayChan(1.,2112,2112,3112));
00763
00764
00765
00766
00767
00768
00769
00770 limit=nQ+1;
00771 #ifdef debug
00772 G4cout<<"G4QParticle::InitDecayVector: limit is set to "<<limit<<G4endl;
00773 #endif
00774 }
00775
00776 return DecayDB[std::abs(nQ)];
00777 }
00778
00779
00780 void G4QParticle::InitQParticle(G4int theQCode)
00781 {
00782 aQPDG.InitByQCode(theQCode);
00783 aQuarkCont = aQPDG.GetQuarkContent();
00784 aDecay = InitDecayVector(theQCode);
00785
00786 }
00787
00788
00789 void G4QParticle::InitPDGParticle(G4int thePDGCode)
00790 {
00791 aQPDG = G4QPDGCode(thePDGCode);
00792 aQuarkCont = aQPDG.GetQuarkContent();
00793 aDecay = InitDecayVector(aQPDG.GetQCode());
00794 }