From 47eab9586ae3e8605655befc959febba37ae38e2 Mon Sep 17 00:00:00 2001
From: Morfouace <pierre.morfouace@cea.fr>
Date: Thu, 10 Nov 2022 11:39:01 +0100
Subject: [PATCH] Updating sofia project

---
 NPLib/Detectors/Sofia/GladFieldMap.h          |  6 +-
 Projects/s455/Analysis.cxx                    | 23 ++++----
 .../calibration/SofTofW/SofTofW_physics.cal   | 57 ++++++++++---------
 3 files changed, 44 insertions(+), 42 deletions(-)

diff --git a/NPLib/Detectors/Sofia/GladFieldMap.h b/NPLib/Detectors/Sofia/GladFieldMap.h
index 5eac86cb3..ef45a5aea 100644
--- a/NPLib/Detectors/Sofia/GladFieldMap.h
+++ b/NPLib/Detectors/Sofia/GladFieldMap.h
@@ -111,6 +111,7 @@ class GladFieldMap{
 
   public:
     double GetLeff(int ix, int iy) {return m_Leff[ix][iy];}
+    double GetZGlad() {return m_Z_Glad;}
     double GetB() {return m_B;}
     double GetXmin() {return m_x_min;}
     double GetXmax() {return m_x_max;}
@@ -118,7 +119,10 @@ class GladFieldMap{
     double GetYmax() {return m_y_max;}
     double GetZmin() {return m_z_min;}
     double GetZmax() {return m_z_max;}
-
+    double GetCentralTheta() {return m_CentralTheta;}
+    double GetX_MWPC3() {return m_X_MWPC3;}
+    double GetZ_MWPC3() {return m_Z_MWPC3;}
+  
   public:
     void LoadMap(string filename);
     vector<double> InterpolateB(const vector<double>& pos);
diff --git a/Projects/s455/Analysis.cxx b/Projects/s455/Analysis.cxx
index 1ada8376f..d4e7a2610 100644
--- a/Projects/s455/Analysis.cxx
+++ b/Projects/s455/Analysis.cxx
@@ -98,12 +98,12 @@ void Analysis::Init(){
   
   m_GladField = new GladFieldMap();
   m_GladField->SetCurrent(2135.);
-  m_GladField->SetZGlad(2724.);
+  m_GladField->SetZGlad(2694.+540.5);
   m_GladField->SetGladTiltAngle(14.*deg);
   m_GladField->LoadMap("GladFieldMap.dat");
   m_GladField->SetCentralTheta(20.*deg);
   m_GladField->SetX_MWPC3(-1.436*m);
-  m_GladField->SetZ_MWPC3(7.8*m);
+  m_GladField->SetZ_MWPC3(8.45*m);
   
   InitParameter();
   InitOutputBranch();
@@ -566,15 +566,14 @@ void Analysis::FissionFragmentAnalysis(){
 
 
       // *** Calculation Theta_out *** //
-      double Theta0 = 20.*deg;
+      double Theta0 = m_GladField->GetCentralTheta();
       double XA = 0;
       double ZA = 2272;
-      //double ZGlad_entrance = 2694.;
-      double ZGlad_entrance = 2694.+540.5;
-      double Leff_init = 2150.;
-      //double ZG = ZGlad_entrance+1654.;
-      double ZG = ZGlad_entrance+1113.5;
-      double ZMW3 = 8450;//8483;
+      int ix = (int) (-m_GladField->GetXmin()/50);
+      int iy = (int) (-m_GladField->GetYmin()/50);
+      double Leff_init = m_GladField->GetLeff(ix,iy);
+      double ZG = m_GladField->GetZGlad()+Leff_init/2;
+      double ZMW3 = m_GladField->GetZ_MWPC3();
       double XMW3 = -(ZMW3-ZG)*tan(Theta0);
       double ZMW2 = 2576;
       double X3lab = 0;
@@ -625,9 +624,7 @@ void Analysis::FissionFragmentAnalysis(){
           TVector3 vB = TVector3(XB,0,ZB);
 
           // *** Extrapolate to D position *** //
-          //XD = XC + TofHit[i].Leff/2*sin(angle)/cos(angle+Tilt);
           XD = XC + TofHit[i].Leff/2*tan(angle+Tilt)*cos(Tilt);
-          //ZD = ZC + TofHit[i].Leff/2*cos(angle)/cos(angle+Tilt);
           ZD = ZC + TofHit[i].Leff/2*cos(Tilt);
           TofHit[i].xd = XD;
           TofHit[i].zd = ZD;
@@ -654,8 +651,8 @@ void Analysis::FissionFragmentAnalysis(){
           TofHit[i].Z = Z;
           TofHit[i].iZ = iZ;
         
-          TofHit[i].gamma = 1. / sqrt(1 - TofHit[i].beta*TofHit[i].beta);
-          TofHit[i].AoQ = TofHit[i].Brho / (3.10761 * TofHit[i].beta * TofHit[i].gamma);
+          TofHit[i].gamma = 1. / sqrt(1 - pow(TofHit[i].beta,2));
+          TofHit[i].AoQ = TofHit[i].Brho / (3.10716 * TofHit[i].beta * TofHit[i].gamma);
           TofHit[i].A = TofHit[i].AoQ * TofHit[i].iZ;
 
         }
diff --git a/Projects/s455/calibration/SofTofW/SofTofW_physics.cal b/Projects/s455/calibration/SofTofW/SofTofW_physics.cal
index 8ac9a86a7..152cb6e38 100644
--- a/Projects/s455/calibration/SofTofW/SofTofW_physics.cal
+++ b/Projects/s455/calibration/SofTofW/SofTofW_physics.cal
@@ -27,31 +27,32 @@ SofTofW_TOFW26_POSPAR 54.844389  67.8462
 SofTofW_TOFW27_POSPAR 60.574204  67.8462
 SofTofW_TOFW28_POSPAR -70.957256 67.8462
 
-SofTofW_TOFW1_TOFPAR 86.4227 1
-SofTofW_TOFW2_TOFPAR 84.6443 1
-SofTofW_TOFW3_TOFPAR 86.2534 1
-SofTofW_TOFW4_TOFPAR 84.6056 1
-SofTofW_TOFW5_TOFPAR 85.7587 1
-SofTofW_TOFW6_TOFPAR 86.1245 1
-SofTofW_TOFW7_TOFPAR 86.8944 1
-SofTofW_TOFW8_TOFPAR 90.3295 1
-SofTofW_TOFW9_TOFPAR 89.1225 1
-SofTofW_TOFW10_TOFPAR 90.5874 1
-SofTofW_TOFW11_TOFPAR 88.4016 1
-SofTofW_TOFW12_TOFPAR 91.3279 1
-SofTofW_TOFW13_TOFPAR 88.7778 1
-SofTofW_TOFW14_TOFPAR 90.1767 1
-SofTofW_TOFW15_TOFPAR 98.7369 1
-SofTofW_TOFW16_TOFPAR 98.0898 1
-SofTofW_TOFW17_TOFPAR 99.2279 1
-SofTofW_TOFW18_TOFPAR 97.0787 1
-SofTofW_TOFW19_TOFPAR 98.1541 1
-SofTofW_TOFW20_TOFPAR 97.8759 1
-SofTofW_TOFW21_TOFPAR 100.422 1
-SofTofW_TOFW22_TOFPAR 67.0683 1
-SofTofW_TOFW23_TOFPAR 65.9371 1
-SofTofW_TOFW24_TOFPAR 66.5314 1
-SofTofW_TOFW25_TOFPAR 65.0859 1
-SofTofW_TOFW26_TOFPAR 65.9782 1
-SofTofW_TOFW27_TOFPAR 65.3997 1
-SofTofW_TOFW28_TOFPAR 67.3737 1
+SofTofW_TOFW1_TOFPAR 86.4248 1
+SofTofW_TOFW2_TOFPAR 84.6469 1
+SofTofW_TOFW3_TOFPAR 86.2486 1
+SofTofW_TOFW4_TOFPAR 84.608 1
+SofTofW_TOFW5_TOFPAR 85.7613 1
+SofTofW_TOFW6_TOFPAR 86.1248 1
+SofTofW_TOFW7_TOFPAR 86.8951 1
+SofTofW_TOFW8_TOFPAR 90.3324 1
+SofTofW_TOFW9_TOFPAR 89.1531 1
+SofTofW_TOFW10_TOFPAR 90.5909 1
+SofTofW_TOFW11_TOFPAR 88.4043 1
+SofTofW_TOFW12_TOFPAR 91.3291 1
+SofTofW_TOFW13_TOFPAR 88.7795 1
+SofTofW_TOFW14_TOFPAR 90.1772 1
+SofTofW_TOFW15_TOFPAR 98.7384 1
+SofTofW_TOFW16_TOFPAR 98.0938 1
+SofTofW_TOFW17_TOFPAR 99.2282 1
+SofTofW_TOFW18_TOFPAR 97.0792 1
+SofTofW_TOFW19_TOFPAR 98.1545 1
+SofTofW_TOFW20_TOFPAR 97.8762 1
+SofTofW_TOFW21_TOFPAR 100.423 1
+SofTofW_TOFW22_TOFPAR 67.0665 1
+SofTofW_TOFW23_TOFPAR 65.9318 1
+SofTofW_TOFW24_TOFPAR 66.5305 1
+SofTofW_TOFW25_TOFPAR 65.0854 1
+SofTofW_TOFW26_TOFPAR 65.9787 1
+SofTofW_TOFW27_TOFPAR 65.4026 1
+SofTofW_TOFW28_TOFPAR 67.3701 1
+
-- 
GitLab