diff --git a/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx b/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
index fd1ffff0df085a6cf1f7393425a38544155fe5fa..1fb64a504567838fa12130b4a590db8b8e086552 100644
--- a/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
+++ b/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
@@ -30,10 +30,26 @@ using namespace NPUNITS;
 using namespace std;
 
 ClassImp(SamuraiFieldMap);
+////////////////////////////////////////////////////////////////////////////////
+TVector3 SamuraiFieldMap::PropagateToFDC2(TVector3 pos, TVector3 dir, double angle,double R){
+  // go to FDC2 frame reference
+  pos.RotateY(-angle);
+  dir.RotateY(-angle);
+
+  double deltaZ=R-pos.Z();
+  dir*=deltaZ/dir.Z();
+  pos+=dir;
+  cout << pos.Z() << " " << R << endl;
+  pos.SetX(pos.X());
+  pos.RotateY(angle);
+  return pos;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 std::vector< TVector3 > SamuraiFieldMap::Propagate(double rmax, double Brho, TVector3 pos, TVector3 dir){
   pos.RotateY(m_angle);
   dir.RotateY(m_angle);
+  dir=dir.Unit();
   // Property of a particle with the correct Brho:
   // We assume a 4He to compute v
   // The choice of the particle is of no importance
@@ -95,7 +111,11 @@ std::vector< TVector3 > SamuraiFieldMap::Propagate(double rmax, double Brho, TVe
     r = sqrt(pos.X()*pos.X()+pos.Z()*pos.Z());
     count++;
   }
-
+  imp=imp.Unit();
+  pos = PropagateToFDC2(pos, imp, (59.930-90.0)*deg, 3686.77 + 880.745/2.);
+  pos.RotateY(-m_angle);
+  track.push_back(pos);
+  
   return track;
 
 }
diff --git a/NPLib/Detectors/Samurai/SamuraiFieldMap.h b/NPLib/Detectors/Samurai/SamuraiFieldMap.h
index 5b8b220575f6cfa43d33053eee4262a368d882b7..2adcf8da856cb5e03ade90b6fe0197ffdbf9ad08 100644
--- a/NPLib/Detectors/Samurai/SamuraiFieldMap.h
+++ b/NPLib/Detectors/Samurai/SamuraiFieldMap.h
@@ -69,7 +69,7 @@ class SamuraiFieldMap{
     // return a 3D track of the particle in the field
     std::vector< TVector3 > Propagate(double rmax, double Brho, TVector3 pos, TVector3 dir);
     void func(NPL::Particle& N, TVector3 pos, TVector3 dir, TVector3& new_pos, TVector3& new_dir);
-    //TVector3 PropagateToFDC2(double angle,double);
+    TVector3 PropagateToFDC2(TVector3 pos, TVector3 dir,double angle,double R);
     //
     ClassDef(SamuraiFieldMap,1);
 };