149 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
161 const G4int N_DAUGHTER=3;
164 for (
G4int index=0; index<N_DAUGHTER; index++){
166 sumofdaughtermass += daughtermass[index];
177 delete parentparticle;
181 const size_t MAX_LOOP=1000;
183 for (
size_t loop_counter1=0; loop_counter1<MAX_LOOP; ++loop_counter1){
184 for (
size_t loop_counter2=0; loop_counter2<MAX_LOOP; ++loop_counter2){
197 G4double cthetaGE = (y*(x-2.)+2.*(1.-x+beta*beta)) /
198 (x*std::sqrt(y*y-4.*beta*beta));
209 if (E < EMASS) E = EMASS;
214 daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
217 G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
236 daughtermomentum[1] = G;
238 G4double sthetaGE = std::sqrt(1.-cthetaGE*cthetaGE);
246 px = sthetaGE*cphiGE;
247 py = sthetaGE*sphiGE;
252 direction1.rotateUz(direction0);
262 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
263 G4cout <<
" create decay products in rest frame " <<
G4endl;
void CheckAndFillDaughters()
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
static constexpr double rad
static constexpr double twopi
G4GLOB_DLL std::ostream G4cout
G4int GetVerboseLevel() const
G4double GetPDGMass() const
void CheckAndFillParent()