Index: /trunk/WuerzburgSoft/Thomas/mphys/Changelog
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/Changelog	(revision 1368)
+++ /trunk/WuerzburgSoft/Thomas/mphys/Changelog	(revision 1369)
@@ -1,3 +1,13 @@
                                                                   -*-*- END -*-*-
+ 2002/06/17: Thomas Bretz
+
+   * MElectron.cc:
+     - Added SetNewDirection for the electron itself
+
+   * MParticle.cc:
+     - changed sqrt() to asin(sqrt()) - no effect (but correct)
+
+
+
  2002/06/14: Thomas Bretz
 
Index: /trunk/WuerzburgSoft/Thomas/mphys/MElectron.cc
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/MElectron.cc	(revision 1368)
+++ /trunk/WuerzburgSoft/Thomas/mphys/MElectron.cc	(revision 1369)
@@ -319,7 +319,14 @@
     fEnergy -= e;
 
+    const Double_t phi = rand.Uniform(TMath::Pi()*2);
+
     MPhoton &p = *new MPhoton(e, fZ);
     p = *this;
-    p.SetNewDirection(theta1, rand.Uniform(TMath::Pi()*2));
+    p.SetNewDirection(theta1, phi);
+
+    const Double_t beta2  = sqrt(1.-E0/fEnergy*E0/fEnergy);
+    const Double_t theta2 = asin((epsilon*sin(t)-e*sin(theta1))/fEnergy/beta2);
+
+    SetNewDirection(theta2, phi);
 
     return &p;
Index: /trunk/WuerzburgSoft/Thomas/mphys/MParticle.cc
===================================================================
--- /trunk/WuerzburgSoft/Thomas/mphys/MParticle.cc	(revision 1368)
+++ /trunk/WuerzburgSoft/Thomas/mphys/MParticle.cc	(revision 1369)
@@ -135,5 +135,5 @@
     r *= B;
 
-    fTheta = sqrt(r(0)*r(0)+r(1)*r(1)); // Numerically bad: acos(r(2));
+    fTheta = asin(sqrt(r(0)*r(0)+r(1)*r(1))); // Numerically bad: acos(r(2));
     fPsi   = atan2(r(1), r(0));
 
