56 const G4double yl = ((1.-xl) + std::sqrt((1-xl)*(1-xl)+4*beta*beta))/2.;
58 const G4double xu = 1. - (yl - std::sqrt(yl*yl-4.*beta*beta))/2.;
62 return cib*(1.-
y)*(1.+((1.-x)*(1.-x)))/((x*x)*(x+y-1.)) +
63 csdp*(1.-x)*((x+y-1.)*(x+y-1.)) +
64 csdm*(1.-x)*((1.-
y)*(1.-y)) +
66 cig*(1.-y)*(1.-x+(x*
x)/(x+y-1.))/x;
84 if (theParentName ==
"pi+") {
91 }
else if (theParentName ==
"pi-") {
101 G4cout <<
"G4RadiativePionDecayChannel:: constructor :";
102 G4cout <<
" parent particle is not charged pion but ";
119 if (
this != &right) {
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;
262 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
263 G4cout <<
" create decay products in rest frame " <<
G4endl;