125 for (
G4int index = 0; index < 3; ++index) {
127 sumofdaughtermass += daughtermass[index];
129 G4double xmax = parentmass - sumofdaughtermass;
137 delete parentparticle;
149 const std::size_t MAX_LOOP = 10000;
150 for (std::size_t loop_counter = 0; loop_counter < MAX_LOOP; ++loop_counter) {
152 p = std::sqrt(x * (x + 2.0 * dm));
154 r = p * (x + dm) * (xmax - x) * (xmax - x) * (1.0 +
aENuCorr * p / (x + dm) * w);
163 G4double theta = std::acos(costheta) * rad;
170 daughtermomentum[0] = p;
172 direction0 = rm * direction0;
173 auto daughterparticle0 =
175 products->PushProducts(daughterparticle0);
179 eNu = (parentmass - daughtermass[2]) * (parentmass + daughtermass[2]) + (dm * dm)
180 - 2. * parentmass * (x + dm);
181 eNu /= 2. * (parentmass + p * w - (x + dm));
184 G4double sinn = std::sqrt((1.0 - cosn) * (1.0 + cosn));
186 G4ThreeVector direction1(sinn * std::cos(phin), sinn * std::sin(phin), cosn);
187 direction1 = rm * direction1;
189 products->PushProducts(daughterparticle1);
193 eP = parentmass - eNu - (x + dm) - daughtermass[2];
196 G4double pP = std::sqrt(eP * (eP + 2. * daughtermass[2]));
197 G4ThreeVector direction2(pPx / pP * std::cos(phin), pPx / pP * std::sin(phin), pPz / pP);
198 direction2 = rm * direction2;
200 products->PushProducts(daughterparticle2);
205 G4cout <<
"G4NeutronBetaDecayChannel::DecayIt ";
206 G4cout <<
" create decay products in rest frame " <<
G4endl;
207 products->DumpInfo();
G4double GetPDGMass() const