165{
166
167
168
169#ifdef G4VERBOSE
171#endif
172
173
176 }
178
179
182 }
186
187
188
189 G4double daughterP[3], daughterE[3];
192 do {
196 } while ( r > w);
197
198
199#ifdef G4VERBOSE
204 }
205#endif
206
209 delete direction;
210
211
213 delete parentparticle;
214
215
216 G4double costheta, sintheta, phi, sinphi, cosphi;
217 G4double costhetan, sinthetan, phin, sinphin, cosphin;
218
219
221 sintheta = std::sqrt((1.0-costheta)*(1.0+costheta));
223 sinphi = std::sin(phi);
224 cosphi = std::cos(phi);
225 direction =
new G4ThreeVector(sintheta*cosphi,sintheta*sinphi,costheta);
230
231
232 costhetan = (daughterP[1]*daughterP[1]-daughterP[2]*daughterP[2]-daughterP[0]*daughterP[0])/(2.0*daughterP[2]*daughterP[0]);
233 sinthetan = std::sqrt((1.0-costhetan)*(1.0+costhetan));
235 sinphin = std::sin(phin);
236 cosphin = std::cos(phin);
237 direction->
setX( sinthetan*cosphin*costheta*cosphi - sinthetan*sinphin*sinphi + costhetan*sintheta*cosphi);
238 direction->
setY( sinthetan*cosphin*costheta*sinphi + sinthetan*sinphin*cosphi + costhetan*sintheta*sinphi);
239 direction->
setZ( -sinthetan*cosphin*sintheta + costhetan*costheta);
240
244
245
247 daughterparticle =
250
251#ifdef G4VERBOSE
253 G4cout <<
"G4KL3DecayChannel::DecayIt ";
254 G4cout <<
" create decay products in rest frame " <<
G4endl;
255 G4cout <<
" decay products address=" << products <<
G4endl;
257 }
258#endif
259 delete direction;
260 return products;
261}
CLHEP::Hep3Vector G4ThreeVector
G4int PushProducts(G4DynamicParticle *aParticle)
void PhaseSpace(G4double Mparent, const G4double *Mdaughter, G4double *Edaughter, G4double *Pdaughter)
G4double DalitzDensity(G4double Epi, G4double El, G4double Enu)
G4double GetPDGMass() const
G4String ** daughters_name
G4ParticleDefinition * parent
G4ParticleDefinition ** daughters