Index: trunk/MagicSoft/Mars/msim/MHPhotonEvent.cc
===================================================================
--- trunk/MagicSoft/Mars/msim/MHPhotonEvent.cc	(revision 9362)
+++ trunk/MagicSoft/Mars/msim/MHPhotonEvent.cc	(revision 9367)
@@ -266,5 +266,5 @@
     MH::FindGoodLimits(num, num, xmin, xmax, kTRUE);
 
-    MBinning(abs(num), xmin-.5, xmax-.5).Apply(fHistWL);
+    MBinning(TMath::Abs(num), xmin-.5, xmax-.5).Apply(fHistWL);
 
     return kTRUE;
Index: trunk/MagicSoft/Mars/msim/MSimPointingPos.cc
===================================================================
--- trunk/MagicSoft/Mars/msim/MSimPointingPos.cc	(revision 9362)
+++ trunk/MagicSoft/Mars/msim/MSimPointingPos.cc	(revision 9367)
@@ -92,4 +92,43 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Get the distance from the real source to the poitning position.
+//
+Double_t MSimPointingPos::GetOffTargetDistance() const
+{
+    return fOffTargetDistance==0 ? 0 : fOffTargetDistance*TMath::RadToDeg();
+}
+
+// --------------------------------------------------------------------------
+//
+// Get the phi angle counted from the upward direction the source position
+// is rotated. distance from the real source to the pointing position.
+// A negative value refers to a random distribution.
+//
+Double_t MSimPointingPos::GetOffTargetPhi() const
+{
+    return fOffTargetPhi<0 ? -1 : fOffTargetPhi*TMath::RadToDeg();
+}
+
+// --------------------------------------------------------------------------
+//
+// Set fOffTargetDistance, see also GetOffTargetDistance
+//
+void MSimPointingPos::SetOffTargetDistance(Double_t d)
+{
+    fOffTargetDistance = d==0 ? 0 : d*TMath::DegToRad();
+}
+
+// --------------------------------------------------------------------------
+//
+// Set fOffTargetPhi, see also GetOffTargetPhi
+//
+void MSimPointingPos::SetOffTargetPhi(Double_t p)
+{
+    fOffTargetPhi = p<0 ? -1 : p*TMath::DegToRad();
+}
+
+
 
 // --------------------------------------------------------------------------
@@ -153,5 +192,5 @@
     {
         dtheta = fOffTargetDistance;
-        dphi   = fOffTargetPhi>0 ? fOffTargetPhi : gRandom->Uniform(TMath::TwoPi());
+        dphi   = fOffTargetPhi>=0 ? fOffTargetPhi : gRandom->Uniform(TMath::TwoPi());
     }
     else
Index: trunk/MagicSoft/Mars/msim/MSimPointingPos.h
===================================================================
--- trunk/MagicSoft/Mars/msim/MSimPointingPos.h	(revision 9362)
+++ trunk/MagicSoft/Mars/msim/MSimPointingPos.h	(revision 9367)
@@ -36,10 +36,10 @@
 
     // Getter
-    Double_t GetOffTargetDistance() const { return fOffTargetDistance==0 ? 0 : fOffTargetDistance*TMath::RadToDeg(); }
-    Double_t GetOffTargetPhi() const { return fOffTargetPhi*TMath::RadToDeg(); }
+    Double_t GetOffTargetDistance() const;
+    Double_t GetOffTargetPhi() const;
 
     // Setter
-    void SetOffTargetDistance(Double_t d=0) { fOffTargetDistance = d==0 ? 0 : d*TMath::DegToRad(); }
-    void SetOffTargetPhi(Double_t p=0) { fOffTargetPhi = p*TMath::DegToRad(); }
+    void SetOffTargetDistance(Double_t d=0);
+    void SetOffTargetPhi(Double_t p=-1);
 
     // MSimPointingPos
