From 2166886e0cdf0934747e5ef34b903204a98d16fa Mon Sep 17 00:00:00 2001
From: Morfouace <pierre.morfouace@cea.fr>
Date: Thu, 6 Oct 2022 15:53:35 +0200
Subject: [PATCH] Updating Sofia analysis

---
 NPLib/Detectors/Sofia/GladFieldMap.cxx        |  29 ++--
 NPLib/Detectors/Sofia/GladFieldMap.h          |  22 ++-
 NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx     |  13 +-
 NPLib/Detectors/Sofia/TSofTwimPhysics.cxx     |  32 +++--
 NPLib/Detectors/Sofia/TSofTwimPhysics.h       |   7 +-
 Projects/s455/Analysis.cxx                    |  57 ++++----
 Projects/s455/RunToTreat.txt                  |  10 +-
 .../calibration/SofSci/SofSci_physics.cal     |   4 +-
 .../SofTrim/SofTrim_SectionAlign.cal          |   4 +-
 .../s455/calibration/SofTwim/SofTwim_Time.cal | 134 +++++++++---------
 10 files changed, 177 insertions(+), 135 deletions(-)

diff --git a/NPLib/Detectors/Sofia/GladFieldMap.cxx b/NPLib/Detectors/Sofia/GladFieldMap.cxx
index 105b145ec..d23730c12 100644
--- a/NPLib/Detectors/Sofia/GladFieldMap.cxx
+++ b/NPLib/Detectors/Sofia/GladFieldMap.cxx
@@ -44,11 +44,19 @@ GladFieldMap::GladFieldMap() {
   m_func = ROOT::Math::Functor(this,&GladFieldMap::Delta,1);
   m_min->SetFunction(m_func);
   m_min->SetPrintLevel(-1);
+  m_Bmax = 2.2;
   m_bin = 50;
-  m_Scale = -2135./3583.81;
+  m_Current = 2135.;
+  m_Scale = m_Current/3583.81;
   m_Z_Glad = 2724.;
-  m_Leff = 2.*m;
   m_Tilt = 14.*deg;
+  m_B = m_Scale*m_Bmax;
+  for(int i=0; i<81; i++){
+    for(int j=0; j<41; j++){
+      m_Leff[i][j] = 0;
+    }
+  }
+
 
   m_Zmax = 8.5*m;
   m_Limit = 1000;
@@ -332,8 +340,7 @@ void GladFieldMap::LoadMap(string filename) {
 
   unsigned int count=0;
   int index = 0;
-  //while(!ifile.eof()){
-  //for(unsigned int i=0; i<401841; i++){
+  TGraph* gBy = new TGraph();
   for(int ix=0; ix<m_Nx; ix++){
     for(int iy=0; iy<m_Ny; iy++){
       for(int iz=0; iz<m_Nz; iz++){
@@ -348,26 +355,30 @@ void GladFieldMap::LoadMap(string filename) {
         x = x*10;
         y = y*10;
         z = z*10;
+      
+        //m_Leff[ix][iy] += abs(By)*m_bin;
+        // Need to fill this TGraph before scaling the field to get the proper Leff //
+        gBy->SetPoint(iz,z,abs(By));
 
         z = z + x*sin(m_Tilt);
         z += m_Z_Glad;
 
-        Bx *= m_Scale;
-        By *= m_Scale;
-        Bz *= m_Scale;
+        Bx *= -m_Scale;
+        By *= -m_Scale;
+        Bz *= -m_Scale;
 
         m_Bx.push_back(Bx*tesla);
         m_By.push_back(By*tesla);
         m_Bz.push_back(Bz*tesla);
 
-
-        /*vector<double> p = {x,y,z};
+       /*vector<double> p = {x,y,z};
           Bx*=tesla;
           By*=tesla;
           Bz*=tesla;
           vector<double> B = {Bx,By,Bz};
           m_field[p] = B;*/
       }
+      m_Leff[ix][iy] = gBy->Integral()/m_Bmax;
     }
   }
 
diff --git a/NPLib/Detectors/Sofia/GladFieldMap.h b/NPLib/Detectors/Sofia/GladFieldMap.h
index 155861800..5eac86cb3 100644
--- a/NPLib/Detectors/Sofia/GladFieldMap.h
+++ b/NPLib/Detectors/Sofia/GladFieldMap.h
@@ -51,8 +51,11 @@ class GladFieldMap{
     vector<double> m_Bx;
     vector<double> m_By;
     vector<double> m_Bz;
+    double m_Bmax;
+    double m_B;
+    double m_Current;
     double m_Z_Glad;
-    double m_Leff;
+    double m_Leff[81][41];
     double m_Tilt;
     int m_Nx;
     int m_Ny;
@@ -86,9 +89,14 @@ class GladFieldMap{
 
   public:
     void SetZGlad(double val) {m_Z_Glad = val;}
-    void SetLeff(double val) {m_Leff = val;}
+    void SetLeff(int ix, int iy, double val) {m_Leff[ix][iy] = val;}
     void SetGladTiltAngle(double val) {m_Tilt = val;}
     void SetScale(double val) {m_Scale = val;}
+    void SetCurrent(double val){
+      m_Current = val;
+      m_Scale = m_Current/3583.81;
+      m_B = 2.2*m_Scale;
+    }
 
     void SetCentralTheta(double val) {m_CentralTheta = val;}
     void SetX_MWPC3(double val) {m_X_MWPC3 = val;}
@@ -101,6 +109,16 @@ class GladFieldMap{
     void SetInitPos(TVector3 Pos) {m_InitPos = Pos;}
     void SetInitDir(TVector3 Dir) {m_InitPos = Dir;}
 
+  public:
+    double GetLeff(int ix, int iy) {return m_Leff[ix][iy];}
+    double GetB() {return m_B;}
+    double GetXmin() {return m_x_min;}
+    double GetXmax() {return m_x_max;}
+    double GetYmin() {return m_y_min;}
+    double GetYmax() {return m_y_max;}
+    double GetZmin() {return m_z_min;}
+    double GetZmax() {return m_z_max;}
+
   public:
     void LoadMap(string filename);
     vector<double> InterpolateB(const vector<double>& pos);
diff --git a/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx b/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx
index 2bf422432..cc2d1ca6d 100644
--- a/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx
+++ b/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx
@@ -148,10 +148,11 @@ void TSofMwpcPhysics::BuildPhysicalEvent() {
     }
   }
 
-  double X1 = -1000;
-  double X2 = -1000;
-  double Y  = -1000;
   for(int i=0; i<m_NumberOfDetectors; i++){
+    double X1 = -1000;
+    double X2 = -1000;
+    double Y  = -1000;
+
     int det_num = i+1;
     if(det_num<4){
       double qleft  = Buffer_X1_Q[i][StripMaxX1[i]-1];
@@ -177,6 +178,8 @@ void TSofMwpcPhysics::BuildPhysicalEvent() {
       PositionX1.push_back(X1);
       PositionX2.push_back(X2);
       PositionY.push_back(Y);
+
+      //cout << det_num << " " << X1 << " " << X2 << " " << Y << endl;
     }
 
     if(det_num==4 && fPairX.size()>0 && fPairY.size()>0){
@@ -196,12 +199,12 @@ void TSofMwpcPhysics::BuildPhysicalEvent() {
         }
         else break;
       }
-      
+
       // *** Finding Y clusters *** //
       while(GetChargeMax(fPairY) > fThresholdY && fPairY.size() > 4){
         const auto pelt = max_element(fPairY.begin(), fPairY.end(), compare_charge);
         int indice = distance(fPairY.begin(), pelt);
-        
+
         if(indice>0 && indice<fPairY.size()-1){
           fClusterY.push_back(FindCluster(fPairY));
         }
diff --git a/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx b/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx
index 449d8db1f..d0fe83970 100644
--- a/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx
+++ b/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx
@@ -50,7 +50,8 @@ TSofTwimPhysics::TSofTwimPhysics()
   m_NumberOfDetectors(0), 
   m_Beta(-1), 
   m_BetaNorm(0.838), 
-  m_NumberOfSections(4), 
+  m_NumberOfSections(4),
+  m_SPLINE_CORRECTION(0),
   m_NumberOfAnodesPerSection(16) {
   }
 
@@ -225,6 +226,12 @@ void TSofTwimPhysics::PreTreat() {
       double Energy = Cal->ApplyCalibration("SofTwim/SEC"+NPL::itoa(m_EventData->GetSectionNbr(i))+"_ANODE"+NPL::itoa(m_EventData->GetAnodeNbr(i))+"_ENERGY",m_EventData->GetEnergy(i));
       double DT = Cal->ApplyCalibration("SofTwim/SEC"+NPL::itoa(m_EventData->GetSectionNbr(i))+"_ANODE"+NPL::itoa(m_EventData->GetAnodeNbr(i))+"_TIME",m_EventData->GetDriftTime(i));
 
+      int section = m_EventData->GetSectionNbr(i);
+      int anode = m_EventData->GetAnodeNbr(i);
+      if(m_SPLINE_CORRECTION){
+        DT = DT - fcorr_dt[section-1][anode-1]->Eval(DT);
+      }
+
       m_PreTreatedData->SetSectionNbr(m_EventData->GetSectionNbr(i));
       m_PreTreatedData->SetAnodeNbr(m_EventData->GetAnodeNbr(i));
       m_PreTreatedData->SetEnergy(Energy);
@@ -280,11 +287,11 @@ void TSofTwimPhysics::ReadAnalysisConfig() {
         AnalysisConfigFile.ignore(numeric_limits<streamsize>::max(), '\n' );
       }
 
-      else if (whatToDo=="SPLINE_SECTION_BETA_PATH") {
+      else if (whatToDo=="SPLINE_CORR_DT_PATH") {
         AnalysisConfigFile >> DataBuffer;
-        m_SPLINE_SECTION_BETA_PATH = DataBuffer;
-        cout << "*** Loading Spline for Beta correction per section ***" << endl;
-        LoadSplineBeta();
+        m_SPLINE_DT_PATH = DataBuffer;
+        cout << "*** Loading Spline for Drift Time Correction per section and anode ***" << endl;
+        LoadSplineDT();
       }
 
       else if (whatToDo=="E_THRESHOLD") {
@@ -302,16 +309,21 @@ void TSofTwimPhysics::ReadAnalysisConfig() {
 
 
 ///////////////////////////////////////////////////////////////////////////
-void TSofTwimPhysics::LoadSplineBeta(){
-  TString filename = m_SPLINE_SECTION_BETA_PATH;
+void TSofTwimPhysics::LoadSplineDT(){
+  TString filename = m_SPLINE_DT_PATH;
   TFile* ifile = new TFile(filename,"read");
 
   if(ifile->IsOpen()){
     cout << "Loading splines..." << endl;
+
+    m_SPLINE_CORRECTION = true;
+    
     for(int s=0; s<m_NumberOfSections; s++){
-      TString splinename = Form("spline_sec%i",s+1);
-      fcorr_beta_sec[s] = (TSpline3*) ifile->FindObjectAny(splinename);
-      cout << fcorr_beta_sec[s]->GetName() << endl;
+      for(int a=0; a<m_NumberOfAnodesPerSection; a++){
+        TString splinename = Form("spline_corr_dt_sec%i_anode%i",s+1,a+1);
+        fcorr_dt[s][a] = (TSpline3*) ifile->FindObjectAny(splinename);
+        cout << fcorr_dt[s][a]->GetName() << endl;
+      }
     }
   }
   else
diff --git a/NPLib/Detectors/Sofia/TSofTwimPhysics.h b/NPLib/Detectors/Sofia/TSofTwimPhysics.h
index ac10c26c9..fdd35f04a 100644
--- a/NPLib/Detectors/Sofia/TSofTwimPhysics.h
+++ b/NPLib/Detectors/Sofia/TSofTwimPhysics.h
@@ -131,7 +131,7 @@ class TSofTwimPhysics : public TObject, public NPL::VDetector {
     // needed for online analysis for example
     void SetRawDataPointer(TSofTwimData* rawDataPointer) {m_EventData = rawDataPointer;}
    
-    void LoadSplineBeta();
+    void LoadSplineDT();
 
     void SetBeta(double beta) {m_Beta = beta;}
     double GetBeta() {return m_Beta;}
@@ -153,10 +153,11 @@ class TSofTwimPhysics : public TObject, public NPL::VDetector {
     double m_E_Threshold;     //!
     double m_Beta;     //!
     double m_BetaNorm;     //!
-    string m_SPLINE_SECTION_BETA_PATH;     //!
+    string m_SPLINE_DT_PATH;     //!
+    bool m_SPLINE_CORRECTION; //!
 
   private:
-    TSpline3* fcorr_beta_sec[4]; //!
+    TSpline3* fcorr_dt[4][16]; //!
 
   // number of detectors
   private:
diff --git a/Projects/s455/Analysis.cxx b/Projects/s455/Analysis.cxx
index 940c3947d..6ed3caddd 100644
--- a/Projects/s455/Analysis.cxx
+++ b/Projects/s455/Analysis.cxx
@@ -57,6 +57,9 @@ struct TofPair
   double y3 = -1000;
   double x3lab = 0;
   double z3lab = 0;
+  double xc = 0;
+  double yc = 0;
+  double zc = 0;
 };
 
 
@@ -79,9 +82,8 @@ void Analysis::Init(){
   SofMwpc= (TSofMwpcPhysics*) m_DetectorManager->GetDetector("SofMwpc");
   
   m_GladField = new GladFieldMap();
-  m_GladField->SetScale(-2135./3583.81);
+  m_GladField->SetCurrent(2135.);
   m_GladField->SetZGlad(2724.);
-  m_GladField->SetLeff(2.067*m);
   m_GladField->SetGladTiltAngle(14.*deg);
   m_GladField->LoadMap("GladFieldMap.dat");
   m_GladField->SetCentralTheta(20.*deg);
@@ -556,14 +558,12 @@ void Analysis::FissionFragmentAnalysis(){
 
       // *** Calculation Theta_out *** //
       double Theta0 = 20.*deg;
-      double XA;
+      double XA = 0;
       double ZA = 2328.;
       //double ZA = 2328.-4434.;
-      double XC;
-      double ZG = 4434.;
-      double ZC;
-      double XMW3 = -1436.;
-      double ZMW3 = 8380;
+      double ZG = 2724+1075;//4434.;
+      double ZMW3 = 8483;
+      double XMW3 = -(ZMW3-ZG)*tan(Theta0);
       double ZMW2 = 2576;
       double X3lab = 0;
       double Z3lab = 0;;
@@ -576,9 +576,10 @@ void Analysis::FissionFragmentAnalysis(){
       TVector3 FinalPos[2];
       for(int i=0; i<2; i++){
         XA = TofHit[i].DT;
-        XC = (XA+(ZG-ZA)*tan(TofHit[i].theta_in)) / (1-tan(Tilt)*tan(TofHit[i].theta_in));
-        ZC = ZG + XC*tan(Tilt);
-
+        TofHit[i].xc = (XA+(ZG-ZA)*tan(TofHit[i].theta_in)) / (1-tan(Tilt)*tan(TofHit[i].theta_in));
+        TofHit[i].yc = TofHit[i].y*0.5;
+        TofHit[i].zc = ZG + TofHit[i].xc*tan(Tilt);
+        
         X3lab = TofHit[i].x3*cos(Theta0) + XMW3;
         Z3lab = TofHit[i].x3*sin(Theta0) + ZMW3;
         TofHit[i].x3lab = X3lab;
@@ -588,8 +589,8 @@ void Analysis::FissionFragmentAnalysis(){
         InitDir[i]  = TVector3(sin(TofHit[i].theta_in),0,cos(TofHit[i].theta_in));
         FinalPos[i] = TVector3(X3lab,0,Z3lab);
 
-        vC    = TVector3(XC,0,ZC);
-        vOut  = TVector3(X3lab-XC,0,Z3lab-ZC);
+        vC    = TVector3(TofHit[i].xc,0,TofHit[i].zc);
+        vOut  = TVector3(X3lab-TofHit[i].xc,0,Z3lab-TofHit[i].zc);
 
         double PathLength = vC.Mag() + vOut.Mag() + 74.;
         PathLength = PathLength/1000.;
@@ -619,22 +620,24 @@ void Analysis::FissionFragmentAnalysis(){
         iZsum = iZ1 + iZ2;
       }
 
-      double MagB = 2185*2.2/3584;
-      double Bx = 0;
-      double By = MagB/1000.;
-      double Bz = 0;
-      TVector3 B = TVector3(Bx,By,Bz);
-      double Leff = 2.067;
-      /*double rho1 = Leff/abs(2*sin(0.5*(TofHit[0].theta_out-TofHit[0].theta_in))*cos(Tilt-0.5*(TofHit[0].theta_out-TofHit[0].theta_in)));
-        double rho2 = Leff/abs(2*sin(0.5*(TofHit[1].theta_out-TofHit[1].theta_in))*cos(Tilt-0.5*(TofHit[1].theta_out-TofHit[1].theta_in)));
-        double Brho1 = MagB*rho1;
-        double Brho2 = MagB*rho2;*/
-
-      double Brho1 = 0;
+      double MagB = m_GladField->GetB()/1000;
+      int ix, iy;
+      ix = (int)(TofHit[0].xc - m_GladField->GetXmin())/50;
+      iy = (int)(TofHit[0].yc - m_GladField->GetYmin())/50;
+      double Leff1 = m_GladField->GetLeff(ix,iy);
+      ix = (int)(TofHit[1].xc - m_GladField->GetXmin())/50;
+      iy = (int)(TofHit[1].yc - m_GladField->GetYmin())/50;
+      double Leff2 = m_GladField->GetLeff(ix,iy);
+      double rho1 = Leff1/abs(2*sin(0.5*(TofHit[0].theta_out-TofHit[0].theta_in))*cos(Tilt-0.5*(TofHit[0].theta_out-TofHit[0].theta_in)));
+      double rho2 = Leff2/abs(2*sin(0.5*(TofHit[1].theta_out-TofHit[1].theta_in))*cos(Tilt-0.5*(TofHit[1].theta_out-TofHit[1].theta_in)));
+      double Brho1 = MagB*rho1;
+      double Brho2 = MagB*rho2;
+
+      /*double Brho1 = 0;
       double Brho2 = 0;
       Brho1 = m_GladField->FindBrho(InitPos[0], InitDir[0], FinalPos[0]);
       Brho2 = m_GladField->FindBrho(InitPos[1], InitDir[1], FinalPos[1]);
-      //cout << Brho1 << " " << Brho2 << endl;
+      //cout << Brho1 << " " << Brho2 << endl;*/
 
       Beta_Z1 = TofHit[0].beta;
       Beta_Z2 = TofHit[1].beta;
@@ -824,7 +827,7 @@ void Analysis::InitParameter(){
   fK_LS2 = -30e-8;
 
   fBrho0 = 12.3255;
-  fRunID = 12;
+  fRunID = 5;
 
   // Beam parameter //
   fZBeta_p0 = 1;
diff --git a/Projects/s455/RunToTreat.txt b/Projects/s455/RunToTreat.txt
index 96e1b4884..b75d3cc6c 100644
--- a/Projects/s455/RunToTreat.txt
+++ b/Projects/s455/RunToTreat.txt
@@ -55,8 +55,8 @@ RootFileName
   %/media/sofia/s455/raw/run_raw_0401.root
   
   %% 187Pb
-  %/media/sofia/s455/raw/run_raw_0402.root
-  %/media/sofia/s455/raw/run_raw_0403.root
+  /media/sofia/s455/raw/run_raw_0402.root
+  /media/sofia/s455/raw/run_raw_0403.root
   
   %% 184Hg
   %/media/sofia/s455/raw/run_raw_0404.root
@@ -85,6 +85,6 @@ RootFileName
   %/media/sofia/s455/raw/run_raw_0426.root
   
   %% 197At
-  /media/sofia/s455/raw/run_raw_0427.root
-  /media/sofia/s455/raw/run_raw_0428.root
-  /media/sofia/s455/raw/run_raw_0429.root
+  %/media/sofia/s455/raw/run_raw_0427.root
+  %/media/sofia/s455/raw/run_raw_0428.root
+  %/media/sofia/s455/raw/run_raw_0429.root
diff --git a/Projects/s455/calibration/SofSci/SofSci_physics.cal b/Projects/s455/calibration/SofSci/SofSci_physics.cal
index 8778ee911..b5d573448 100644
--- a/Projects/s455/calibration/SofSci/SofSci_physics.cal
+++ b/Projects/s455/calibration/SofSci/SofSci_physics.cal
@@ -1,4 +1,4 @@
-SofSci_TOF2INV_V -8.0515 0.00737389
+SofSci_TOF2INV_V -8.04267 0.00737389
 SofSci_LENGTH_S2 135.614
-SofSci_DET1_POSPAR 45.0 80.0
+SofSci_DET1_POSPAR 90 54.6
 SofSci_DET2_POSPAR 943.287 86.652
diff --git a/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal b/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal
index 37d3efaaa..80e81ae38 100644
--- a/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal
+++ b/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal
@@ -1,3 +1,3 @@
-SofTrim_SEC1_ALIGN -457.863 1.03809
+SofTrim_SEC1_ALIGN 14.3427 1.02007
 SofTrim_SEC2_ALIGN 0 1
-SofTrim_SEC3_ALIGN -2599.29 1.18757
+SofTrim_SEC3_ALIGN -2905.47 1.2027
diff --git a/Projects/s455/calibration/SofTwim/SofTwim_Time.cal b/Projects/s455/calibration/SofTwim/SofTwim_Time.cal
index fad7b8f79..a9d56a408 100644
--- a/Projects/s455/calibration/SofTwim/SofTwim_Time.cal
+++ b/Projects/s455/calibration/SofTwim/SofTwim_Time.cal
@@ -1,70 +1,64 @@
-SofTwim_SEC1_ANODE1_TIME  140 -0.0067 
-SofTwim_SEC1_ANODE2_TIME  140 -0.0067
-SofTwim_SEC1_ANODE3_TIME  140 -0.0067
-SofTwim_SEC1_ANODE4_TIME  140 -0.0067
-SofTwim_SEC1_ANODE5_TIME  140 -0.0067
-SofTwim_SEC1_ANODE6_TIME  140 -0.0067
-SofTwim_SEC1_ANODE7_TIME  140 -0.0067
-SofTwim_SEC1_ANODE8_TIME  140 -0.0067
-SofTwim_SEC1_ANODE9_TIME  140 -0.0067
-SofTwim_SEC1_ANODE10_TIME 140 -0.0067  
-SofTwim_SEC1_ANODE11_TIME 140 -0.0067
-SofTwim_SEC1_ANODE12_TIME 140 -0.0067
-SofTwim_SEC1_ANODE13_TIME 140 -0.0067
-SofTwim_SEC1_ANODE14_TIME 140 -0.0067
-SofTwim_SEC1_ANODE15_TIME 140 -0.0067
-SofTwim_SEC1_ANODE16_TIME 140 -0.0067
-
-SofTwim_SEC2_ANODE1_TIME  140 -0.0067 
-SofTwim_SEC2_ANODE2_TIME  140 -0.0067
-SofTwim_SEC2_ANODE3_TIME  140 -0.0067
-SofTwim_SEC2_ANODE4_TIME  140 -0.0067
-SofTwim_SEC2_ANODE5_TIME  140 -0.0067
-SofTwim_SEC2_ANODE6_TIME  140 -0.0067
-SofTwim_SEC2_ANODE7_TIME  140 -0.0067
-SofTwim_SEC2_ANODE8_TIME  140 -0.0067
-SofTwim_SEC2_ANODE9_TIME  140 -0.0067
-SofTwim_SEC2_ANODE10_TIME 140 -0.0067  
-SofTwim_SEC2_ANODE11_TIME 140 -0.0067
-SofTwim_SEC2_ANODE12_TIME 140 -0.0067
-SofTwim_SEC2_ANODE13_TIME 140 -0.0067
-SofTwim_SEC2_ANODE14_TIME 140 -0.0067
-SofTwim_SEC2_ANODE15_TIME 140 -0.0067
-SofTwim_SEC2_ANODE16_TIME 140 -0.0067
-
-SofTwim_SEC3_ANODE1_TIME  -140 0.0067 
-SofTwim_SEC3_ANODE2_TIME  -140 0.0067
-SofTwim_SEC3_ANODE3_TIME  -140 0.0067
-SofTwim_SEC3_ANODE4_TIME  -140 0.0067
-SofTwim_SEC3_ANODE5_TIME  -140 0.0067
-SofTwim_SEC3_ANODE6_TIME  -140 0.0067
-SofTwim_SEC3_ANODE7_TIME  -140 0.0067
-SofTwim_SEC3_ANODE8_TIME  -140 0.0067
-SofTwim_SEC3_ANODE9_TIME  -140 0.0067
-SofTwim_SEC3_ANODE10_TIME -140 0.0067  
-SofTwim_SEC3_ANODE11_TIME -140 0.0067
-SofTwim_SEC3_ANODE12_TIME -140 0.0067
-SofTwim_SEC3_ANODE13_TIME -140 0.0067
-SofTwim_SEC3_ANODE14_TIME -140 0.0067
-SofTwim_SEC3_ANODE15_TIME -140 0.0067
-SofTwim_SEC3_ANODE16_TIME -140 0.0067
-
-SofTwim_SEC4_ANODE1_TIME  -140 0.0067 
-SofTwim_SEC4_ANODE2_TIME  -140 0.0067
-SofTwim_SEC4_ANODE3_TIME  -140 0.0067
-SofTwim_SEC4_ANODE4_TIME  -140 0.0067
-SofTwim_SEC4_ANODE5_TIME  -140 0.0067
-SofTwim_SEC4_ANODE6_TIME  -140 0.0067
-SofTwim_SEC4_ANODE7_TIME  -140 0.0067
-SofTwim_SEC4_ANODE8_TIME  -140 0.0067
-SofTwim_SEC4_ANODE9_TIME  -140 0.0067
-SofTwim_SEC4_ANODE10_TIME -140 0.0067  
-SofTwim_SEC4_ANODE11_TIME -140 0.0067
-SofTwim_SEC4_ANODE12_TIME -140 0.0067
-SofTwim_SEC4_ANODE13_TIME -140 0.0067
-SofTwim_SEC4_ANODE14_TIME -140 0.0067
-SofTwim_SEC4_ANODE15_TIME -140 0.0067
-SofTwim_SEC4_ANODE16_TIME -140 0.0067
-
-
-
+SofTwim_SEC1_ANODE1_TIME 106.234 -0.00519492
+SofTwim_SEC1_ANODE2_TIME 108.837 -0.0052846
+SofTwim_SEC1_ANODE3_TIME 109.066 -0.00533216
+SofTwim_SEC1_ANODE4_TIME 110.172 -0.00535131
+SofTwim_SEC1_ANODE5_TIME 110.63 -0.0053861
+SofTwim_SEC1_ANODE6_TIME 110.757 -0.00545406
+SofTwim_SEC1_ANODE7_TIME 112.258 -0.00551423
+SofTwim_SEC1_ANODE8_TIME 111.72 -0.00552257
+SofTwim_SEC1_ANODE9_TIME 111.367 -0.00548824
+SofTwim_SEC1_ANODE10_TIME 111.724 -0.00550896
+SofTwim_SEC1_ANODE11_TIME 112.582 -0.00557901
+SofTwim_SEC1_ANODE12_TIME 112.841 -0.0056029
+SofTwim_SEC1_ANODE13_TIME 112.763 -0.00559341
+SofTwim_SEC1_ANODE14_TIME 112.895 -0.00560807
+SofTwim_SEC1_ANODE15_TIME 113.038 -0.0056353
+SofTwim_SEC1_ANODE16_TIME 112.9 -0.00565947
+SofTwim_SEC2_ANODE1_TIME 100.939 -0.00492907
+SofTwim_SEC2_ANODE2_TIME 102.272 -0.00499901
+SofTwim_SEC2_ANODE3_TIME 102.45 -0.00500725
+SofTwim_SEC2_ANODE4_TIME 103.413 -0.00505929
+SofTwim_SEC2_ANODE5_TIME 104.108 -0.00507707
+SofTwim_SEC2_ANODE6_TIME 105.347 -0.005184
+SofTwim_SEC2_ANODE7_TIME 106.29 -0.00522034
+SofTwim_SEC2_ANODE8_TIME 106.784 -0.00523956
+SofTwim_SEC2_ANODE9_TIME 106.611 -0.00524248
+SofTwim_SEC2_ANODE10_TIME 107.551 -0.00527529
+SofTwim_SEC2_ANODE11_TIME 108.595 -0.00536902
+SofTwim_SEC2_ANODE12_TIME 109.735 -0.00543531
+SofTwim_SEC2_ANODE13_TIME 109.359 -0.00540933
+SofTwim_SEC2_ANODE14_TIME 109.771 -0.005434
+SofTwim_SEC2_ANODE15_TIME 110.653 -0.00549802
+SofTwim_SEC2_ANODE16_TIME 109.511 -0.00545609
+SofTwim_SEC3_ANODE1_TIME -108.108 0.00507708
+SofTwim_SEC3_ANODE2_TIME -110.63 0.00519973
+SofTwim_SEC3_ANODE3_TIME -112.126 0.00527345
+SofTwim_SEC3_ANODE4_TIME -114.148 0.00537834
+SofTwim_SEC3_ANODE5_TIME -114.621 0.0053956
+SofTwim_SEC3_ANODE6_TIME -114.556 0.00537221
+SofTwim_SEC3_ANODE7_TIME -114.501 0.00535282
+SofTwim_SEC3_ANODE8_TIME -115.47 0.00540724
+SofTwim_SEC3_ANODE9_TIME -116.863 0.00549691
+SofTwim_SEC3_ANODE10_TIME -117.058 0.0055027
+SofTwim_SEC3_ANODE11_TIME -116.603 0.00546326
+SofTwim_SEC3_ANODE12_TIME -117.314 0.00549199
+SofTwim_SEC3_ANODE13_TIME -118.209 0.00554472
+SofTwim_SEC3_ANODE14_TIME -119.143 0.00558838
+SofTwim_SEC3_ANODE15_TIME -118.284 0.00553711
+SofTwim_SEC3_ANODE16_TIME -116.716 0.00545196
+SofTwim_SEC4_ANODE1_TIME -109.824 0.00519356
+SofTwim_SEC4_ANODE2_TIME -111.177 0.00524939
+SofTwim_SEC4_ANODE3_TIME -112.216 0.00530218
+SofTwim_SEC4_ANODE4_TIME -113.214 0.00535402
+SofTwim_SEC4_ANODE5_TIME -113.764 0.00537739
+SofTwim_SEC4_ANODE6_TIME -114.096 0.00536772
+SofTwim_SEC4_ANODE7_TIME -114.205 0.00536024
+SofTwim_SEC4_ANODE8_TIME -114.92 0.00539681
+SofTwim_SEC4_ANODE9_TIME -115.853 0.0054645
+SofTwim_SEC4_ANODE10_TIME -116.427 0.00548804
+SofTwim_SEC4_ANODE11_TIME -116.342 0.00546499
+SofTwim_SEC4_ANODE12_TIME -116.811 0.00547963
+SofTwim_SEC4_ANODE13_TIME -117.445 0.00552009
+SofTwim_SEC4_ANODE14_TIME -117.827 0.00553216
+SofTwim_SEC4_ANODE15_TIME -117.688 0.00551745
+SofTwim_SEC4_ANODE16_TIME -117.428 0.00550264
-- 
GitLab