36 #include "G4Pythia6Decayer.hh"
58 fDecayType(fgkDefaultDecayType),
59 fDecayProductsArray(0)
94 particleDefinition = particleTable->
FindParticle(pdgEncoding);
96 if ( particleDefinition == 0 && warn) {
98 <<
"G4Pythia6Decayer: GetParticleDefinition: " << std::endl
99 <<
"G4ParticleTable::FindParticle() for particle with PDG = "
101 <<
" failed." << std::endl;
104 return particleDefinition;
117 if ( ! particleDefinition )
return 0;
125 return dynamicParticle;
163 for (
G4int i=1; i<=5; i++ )
186 for (
G4int channel= ifirst; channel <= ilast; channel++) {
210 for (
G4int channel = ifirst; channel <= ilast; channel++) {
228 const G4int kNHadrons = 4;
230 G4int hadron[kNHadrons] = {411, 421, 431, 4112};
234 G4int iKstarbar0 = -313;
236 G4int iKMinus = -321;
238 G4int iPiMinus = -211;
240 G4int products[2] = {iKPlus, iPiMinus}, mult[2] = {1, 1};
247 G4int decayP1[kNHadrons][3] = {
248 {iKMinus, iPiPlus, iPiPlus},
249 {iKMinus, iPiPlus, 0 },
250 {iKPlus , iKstarbar0, 0 },
253 G4int decayP2[kNHadrons][3] = {
254 {iKstarbar0, iPiPlus, 0 },
256 {iPhi , iPiPlus, 0 },
261 for (
G4int ihadron = 0; ihadron < kNHadrons; ihadron++ ) {
267 for (channel = ifirst; channel <= ilast; channel++) {
268 if ((pythia6->
GetKFDP(channel,1) == decayP1[ihadron][0] &&
269 pythia6->
GetKFDP(channel,2) == decayP1[ihadron][1] &&
270 pythia6->
GetKFDP(channel,3) == decayP1[ihadron][2] &&
271 pythia6->
GetKFDP(channel,4) == 0) ||
272 (pythia6->
GetKFDP(channel,1) == decayP2[ihadron][0] &&
273 pythia6->
GetKFDP(channel,2) == decayP2[ihadron][1] &&
274 pythia6->
GetKFDP(channel,3) == decayP2[ihadron][2] &&
275 pythia6->
GetKFDP(channel,4) == 0)) {
292 G4int iLambda0 = 3122;
293 G4int iKMinus = -321;
300 for (
G4int channel = ifirst; channel <= ilast; channel++) {
301 if (pythia6->
GetKFDP(channel,1) == iLambda0 &&
302 pythia6->
GetKFDP(channel,2) == iKMinus &&
303 pythia6->
GetKFDP(channel,3) == 0)
326 switch ( decayType ) {
331 products[2] = 100443;
415 products[1] = 100443;
545 p[0] = momentum.
x() /
GeV;
546 p[1] = momentum.
y() /
GeV;
547 p[2] = momentum.
z() /
GeV;
559 Decay(pdgEncoding, p);
572 for (
G4int i=0; i<nofParticles; i++) {
579 if ( status>0 && status<11 &&
585 G4cout <<
" " << i <<
"th particle PDG: " << pdg <<
" ";
592 if (dynamicParticle) {
595 G4cout <<
" G4 particle name: "
608 G4cout <<
"nofParticles for tracking: " << counter <<
G4endl;
611 return decayProducts;