123   fMu=Lattice->
GetMu();
 
  128   if(
G4UniformRand()>0.740) MakeLTSecondaries(aTrack); 
else MakeTTSecondaries(aTrack);
 
  148 inline double XPhononDownconversionProcess::GetLTDecayProb(
double d, 
double x){
 
  151   return (1/(x*x))*(1-x*
x)*(1-x*x)*((1+
x)*(1+x)-d*d*((1-
x)*(1-x)))*(1+x*x-d*d*(1-
x)*(1-x))*(1+x*x-d*d*(1-x)*(1-
x));
 
  157 inline double XPhononDownconversionProcess::GetTTDecayProb(
double d, 
double x){  
 
  161   G4double A = 0.5*(1-d*
d)*(fBeta+fLambda+(1+d*d)*(fGamma+fMu));
 
  162   G4double B = fBeta+fLambda+2*d*d*(fGamma+fMu);
 
  163   G4double C = fBeta + fLambda + 2*(fGamma+fMu);
 
  164   G4double D = (1-d*
d)*(2*fBeta+4*fGamma+fLambda+3*fMu);
 
  166   return (A+B*d*x-B*x*x)*(A+B*d*x-B*x*
x)+(C*x*(d-x)-D/(d-
x)*(x-d-(1-d*d)/(4*
x)))*(C*x*(d-x)-D/(d-
x)*(x-d-(1-d*d)/(4*
x)));
 
  172 inline double XPhononDownconversionProcess::MakeLDeviation(
double d, 
double x){
 
  175   return std::acos((1+(x*x)-((d*d)*(1-x)*(1-x)))/(2*x));
 
  182 inline double XPhononDownconversionProcess::MakeTDeviation(
double d, 
double x){
 
  185   return std::acos((1-x*x+d*d*(1-x)*(1-x))/(2*d*(1-x)));
 
  192 inline double XPhononDownconversionProcess::MakeTTDeviation(
double d, 
double x){
 
  195   return std::acos((1-d*d*(1-x)*(1-x)+d*d*x*x)/(2*d*x));
 
  201 void XPhononDownconversionProcess::MakeTTSecondaries(
const G4Track& aTrack){
 
  216   while(!(p<GetTTDecayProb(d, x))){
 
  223   G4double theta1=MakeTTDeviation(d, (x));
 
  224   G4double theta2=MakeTTDeviation(d, (1-x));
 
  237   G4double E=aTrack.GetKineticEnergy();
 
  281 void XPhononDownconversionProcess::MakeLTSecondaries(
const G4Track& aTrack){
 
  295   while(!(p<GetLTDecayProb(d, x))){
 
  301   G4double thetaL=MakeLDeviation(d, x);
 
  302   G4double thetaT=MakeTDeviation(d, x);;
 
  339   sec2->SetVelocity(Lattice->
MapKtoV(polarization, dir2)*
m/
s);
 
  340   sec2->UseGivenVelocity(
true);