diff --git a/NPLib/Physics/TInteractionCoordinates.cxx b/NPLib/Physics/TInteractionCoordinates.cxx
index f9fafcc1c6b12686bd9dadad00bbfa27b97ab601..340696b472d4a82c4a3d4273f0c7cda2eb0985cf 100644
--- a/NPLib/Physics/TInteractionCoordinates.cxx
+++ b/NPLib/Physics/TInteractionCoordinates.cxx
@@ -57,14 +57,14 @@ void TInteractionCoordinates::Dump() const{
   for(unsigned int i = 0 ; i < size ; i++){
     cout << " Interaction " << i << " of " << size << endl; 
     cout << "Energy And Time : " << endl;
-    cout << "Energy : " << fDetected_Energy[0] << endl;
-    cout << "Time : " << fDetected_Time[0] << endl;
+    cout << "Energy : " << fDetected_Energy[i] << endl;
+    cout << "Time : " << fDetected_Time[i] << endl;
     cout << "Interaction position : " << endl;
-    cout << "\tX : " << fDetected_Position_X[0] << endl;  
-    cout << "\tY : " << fDetected_Position_Y[0] << endl;  
-    cout << "\tZ : " << fDetected_Position_Z[0] << endl;  
+    cout << "\tX : " << fDetected_Position_X[i] << endl;  
+    cout << "\tY : " << fDetected_Position_Y[i] << endl;  
+    cout << "\tZ : " << fDetected_Position_Z[i] << endl;  
     cout << "Incident particle angles : " << endl;
-    cout << "\tTheta : " << fDetected_Angle_Theta[0] << endl;
-    cout << "\tPhi   : " << fDetected_Angle_Phi[0] << endl;
+    cout << "\tTheta : " << fDetected_Angle_Theta[i] << endl;
+    cout << "\tPhi   : " << fDetected_Angle_Phi[i] << endl;
   }
 }
diff --git a/NPSimulation/Detectors/MUST2/MUST2Array.cc b/NPSimulation/Detectors/MUST2/MUST2Array.cc
index 1fd12b6eb100b5c2f43280aefc162da4e5e3aeaa..0935d0d23dd352df9d450b4b7ca979107bf69836 100644
--- a/NPSimulation/Detectors/MUST2/MUST2Array.cc
+++ b/NPSimulation/Detectors/MUST2/MUST2Array.cc
@@ -719,7 +719,6 @@ void MUST2Array::InitializeRootOutput(){
 // Read sensitive part and fill the Root tree.
 // Called at in the EventAction::EndOfEventAvtion
 void MUST2Array::ReadSensitive(const G4Event*){
-  G4String DetectorNumber;
   m_Event->Clear();
 
   //////////////////////////////////////////////////////////////////////////////////////
@@ -873,7 +872,7 @@ void MUST2Array::InitializeScorers() {
   bool already_exist = false; 
   m_StripScorer = CheckScorer("MUST2_StripScorer",already_exist);
   m_SiLiScorer	= CheckScorer("MUST2_SiLiScorer",already_exist);
-  m_CsIScorer	= CheckScorer("MUST2_CsIScorer",already_exist);
+  m_CsIScorer	  = CheckScorer("MUST2_CsIScorer",already_exist);
 
   // if the scorer were created previously nothing else need to be made
   if(already_exist) return; 
diff --git a/NPSimulation/Detectors/Plastic/Plastic.cc b/NPSimulation/Detectors/Plastic/Plastic.cc
index 7db84040408e48103f61adda9790e68768c32234..07d0d270be0b85c860a87853c8d29ccddd8fbe5a 100644
--- a/NPSimulation/Detectors/Plastic/Plastic.cc
+++ b/NPSimulation/Detectors/Plastic/Plastic.cc
@@ -348,18 +348,10 @@ void Plastic::ReadSensitive(const G4Event* event){
   std::map<G4int, G4int*>::iterator DetectorNumber_itr;
   std::map<G4int, G4double*>::iterator Energy_itr;
   std::map<G4int, G4double*>::iterator Time_itr;
-  std::map<G4int, G4double*>::iterator Pos_X_itr;
-  std::map<G4int, G4double*>::iterator Pos_Y_itr;
-  std::map<G4int, G4double*>::iterator Pos_Z_itr;
-  std::map<G4int, G4double*>::iterator Angle_Theta_itr;
 
   NPS::HitsMap<G4int>* DetectorNumberHitMap;
   NPS::HitsMap<G4double>* EnergyHitMap;
   NPS::HitsMap<G4double>* TimeHitMap;
-  NPS::HitsMap<G4double>* PosXHitMap;
-  NPS::HitsMap<G4double>* PosYHitMap;
-  NPS::HitsMap<G4double>* PosZHitMap;
-  NPS::HitsMap<G4double>* AngleThetaHitMap;
 
   //////////////////////////////////////////////////////////////////////////////////////
   //////////////////////////////////////////////////////////////////////////////////////
@@ -385,38 +377,12 @@ void Plastic::ReadSensitive(const G4Event* event){
   TimeHitMap = (NPS::HitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripTimeCollectionID))               ;
   Time_itr = TimeHitMap->GetMap()->begin()                                                                    ;
 
-  //Interaction Coordinate X
-  collectionName = "PlasticScorer/InterCoordX";
-  G4int InterCoordXCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName);
-  PosXHitMap = (NPS::HitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordXCollectionID));
-  Pos_X_itr = PosXHitMap->GetMap()->begin();
-
-  //Interaction Coordinate Y
-  collectionName = "PlasticScorer/InterCoordY";
-  G4int InterCoordYCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName);
-  PosYHitMap = (NPS::HitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordYCollectionID));
-  Pos_Y_itr = PosYHitMap->GetMap()->begin();
-
-  //Interaction Coordinate Z
-  collectionName = "PlasticScorer/InterCoordZ";
-  G4int InterCoordZCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName);
-  PosZHitMap = (NPS::HitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordZCollectionID));
-  Pos_Z_itr = PosZHitMap->GetMap()->begin();
-
-  //Interaction Coordinate Theta
-  collectionName = "PlasticScorer/InterCoordTheta";
-  G4int InterCoordThetaCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName);
-  AngleThetaHitMap = (NPS::HitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordThetaCollectionID));
-  Angle_Theta_itr = AngleThetaHitMap->GetMap()->begin();
-
   G4int sizeN = DetectorNumberHitMap->entries()    ;
   G4int sizeE = EnergyHitMap->entries()          ;
   G4int sizeT = TimeHitMap->entries()          ;
   vector<double> energy;
-    vector<double> time;
-    vector<int>    det;
-
-
+  vector<double> time;
+  vector<int>    det;
 
   // Loop on Plastic Number
   for (G4int l = 0 ; l < sizeN ; l++) {
@@ -441,56 +407,11 @@ void Plastic::ReadSensitive(const G4Event* event){
       for (G4int h = 0 ; h < sizeT ; h++) {
         G4int TTrackID  =   Time_itr->first   - N    ;
         G4double T     = *(Time_itr->second)      ;
-        if (TTrackID == NTrackID) {
+      if (TTrackID == NTrackID) {
           time.push_back(RandGauss::shoot(T, ResoTime)) ;
-        }
+      } 
         Time_itr++;
       }
-
-      // Pos X
-      Pos_X_itr = PosXHitMap->GetMap()->begin();
-      for (G4int h = 0 ; h < PosXHitMap->entries() ; h++) {
-        G4int PosXTrackID =   Pos_X_itr->first   - N  ;
-        G4double PosX     = *(Pos_X_itr->second)      ;
-        if (PosXTrackID == NTrackID) {
-          ms_InterCoord->SetDetectedPositionX(PosX) ;
-        }
-        Pos_X_itr++;
-      }
-
-      // Pos Y
-      Pos_Y_itr = PosYHitMap->GetMap()->begin();
-      for (G4int h = 0 ; h < PosYHitMap->entries() ; h++) {
-        G4int PosYTrackID =   Pos_Y_itr->first   - N  ;
-        G4double PosY     = *(Pos_Y_itr->second)      ;
-        if (PosYTrackID == NTrackID) {
-          ms_InterCoord->SetDetectedPositionY(PosY) ;
-        }
-        Pos_Y_itr++;
-      }
-
-      // Pos Z
-      Pos_Z_itr = PosZHitMap->GetMap()->begin();
-      for (G4int h = 0 ; h < PosZHitMap->entries() ; h++) {
-        G4int PosZTrackID =   Pos_Z_itr->first   - N  ;
-        G4double PosZ     = *(Pos_Z_itr->second)      ;
-        if (PosZTrackID == NTrackID) {
-          ms_InterCoord->SetDetectedPositionZ(PosZ) ;
-        }
-        Pos_Z_itr++;
-      }
-
-      // Angle Theta
-      Angle_Theta_itr = AngleThetaHitMap->GetMap()->begin();
-      for (G4int h = 0 ; h < AngleThetaHitMap->entries() ; h++) {
-        G4int AngleThetaTrackID =   Angle_Theta_itr->first   - N  ;
-        G4double Theta     = *(Angle_Theta_itr->second)      ;
-        if (AngleThetaTrackID == NTrackID) {
-          ms_InterCoord->SetDetectedAngleTheta(Theta) ;
-        }
-        Angle_Theta_itr++;
-      }
-
     }
     DetectorNumber_itr++;
   }
@@ -504,11 +425,6 @@ void Plastic::ReadSensitive(const G4Event* event){
   TimeHitMap->clear()   ;
   DetectorNumberHitMap->clear()   ;
   EnergyHitMap->clear()    ;
-  PosXHitMap->clear() ;
-  PosYHitMap->clear() ;
-  PosZHitMap->clear() ;
-  AngleThetaHitMap->clear();
-
 }
 
 
@@ -522,18 +438,10 @@ void Plastic::InitializeScorers() {
   G4VPrimitiveScorer* DetNbr = new PSDetectorNumber("PlasticNumber","Plastic", 0) ;
   G4VPrimitiveScorer* Energy = new PSEnergy("Energy","Plastic", 0)                   ;
   G4VPrimitiveScorer* Time   = new PSTOF("Time","Plastic", 0)                         ;
-  G4VPrimitiveScorer* InteractionCoordinatesX  			= new OBSOLETEGENERALSCORERS::PSInteractionCoordinatesX("InterCoordX","Plastic", 0);
-  G4VPrimitiveScorer* InteractionCoordinatesY  			= new OBSOLETEGENERALSCORERS::PSInteractionCoordinatesY("InterCoordY","Plastic", 0);
-  G4VPrimitiveScorer* InteractionCoordinatesZ  			= new OBSOLETEGENERALSCORERS::PSInteractionCoordinatesZ("InterCoordZ","Plastic", 0);
-  G4VPrimitiveScorer* InteractionCoordinatesTheta  		= new OBSOLETEGENERALSCORERS::PSInteractionCoordinatesAngleTheta("InterCoordTheta","Plastic", 0);
   //and register it to the multifunctionnal detector
   m_PlasticScorer->RegisterPrimitive(DetNbr)                         ;
   m_PlasticScorer->RegisterPrimitive(Energy)                         ;
   m_PlasticScorer->RegisterPrimitive(Time)                            ;
-  m_PlasticScorer->RegisterPrimitive(InteractionCoordinatesX);
-  m_PlasticScorer->RegisterPrimitive(InteractionCoordinatesY);
-  m_PlasticScorer->RegisterPrimitive(InteractionCoordinatesZ);
-  m_PlasticScorer->RegisterPrimitive(InteractionCoordinatesTheta);
   G4SDManager::GetSDMpointer()->AddNewDetector(m_PlasticScorer) ;
 
 }
diff --git a/NPSimulation/Scorers/CalorimeterScorers.cc b/NPSimulation/Scorers/CalorimeterScorers.cc
index f02767659316c997393d71521dc731885870f612..621b3738dd3eb3511c5d5687e7d0b9d78421405c 100644
--- a/NPSimulation/Scorers/CalorimeterScorers.cc
+++ b/NPSimulation/Scorers/CalorimeterScorers.cc
@@ -45,8 +45,6 @@ vector<CalorimeterData>::iterator CalorimeterDataVector::find(const unsigned int
   return m_Data.end();
 }
 
-
-
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 PS_Calorimeter::PS_Calorimeter(G4String name, vector<G4int> NestingLevel,G4int depth)
   :G4VPrimitiveScorer(name, depth){
@@ -68,7 +66,6 @@ G4bool PS_Calorimeter::ProcessHits(G4Step* aStep, G4TouchableHistory*){
     t_Level.push_back(aStep->GetPreStepPoint()->GetTouchableHandle()->GetCopyNumber(m_NestingLevel[i]));
   }
 
-
   // Check if the particle has interact before, if yes, add up the energies.
   vector<CalorimeterData>::iterator it;
   it = m_Data.find(CalorimeterData::CalculateIndex(t_Level)); 
@@ -83,8 +80,8 @@ G4bool PS_Calorimeter::ProcessHits(G4Step* aStep, G4TouchableHistory*){
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void PS_Calorimeter::Initialize(G4HCofThisEvent* HCE){
-  m_Data.clear();
+void PS_Calorimeter::Initialize(G4HCofThisEvent*){
+ clear();
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -94,6 +91,7 @@ void PS_Calorimeter::EndOfEvent(G4HCofThisEvent*){
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 void PS_Calorimeter::clear(){
   m_Data.clear();
+  t_Level.clear();
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
diff --git a/NPSimulation/Scorers/DSSDScorers.cc b/NPSimulation/Scorers/DSSDScorers.cc
index dec8a8e7c7e670ee6e22ae3e9fe80e2aab3f57f7..ecaffbfc06d0017703a710b70d7926808b2d2223 100644
--- a/NPSimulation/Scorers/DSSDScorers.cc
+++ b/NPSimulation/Scorers/DSSDScorers.cc
@@ -395,10 +395,8 @@ G4bool PS_Resistive::ProcessHits(G4Step* aStep, G4TouchableHistory*){
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void PS_Resistive::Initialize(G4HCofThisEvent* HCE){
-  m_HitUp.clear();
-  m_HitDown.clear();
-  m_HitBack.clear();
+void PS_Resistive::Initialize(G4HCofThisEvent* ){
+  clear();
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
diff --git a/NPSimulation/Scorers/InteractionScorers.cc b/NPSimulation/Scorers/InteractionScorers.cc
index ee474ca5047124a1de06942512390bf3261960bb..8813c72c1413c6e4e0e12847a675ec90cb752255 100644
--- a/NPSimulation/Scorers/InteractionScorers.cc
+++ b/NPSimulation/Scorers/InteractionScorers.cc
@@ -60,7 +60,8 @@ G4bool PS_Interactions::ProcessHits(G4Step* aStep, G4TouchableHistory*){
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 void PS_Interactions::Initialize(G4HCofThisEvent*){
-  // Clear is called by EventAction
+ // Clear is called by EventAction
+
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -70,7 +71,7 @@ void PS_Interactions::EndOfEvent(G4HCofThisEvent*){
   for(unsigned int i = 0 ; i < size ; i++)
      m_InterractionCoordinates->SetInteraction(m_DataVector[i]->GetEnergy(),m_DataVector[i]->GetTime(),m_DataVector[i]->GetPositionX(),m_DataVector[i]->GetPositionY(),m_DataVector[i]->GetPositionZ(),m_DataVector[i]->GetTheta()/deg,m_DataVector[i]->GetPhi()/deg);
 
-  m_DataVector.clear();
+  clear();
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
diff --git a/Projects/e748/Analysis.cxx b/Projects/e748/Analysis.cxx
index 376c1dd901c721db230647806bffb4ec1d9645ff..f479a3ece801f9e46a80a0a6fd8e741242028636 100644
--- a/Projects/e748/Analysis.cxx
+++ b/Projects/e748/Analysis.cxx
@@ -22,6 +22,7 @@
 #include<iostream>
 using namespace std;
 #include"Analysis.h"
+#include"NPFunction.h"
 #include"NPAnalysisFactory.h"
 #include"NPDetectorManager.h"
 #include"NPOptionManager.h"
@@ -59,14 +60,16 @@ void Analysis::Init(){
   ZTarget = 0;
   TimeCorr=0;
   TargetThickness = m_DetectorManager->GetTargetThickness();
-  //	Energy loss table: the G4Table are generated by the simulation
-  He3CD2 = EnergyLoss("Example/He3_CD2.G4table","G4Table",10 );
-  He3Al = EnergyLoss("Example/He3_Al.G4table","G4Table",10);
-  He3Si = EnergyLoss("Example/He3_Si.G4table","G4Table",10);
-  BeamCD2 = EnergyLoss("Be12_CD2.G4table","G4Table",10);
-  BeamMylar = EnergyLoss("Be12_Mylar.G4table","G4Table",10);
-  BeamIsobutane = EnergyLoss("Be12_iC4H10.G4table","G4Table",10); 
-
+  string TargetMaterial = m_DetectorManager->GetTargetMaterial();
+  // energy losses
+  string light=NPL::ChangeNameToG4Standard(myReaction->GetNucleus3()->GetName());
+  string beam=NPL::ChangeNameToG4Standard(myReaction->GetNucleus1()->GetName());
+  LightTarget = NPL::EnergyLoss(light+"_"+TargetMaterial+".G4table","G4Table",10 );
+  LightAl = NPL::EnergyLoss(light+"_Al.G4table","G4Table",10);
+  LightSi = NPL::EnergyLoss(light+"_Si.G4table","G4Table",10);
+  BeamTarget = NPL::EnergyLoss(beam+"_"+TargetMaterial+".G4table","G4Table",10);
+  BeamMylar= NPL::EnergyLoss(beam+"_Mylar.G4table","G4Table",10);
+  BeamIsobutane = EnergyLoss(beam+"_iC4H10.G4table","G4Table",10); 
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -82,7 +85,7 @@ void Analysis::TreatEvent(){
   filename = filename.substr(0,minor_pos);
   size_t major_pos = filename.rfind("_");
   run_major = atoi(filename.substr(major_pos+1,4).c_str());
-   // Get the Init information on beam position and energy
+  // Get the Init information on beam position and energy
   // and apply by hand the experimental resolution
   // This is because the beam diagnosis are not simulated
   // PPAC position resolution on target is assumed to be 1mm
@@ -93,127 +96,133 @@ void Analysis::TreatEvent(){
   // Beam energy is measured using F3 and F2 plastic TOF
   //double BeamEnergy= myReaction-> GetBeamEnergy()* MeV;
   //////////////////////////// LOOP on MUST2 Hit //////////////////
-     for(unsigned int countMust2 = 0 ; countMust2 < M2->Si_E.size() ; countMust2++){ 
+  for(unsigned int countMust2 = 0 ; countMust2 < M2->Si_E.size() ; countMust2++){ 
     /*   //Part 0 : Get the usefull Data */
-       // MUST2 */
-       int X = M2->Si_X[countMust2]; 
-       int Y = M2->Si_Y[countMust2]; 
-       int TelescopeNumber = M2->TelescopeNumber[countMust2]; 
-      Si_X_M2 = X ;
-      Si_Y_M2 = Y ;
-
-      if(TelescopeNumber<9){
-        DetectorNumber = TelescopeNumber ;
+    // MUST2 */
+    int X = M2->Si_X[countMust2]; 
+    int Y = M2->Si_Y[countMust2]; 
+    int TelescopeNumber = M2->TelescopeNumber[countMust2]; 
+    Si_X_M2 = X ;
+    Si_Y_M2 = Y ;
+
+    if(TelescopeNumber<9){
+      DetectorNumber = TelescopeNumber ;
+
+      /* // Part 1 : Impact Angle */
+      ThetaM2Surface = 0;
+      ThetaNormalTarget = 0;
+      if(XTarget>-1000 && YTarget>-1000){
+        TVector3 BeamImpact(XTarget,YTarget,0);
+        TVector3 HitDirection = M2 -> GetPositionOfInteraction(countMust2) - BeamImpact ;
+        ThetaLab = HitDirection.Angle( BeamDirection );
+
+        ThetaM2Surface = HitDirection.Angle(- M2 -> GetTelescopeNormal(countMust2) );
+        ThetaNormalTarget = HitDirection.Angle( TVector3(0,0,1) ) ;
+        X_M2 = M2 -> GetPositionOfInteraction(countMust2).X() ;
+        Y_M2 = M2 -> GetPositionOfInteraction(countMust2).Y() ;
+        Z_M2 = M2 -> GetPositionOfInteraction(countMust2).Z() ;
+
+        // Beam Energy from Cav Time of Flight //
+
+        // Beam speed from Beam Energy
+
+        //   double BeamSpeed =  10.8727 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.276825; // mm/ns
+        //double BeamSpeed =  5.17952 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.305315; // mm/ns
+        //double BeamSpeed =  11.0476 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.278917; // mm/ns
+        //double BeamSpeed =  7.20255 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.293392; // mm/ns
+
+        double BeamSpeed =  20.0747+ ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.237811; // mm/ns
+
+        // Beam Energy before CATS1
+        static double c2 = 299.792458*299.792458;// mm/ns 
+        double gamma = 1./sqrt(1-BeamSpeed*BeamSpeed/c2);
+        BeamEnergy= 11200.962140*(gamma-1);
+        double BeamAngle= BeamDirection.Angle(TVector3(0,0,1));
+        double gammaCav = (BeamEnergy+11200.962140) / 11200.962140 ;
+        double BeamSpeedCav = sqrt(c2*(1-1/(gammaCav*gammaCav)));
   
-        /* // Part 1 : Impact Angle */
-        ThetaM2Surface = 0;
-        ThetaNormalTarget = 0;
-        if(XTarget>-1000 && YTarget>-1000){
-          TVector3 BeamImpact(XTarget,YTarget,0);
-          TVector3 HitDirection = M2 -> GetPositionOfInteraction(countMust2) - BeamImpact ;
-          ThetaLab = HitDirection.Angle( BeamDirection );
-
-          ThetaM2Surface = HitDirection.Angle(- M2 -> GetTelescopeNormal(countMust2) );
-          ThetaNormalTarget = HitDirection.Angle( TVector3(0,0,1) ) ;
-          X_M2 = M2 -> GetPositionOfInteraction(countMust2).X() ;
-          Y_M2 = M2 -> GetPositionOfInteraction(countMust2).Y() ;
-          Z_M2 = M2 -> GetPositionOfInteraction(countMust2).Z() ;
-          
-          // Beam Energy from Cav Time of Flight //
-          
-          // Beam speed from Beam Energy
-
-       //   double BeamSpeed =  10.8727 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.276825; // mm/ns
-          //double BeamSpeed =  5.17952 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.305315; // mm/ns
-           double BeamSpeed =  11.0476 + ModularLeaf->GetCalibratedValue("T_CATS1_CAV")*0.278917; // mm/ns
-
-          // Beam Energy before CATS1
-          static double c2 = 299.792458*299.792458;// mm/ns 
-          double gamma = 1./sqrt(1-BeamSpeed*BeamSpeed/c2);
-          BeamEnergy= 11200.962140*(gamma-1);
-          double BeamAngle= BeamDirection.Angle(TVector3(0,0,1));
-          
-          // Beam Energy and speed after CATS1
-          double BeamEnergyC1 = BeamMylar.Slow(BeamEnergy,1.2*micrometer,BeamAngle); 
-          BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3.,BeamAngle);
-          BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,0.9*micrometer,BeamAngle); 
-          BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3,BeamAngle);
-          BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,0.9*micrometer,BeamAngle); 
-          BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3.,BeamAngle);
-          BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,1.2*micrometer,BeamAngle); 
-          
-          double gammaC1 = (BeamEnergyC1+11200.962140) / 11200.962140 ;
-          double BeamSpeedC1 = sqrt(c2*(1-1/(gammaC1*gammaC1)));
-          TVector3 C1toC2 =  TVector3(CATS->PositionX[1],CATS->PositionY[1],CATS->PositionZ[1]) 
-                          -  TVector3(CATS->PositionX[0],CATS->PositionY[0],CATS->PositionZ[0]) ;
-          TimeCorr = C1toC2.Mag()/BeamSpeedC1;
-          
-          // Beam Energy and speed after CATS2
-          double BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC1,1.2*micrometer,BeamAngle); 
-          BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3.,BeamAngle);
-          BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,0.9*micrometer,BeamAngle); 
-          BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3,BeamAngle);
-          BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,0.9*micrometer,BeamAngle); 
-          BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3.,BeamAngle);
-          BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,1.2*micrometer,BeamAngle); 
-          
-          double gammaC2 = (BeamEnergyC2+11200.962140) / 11200.962140; 
-          double BeamSpeedC2 = sqrt(c2*(1-1/(gammaC2*gammaC2)));
-          TVector3 C2toTarget =  BeamImpact-TVector3(CATS->PositionX[1],CATS->PositionY[1],CATS->PositionZ[1]);
-          TimeCorr += C2toTarget.Mag()/BeamSpeedC2;
-
-          // slow down beam inside the target
-          BeamEnergy = BeamCD2.Slow(BeamEnergyC2,TargetThickness*0.5,BeamDirection.Angle(TVector3(0,0,1))); 
-          myReaction->SetBeamEnergy(BeamEnergy);   
-          
-          }
-        
-
-        else{
-          BeamDirection = TVector3(-1000,-1000,-1000);
-          ThetaM2Surface    = -1000  ;
-          ThetaNormalTarget = -1000  ;
-        }
-
-/*      // Part 2 : Impact Energy */
-        Energy = ELab = E_M2 = 0;
-        Si_E_M2 = M2->Si_E[countMust2];
-        CsI_E_M2= M2->CsI_E[countMust2];
-
-/*         // if CsI */
-/*         /1* if(CsI_E_M2>0 ){ *1/ */
-/*         /1*   // The energy in CsI is calculate form dE/dx Table because *1/ */ 
-/*         /1*   // 20um resolution is poor *1/ */
-/*         /1*   Energy = *1/ */ 
-/*         /1*     He3Si.EvaluateEnergyFromDeltaE(Si_E_M2,300*micrometer, *1/ */
-/*         /1*         ThetaM2Surface, 0.01*MeV, *1/ */ 
-/*         /1*         450.*MeV,0.001*MeV ,1000); *1/ */
-/*         /1*   E_M2=CsI_E_M2; *1/ */
-/*         /1* } *1/ */
-
-/*         /1* else *1/ */
-   
-   
-   
-   
-        Energy = Si_E_M2;
-
-        E_M2 += Si_E_M2;
-
-/*         // Evaluate energy using the thickness */ 
-        ELab = He3Al.EvaluateInitialEnergy( Energy,0.4*micrometer , ThetaM2Surface);
-/*         // Target Correction */
-        ELab   = He3CD2.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget);
-
-/*         // Part 3 : Excitation Energy Calculation */
-        Ex = myReaction -> ReconstructRelativistic( ELab , ThetaLab );
-
-
-/*         // Part 4 : Theta CM Calculation */
-        ThetaCM  = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg;
-        ThetaLab=ThetaLab/deg;
-     
-     }
+        // Beam Energy and speed after CATS1
+        double BeamEnergyC1 = BeamMylar.Slow(BeamEnergy,1.2*micrometer,BeamAngle); 
+        BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3.,BeamAngle);
+        BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,0.9*micrometer,BeamAngle); 
+        BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3,BeamAngle);
+        BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,0.9*micrometer,BeamAngle); 
+        BeamEnergyC1 = BeamIsobutane.Slow(BeamEnergyC1,cm/3.,BeamAngle);
+        BeamEnergyC1 = BeamMylar.Slow(BeamEnergyC1,1.2*micrometer,BeamAngle); 
+        double gammaC1 = (BeamEnergyC1+11200.962140) / 11200.962140 ;
+        double BeamSpeedC1 = sqrt(c2*(1-1/(gammaC1*gammaC1)));
+        TVector3 C1toC2 =  TVector3(CATS->PositionX[1],CATS->PositionY[1],CATS->PositionZ[1]) 
+          -  TVector3(CATS->PositionX[0],CATS->PositionY[0],CATS->PositionZ[0]) ;
+        TimeCorr = C1toC2.Mag()/BeamSpeedC1;
+
+        // Beam Energy and speed after CATS2
+        double BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC1,1.2*micrometer,BeamAngle); 
+        BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3.,BeamAngle);
+        BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,0.9*micrometer,BeamAngle); 
+        BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3,BeamAngle);
+        BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,0.9*micrometer,BeamAngle); 
+        BeamEnergyC2 = BeamIsobutane.Slow(BeamEnergyC2,cm/3.,BeamAngle);
+        BeamEnergyC2 = BeamMylar.Slow(BeamEnergyC2,1.2*micrometer,BeamAngle); 
+
+        double gammaC2 = (BeamEnergyC2+11200.962140) / 11200.962140; 
+        double BeamSpeedC2 = sqrt(c2*(1-1/(gammaC2*gammaC2)));
+        TVector3 C2toTarget =  BeamImpact-TVector3(CATS->PositionX[1],CATS->PositionY[1],CATS->PositionZ[1]);
+        TimeCorr += C2toTarget.Mag()/BeamSpeedC2;
+        // slow down beam inside the target
+        BeamEnergy = BeamTarget.Slow(BeamEnergyC2,TargetThickness*0.5,BeamDirection.Angle(TVector3(0,0,1))); 
+        myReaction->SetBeamEnergy(BeamEnergy);   
+
+
+        ParticleLength=HitDirection.Mag();
+
+      }
+
+
+      else{
+        BeamDirection = TVector3(-1000,-1000,-1000);
+        ThetaM2Surface    = -1000  ;
+        ThetaNormalTarget = -1000  ;
+      }
+
+      /*      // Part 2 : Impact Energy */
+      Energy = ELab = E_M2 = 0;
+      Si_E_M2 = M2->Si_E[countMust2];
+      CsI_E_M2= M2->CsI_E[countMust2];
+
+      /*         // if CsI */
+      /*         /1* if(CsI_E_M2>0 ){ *1/ */
+      /*         /1*   // The energy in CsI is calculate form dE/dx Table because *1/ */ 
+      /*         /1*   // 20um resolution is poor *1/ */
+      /*         /1*   Energy = *1/ */ 
+      /*         /1*     LightSi.EvaluateEnergyFromDeltaE(Si_E_M2,300*micrometer, *1/ */
+      /*         /1*         ThetaM2Surface, 0.01*MeV, *1/ */ 
+      /*         /1*         450.*MeV,0.001*MeV ,1000); *1/ */
+      /*         /1*   E_M2=CsI_E_M2; *1/ */
+      /*         /1* } *1/ */
+
+      /*         /1* else *1/ */
+
+
+
+
+      Energy = Si_E_M2;
+
+      E_M2 += Si_E_M2;
+
+      /*         // Evaluate energy using the thickness */ 
+      ELab = LightAl.EvaluateInitialEnergy( Energy,0.4*micrometer , ThetaM2Surface);
+      /*         // Target Correction */
+      ELab   = LightTarget.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget);
+
+      /*         // Part 3 : Excitation Energy Calculation */
+      Ex = myReaction -> ReconstructRelativistic( ELab , ThetaLab );
+
+
+      /*         // Part 4 : Theta CM Calculation */
+      ThetaCM  = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg;
+      ThetaLab=ThetaLab/deg;
+
+    }
   }//end loop MUST2
 }
 
@@ -240,35 +249,35 @@ void Analysis::InitOutputBranch() {
   RootOutput::getInstance()->GetTree()->Branch("RunMajor",&run_major,"RunMajor/I");
   RootOutput::getInstance()->GetTree()->Branch("RunMinor",&run_minor,"RunMinor/I");
 
-/*  RootOutput::getInstance()->GetTree()->Branch("ADC_CHIO_V15",&vADC_CHIO_V15,"ADC_CHIO_V15/s");
-  RootOutput::getInstance()->GetTree()->Branch("ADC_VOIE_29",&vADC_VOIE_29,"ADC_VOIE_29/s");
-  RootOutput::getInstance()->GetTree()->Branch("CHIO",&vCHIO,"CHIO/s");
-  RootOutput::getInstance()->GetTree()->Branch("CONFDEC",&vCONFDEC,"CONFDEC/s");
-  RootOutput::getInstance()->GetTree()->Branch("CONFDEC_AGAVA",&vCONFDEC_AGAVA,"CONFDEC_AGAVA/s");
-  RootOutput::getInstance()->GetTree()->Branch("DATATRIG",&vDATATRIG,"DATATRIG/s");
-  RootOutput::getInstance()->GetTree()->Branch("DATATRIG_CHIO",&vDATATRIG_CHIO,"DATATRIG_CHIO/s");
-  RootOutput::getInstance()->GetTree()->Branch("E1D6",&vE1D6,"E1D6/s");
-  RootOutput::getInstance()->GetTree()->Branch("E2D6",&vE2D6,"E2D6/s");
-  RootOutput::getInstance()->GetTree()->Branch("ED4",&vED4,"ED4/s");
-  RootOutput::getInstance()->GetTree()->Branch("EXL_HF",&vEXL_HF,"EXL_HF/s");
-  RootOutput::getInstance()->GetTree()->Branch("GALD4X",&vGALD4X,"GALD4X/s");
-  RootOutput::getInstance()->GetTree()->Branch("GALD4Y",&vGALD4Y,"GALD4Y/s");
-  RootOutput::getInstance()->GetTree()->Branch("QCaviar",&vQCaviar,"QCaviar/s");
-  RootOutput::getInstance()->GetTree()->Branch("QPlast",&vQPlast,"QPlast/s");
-  RootOutput::getInstance()->GetTree()->Branch("TCAVHF",&vTCAVHF,"TCAVHF/s");
-  RootOutput::getInstance()->GetTree()->Branch("TE1D6CAV",&vTE1D6CAV,"TE1D6CAV/s");
-  RootOutput::getInstance()->GetTree()->Branch("TE1D6GAL",&vTE1D6GAL,"TE1D6GAL/s");
-  RootOutput::getInstance()->GetTree()->Branch("TE1D6HF",&vTE1D6HF,"TE1D6HF/s");
-  RootOutput::getInstance()->GetTree()->Branch("TED4HF",&vTED4HF,"TED4HF/s");
-  RootOutput::getInstance()->GetTree()->Branch("TGALD4HF",&vTGALD4HF,"TGALD4HF/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_CATS1_2",&vT_CATS1_2,"T_CATS1_2/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_CATS1_CAV",&vT_CATS1_CAV,"T_CATS1_CAV/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_MUVI_CATS1",&vT_MUVI_CATS1,"T_MUVI_CATS1/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_PL_CATS1",&vT_PL_CATS1,"T_PL_CATS1/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_PL_CATS2",&vT_PL_CATS2,"T_PL_CATS2/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_PL_CHIO",&vT_PL_CHIO,"T_PL_CHIO/s");
-  RootOutput::getInstance()->GetTree()->Branch("T_PLchCATS1",&vT_PLchCATS1,"T_PLchCATS1/s");
-*/
+  /*  RootOutput::getInstance()->GetTree()->Branch("ADC_CHIO_V15",&vADC_CHIO_V15,"ADC_CHIO_V15/s");
+      RootOutput::getInstance()->GetTree()->Branch("ADC_VOIE_29",&vADC_VOIE_29,"ADC_VOIE_29/s");
+      RootOutput::getInstance()->GetTree()->Branch("CHIO",&vCHIO,"CHIO/s");
+      RootOutput::getInstance()->GetTree()->Branch("CONFDEC",&vCONFDEC,"CONFDEC/s");
+      RootOutput::getInstance()->GetTree()->Branch("CONFDEC_AGAVA",&vCONFDEC_AGAVA,"CONFDEC_AGAVA/s");
+      RootOutput::getInstance()->GetTree()->Branch("DATATRIG",&vDATATRIG,"DATATRIG/s");
+      RootOutput::getInstance()->GetTree()->Branch("DATATRIG_CHIO",&vDATATRIG_CHIO,"DATATRIG_CHIO/s");
+      RootOutput::getInstance()->GetTree()->Branch("E1D6",&vE1D6,"E1D6/s");
+      RootOutput::getInstance()->GetTree()->Branch("E2D6",&vE2D6,"E2D6/s");
+      RootOutput::getInstance()->GetTree()->Branch("ED4",&vED4,"ED4/s");
+      RootOutput::getInstance()->GetTree()->Branch("EXL_HF",&vEXL_HF,"EXL_HF/s");
+      RootOutput::getInstance()->GetTree()->Branch("GALD4X",&vGALD4X,"GALD4X/s");
+      RootOutput::getInstance()->GetTree()->Branch("GALD4Y",&vGALD4Y,"GALD4Y/s");
+      RootOutput::getInstance()->GetTree()->Branch("QCaviar",&vQCaviar,"QCaviar/s");
+      RootOutput::getInstance()->GetTree()->Branch("QPlast",&vQPlast,"QPlast/s");
+      RootOutput::getInstance()->GetTree()->Branch("TCAVHF",&vTCAVHF,"TCAVHF/s");
+      RootOutput::getInstance()->GetTree()->Branch("TE1D6CAV",&vTE1D6CAV,"TE1D6CAV/s");
+      RootOutput::getInstance()->GetTree()->Branch("TE1D6GAL",&vTE1D6GAL,"TE1D6GAL/s");
+      RootOutput::getInstance()->GetTree()->Branch("TE1D6HF",&vTE1D6HF,"TE1D6HF/s");
+      RootOutput::getInstance()->GetTree()->Branch("TED4HF",&vTED4HF,"TED4HF/s");
+      RootOutput::getInstance()->GetTree()->Branch("TGALD4HF",&vTGALD4HF,"TGALD4HF/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_CATS1_2",&vT_CATS1_2,"T_CATS1_2/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_CATS1_CAV",&vT_CATS1_CAV,"T_CATS1_CAV/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_MUVI_CATS1",&vT_MUVI_CATS1,"T_MUVI_CATS1/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_PL_CATS1",&vT_PL_CATS1,"T_PL_CATS1/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_PL_CATS2",&vT_PL_CATS2,"T_PL_CATS2/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_PL_CHIO",&vT_PL_CHIO,"T_PL_CHIO/s");
+      RootOutput::getInstance()->GetTree()->Branch("T_PLchCATS1",&vT_PLchCATS1,"T_PLchCATS1/s");
+      */
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -276,37 +285,37 @@ void Analysis::InitInputBranch(){
   /* RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true ); */
   /* RootInput:: getInstance()->GetChain()->SetBranchStatus("fIC_*",true ); */
   /* RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true ); */
-  
+
   RootInput:: getInstance()->GetChain()->SetBranchAddress("GATCONF",&vGATCONF);
- /* RootInput:: getInstance()->GetChain()->SetBranchAddress("ADC_CHIO_V15",&vADC_CHIO_V15); 
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("ADC_VOIE_29",&vADC_VOIE_29);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("CHIO",&vCHIO);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("CONFDEC",&vCONFDEC);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("CONFDEC_AGAVA",&vCONFDEC_AGAVA);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("DATATRIG",&vDATATRIG);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("DATATRIG_CHIO",&vDATATRIG_CHIO);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("E1D6",&vE1D6);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("E2D6",&vE2D6);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("ED4",&vED4);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("EXL_HF",&vEXL_HF);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("GALD4X",&vGALD4X);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("GALD4Y",&vGALD4Y);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("QCaviar",&vQCaviar);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("QPlast",&vQPlast);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TCAVHF",&vTCAVHF);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6CAV",&vTE1D6CAV);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6GAL",&vTE1D6GAL);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6HF",&vTE1D6HF);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TED4HF",&vTED4HF);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("TGALD4HF",&vTGALD4HF);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_CATS1_2",&vT_CATS1_2);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_CATS1_CAV",&vT_CATS1_CAV);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_MUVI_CATS1",&vT_MUVI_CATS1);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CATS1",&vT_PL_CATS1);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CATS2",&vT_PL_CATS2);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CHIO",&vT_PL_CHIO);
-  RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PLchCATS1",&vT_PLchCATS1);
-*/
+  /* RootInput:: getInstance()->GetChain()->SetBranchAddress("ADC_CHIO_V15",&vADC_CHIO_V15); 
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("ADC_VOIE_29",&vADC_VOIE_29);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("CHIO",&vCHIO);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("CONFDEC",&vCONFDEC);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("CONFDEC_AGAVA",&vCONFDEC_AGAVA);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("DATATRIG",&vDATATRIG);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("DATATRIG_CHIO",&vDATATRIG_CHIO);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("E1D6",&vE1D6);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("E2D6",&vE2D6);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("ED4",&vED4);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("EXL_HF",&vEXL_HF);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("GALD4X",&vGALD4X);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("GALD4Y",&vGALD4Y);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("QCaviar",&vQCaviar);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("QPlast",&vQPlast);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TCAVHF",&vTCAVHF);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6CAV",&vTE1D6CAV);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6GAL",&vTE1D6GAL);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TE1D6HF",&vTE1D6HF);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TED4HF",&vTED4HF);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("TGALD4HF",&vTGALD4HF);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_CATS1_2",&vT_CATS1_2);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_CATS1_CAV",&vT_CATS1_CAV);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_MUVI_CATS1",&vT_MUVI_CATS1);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CATS1",&vT_PL_CATS1);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CATS2",&vT_PL_CATS2);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PL_CHIO",&vT_PL_CHIO);
+     RootInput:: getInstance()->GetChain()->SetBranchAddress("T_PLchCATS1",&vT_PLchCATS1);
+     */
 }
 
 ////////////////////////////////////////////////////////////////////////////////     
@@ -336,13 +345,13 @@ NPL::VAnalysis* Analysis::Construct(){
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-class proxy{
-  public:
-    proxy(){
-      NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
-    }
-};
+  class proxy{
+    public:
+      proxy(){
+        NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
+      }
+  };
 
-proxy p;
+  proxy p;
 }
 
diff --git a/Projects/e748/Analysis.h b/Projects/e748/Analysis.h
index 6bac47cdcb550985ba913f5ed81119a7689000a6..4566a7d1b8bcd24fb172e7f152612c3a9d684869 100644
--- a/Projects/e748/Analysis.h
+++ b/Projects/e748/Analysis.h
@@ -74,10 +74,10 @@ class Analysis: public NPL::VAnalysis{
     double BeamEnergy;
     int run_major;
     int run_minor;
-    NPL::EnergyLoss He3CD2  ;
-    NPL::EnergyLoss He3Al   ;
-    NPL::EnergyLoss He3Si   ;
-    NPL::EnergyLoss BeamCD2 ;
+    NPL::EnergyLoss LightTarget;
+    NPL::EnergyLoss LightAl   ;
+    NPL::EnergyLoss LightSi   ;
+    NPL::EnergyLoss BeamTarget ;
     NPL::EnergyLoss BeamMylar ;
     NPL::EnergyLoss BeamIsobutane ;
 
diff --git a/Projects/e748/e748.detector b/Projects/e748/e748.detector
index 90336a06ac1a2a26bb9f421b822cd4081433e7eb..a1821cf6bf1ff828386a6b7e428a0faf8e32e2f2 100644
--- a/Projects/e748/e748.detector
+++ b/Projects/e748/e748.detector
@@ -116,7 +116,7 @@ CATSDetector
 
 ModularLeaf
  DefaultValue= -1000
- Leafs= QPlast QCaviar CHIO T_CATS1_CAV T_CATS1_2 T_MUVI_CATS1 T_PL_CATS2 EXL_HF T_PL_CHIO T_PL_CATS1
+ Leafs= QPlast QCaviar CHIO T_CATS1_CAV T_CATS1_2 T_MUVI_CATS1 T_PL_CATS2 EXL_HF T_PL_CHIO T_PL_CATS E1D6
 
 Chio_dig 
  Pos=       -30.  -30.   600. mm