diff --git a/NPLib/Detectors/PISTA/TFPMWPhysics.cxx b/NPLib/Detectors/PISTA/TFPMWPhysics.cxx
index dfd33c0f420d04c7a4981d25c303500b69a030a4..9c1c1bbcbe8c56dff1cbd9e18b3c902e439c8cff 100644
--- a/NPLib/Detectors/PISTA/TFPMWPhysics.cxx
+++ b/NPLib/Detectors/PISTA/TFPMWPhysics.cxx
@@ -650,7 +650,7 @@ void TFPMWPhysics::ReadAnalysisConfig() {
         string FileNameLinea = DataBuffer;
         ifstream LineaFile (FileName.c_str());	  
         if (LineaFile){
-          cout << endl <<"/////////// Yaml Linearisation File opened ///////////" << endl;
+          cout << endl <<"/////////// txt Linearisation File opened ///////////" << endl;
           LoadLineaFromFile(EdgeBinDet, NewEdgeBinDet, FileNameLinea);
           LoadLinea = true ;
         }
diff --git a/NPLib/Detectors/PISTA/TICPhysics.cxx b/NPLib/Detectors/PISTA/TICPhysics.cxx
index fa6d76b07ca71f72c76358f93a312875fd3dc003..360d4e96ff85d39d61c743043c489d11dcea08cd 100644
--- a/NPLib/Detectors/PISTA/TICPhysics.cxx
+++ b/NPLib/Detectors/PISTA/TICPhysics.cxx
@@ -89,10 +89,36 @@ void TICPhysics::BuildPhysicalEvent() {
   for(int i=0; i<size; i++){
     int segment = m_PreTreatedData->GetIC_Section(i);
     double gain = Cal->GetValue("IC/SEC"+NPL::itoa(m_FPMW_Section)+"_SEG"+NPL::itoa(segment)+"_ALIGN",0);
+    double GainInit = Cal->GetValue("IC/INIT_SEG"+NPL::itoa(segment)+"_ALIGN",0);
 
     fIC_raw[i] = m_PreTreatedData->GetIC_Charge(i);
     fIC[i] = gain*m_PreTreatedData->GetIC_Charge(i);
-    //fIC[i] = m_PreTreatedData->GetIC_Charge(i);
+    fIC_Init[i] = GainInit * m_PreTreatedData->GetIC_Charge(i);
+  
+  }
+
+
+  if (fIC_Init[1]>0 && fIC_Init[5]>0) {
+    EtotInit = 0 ;
+    int DataYear = Cal->GetValue("IC/DATA_YEAR",0);
+    double ScalorInit = Cal->GetValue("IC/INIT_ETOT_SCALING",0);
+
+    for (int Seg = 0; Seg<10; Seg++){
+      
+      if (Seg == 0 && DataYear == 2024 ){
+        EtotInit += 0.75 * Cal->GetValue("IC/INIT_SEG"+NPL::itoa(Seg)+"_ALIGN",0);
+      }
+
+      else { 
+        EtotInit += fIC_Init[Seg];  
+      }
+        EtotInit = EtotInit * ScalorInit ;
+    } 
+  
+  } //Condition for Init Etot
+
+  else {
+  EtotInit = -100 ;
   }
 
   if(fIC[1]>0 && fIC[5]>0){
@@ -106,7 +132,8 @@ void TICPhysics::BuildPhysicalEvent() {
     }
     Etot = scalor*Etot;
 
-    //Etot = 0.02411*(0.8686*fIC_raw[0]+0.7199*fIC_raw[1]+0.6233*fIC_raw[2]+0.4697*fIC_raw[3]+0.9787*fIC_raw[4]+0.9892*fIC_raw[5]+2.1038*fIC_raw[6]+1.9429*fIC_raw[7]+1.754*fIC_raw[8]+2.5*fIC_raw[9]); 
+    //Etot = 0.02411*(0.8686*fIC_raw[0]+0.7199*fIC_raw[1]+0.6233*fIC_raw[2]+0.4697*fIC_raw[3]+0.9787*fIC_raw[4]+0.9892*fIC_raw[5]+2.1038*fIC_raw[6]+1.9429*fIC_raw[7]+1.754*fIC_raw[8]+2.5*fIC_raw[9]);  
+
     
     if(m_Z_SPLINE_CORRECTION && Eres>3000 && Eres<15000){
       Chio_Z = DE*m_Zspline->Eval(8000)/m_Zspline->Eval(Eres);
@@ -232,6 +259,7 @@ void TICPhysics::Clear() {
   DE = 0;
   Eres = 0;
   Etot = 0;
+  EtotInit = 0;
   Chio_Z = 0;
   for(int i=0; i<11; i++){
     fIC[i] = 0;
@@ -280,6 +308,14 @@ void TICPhysics::ReadConfiguration(NPL::InputParser parser) {
 void TICPhysics::AddParameterToCalibrationManager() {
   CalibrationManager* Cal = CalibrationManager::getInstance();
 
+  //Calibration from online analysis
+  Cal->AddParameter("IC","INIT_ETOT_SCALING","IC_INIT_ETOT_SCALING");
+  Cal->AddParameter("IC","DATA_YEAR","IC_DATA_YEAR");
+    for (int segment=0; segment<11;segment++){
+      Cal->AddParameter("IC","INIT_SEG"+NPL::itoa(segment+1)+"_ALIGN","IC_INIT_SEG"+NPL::itoa(segment+1)+"_ALIGN");
+    }
+
+
   for(int section = 0; section<20; section++){
   Cal->AddParameter("IC","ETOT_SCALING_SEC"+NPL::itoa(section),"IC_ETOT_SCALING_SEC"+NPL::itoa(section));
     for(int segment = 0; segment<11; segment++){
diff --git a/NPLib/Detectors/PISTA/TICPhysics.h b/NPLib/Detectors/PISTA/TICPhysics.h
index a99d89050ad35a577053b30b1e5ad382b48205f8..ef2135b07cf00aff31c0022d3bfa70f8145d3ce5 100644
--- a/NPLib/Detectors/PISTA/TICPhysics.h
+++ b/NPLib/Detectors/PISTA/TICPhysics.h
@@ -64,9 +64,11 @@ class TICPhysics : public TObject, public NPL::VDetector {
     double DE;
     double Eres;
     double Etot;
+    double EtotInit;
     double Chio_Z;
     double fIC[11];
     double fIC_raw[11];//! 
+    double fIC_Init[11];//! 
   private:
 
     /// A usefull method to bundle all operation to add a detector