64 if (theParentName ==
"mu+") {
72 }
else if (theParentName ==
"mu-") {
83 G4cout <<
"G4RadiativeMuonDecayChannel:: constructor :";
84 G4cout <<
" parent particle is not muon but ";
102 if (
this != &right) {
134 G4cout <<
"G4MuonRadiativeDecayChannelWithSpin::DecayIt ";
148 for (
G4int index=0; index<4; index++){
150 sumofdaughtermass += daughtermass[index];
161 delete parentparticle;
168 G4double cthetaE, cthetaG, cthetaGE, phiE, phiG;
169 const size_t MAX_LOOP=10000;
171 for (
size_t loop_counter1=0; loop_counter1 <MAX_LOOP; ++loop_counter1){
179 for (
size_t loop_counter2=0; loop_counter2 <MAX_LOOP; ++loop_counter2){
194 if(std::fabs((xx*xx)+(yy*yy)+(zz*zz)-(x*x))>0.001){
200 G4double sthetaE = std::sqrt((xx*xx)+(yy*yy))/
x;
223 if(std::fabs((xx*xx)+(yy*yy)+(zz*zz)-(y*y))>0.001){
229 G4double sthetaG = std::sqrt((xx*xx)+(yy*yy))/
y;
257 cthetaGE = cthetaE*cthetaG+sthetaE*sthetaG*std::cos(phiE-phiG);
267 G4double beta = std::sqrt( x*((1.0-eps)*(1.0-eps))*
268 (x*((1.0-eps)*(1.0-eps))+4.0*eps))/term1;
274 G4double Qsqr = (1.0-term1-term3+term0+0.5*term6)/((1.0-eps)*(1.0-
eps));
280 if ( Qsqr>=0.0 && Qsqr<=1.0 )
break;
294 som0 =
fron(Pmu,x,y,cthetaE,cthetaG,cthetaGE);
326 if(E < EMASS) E = EMASS;
331 daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
333 G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
352 daughtermomentum[1] = G;
354 G4double sthetaG = std::sqrt(1.-cthetaG*cthetaG);
378 G4ThreeVector P34 = -1.*(daughtermomentum[0]*direction0+daughtermomentum[1]*direction1);
383 G4double sinthetan = std::sqrt((1.0-costhetan)*(1.0+costhetan));
388 G4ThreeVector direction2(sinthetan*cosphin,sinthetan*sinphin,costhetan);
400 p4.
boost(direction34.
x()*beta,direction34.
y()*beta,direction34.
z()*beta);
404 p4.
boost(direction34.
x()*beta,direction34.
y()*beta,direction34.
z()*beta);
416 G4cout <<
"G4MuonRadiativeDecayChannelWithSpin::DecayIt ";
417 G4cout <<
" create decay products in rest frame " <<
G4endl;
426 G4cout <<
"total:" << (TT-parentmass)/
keV << G4endl;
453 G4double f_1s = 12.0*((y*
y)*(1.0-y)+x*y*(2.0-3.0*
y)
454 +2.0*(x*x)*(1.0-2.0*
y)-2.0*(x*x*x));
456 -2.0*(x*
x)*(1.0-y-3.0*(y*y))+2.0*(x*x*x)*(1.0+2.0*
y));
457 G4double f1s = 3.0*((x*
x)*y*(2.0-3.0*y-3.0*(y*y))
458 -(x*x*x)*y*(4.0+3.0*
y));
461 G4double f_1se = 12.0*(x*y*(1.0-
y)+(x*x)*(2.0-3.0*
y)
463 G4double f0se = 6.0*(-(x*
x)*(2.0-y-2.0*(y*y))
464 +(x*x*x)*(2.0+3.0*
y));
468 G4double f_1sg = 12.0*((y*
y)*(1.0-y)+x*y*(1.0-2.0*
y)
470 G4double f0sg = 6.0*(-x*(y*
y)*(2.0-3.0*y)-(x*
x)*y*(1.0-4.0*y)
476 G4double f_1v = 8.0*((y*
y)*(3.0-2.0*y)+6.0*x*y*(1.0-
y)
477 +2.0*(x*x)*(3.0-4.0*
y)-4.0*(x*x*x));
478 G4double f0v = 8.0*(-x*y*(3.0-y-(y*
y))-(x*
x)*(3.0-y-4.0*(y*y))
479 +2.0*(x*x*x)*(1.0+2.0*
y));
480 G4double f1v = 2.0*((x*
x)*y*(6.0-5.0*y-2.0*(y*y))
481 -2.0*(x*x*x)*y*(4.0+3.0*
y));
485 +2.0*(x*x)*(1.0-3.0*
y)-4.0*(x*x*x));
486 G4double f0ve = 4.0*(-(x*
x)*(2.0-3.0*y-4.0*(y*y))
487 +2.0*(x*x*x)*(2.0+3.0*
y));
491 G4double f_1vg = 8.0*((y*
y)*(1.0-2.0*y)+x*y*(1.0-4.0*
y)
493 G4double f0vg = 4.0*(2.0*x*(y*
y)*(1.0+y)-(x*
x)*y*(1.0-4.0*y)
499 G4double f_1t = 8.0*((y*
y)*(3.0-y)+3.0*x*y*(2.0-
y)
500 +2.0*(x*x)*(3.0-2.0*
y)-2.0*(x*x*x));
502 -2.0*(x*
x)*(3.0+y-3.0*(y*y))+2.0*(x*x*x)*(1.0+2.0*
y));
503 G4double f1t = 2.0*((x*
x)*y*(6.0-5.0*y+(y*y))
504 -(x*x*x)*y*(4.0+3.0*
y));
507 G4double f_1te = -8.0*(x*y*(1.0+3.0*
y)+(x*x)*(2.0+3.0*
y)
509 G4double f0te = 4.0*((x*
x)*(2.0+3.0*y+4.0*(y*y))
510 +(x*x*x)*(2.0+3.0*
y));
514 G4double f_1tg = -8.0*((y*
y)*(1.0+y)+x*y+(x*
x)*y);
515 G4double f0tg = 4.0*(x*(y*
y)*(2.0-y)+(x*
x)*y*(1.0+2.0*y)
517 G4double f1tg = -2.0*((x*
x)*(y*y)*(1.0-
y)+2.0*(x*x*x)*
y);
520 G4double term = delta+2.0*(me*me)/((mu*mu)*(x*
x));
527 G4double nse = term*f_1se+f0se+delta*f1se+(delta*
delta)*f2se;
528 G4double nve = term*f_1ve+f0ve+delta*f1ve+(delta*
delta)*f2ve;
529 G4double nte = term*f_1te+f0te+delta*f1te+(delta*
delta)*f2te;
531 G4double nsg = term*f_1sg+f0sg+delta*f1sg+(delta*
delta)*f2sg;
532 G4double nvg = term*f_1vg+f0vg+delta*f1vg+(delta*
delta)*f2vg;
533 G4double ntg = term*f_1tg+f0tg+delta*f1tg+(delta*
delta)*f2tg;
539 G4double term1e = 1.0/3.0*(1.0-4.0/3.0*del);
540 G4double term2e = 2.0*nse+5.0*nve-nte;
541 G4double term3e = 2.0*nse-2.0*nve+nte;
543 G4double term1g = 1.0/3.0*(1.0-4.0/3.0*del);
544 G4double term2g = 2.0*nsg+5.0*nvg-ntg;
545 G4double term3g = 2.0*nsg-2.0*nvg+ntg;
547 G4double som00 = term1+(1.0-4.0/3.0*rho)*term2+eps*term3;
548 G4double som01 = Pmu*ksi*(cthetaE*(nve-term1e*term2e+kap*term3e)
549 +cthetaG*(nvg-term1g*term2g+kap*term3g));