From 94dc014044f11235f3861e8657e83a1fa0125c40 Mon Sep 17 00:00:00 2001
From: Adrien Matta <matta@lpccaen.in2p3.fr>
Date: Mon, 31 May 2021 13:07:22 +0200
Subject: [PATCH] * Optimisation of SamuraiFieldMap

---
 NPLib/Detectors/Samurai/SamuraiFieldMap.cxx | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx b/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
index 931191884..9394e48ad 100644
--- a/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
+++ b/NPLib/Detectors/Samurai/SamuraiFieldMap.cxx
@@ -50,12 +50,8 @@ double SamuraiFieldMap::Delta(const double* parameter){
     // Move the fdc2 pos from lab frame to fdc2 frame 
     pos.back().RotateY(-m_fdc2angle+m_angle); 
 
-//    cout << parameter[0] << " " << pos.back().X()-m_FitPosFDC2.X() << endl;
- //   m_FitPosFDC2.Print();
- //   pos.back().Print();
     double d = (pos.back().X()-m_FitPosFDC2.X())*(pos.back().X()-m_FitPosFDC2.X());
     //diff = pos.back()-m_FitPosFDC2;
-    //diff.Print();
     return d;
     //return diff.Mag2();
 }
@@ -74,13 +70,10 @@ double SamuraiFieldMap::FindBrho(TVector3 p_fdc0,TVector3 d_fdc0,TVector3 p_fdc2
   double b0[1] ={m_BrhoScan->Eval(p_fdc2.X())}; 
   
   m_min->Clear(); 
-  m_min->SetPrecision(1e-5);
+  m_min->SetPrecision(1e-6);
   m_min->SetMaxFunctionCalls(1000);
-  m_min->SetLimitedVariable(0,"B",b0[0],1,1,10);
+  m_min->SetLimitedVariable(0,"B",b0[0],0.1,1,10);
   m_min->Minimize(); 
-  //cout << Delta(m_min->X()) << endl; 
- // exit(1);
-  //cout << m_min->NCalls() << endl;
   return m_min->X()[0];
 }
 
@@ -173,7 +166,7 @@ std::vector< TVector3 > SamuraiFieldMap::Propagate(double Brho, TVector3 pos, TV
   double py = P*dir.Y();//py
   double pz = P*dir.Z();//pz
   TVector3 imp = P*dir;
-  double h = 0.1*nanosecond; // typical step length  ~1mm at beta 0.6
+  double h = 1*nanosecond;
   while(r<=m_Rmax && count < limit){
     func(N, pos           , imp            , xk1, pk1);
     func(N, pos+xk1*(h/2.), imp+pk1*(h/2.) , xk2, pk2);
-- 
GitLab