diff --git a/NPLib/Detectors/GeTAMU/TGeTAMUData.cxx b/NPLib/Detectors/GeTAMU/TGeTAMUData.cxx
index 106f47a8a0c81b0924f98e7c5c1a852481ba56f1..191eb57f0851b85d6a9ffaa4dd2584dae87d956e 100644
--- a/NPLib/Detectors/GeTAMU/TGeTAMUData.cxx
+++ b/NPLib/Detectors/GeTAMU/TGeTAMUData.cxx
@@ -9,7 +9,7 @@
  * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
  *                                                                           *
  * Creation Date  : November 2012                                            *
- * Last update    : November 2016                                            *
+ * Last update    : December 2016 m.moukaddam@suurey.ac.uk                   *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This class hold the GeTAMU  raw data                                     *
@@ -38,33 +38,51 @@ TGeTAMUData::~TGeTAMUData(){
 
 /////////////////////////
 void TGeTAMUData::Clear(){
-  fGeTAMU_Core_CloverNbr.clear();
-  fGeTAMU_Core_CrystalNbr.clear();
+  fGeTAMU_Core_CloverNbr_E.clear();
+  fGeTAMU_Core_CrystalNbr_E.clear();
   fGeTAMU_Core_Energy.clear();
+
+  fGeTAMU_Core_CloverNbr_T.clear();
+  fGeTAMU_Core_CrystalNbr_T.clear();
   fGeTAMU_Core_Time.clear();
 
-  fGeTAMU_Segment_CloverNbr.clear();
-  fGeTAMU_Segment_SegmentNbr.clear();
+  fGeTAMU_Segment_CloverNbr_E.clear();
+  fGeTAMU_Segment_SegmentNbr_E.clear();
   fGeTAMU_Segment_Energy.clear();
+
+  fGeTAMU_Segment_CloverNbr_T.clear();
+  fGeTAMU_Segment_SegmentNbr_T.clear();
   fGeTAMU_Segment_Time.clear();
 }
 
 /////////////////////////
 void TGeTAMUData::Dump() const{
 
- cout << "Core Multiplicity = " << fGeTAMU_Core_CloverNbr.size() << endl;  
-  for (unsigned int i = 0; i <  fGeTAMU_Core_CloverNbr.size(); i++){
-    cout << " Clover: " <<  fGeTAMU_Core_CloverNbr[i] 
-         << " Crystal: " << fGeTAMU_Core_CrystalNbr[i]  
-         << " Energy: " <<  fGeTAMU_Core_Energy[i]  
+ cout << "Core Energy Multiplicity = " << fGeTAMU_Core_CloverNbr_E.size() << endl;  
+  for (unsigned int i = 0; i <  fGeTAMU_Core_CloverNbr_E.size(); i++){
+    cout << " Clover: " <<  fGeTAMU_Core_CloverNbr_E[i] 
+         << " Crystal: " << fGeTAMU_Core_CrystalNbr_E[i]  
+         << " Energy: " <<  fGeTAMU_Core_Energy[i] << endl;  
+  }
+
+ cout << "Core Time Multiplicity = " << fGeTAMU_Core_CloverNbr_T.size() << endl;  
+  for (unsigned int i = 0; i <  fGeTAMU_Core_CloverNbr_T.size(); i++){
+    cout << " Clover: " <<  fGeTAMU_Core_CloverNbr_T[i] 
+         << " Crystal: " << fGeTAMU_Core_CrystalNbr_T[i]  
          << " Time: " <<    fGeTAMU_Core_Time[i] << endl;
   }
 
-  cout << "Segment Multiplicity = " <<  fGeTAMU_Segment_CloverNbr.size() << endl;  
-  for (unsigned int i = 0; i < fGeTAMU_Segment_CloverNbr.size(); i++){
-    cout << " Clover: " <<  fGeTAMU_Segment_CloverNbr[i]  
-         << " Segment: " << fGeTAMU_Segment_SegmentNbr[i]  
-         << " Energy: " <<  fGeTAMU_Segment_Energy[i]  
+  cout << "Segment Energy Multiplicity = " <<  fGeTAMU_Segment_CloverNbr_E.size() << endl;  
+  for (unsigned int i = 0; i < fGeTAMU_Segment_CloverNbr_E.size(); i++){
+    cout << " Clover: " <<  fGeTAMU_Segment_CloverNbr_E[i]  
+         << " Segment: " << fGeTAMU_Segment_SegmentNbr_E[i]  
+         << " Energy: " <<  fGeTAMU_Segment_Energy[i] << endl;   
+  }
+
+  cout << "Segment Time Multiplicity = " <<  fGeTAMU_Segment_CloverNbr_T.size() << endl;  
+  for (unsigned int i = 0; i < fGeTAMU_Segment_CloverNbr_T.size(); i++){
+    cout << " Clover: " <<  fGeTAMU_Segment_CloverNbr_T[i]  
+         << " Segment: " << fGeTAMU_Segment_SegmentNbr_T[i]  
          << " Time: " <<    fGeTAMU_Segment_Time[i] << endl;
   }
 
diff --git a/NPLib/Detectors/GeTAMU/TGeTAMUData.h b/NPLib/Detectors/GeTAMU/TGeTAMUData.h
index f6cd37c2a01bd25087eee268f7068ea5ebf02ece..a97a2d422806752d92fbf2321023e5368cd3424e 100644
--- a/NPLib/Detectors/GeTAMU/TGeTAMUData.h
+++ b/NPLib/Detectors/GeTAMU/TGeTAMUData.h
@@ -11,7 +11,7 @@
  * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
  *                                                                           *
  * Creation Date  : 2016                                                     *
- * Last update    :                                                          *
+ * Last update    : December 2016 m.moukaddam@suurey.ac.uk                   *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This class hold the GeTAMU  raw data                                     *
@@ -34,14 +34,18 @@ class TGeTAMUData : public TObject {
 private:
   // GeTAMU
   // Core 
-  vector<unsigned short> fGeTAMU_Core_CloverNbr;
-  vector<unsigned short> fGeTAMU_Core_CrystalNbr;
+  vector<unsigned short> fGeTAMU_Core_CloverNbr_E;
+  vector<unsigned short> fGeTAMU_Core_CrystalNbr_E;
   vector<double> fGeTAMU_Core_Energy;
+  vector<unsigned short> fGeTAMU_Core_CloverNbr_T;
+  vector<unsigned short> fGeTAMU_Core_CrystalNbr_T;
   vector<double> fGeTAMU_Core_Time;
   // Segment
-  vector<unsigned short> fGeTAMU_Segment_CloverNbr;
-  vector<unsigned short> fGeTAMU_Segment_SegmentNbr;
+  vector<unsigned short> fGeTAMU_Segment_CloverNbr_E;
+  vector<unsigned short> fGeTAMU_Segment_SegmentNbr_E;
   vector<double> fGeTAMU_Segment_Energy;
+  vector<unsigned short> fGeTAMU_Segment_CloverNbr_T;
+  vector<unsigned short> fGeTAMU_Segment_SegmentNbr_T;
   vector<double> fGeTAMU_Segment_Time;
 
 
@@ -54,48 +58,70 @@ public:
   void Dump() const;
   
   /////////////////////           SETTERS           ////////////////////////
-  inline void SetCoreCloverNbr(const unsigned short &CoreCloverNbr){fGeTAMU_Core_CloverNbr.push_back(CoreCloverNbr); }
-  inline void SetCoreCrystalNbr(const unsigned short &CoreCrystalNbr){fGeTAMU_Core_CrystalNbr.push_back(CoreCrystalNbr);}
+  inline void SetCoreCloverNbrE(const unsigned short &CoreCloverNbr){fGeTAMU_Core_CloverNbr_E.push_back(CoreCloverNbr); }
+  inline void SetCoreCrystalNbrE(const unsigned short &CoreCrystalNbr){fGeTAMU_Core_CrystalNbr_E.push_back(CoreCrystalNbr);}
   inline void SetCoreEnergy(const double &CoreEnergy){fGeTAMU_Core_Energy.push_back(CoreEnergy);}
+
+  inline void SetCoreCloverNbrT(const unsigned short &CoreCloverNbr){fGeTAMU_Core_CloverNbr_T.push_back(CoreCloverNbr); }
+  inline void SetCoreCrystalNbrT(const unsigned short &CoreCrystalNbr){fGeTAMU_Core_CrystalNbr_T.push_back(CoreCrystalNbr);}
   inline void SetCoreTime(const double &CoreTime){fGeTAMU_Core_Time.push_back(CoreTime);}
-  inline void SetCore(const unsigned short &CoreCloverNbr,
+
+  inline void SetCoreE(const unsigned short &CoreCloverNbr,
+                      const unsigned short &CoreCrystalNbr,
+                      const double &CoreEnergy){
+    fGeTAMU_Core_CloverNbr_E.push_back(CoreCloverNbr);
+    fGeTAMU_Core_CrystalNbr_E.push_back(CoreCrystalNbr);
+    fGeTAMU_Core_Energy.push_back(CoreEnergy);}
+
+  inline void SetCoreT(const unsigned short &CoreCloverNbr,
                       const unsigned short &CoreCrystalNbr,
-                      const double &CoreEnergy,
                       const double &CoreTime){
-    fGeTAMU_Core_CloverNbr.push_back(CoreCloverNbr);
-    fGeTAMU_Core_CrystalNbr.push_back(CoreCrystalNbr);
-    fGeTAMU_Core_Energy.push_back(CoreEnergy);
-    fGeTAMU_Core_Time.push_back(CoreTime);
-  };
+    fGeTAMU_Core_CloverNbr_T.push_back(CoreCloverNbr);
+    fGeTAMU_Core_CrystalNbr_T.push_back(CoreCrystalNbr);
+    fGeTAMU_Core_Time.push_back(CoreTime);}
 
-  inline void SetSegmentCloverNbr(const unsigned short &SegmentCloverNbr){fGeTAMU_Segment_CloverNbr.push_back(SegmentCloverNbr); }
-  inline void SetSegmentSegmentNbr(const unsigned short &SegmentNbr){fGeTAMU_Segment_SegmentNbr.push_back(SegmentNbr);}
+  inline void SetSegmentCloverNbrE(const unsigned short &SegmentCloverNbr){fGeTAMU_Segment_CloverNbr_E.push_back(SegmentCloverNbr); }
+  inline void SetSegmentSegmentNbrE(const unsigned short &SegmentNbr){fGeTAMU_Segment_SegmentNbr_E.push_back(SegmentNbr);}
   inline void SetSegmentEnergy(const double &SegmentEnergy){fGeTAMU_Segment_Energy.push_back(SegmentEnergy);}
+  
+  inline void SetSegmentCloverNbrT(const unsigned short &SegmentCloverNbr){fGeTAMU_Segment_CloverNbr_T.push_back(SegmentCloverNbr); }
+  inline void SetSegmentSegmentNbrT(const unsigned short &SegmentNbr){fGeTAMU_Segment_SegmentNbr_T.push_back(SegmentNbr);}
   inline void SetSegmentTime(const double &SegmentTime){fGeTAMU_Segment_Time.push_back(SegmentTime);}
-  inline void SetSegment(const unsigned short &SegmentCloverNbr,
+  
+  inline void SetSegmentE(const unsigned short &SegmentCloverNbr,
                       const unsigned short &SegmentNbr,
-                      const double &SegmentEnergy,
-                      const double &SegmentTime){
-    fGeTAMU_Segment_CloverNbr.push_back(SegmentCloverNbr);
-    fGeTAMU_Segment_SegmentNbr.push_back(SegmentNbr);
-    fGeTAMU_Segment_Energy.push_back(SegmentEnergy);
-    fGeTAMU_Segment_Time.push_back(SegmentTime);
-  };
+                      const double &SegmentEnergy){
+    fGeTAMU_Segment_CloverNbr_E.push_back(SegmentCloverNbr);
+    fGeTAMU_Segment_SegmentNbr_E.push_back(SegmentNbr);
+    fGeTAMU_Segment_Energy.push_back(SegmentEnergy);};
 
+  inline void SetSegmentT(const unsigned short &SegmentCloverNbr,
+                      const unsigned short &SegmentNbr,
+                      const double &SegmentTime){
+    fGeTAMU_Segment_CloverNbr_T.push_back(SegmentCloverNbr);
+    fGeTAMU_Segment_SegmentNbr_T.push_back(SegmentNbr);
+    fGeTAMU_Segment_Time.push_back(SegmentTime);};
 
   /////////////////////           GETTERS           ////////////////////////
-  inline unsigned short GetCoreCloverNbr(const unsigned int &i)   {return fGeTAMU_Core_CloverNbr[i]; }
-  inline unsigned short GetCoreCrystalNbr(const unsigned int &i)  {return fGeTAMU_Core_CrystalNbr[i]; }
+  inline unsigned int GetMultiplicityCoreE()  {return fGeTAMU_Core_CloverNbr_E.size();}
+  inline unsigned short GetCoreCloverNbrE(const unsigned int &i)   {return fGeTAMU_Core_CloverNbr_E[i]; }
+  inline unsigned short GetCoreCrystalNbrE(const unsigned int &i)  {return fGeTAMU_Core_CrystalNbr_E[i]; }
   inline double GetCoreEnergy(const unsigned int &i)      {return fGeTAMU_Core_Energy[i];}
+
+  inline unsigned int GetMultiplicityCoreT()  {return fGeTAMU_Core_CloverNbr_T.size();}
+  inline unsigned short GetCoreCloverNbrT(const unsigned int &i)   {return fGeTAMU_Core_CloverNbr_T[i]; }
+  inline unsigned short GetCoreCrystalNbrT(const unsigned int &i)  {return fGeTAMU_Core_CrystalNbr_T[i]; }
   inline double GetCoreTime(const unsigned int &i)     {return fGeTAMU_Core_Time[i];}
-  inline unsigned int GetMultiplicityCore()  {return fGeTAMU_Core_CloverNbr.size();}
   
-  inline unsigned short GetSegmentCloverNbr(const unsigned int &i)   {return fGeTAMU_Segment_CloverNbr[i]; }
-  inline unsigned short GetSegmentSegmentNbr(const unsigned int &i)   {return fGeTAMU_Segment_SegmentNbr[i]; }
+  inline unsigned int GetMultiplicitySegmentE()  {return fGeTAMU_Segment_CloverNbr_E.size();}
+  inline unsigned short GetSegmentCloverNbrE(const unsigned int &i)   {return fGeTAMU_Segment_CloverNbr_E[i]; }
+  inline unsigned short GetSegmentSegmentNbrE(const unsigned int &i)   {return fGeTAMU_Segment_SegmentNbr_E[i]; }
   inline double GetSegmentEnergy(const unsigned int &i)      {return fGeTAMU_Segment_Energy[i];}
-  inline double GetSegmentTime(const unsigned int &i)     {return fGeTAMU_Segment_Time[i];}
-  inline unsigned int GetMultiplicitySegment()  {return fGeTAMU_Segment_CloverNbr.size();}
   
+  inline unsigned int GetMultiplicitySegmentT()  {return fGeTAMU_Segment_CloverNbr_T.size();}
+  inline unsigned short GetSegmentCloverNbrT(const unsigned int &i)   {return fGeTAMU_Segment_CloverNbr_T[i]; }
+  inline unsigned short GetSegmentSegmentNbrT(const unsigned int &i)   {return fGeTAMU_Segment_SegmentNbr_T[i]; }
+  inline double GetSegmentTime(const unsigned int &i)     {return fGeTAMU_Segment_Time[i];}
 
   ClassDef(TGeTAMUData,1)  // GeTAMUData structure
 };
diff --git a/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.cxx b/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.cxx
index ee52f9f6c79092a7e48d3abf70ddd049fa4c241a..09cb38f8ad981046a0d645d2ea9f2e8c46981a56 100644
--- a/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.cxx
+++ b/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.cxx
@@ -9,10 +9,10 @@
  * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
  *                                                                           * 
  * Creation Date  : November 2012                                            *
- * Last update    :                                                          *
+ * Last update    : December 2016 m.moukaddam@surrey.ac.uk                   *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
- *  This class hold GeTAMU treated data                                     *
+ *  This class hold GeTAMU treated data                                      *
  *                                                                           *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
@@ -51,31 +51,33 @@ ClassImp(TGeTAMUPhysics)
 /////////////////////////////////////////////////
 void TGeTAMUPhysics::BuildPhysicalEvent(){
   PreTreat();
-  unsigned int c_size = m_PreTreatedData->GetMultiplicityCore();
-  unsigned int s_size = m_PreTreatedData->GetMultiplicitySegment();
+  unsigned int c_size_e = m_PreTreatedData->GetMultiplicityCoreE();
+  unsigned int s_size_e = m_PreTreatedData->GetMultiplicitySegmentE();
+  unsigned int c_size_t = m_PreTreatedData->GetMultiplicityCoreT();
+  unsigned int s_size_t = m_PreTreatedData->GetMultiplicitySegmentT();
   // map for add back
   map<int,double> clv_energy;   
   map<int,int> clv_segment;
   map<int,int> clv_crystal;
   map<int,double> max_core;
   map<int,double> max_segment; 
-  for(unsigned int i = 0 ; i < c_size ; i++){
-    int clv = m_PreTreatedData->GetCoreCloverNbr(i);
-    int cry = m_PreTreatedData->GetCoreCrystalNbr(i);
+  for(unsigned int i = 0 ; i < c_size_e ; i++){
+    int clv = m_PreTreatedData->GetCoreCloverNbrE(i);
+    int cry = m_PreTreatedData->GetCoreCrystalNbrE(i);
     double energy = m_PreTreatedData->GetCoreEnergy(i);
     // Add back energy
     clv_energy[clv] += energy;
-    // Pick up the crystal
+    // Pick up the crystal with the maximum energy in every clover 
     if(energy > max_core[clv]){
       max_core[clv] = energy;
       clv_crystal[clv] = cry;
     }
-    // Pick up the segment
-    for(unsigned int j = 0 ; j < s_size ; j++){
+    // Pick up the segment with the maximum energy in every clover
+    for(unsigned int j = 0 ; j < s_size_e ; j++){
       double s_energy = m_PreTreatedData->GetSegmentEnergy(j); 
       if(s_energy > max_segment[clv]){
         max_segment[clv] = s_energy;
-        clv_segment[clv] = m_PreTreatedData->GetSegmentSegmentNbr(j);
+        clv_segment[clv] = m_PreTreatedData->GetSegmentSegmentNbrE(j);
       }
     }
   }
@@ -101,33 +103,53 @@ void TGeTAMUPhysics::BuildPhysicalEvent(){
 void TGeTAMUPhysics::PreTreat(){
   static CalibrationManager* cal = CalibrationManager::getInstance();
   static string name;
-  unsigned int mysize = m_EventData->GetMultiplicityCore();
+  unsigned int mysizeE = m_EventData->GetMultiplicityCoreE();
+  unsigned int mysizeT = m_EventData->GetMultiplicityCoreT();
   double Eraw,Energy;
   double Traw,Time;
   int clover, crystal, segment;
-  for(unsigned int i = 0 ; i < mysize ; i++){
+  for(unsigned int i = 0 ; i < mysizeE ; i++){
     Eraw = m_EventData->GetCoreEnergy(i);
     if(Eraw>0){
-      clover = m_EventData->GetCoreCloverNbr(i);
-      crystal = m_EventData->GetCoreCrystalNbr(i);
+      clover = m_EventData->GetCoreCloverNbrE(i);
+      crystal = m_EventData->GetCoreCrystalNbrE(i);
       name = "GETAMU/D"+ NPL::itoa(clover)+"_CRY"+ NPL::itoa(crystal);
       Energy =  cal->ApplyCalibration(name+"_E", Eraw);
+      m_PreTreatedData->SetCoreE(clover,crystal,Energy);
+    }
+  }
+  for(unsigned int i = 0 ; i < mysizeT ; i++){
+    Traw = m_EventData->GetCoreTime(i);
+    if(Traw>0){
+      clover = m_EventData->GetCoreCloverNbrT(i);
+      crystal = m_EventData->GetCoreCrystalNbrT(i);
+      name = "GETAMU/D"+ NPL::itoa(clover)+"_CRY"+ NPL::itoa(crystal);
       Time =  cal->ApplyCalibration(name+"_T", Traw);
-      m_PreTreatedData->SetCore(clover,crystal,Energy,Time);
+      m_PreTreatedData->SetCoreT(clover,crystal,Time);
     }
   } 
-  mysize = m_EventData->GetMultiplicitySegment();
-  for(unsigned int i = 0 ; i < mysize ; i++){
+
+ mysizeE = m_EventData->GetMultiplicitySegmentE();
+  for(unsigned int i = 0 ; i < mysizeE ; i++){
     Eraw = m_EventData->GetSegmentEnergy(i);
     if(Eraw>0){
-      clover = m_EventData->GetSegmentCloverNbr(i);
-      segment = m_EventData->GetSegmentSegmentNbr(i);
+      clover = m_EventData->GetSegmentCloverNbrE(i);
+      segment = m_EventData->GetSegmentSegmentNbrE(i);
       name = "GETAMU/D"+ NPL::itoa(clover)+"_SEG"+ NPL::itoa(segment);
       Energy =  cal->ApplyCalibration(name+"_E", Eraw);
+      m_PreTreatedData->SetSegmentE(clover,crystal,Energy);
+    }
+  }
+ mysizeT = m_EventData->GetMultiplicitySegmentT();
+  for(unsigned int i = 0 ; i < mysizeT ; i++){
+    Traw = m_EventData->GetSegmentTime(i);
+    if(Traw>0){
+      clover = m_EventData->GetSegmentCloverNbrT(i);
+      segment = m_EventData->GetSegmentSegmentNbrT(i);
+      name = "GETAMU/D"+ NPL::itoa(clover)+"_SEG"+ NPL::itoa(segment);
       Time =  cal->ApplyCalibration(name+"_T", Traw);
-      m_PreTreatedData->SetSegment(clover,crystal,Energy,Time);
+      m_PreTreatedData->SetSegmentT(clover,crystal,Time);
     }
-
   }
 }
 
diff --git a/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.h b/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.h
index 305cd39d5808c0abcae1a926e8616c3ca3bac156..fd4157ef41a0f4190bf2a6c866bdd2230c33e8e1 100644
--- a/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.h
+++ b/NPLib/Detectors/GeTAMU/TGeTAMUPhysics.h
@@ -11,7 +11,7 @@
  * Original Author: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
  *                  Peter Bender  contact address: bender@triumf.ca          *
  * Creation Date  : November 2012                                            *
- * Last update    :                                                          *
+ * Last update    : December 2016 m.moukaddam@surrey.ac.uk                   *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This class hold GeTAMU treated data                                     *