154{
155
156#ifdef G4VERBOSE
158 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
159#endif
160
163
164
166
168
169
172 for (
G4int index=0; index<3; index++){
174 sumofdaughtermass += daughtermass[index];
175 }
176
178
179
183
185 delete parentparticle;
186
188
189 do {
190
191 do {
192
195
196 } while (x+y <= 1.);
197
198 d2w = D2W(x,y);
199
201
202
203
204
205
206 G4double cthetaGE = (y*(x-2.)+2.*(1.-x+beta*beta)) /
207 (x*std::sqrt(y*y-4.*beta*beta));
208
209
210
211
214
215
216
217
218 if (E < EMASS) E = EMASS;
219
220
222
223 daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
224
226 G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
227
231
232
233
237
239
242
244
245 daughtermomentum[1] = G;
246
247 G4double sthetaGE = std::sqrt(1.-cthetaGE*cthetaGE);
248
252
253
254
255 px = sthetaGE*cphiGE;
256 py = sthetaGE*sphiGE;
257 pz = cthetaGE;
258
260
261 direction1.rotateUz(direction0);
262
265
267
268
269#ifdef G4VERBOSE
271 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
272 G4cout <<
" create decay products in rest frame " <<
G4endl;
274 }
275#endif
276
277 return products;
278
279}
G4int PushProducts(G4DynamicParticle *aParticle)
G4double GetPDGMass() const
G4ParticleDefinition * parent
G4ParticleDefinition ** daughters