From 4bf8f39a445ab09791a7a4d4149aac271aaf8801 Mon Sep 17 00:00:00 2001
From: adrien-matta <a.matta@surrey.ac.uk>
Date: Tue, 11 Apr 2017 16:49:34 +0200
Subject: [PATCH] * Cleaner TMust2Data class         - remove dangerous setter 
        - replace by single set method that guarantee the correllated        
 vector are always the same size

---
 NPLib/Detectors/MUST2/TMust2Data.h         | 148 ++++++++++++---------
 NPLib/Detectors/MUST2/TMust2Physics.cxx    |  58 +++-----
 NPSimulation/Detectors/MUST2/MUST2Array.cc |  64 +++------
 3 files changed, 117 insertions(+), 153 deletions(-)

diff --git a/NPLib/Detectors/MUST2/TMust2Data.h b/NPLib/Detectors/MUST2/TMust2Data.h
index c39d0e329..d3ae01641 100644
--- a/NPLib/Detectors/MUST2/TMust2Data.h
+++ b/NPLib/Detectors/MUST2/TMust2Data.h
@@ -78,88 +78,108 @@ class TMust2Data : public TObject {
       /////////////////////           SETTERS           ////////////////////////
       // DSSD
       // (X,E)
-      void   SetMMStripXEDetectorNbr(const UShort_t DetNbr) {fMM_StripXE_DetectorNbr.push_back(DetNbr);}
-      void   SetMMStripXEStripNbr(const UShort_t StripNbr)  {fMM_StripXE_StripNbr.push_back(StripNbr);}
-      void   SetMMStripXEEnergy(const Double_t Energy)      {fMM_StripXE_Energy.push_back(Energy);}
+      inline void   SetStripXE(const UShort_t& DetNbr, const UShort_t& StripNbr, const Double_t& Energy){
+        fMM_StripXE_DetectorNbr.push_back(DetNbr);
+        fMM_StripXE_StripNbr.push_back(StripNbr);
+        fMM_StripXE_Energy.push_back(Energy);
+      }
+      
       // (X,T)
-      void   SetMMStripXTDetectorNbr(const UShort_t DetNbr) {fMM_StripXT_DetectorNbr.push_back(DetNbr);}
-      void   SetMMStripXTStripNbr(const UShort_t StripNbr)  {fMM_StripXT_StripNbr.push_back(StripNbr);}
-      void   SetMMStripXTTime(const Double_t Time)          {fMM_StripXT_Time.push_back(Time);}
-      // (Y,E)
-      void   SetMMStripYEDetectorNbr(const UShort_t DetNbr) {fMM_StripYE_DetectorNbr.push_back(DetNbr);}
-      void   SetMMStripYEStripNbr(const UShort_t StripNbr)  {fMM_StripYE_StripNbr.push_back(StripNbr);}
-      void   SetMMStripYEEnergy(const Double_t Energy)      {fMM_StripYE_Energy.push_back(Energy);}
+     inline void   SetStripXT(const UShort_t& DetNbr, const UShort_t& StripNbr, const Double_t& Time){   
+      fMM_StripXT_DetectorNbr.push_back(DetNbr);  
+      fMM_StripXT_StripNbr.push_back(StripNbr);       
+      fMM_StripXT_Time.push_back(Time);  
+     } 
+       // (Y,E)
+      inline void   SetStripYE(const UShort_t& DetNbr, const UShort_t& StripNbr, const Double_t& Energy){
+        fMM_StripYE_DetectorNbr.push_back(DetNbr);
+        fMM_StripYE_StripNbr.push_back(StripNbr);
+        fMM_StripYE_Energy.push_back(Energy);
+      }
+      
       // (Y,T)
-      void   SetMMStripYTDetectorNbr(const UShort_t DetNbr) {fMM_StripYT_DetectorNbr.push_back(DetNbr);}
-      void   SetMMStripYTStripNbr(const UShort_t StripNbr)  {fMM_StripYT_StripNbr.push_back(StripNbr);}
-      void   SetMMStripYTTime(const Double_t Time)          {fMM_StripYT_Time.push_back(Time);}
-
+     inline void   SetStripYT(const UShort_t& DetNbr, const UShort_t& StripNbr, const Double_t& Time){   
+      fMM_StripYT_DetectorNbr.push_back(DetNbr);  
+      fMM_StripYT_StripNbr.push_back(StripNbr);       
+      fMM_StripYT_Time.push_back(Time);  
+     } 
+      
       // SiLi
-      //(E)
-      void   SetMMSiLiEDetectorNbr(const Short_t DetNbr)    {fMM_SiLiE_DetectorNbr.push_back(DetNbr);}
-      void   SetMMSiLiEPadNbr(const UShort_t PadNbr)        {fMM_SiLiE_PadNbr.push_back(PadNbr);}
-      void   SetMMSiLiEEnergy(const Double_t Energy)        {fMM_SiLiE_Energy.push_back(Energy);}
-      //(T)
-      void   SetMMSiLiTDetectorNbr(const UShort_t DetNbr)   {fMM_SiLiT_DetectorNbr.push_back(DetNbr);}
-      void   SetMMSiLiTPadNbr(const UShort_t PadNbr)        {fMM_SiLiT_PadNbr.push_back(PadNbr);}
-      void   SetMMSiLiTTime(const Double_t Time)            {fMM_SiLiT_Time.push_back(Time);}
-
+      // E
+      inline void   SetSiLiE(const UShort_t& DetNbr, const UShort_t& PadNbr, const Double_t& Energy){
+        fMM_SiLiE_DetectorNbr.push_back(DetNbr);
+        fMM_SiLiE_PadNbr.push_back(PadNbr);
+        fMM_SiLiE_Energy.push_back(Energy);
+      }
+      
+      // T
+     inline void   SetSiLiT(const UShort_t& DetNbr, const UShort_t& PadNbr, const Double_t& Time){   
+      fMM_SiLiT_DetectorNbr.push_back(DetNbr);  
+      fMM_SiLiT_PadNbr.push_back(PadNbr);       
+      fMM_SiLiT_Time.push_back(Time);  
+     } 
+ 
       // CsI
-      // (E)
-      void   SetMMCsIEDetectorNbr(const UShort_t DetNbr)    {fMM_CsIE_DetectorNbr.push_back(DetNbr);}
-      void   SetMMCsIECristalNbr(const UShort_t CristalNbr) {fMM_CsIE_CristalNbr.push_back(CristalNbr);}
-      void   SetMMCsIEEnergy(const Double_t Energy)         {fMM_CsIE_Energy.push_back(Energy);}
-      // (T)
-      void   SetMMCsITDetectorNbr(const UShort_t DetNbr)    {fMM_CsIT_DetectorNbr.push_back(DetNbr);}
-      void   SetMMCsITCristalNbr(const UShort_t CristalNbr) {fMM_CsIT_CristalNbr.push_back(CristalNbr);}
-      void   SetMMCsITTime(const Double_t Time)             {fMM_CsIT_Time.push_back(Time);}
-
+      // E
+      inline void   SetCsIE(const UShort_t& DetNbr, const UShort_t& CristalNbr, const Double_t& Energy){
+        fMM_CsIE_DetectorNbr.push_back(DetNbr);
+        fMM_CsIE_CristalNbr.push_back(CristalNbr);
+        fMM_CsIE_Energy.push_back(Energy);
+      }
+      
+      // T
+     inline void   SetCsIT(const UShort_t& DetNbr, const UShort_t& CristalNbr, const Double_t& Time){   
+      fMM_CsIT_DetectorNbr.push_back(DetNbr);  
+      fMM_CsIT_CristalNbr.push_back(CristalNbr);       
+      fMM_CsIT_Time.push_back(Time);  
+     } 
+ 
       /////////////////////           GETTERS           ////////////////////////
       // DSSD
       // (X,E)
-      UShort_t   GetMMStripXEMult()                     const {return fMM_StripXE_DetectorNbr.size();}
-      UShort_t   GetMMStripXEDetectorNbr(const Int_t i) const {return fMM_StripXE_DetectorNbr[i];}
-      UShort_t   GetMMStripXEStripNbr(const Int_t i)    const {return fMM_StripXE_StripNbr[i];}
-      Double_t   GetMMStripXEEnergy(const Int_t i)      const {return fMM_StripXE_Energy[i];}
+      UShort_t   GetMMStripXEMult()                      const {return fMM_StripXE_DetectorNbr.size();}
+      UShort_t   GetMMStripXEDetectorNbr(const Int_t& i) const {return fMM_StripXE_DetectorNbr[i];}
+      UShort_t   GetMMStripXEStripNbr(const Int_t& i)    const {return fMM_StripXE_StripNbr[i];}
+      Double_t   GetMMStripXEEnergy(const Int_t& i)      const {return fMM_StripXE_Energy[i];}
       // (X,T)
-      UShort_t   GetMMStripXTMult()                     const {return fMM_StripXT_DetectorNbr.size();}
-      UShort_t   GetMMStripXTDetectorNbr(const Int_t i) const {return fMM_StripXT_DetectorNbr[i];}
-      UShort_t   GetMMStripXTStripNbr(const Int_t i)    const {return fMM_StripXT_StripNbr[i];}
-      Double_t   GetMMStripXTTime(const Int_t i)        const {return fMM_StripXT_Time[i];}
+      UShort_t   GetMMStripXTMult()                      const {return fMM_StripXT_DetectorNbr.size();}
+      UShort_t   GetMMStripXTDetectorNbr(const Int_t& i) const {return fMM_StripXT_DetectorNbr[i];}
+      UShort_t   GetMMStripXTStripNbr(const Int_t& i)    const {return fMM_StripXT_StripNbr[i];}
+      Double_t   GetMMStripXTTime(const Int_t& i)        const {return fMM_StripXT_Time[i];}
       // (Y,E)
-      UShort_t   GetMMStripYEMult()                     const {return fMM_StripYE_DetectorNbr.size();}
-      UShort_t   GetMMStripYEDetectorNbr(const Int_t i) const {return fMM_StripYE_DetectorNbr[i];}
-      UShort_t   GetMMStripYEStripNbr(const Int_t i)    const {return fMM_StripYE_StripNbr[i];}
-      Double_t   GetMMStripYEEnergy(const Int_t i)      const {return fMM_StripYE_Energy[i];}
+      UShort_t   GetMMStripYEMult()                      const {return fMM_StripYE_DetectorNbr.size();}
+      UShort_t   GetMMStripYEDetectorNbr(const Int_t& i) const {return fMM_StripYE_DetectorNbr[i];}
+      UShort_t   GetMMStripYEStripNbr(const Int_t& i)    const {return fMM_StripYE_StripNbr[i];}
+      Double_t   GetMMStripYEEnergy(const Int_t& i)      const {return fMM_StripYE_Energy[i];}
       // (Y,T)
-      UShort_t   GetMMStripYTMult()                     const {return fMM_StripYT_DetectorNbr.size();}
-      UShort_t   GetMMStripYTDetectorNbr(const Int_t i) const {return fMM_StripYT_DetectorNbr[i];}
-      UShort_t   GetMMStripYTStripNbr(const Int_t i)    const {return fMM_StripYT_StripNbr[i];}
-      Double_t   GetMMStripYTTime(const Int_t i)        const {return fMM_StripYT_Time[i];}
+      UShort_t   GetMMStripYTMult()                      const {return fMM_StripYT_DetectorNbr.size();}
+      UShort_t   GetMMStripYTDetectorNbr(const Int_t& i) const {return fMM_StripYT_DetectorNbr[i];}
+      UShort_t   GetMMStripYTStripNbr(const Int_t& i)    const {return fMM_StripYT_StripNbr[i];}
+      Double_t   GetMMStripYTTime(const Int_t& i)        const {return fMM_StripYT_Time[i];}
 
       // SiLi
       //(E)
-      UShort_t   GetMMSiLiEMult()                              const {return fMM_SiLiE_DetectorNbr.size();}
-      UShort_t   GetMMSiLiEDetectorNbr(const Int_t i)  const {return fMM_SiLiE_DetectorNbr[i];}
-      UShort_t   GetMMSiLiEPadNbr(const Int_t i)       const {return fMM_SiLiE_PadNbr[i];}
-      Double_t   GetMMSiLiEEnergy(const Int_t i)       const {return fMM_SiLiE_Energy[i];}
+      UShort_t   GetMMSiLiEMult()                       const {return fMM_SiLiE_DetectorNbr.size();}
+      UShort_t   GetMMSiLiEDetectorNbr(const Int_t& i)  const {return fMM_SiLiE_DetectorNbr[i];}
+      UShort_t   GetMMSiLiEPadNbr(const Int_t& i)       const {return fMM_SiLiE_PadNbr[i];}
+      Double_t   GetMMSiLiEEnergy(const Int_t& i)       const {return fMM_SiLiE_Energy[i];}
       //(T)
-      UShort_t   GetMMSiLiTMult()                              const {return fMM_SiLiT_DetectorNbr.size();}
-      UShort_t   GetMMSiLiTDetectorNbr(const Int_t i)  const {return fMM_SiLiT_DetectorNbr[i];}
-      UShort_t   GetMMSiLiTPadNbr(const Int_t i)       const {return fMM_SiLiT_PadNbr[i];}
-      Double_t   GetMMSiLiTTime(const Int_t i)         const {return fMM_SiLiT_Time[i];}
+      UShort_t   GetMMSiLiTMult()                       const {return fMM_SiLiT_DetectorNbr.size();}
+      UShort_t   GetMMSiLiTDetectorNbr(const Int_t& i)  const {return fMM_SiLiT_DetectorNbr[i];}
+      UShort_t   GetMMSiLiTPadNbr(const Int_t& i)       const {return fMM_SiLiT_PadNbr[i];}
+      Double_t   GetMMSiLiTTime(const Int_t& i)         const {return fMM_SiLiT_Time[i];}
 
       // CsI 
       //(E)
-      UShort_t   GetMMCsIEMult()                                 const {return fMM_CsIE_DetectorNbr.size();}
-      UShort_t   GetMMCsIEDetectorNbr(const Int_t i)   const {return fMM_CsIE_DetectorNbr[i];}
-      UShort_t   GetMMCsIECristalNbr(const Int_t i)    const {return fMM_CsIE_CristalNbr[i];}
-      Double_t   GetMMCsIEEnergy(const Int_t i)        const {return fMM_CsIE_Energy[i];}
+      UShort_t   GetMMCsIEMult()                        const {return fMM_CsIE_DetectorNbr.size();}
+      UShort_t   GetMMCsIEDetectorNbr(const Int_t& i)   const {return fMM_CsIE_DetectorNbr[i];}
+      UShort_t   GetMMCsIECristalNbr(const Int_t& i)    const {return fMM_CsIE_CristalNbr[i];}
+      Double_t   GetMMCsIEEnergy(const Int_t& i)        const {return fMM_CsIE_Energy[i];}
       //(T)
-      UShort_t   GetMMCsITMult()                             const {return fMM_CsIT_DetectorNbr.size();}
-      UShort_t   GetMMCsITDetectorNbr(const Int_t i)   const {return fMM_CsIT_DetectorNbr[i];}
-      UShort_t   GetMMCsITCristalNbr(const Int_t i)    const {return fMM_CsIT_CristalNbr[i];}
-      Double_t   GetMMCsITTime(const Int_t i)          const {return fMM_CsIT_Time[i];}
+      UShort_t   GetMMCsITMult()                        const {return fMM_CsIT_DetectorNbr.size();}
+      UShort_t   GetMMCsITDetectorNbr(const Int_t& i)   const {return fMM_CsIT_DetectorNbr[i];}
+      UShort_t   GetMMCsITCristalNbr(const Int_t& i)    const {return fMM_CsIT_CristalNbr[i];}
+      Double_t   GetMMCsITTime(const Int_t& i)          const {return fMM_CsIT_Time[i];}
 
       ClassDef(TMust2Data,2)  // Must2Data structure
 };
diff --git a/NPLib/Detectors/MUST2/TMust2Physics.cxx b/NPLib/Detectors/MUST2/TMust2Physics.cxx
index 0edbf88a4..c0d6adba8 100644
--- a/NPLib/Detectors/MUST2/TMust2Physics.cxx
+++ b/NPLib/Detectors/MUST2/TMust2Physics.cxx
@@ -329,22 +329,15 @@ void TMust2Physics::PreTreat(){
   for(unsigned int i = 0 ; i < m_StripXEMult ; ++i){
     if( m_EventData->GetMMStripXEEnergy(i)>m_Si_X_E_RAW_Threshold && IsValidChannel("X", m_EventData->GetMMStripXEDetectorNbr(i), m_EventData->GetMMStripXEStripNbr(i)) ){
       double EX = fSi_X_E(m_EventData , i);
-      if( EX > m_Si_X_E_Threshold ){
-        m_PreTreatedData->SetMMStripXEDetectorNbr( m_EventData->GetMMStripXEDetectorNbr(i) );
-        m_PreTreatedData->SetMMStripXEStripNbr( m_EventData->GetMMStripXEStripNbr(i) );
-        m_PreTreatedData->SetMMStripXEEnergy( EX );
-      }
-
+      if( EX > m_Si_X_E_Threshold )
+        m_PreTreatedData->SetStripXE( m_EventData->GetMMStripXEDetectorNbr(i) ,  m_EventData->GetMMStripXEStripNbr(i)  , EX);
     }
   }
 
   //   T
   for(unsigned int i = 0 ; i < m_StripXTMult ; ++i){
-    if(IsValidChannel("X", m_EventData->GetMMStripXTDetectorNbr(i), m_EventData->GetMMStripXTStripNbr(i))){
-      m_PreTreatedData->SetMMStripXTDetectorNbr( m_EventData->GetMMStripXTDetectorNbr(i) );
-      m_PreTreatedData->SetMMStripXTStripNbr( m_EventData->GetMMStripXTStripNbr(i) );
-      m_PreTreatedData->SetMMStripXTTime( fSi_X_T(m_EventData , i) );
-    }
+    if(IsValidChannel("X", m_EventData->GetMMStripXTDetectorNbr(i), m_EventData->GetMMStripXTStripNbr(i)))
+      m_PreTreatedData->SetStripXT( m_EventData->GetMMStripXTDetectorNbr(i),m_EventData->GetMMStripXTStripNbr(i),fSi_X_T(m_EventData , i));
   }
 
 
@@ -353,21 +346,16 @@ void TMust2Physics::PreTreat(){
   for(unsigned int i = 0 ; i < m_StripYEMult ; ++i){
     if( m_EventData->GetMMStripYEEnergy(i)<m_Si_Y_E_RAW_Threshold && IsValidChannel("Y", m_EventData->GetMMStripYEDetectorNbr(i), m_EventData->GetMMStripYEStripNbr(i))){
       double EY = fSi_Y_E(m_EventData , i);
-      if( EY >m_Si_Y_E_Threshold ){
-        m_PreTreatedData->SetMMStripYEDetectorNbr( m_EventData->GetMMStripYEDetectorNbr(i) );
-        m_PreTreatedData->SetMMStripYEStripNbr( m_EventData->GetMMStripYEStripNbr(i) );
-        m_PreTreatedData->SetMMStripYEEnergy( EY );
-      }
+      if( EY >m_Si_Y_E_Threshold )
+        m_PreTreatedData->SetStripYE( m_EventData->GetMMStripYEDetectorNbr(i),m_EventData->GetMMStripYEStripNbr(i),EY);
+      
     }
   }
 
   //   T
   for(unsigned int i = 0 ; i < m_StripYTMult ; ++i){
-    if(IsValidChannel("Y", m_EventData->GetMMStripYTDetectorNbr(i), m_EventData->GetMMStripYTStripNbr(i))){
-      m_PreTreatedData->SetMMStripYTDetectorNbr( m_EventData->GetMMStripYTDetectorNbr(i) );
-      m_PreTreatedData->SetMMStripYTStripNbr( m_EventData->GetMMStripYTStripNbr(i) );
-      m_PreTreatedData->SetMMStripYTTime( fSi_Y_T(m_EventData , i) );
-    }
+    if(IsValidChannel("Y", m_EventData->GetMMStripYTDetectorNbr(i), m_EventData->GetMMStripYTStripNbr(i)))
+       m_PreTreatedData->SetStripYT( m_EventData->GetMMStripYTDetectorNbr(i),m_EventData->GetMMStripYTStripNbr(i),fSi_Y_T(m_EventData , i));
   }
 
 
@@ -376,21 +364,15 @@ void TMust2Physics::PreTreat(){
   for(unsigned int i = 0 ; i < m_CsIEMult ; ++i){
     if( m_EventData->GetMMCsIEEnergy(i)>m_CsI_E_RAW_Threshold && IsValidChannel("CsI", m_EventData->GetMMCsIEDetectorNbr(i), m_EventData->GetMMCsIECristalNbr(i))){
       double ECsI = fCsI_E(m_EventData , i);
-      if( ECsI > m_CsI_E_Threshold ){
-        m_PreTreatedData->SetMMCsIEDetectorNbr( m_EventData->GetMMCsIEDetectorNbr(i) );
-        m_PreTreatedData->SetMMCsIECristalNbr( m_EventData->GetMMCsIECristalNbr(i) );
-        m_PreTreatedData->SetMMCsIEEnergy( ECsI );
-      }
+      if( ECsI > m_CsI_E_Threshold )
+        m_PreTreatedData->SetCsIE( m_EventData->GetMMCsIEDetectorNbr(i),m_EventData->GetMMCsIECristalNbr(i),ECsI);
     }
   }
 
   //   T
   for(unsigned int i = 0 ; i < m_CsITMult ; ++i){
-    if(IsValidChannel("CsI", m_EventData->GetMMCsITDetectorNbr(i), m_EventData->GetMMCsITCristalNbr(i))){
-      m_PreTreatedData->SetMMCsITDetectorNbr( m_EventData->GetMMCsITDetectorNbr(i) );
-      m_PreTreatedData->SetMMCsITCristalNbr( m_EventData->GetMMCsITCristalNbr(i) );
-      m_PreTreatedData->SetMMCsITTime( fCsI_T(m_EventData , i) );
-    }
+    if(IsValidChannel("CsI", m_EventData->GetMMCsITDetectorNbr(i), m_EventData->GetMMCsITCristalNbr(i)))
+      m_PreTreatedData->SetCsIT(m_EventData->GetMMCsITDetectorNbr(i), m_EventData->GetMMCsITCristalNbr(i), fCsI_T(m_EventData , i));
   }
 
 
@@ -399,21 +381,15 @@ void TMust2Physics::PreTreat(){
   for(unsigned int i = 0 ; i < m_SiLiEMult ; ++i){
     if( m_EventData->GetMMSiLiEEnergy(i)>m_SiLi_E_RAW_Threshold && IsValidChannel("SiLi", m_EventData->GetMMSiLiEDetectorNbr(i), m_EventData->GetMMSiLiEPadNbr(i))){
       double ESiLi = fSiLi_E(m_EventData , i);
-      if( ESiLi > m_SiLi_E_Threshold ){
-        m_PreTreatedData->SetMMSiLiEDetectorNbr( m_EventData->GetMMSiLiEDetectorNbr(i) );
-        m_PreTreatedData->SetMMSiLiEPadNbr( m_EventData->GetMMSiLiEPadNbr(i) );
-        m_PreTreatedData->SetMMSiLiEEnergy( ESiLi );
-      }
+      if( ESiLi > m_SiLi_E_Threshold )
+        m_PreTreatedData->SetSiLiE( m_EventData->GetMMSiLiEDetectorNbr(i), m_EventData->GetMMSiLiEPadNbr(i),ESiLi);
     }
   }
 
   //   T
   for(unsigned int i = 0 ; i < m_SiLiTMult ; ++i){
-    if(IsValidChannel("SiLi", m_EventData->GetMMSiLiTDetectorNbr(i), m_EventData->GetMMSiLiTPadNbr(i))){
-      m_PreTreatedData->SetMMSiLiTDetectorNbr( m_EventData->GetMMSiLiTDetectorNbr(i) );
-      m_PreTreatedData->SetMMSiLiTPadNbr( m_EventData->GetMMSiLiTPadNbr(i) );
-      m_PreTreatedData->SetMMSiLiTTime( fSiLi_T(m_EventData , i) );
-    }
+    if(IsValidChannel("SiLi", m_EventData->GetMMSiLiTDetectorNbr(i), m_EventData->GetMMSiLiTPadNbr(i)))
+      m_PreTreatedData->SetSiLiT(m_EventData->GetMMSiLiTDetectorNbr(i), m_EventData->GetMMSiLiTPadNbr(i) , fSiLi_T(m_EventData , i)); 
   }
 
   return;
diff --git a/NPSimulation/Detectors/MUST2/MUST2Array.cc b/NPSimulation/Detectors/MUST2/MUST2Array.cc
index d36f56531..7d8fc76fe 100644
--- a/NPSimulation/Detectors/MUST2/MUST2Array.cc
+++ b/NPSimulation/Detectors/MUST2/MUST2Array.cc
@@ -747,14 +747,10 @@ void MUST2Array::ReadSensitive(const G4Event* event){
       if(r==0){
         trig.insert(detectorNbr);
         // Energy 
-        m_Event->SetMMStripXEDetectorNbr(detectorNbr);
-        m_Event->SetMMStripXEStripNbr(b+1);
-        m_Event->SetMMStripXEEnergy(energyX);
+        m_Event->SetStripXE(detectorNbr,b+1,energyX);
 
         // Time 
-        m_Event->SetMMStripXTDetectorNbr(detectorNbr);
-        m_Event->SetMMStripXTStripNbr(b+1);
-        m_Event->SetMMStripXTTime(RandGauss::shoot(time, ResoTimeMust));
+        m_Event->SetStripXT(detectorNbr,b+1,RandGauss::shoot(time, ResoTimeMust));
       }
       else{ // Interstrip X, keep maximum shared energy
         double rand = G4UniformRand();
@@ -763,14 +759,10 @@ void MUST2Array::ReadSensitive(const G4Event* event){
           if(energyX>0.1*keV){
             trig.insert(detectorNbr);
             // Energy 
-            m_Event->SetMMStripXEDetectorNbr(detectorNbr);
-            m_Event->SetMMStripXEStripNbr(b+1);
-            m_Event->SetMMStripXEEnergy(energyX);
+            m_Event->SetStripXE(detectorNbr,b+1,energyX) ;
 
             // Time 
-            m_Event->SetMMStripXTDetectorNbr(detectorNbr);
-            m_Event->SetMMStripXTStripNbr(b+1);
-            m_Event->SetMMStripXTTime(RandGauss::shoot(time, ResoTimeMust));
+            m_Event->SetStripXT(detectorNbr,b+1,RandGauss::shoot(time, ResoTimeMust));
           } 
         }
         else{
@@ -779,14 +771,10 @@ void MUST2Array::ReadSensitive(const G4Event* event){
             trig.insert(detectorNbr);
 
             // Energy 
-            m_Event->SetMMStripXEDetectorNbr(detectorNbr);
-            m_Event->SetMMStripXEStripNbr(g+1);
-            m_Event->SetMMStripXEEnergy(energyX);
+            m_Event->SetStripXE(detectorNbr,g+1,energyX) ;  
 
             // Time 
-            m_Event->SetMMStripXTDetectorNbr(detectorNbr);
-            m_Event->SetMMStripXTStripNbr(g+1);
-            m_Event->SetMMStripXTTime(RandGauss::shoot(time, ResoTimeMust));
+            m_Event->SetStripXT(detectorNbr,g+1,RandGauss::shoot(time, ResoTimeMust));
           }
         }
       }
@@ -800,14 +788,10 @@ void MUST2Array::ReadSensitive(const G4Event* event){
       if(r==0){
         trig.insert(detectorNbr);
         // Energy 
-        m_Event->SetMMStripYEDetectorNbr(detectorNbr);
-        m_Event->SetMMStripYEStripNbr(b+1);
-        m_Event->SetMMStripYEEnergy(energyY);
+        m_Event->SetStripYE(detectorNbr,b+1,energyY);
 
         // Time 
-        m_Event->SetMMStripYTDetectorNbr(detectorNbr);
-        m_Event->SetMMStripYTStripNbr(b+1);
-        m_Event->SetMMStripYTTime(RandGauss::shoot(time, ResoTimeMust));
+        m_Event->SetStripYT(detectorNbr,b+1,RandGauss::shoot(time, ResoTimeMust)); 
       }
       else{ // Interstrip Y, keep both strip with shared energy
         double rand = G4UniformRand();
@@ -816,28 +800,20 @@ void MUST2Array::ReadSensitive(const G4Event* event){
           trig.insert(detectorNbr);
 
           // Energy 
-          m_Event->SetMMStripYEDetectorNbr(detectorNbr);
-          m_Event->SetMMStripYEStripNbr(b+1);
-          m_Event->SetMMStripYEEnergy(energyY1);
+          m_Event->SetStripYE(detectorNbr,b+1,energyY1); 
 
           // Time 
-          m_Event->SetMMStripYTDetectorNbr(detectorNbr);
-          m_Event->SetMMStripYTStripNbr(b+1);
-          m_Event->SetMMStripYTTime(RandGauss::shoot(time, ResoTimeMust));
+          m_Event->SetStripYT(detectorNbr,b+1,RandGauss::shoot(time, ResoTimeMust));
         }
 
         if(energyY1>0.1*keV){
           trig.insert(detectorNbr);
           double energyY2 = (1-rand)*energyY;
           // Energy 
-          m_Event->SetMMStripYEDetectorNbr(detectorNbr);
-          m_Event->SetMMStripYEStripNbr(g+1);
-          m_Event->SetMMStripYEEnergy(energyY2);
+          m_Event->SetStripYE(detectorNbr,g+1,energyY2);  
 
           // Time 
-          m_Event->SetMMStripYTDetectorNbr(detectorNbr);
-          m_Event->SetMMStripYTStripNbr(g+1);
-          m_Event->SetMMStripYTTime(RandGauss::shoot(time, ResoTimeMust));
+          m_Event->SetStripYT(detectorNbr,g+1,RandGauss::shoot(time, ResoTimeMust));
         }
       }
     }
@@ -864,12 +840,8 @@ void MUST2Array::ReadSensitive(const G4Event* event){
     for(SiLi_itr = SiLiHitMap->GetMap()->begin(); SiLi_itr!=SiLiHitMap->GetMap()->end() ; SiLi_itr++){
       G4double* Info = *(SiLi_itr->second);
       if(Info[7]==*itr){//matching telescope number
-        m_Event->SetMMSiLiEDetectorNbr(Info[7]); 
-        m_Event->SetMMSiLiEEnergy(RandGauss::shoot(Info[0],ResoSiLi)); 
-        m_Event->SetMMSiLiEPadNbr(Info[8]);
-        m_Event->SetMMSiLiTDetectorNbr(Info[7]); 
-        m_Event->SetMMSiLiTTime(RandGauss::shoot(Info[1],ResoTimeMust)); 
-        m_Event->SetMMSiLiTPadNbr(Info[8]);
+        m_Event->SetSiLiE(Info[7],Info[8],RandGauss::shoot(Info[0],ResoSiLi));
+        m_Event->SetSiLiT(Info[7],Info[8],RandGauss::shoot(Info[1],ResoTimeMust));
       }
     }
   }
@@ -880,12 +852,8 @@ void MUST2Array::ReadSensitive(const G4Event* event){
       G4double* Info = *(CsI_itr->second);
       
       if(Info[7]==*itr){//matching telescope number
-        m_Event->SetMMCsIEDetectorNbr(Info[7]); 
-        m_Event->SetMMCsIEEnergy(RandGauss::shoot(Info[0],ResoCsI)); 
-        m_Event->SetMMCsIECristalNbr(Info[8]);
-        m_Event->SetMMCsITDetectorNbr(Info[7]); 
-        m_Event->SetMMCsITTime(RandGauss::shoot(Info[1],ResoTimeMust)); 
-        m_Event->SetMMCsITCristalNbr(Info[8]);
+        m_Event->SetCsIE(Info[7],Info[8],RandGauss::shoot(Info[0],ResoCsI));
+        m_Event->SetCsIT(Info[7],Info[8],RandGauss::shoot(Info[1],ResoTimeMust));
       }
     }
   }
-- 
GitLab