128{
129
130
131
132
133#ifdef G4VERBOSE
135#endif
136
139
140
142
143
146 for (
G4int index=0; index<3; index++){
148 sumofdaughtermass += daughtermass[index];
149 }
150 G4double xmax = parentmass-sumofdaughtermass;
151
152
155
156
158 delete parentparticle;
159
160
162
163
170 do {
172 p = std::sqrt(x*(x+2.0*dm));
174 r = p*(x+dm)*(xmax-x)*(xmax-x)*(1.0+
aENuCorr*p/(x+dm)*w);
176 } while (r < r0);
177
178
179
180
182 G4double theta = std::acos(costheta)*rad;
187
188
189 daughtermomentum[0] = p;
191 direction0 = rm * direction0;
195
196
198 eNu = (parentmass-daughtermass[2])*(parentmass+daughtermass[2])+(dm*dm)-2.*parentmass*(x+dm);
199 eNu /= 2.*(parentmass+p*w-(x+dm));
201 G4double sinn = std::sqrt((1.0-cosn)*(1.0+cosn));
202
204 direction1 = rm * direction1;
208
209
211 eP = parentmass-eNu-(x+dm)-daughtermass[2];
214 G4double pP = std::sqrt(eP*(eP+2.*daughtermass[2]));
219
220
221
222#ifdef G4VERBOSE
224 G4cout <<
"G4NeutronBetaDecayChannel::DecayIt ";
225 G4cout <<
" create decay products in rest frame " <<
G4endl;
227 }
228#endif
229 return products;
230}
HepRotation & rotateZ(double delta)
HepRotation & rotateY(double delta)
G4int PushProducts(G4DynamicParticle *aParticle)
G4double GetPDGMass() const
G4ParticleDefinition * parent
G4ParticleDefinition ** daughters