58 return cib*(1.-y)*(1.+((1.-x)*(1.-x)))/((x*x)*(x+y-1.)) +
59 csdp*(1.-x)*((x+y-1.)*(x+y-1.)) +
60 csdm*(1.-x)*((1.-y)*(1.-y)) +
62 cig*(1.-y)*(1.-x+(x*x)/(x+y-1.))/x;
81 if (theParentName ==
"pi+")
90 else if (theParentName ==
"pi-")
104 G4cout <<
"G4RadiativePionDecayChannel::G4PionRadiativeDecayChannel()"
106 G4cout <<
"Parent particle is not charged pion: ";
162 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
174 const G4int N_DAUGHTER=3;
177 for (
G4int index=0; index<N_DAUGHTER; ++index)
191 delete parentparticle;
195 const std::size_t MAX_LOOP=1000;
197 for (std::size_t loop_counter1=0; loop_counter1<MAX_LOOP; ++loop_counter1)
199 for (std::size_t loop_counter2=0; loop_counter2<MAX_LOOP; ++loop_counter2)
217 if (E < EMASS) E = EMASS;
222 daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
225 G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
244 daughtermomentum[1] = G;
246 G4double sthetaGE = std::sqrt(1.-cthetaGE*cthetaGE);
254 px = sthetaGE*cphiGE;
255 py = sthetaGE*sphiGE;
271 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt() -";
272 G4cout <<
" create decay products in rest frame " <<
G4endl;
static constexpr double twopi
static constexpr double rad
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
Hep3Vector & rotateUz(const Hep3Vector &)
G4int PushProducts(G4DynamicParticle *aParticle)
G4double GetPDGMass() const
virtual ~G4PionRadiativeDecayChannel()
G4PionRadiativeDecayChannel()
G4PionRadiativeDecayChannel & operator=(const G4PionRadiativeDecayChannel &)
virtual G4DecayProducts * DecayIt(G4double)
G4ParticleDefinition ** G4MT_daughters
void CheckAndFillParent()
void SetBR(G4double value)
G4String ** daughters_name
G4int GetVerboseLevel() const
void SetNumberOfDaughters(G4int value)
G4ParticleDefinition * G4MT_parent
void CheckAndFillDaughters()
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
void ClearDaughtersName()
void SetParent(const G4ParticleDefinition *particle_type)
G4double D2W(const G4double x, const G4double y)