59 G4MuonRadiativeDecayChannelWithSpin::
 
   60            G4MuonRadiativeDecayChannelWithSpin(
const G4String& theParentName,
 
   66   if (theParentName == 
"mu+") {
 
   74   } 
else if (theParentName == 
"mu-") {
 
   85       G4cout << 
"G4RadiativeMuonDecayChannel:: constructor :";
 
   86       G4cout << 
" parent particle is not muon but ";
 
  100   parent_polarization = right.parent_polarization;
 
  105   if (
this != &right) { 
 
  126     parent_polarization = right.parent_polarization;
 
  137                  G4cout << 
"G4MuonRadiativeDecayChannelWithSpin::DecayIt ";
 
  153     sumofdaughtermass += daughtermass[
index];
 
  164   delete parentparticle;
 
  171   G4double cthetaE, cthetaG, cthetaGE, phiE, phiG;
 
  196         if(std::fabs((xx*xx)+(yy*yy)+(zz*zz)-(x*x))>0.001){
 
  202         G4double sthetaE = std::sqrt((xx*xx)+(yy*yy))/
x;
 
  225         if(std::fabs((xx*xx)+(yy*yy)+(zz*zz)-(y*y))>0.001){
 
  231         G4double sthetaG = std::sqrt((xx*xx)+(yy*yy))/
y;
 
  259         cthetaGE = cthetaE*cthetaG+sthetaE*sthetaG*std::cos(phiE-phiG);
 
  268         G4double term1 = x*((1.0-eps)*(1.0-eps))+2.0*eps;
 
  269         G4double beta  = std::sqrt( x*((1.0-eps)*(1.0-eps))*
 
  270                                    (x*((1.0-eps)*(1.0-eps))+4.0*eps))/term1;
 
  276         Qsqr  = (1.0-term1-term3+term0+0.5*term6)/((1.0-eps)*(1.0-eps));
 
  282      } 
while ( Qsqr<0.0 || Qsqr>1.0 );
 
  295      som0 = fron(Pmu,x,y,cthetaE,cthetaG,cthetaGE);
 
  320   G4double E = EMMU/2.*(x*((1.-eps)*(1.-eps))+2.*eps);
 
  321   G4double G = EMMU/2.*y*(1.-eps*eps);
 
  326   if(E < EMASS) E = EMASS;
 
  331   daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
 
  333   G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
 
  345   direction0.
rotateUz(parent_polarization);
 
  352   daughtermomentum[1] = G;
 
  354   G4double sthetaG = std::sqrt(1.-cthetaG*cthetaG);
 
  366   direction1.
rotateUz(parent_polarization);
 
  376   G4double energy2 = parentmass*(1.0 - (x+
y)/2.0);
 
  378   G4double vmass   = std::sqrt((energy2-
 
  379                                 (daughtermomentum[0]+daughtermomentum[1]))*
 
  381                                 (daughtermomentum[0]+daughtermomentum[1])));
 
  382   G4double beta = (daughtermomentum[0]+daughtermomentum[1])/energy2;
 
  383   beta = -1.0 * std::min(beta,0.99);
 
  386   G4double sinthetan = std::sqrt((1.0-costhetan)*(1.0+costhetan));
 
  391   G4ThreeVector direction2(sinthetan*cosphin,sinthetan*sinphin,costhetan);
 
  401                             direction0.y()+direction1.y(),
 
  402                             direction0.z()+direction1.z());
 
  403   direction34 = direction34.
unit();
 
  406   p4.
boost(direction34.x()*beta,direction34.y()*beta,direction34.z()*beta);
 
  410   p4.
boost(direction34.x()*beta,direction34.y()*beta,direction34.z()*beta);
 
  422     G4cout << 
"G4MuonRadiativeDecayChannelWithSpin::DecayIt ";
 
  423     G4cout << 
"  create decay products in rest frame " <<
G4endl;
 
  449       G4double f_1s  = 12.0*((y*
y)*(1.0-y)+x*y*(2.0-3.0*
y)
 
  450                        +2.0*(x*x)*(1.0-2.0*
y)-2.0*(x*x*x));
 
  452                        -2.0*(x*
x)*(1.0-y-3.0*(y*y))+2.0*(x*x*x)*(1.0+2.0*
y));
 
  453       G4double f1s   = 3.0*((x*
x)*y*(2.0-3.0*y-3.0*(y*y))
 
  454                        -(x*x*x)*y*(4.0+3.0*
y));
 
  457       G4double f_1se = 12.0*(x*y*(1.0-
y)+(x*x)*(2.0-3.0*
y)
 
  459       G4double f0se  = 6.0*(-(x*
x)*(2.0-y-2.0*(y*y))
 
  460                        +(x*x*x)*(2.0+3.0*
y));
 
  464       G4double f_1sg = 12.0*((y*
y)*(1.0-y)+x*y*(1.0-2.0*
y)
 
  466       G4double f0sg  = 6.0*(-x*(y*
y)*(2.0-3.0*y)-(x*
x)*y*(1.0-4.0*y)
 
  472       G4double f_1v  = 8.0*((y*
y)*(3.0-2.0*y)+6.0*x*y*(1.0-
y)
 
  473                        +2.0*(x*x)*(3.0-4.0*
y)-4.0*(x*x*x));
 
  474       G4double f0v   = 8.0*(-x*y*(3.0-y-(y*
y))-(x*
x)*(3.0-y-4.0*(y*y))
 
  475                        +2.0*(x*x*x)*(1.0+2.0*
y));
 
  476       G4double f1v   = 2.0*((x*
x)*y*(6.0-5.0*y-2.0*(y*y))
 
  477                        -2.0*(x*x*x)*y*(4.0+3.0*
y));
 
  481                        +2.0*(x*x)*(1.0-3.0*
y)-4.0*(x*x*x));
 
  482       G4double f0ve  = 4.0*(-(x*
x)*(2.0-3.0*y-4.0*(y*y))
 
  483                        +2.0*(x*x*x)*(2.0+3.0*
y));
 
  487       G4double f_1vg = 8.0*((y*
y)*(1.0-2.0*y)+x*y*(1.0-4.0*
y)
 
  489       G4double f0vg  = 4.0*(2.0*x*(y*
y)*(1.0+y)-(x*
x)*y*(1.0-4.0*y)
 
  495       G4double f_1t  = 8.0*((y*
y)*(3.0-y)+3.0*x*y*(2.0-
y)
 
  496                        +2.0*(x*x)*(3.0-2.0*
y)-2.0*(x*x*x));
 
  498                        -2.0*(x*
x)*(3.0+y-3.0*(y*y))+2.0*(x*x*x)*(1.0+2.0*
y));
 
  499       G4double f1t   = 2.0*((x*
x)*y*(6.0-5.0*y+(y*y))
 
  500                        -(x*x*x)*y*(4.0+3.0*
y));
 
  503       G4double f_1te = -8.0*(x*y*(1.0+3.0*
y)+(x*x)*(2.0+3.0*
y)
 
  505       G4double f0te  = 4.0*((x*
x)*(2.0+3.0*y+4.0*(y*y))
 
  506                        +(x*x*x)*(2.0+3.0*
y));
 
  510       G4double f_1tg = -8.0*((y*
y)*(1.0+y)+x*y+(x*
x)*y);
 
  511       G4double f0tg  = 4.0*(x*(y*
y)*(2.0-y)+(x*
x)*y*(1.0+2.0*y)
 
  513       G4double f1tg  = -2.0*((x*
x)*(y*y)*(1.0-
y)+2.0*(x*x*x)*
y);
 
  516       G4double term = delta+2.0*(me*me)/((mu*mu)*(x*
x));
 
  519       G4double nss = term*f_1s+f0s+delta*f1s+(delta*delta)*f2s;
 
  520       G4double nv = term*f_1v+f0v+delta*f1v+(delta*delta)*f2v;
 
  521       G4double nt = term*f_1t+f0t+delta*f1t+(delta*delta)*f2t;
 
  523       G4double nse = term*f_1se+f0se+delta*f1se+(delta*delta)*f2se;
 
  524       G4double nve = term*f_1ve+f0ve+delta*f1ve+(delta*delta)*f2ve;
 
  525       G4double nte = term*f_1te+f0te+delta*f1te+(delta*delta)*f2te;
 
  527       G4double nsg = term*f_1sg+f0sg+delta*f1sg+(delta*delta)*f2sg;
 
  528       G4double nvg = term*f_1vg+f0vg+delta*f1vg+(delta*delta)*f2vg;
 
  529       G4double ntg = term*f_1tg+f0tg+delta*f1tg+(delta*delta)*f2tg;
 
  535       G4double term1e = 1.0/3.0*(1.0-4.0/3.0*del);
 
  536       G4double term2e = 2.0*nse+5.0*nve-nte;
 
  537       G4double term3e = 2.0*nse-2.0*nve+nte;
 
  539       G4double term1g = 1.0/3.0*(1.0-4.0/3.0*del);
 
  540       G4double term2g = 2.0*nsg+5.0*nvg-ntg;
 
  541       G4double term3g = 2.0*nsg-2.0*nvg+ntg;
 
  543       G4double som00 = term1+(1.0-4.0/3.0*rho)*term2+eps*term3;
 
  544       G4double som01 = Pmu*ksi*(cthetaE*(nve-term1e*term2e+kap*term3e)
 
  545                        +cthetaG*(nvg-term1g*term2g+kap*term3g));