50 const G4double xl = 2.*0.1*MeV/139.57*MeV;
51 const G4double yl = ((1.-xl) + std::sqrt((1-xl)*(1-xl)+4*beta*beta))/2.;
53 const G4double xu = 1. - (yl - std::sqrt(yl*yl-4.*beta*beta))/2.;
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)
211 G4double cthetaGE = (y*(x-2.)+2.*(1.-x+beta*beta)) /
212 (x*std::sqrt(y*y-4.*beta*beta));
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;
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)