diff --git a/Inputs/EventGenerator/neutron.source b/Inputs/EventGenerator/neutron.source
old mode 100644
new mode 100755
index 6269fb007aa86081c5aa27c38e8ee5a3f5abd089..9d673567edd2b32697e20d1b43ce36315b8afa2f
--- a/Inputs/EventGenerator/neutron.source
+++ b/Inputs/EventGenerator/neutron.source
@@ -4,21 +4,22 @@
 %      Energy are given in MeV , Position in mm      % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Isotropic
- EnergyLow= 0.1
- EnergyHigh= 12
- %EnergyDistribution= flat
- EnergyDistribution= Watt
+ EnergyLow= 0
+ EnergyHigh= 20
+ % EnergyDistribution= flat
+% EnergyDistribution= Watt
+ EnergyDistribution= FromHisto
+ EnergyDistributionHist= MannhartFineFilterHisto.root hMannhart
+% EnergyDistributionHist= 20221222_EbarNubarExtrapolations_PFNS.root PFNS_2
+% EnergyDistributionHist= hPFNS_jeff3.3.root PFNS_jeff_0
  %EnergyDistribution= 0.38*sqrt(x)*exp(-x/0.847212)
- %EnergyDistribution= 1.5*TMath::SinH(sqrt(1.3*x))*exp(-0.89*x)
- %EnergyDistribution= FromHisto
- %EnergyDistributionHist= hEx.root hEx
  HalfOpenAngleMin= 0
  HalfOpenAngleMax= 180
  x0= 0 
  y0= 0 
  z0= 0 mm 
- SigmaX= 1 mm
- SigmaY= 1 mm
+ SigmaX= 12 mm
+ SigmaY= 12 mm
  Multiplicity= 1
  Particle= neutron
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/NPLib/Detectors/ChiNu/CMakeLists.txt b/NPLib/Detectors/ChiNu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuData.cxx b/NPLib/Detectors/ChiNu/TChiNuData.cxx
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuData.h b/NPLib/Detectors/ChiNu/TChiNuData.h
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuPhysics.cxx b/NPLib/Detectors/ChiNu/TChiNuPhysics.cxx
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuPhysics.h b/NPLib/Detectors/ChiNu/TChiNuPhysics.h
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuSpectra.cxx b/NPLib/Detectors/ChiNu/TChiNuSpectra.cxx
old mode 100644
new mode 100755
diff --git a/NPLib/Detectors/ChiNu/TChiNuSpectra.h b/NPLib/Detectors/ChiNu/TChiNuSpectra.h
old mode 100644
new mode 100755
diff --git a/NPSimulation/Detectors/ChiNu/CMakeLists.txt b/NPSimulation/Detectors/ChiNu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/NPSimulation/Detectors/ChiNu/ChiNu.cc b/NPSimulation/Detectors/ChiNu/ChiNu.cc
old mode 100644
new mode 100755
index 1382ccf01d1459e847c75e6715c49f927fd5af4e..6328e77a107dad6248f65eff4d818ef39841c021
--- a/NPSimulation/Detectors/ChiNu/ChiNu.cc
+++ b/NPSimulation/Detectors/ChiNu/ChiNu.cc
@@ -1,23 +1,23 @@
 /*****************************************************************************
- * Copyright (C) 2009-2019   this file is part of the NPTool Project       *
+ * Copyright (C) 2009-2019   this file is part of the NPTool Project         *
  *                                                                           *
  * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
  * For the list of contributors see $NPTOOL/Licence/Contributors             *
  *****************************************************************************/
 
-/*****************************************************************************
- * Original Author: Pierre Morfouace  contact address: pierre.morfouace2@cea.fr                        *
- *                                                                           *
- * Creation Date  : February 2019                                           *
- * Last update    :                                                          *
- *---------------------------------------------------------------------------*
- * Decription:                                                               *
- *  This class describe  ChiNu simulation                             *
- *                                                                           *
- *---------------------------------------------------------------------------*
- * Comment:                                                                  *
- *                                                                           *
- *****************************************************************************/
+/********************************************************************************
+ * Original Author: Pierre Morfouace  contact address: pierre.morfouace2@cea.fr *
+ *                                                                              *
+ * Creation Date  : February 2019                                               *
+ * Last update    :                                                             *
+ *------------------------------------------------------------------------------*
+ * Decription:                                                                  *
+ *  This class describes ChiNu simulation                                       *
+ *                                                                              *
+ *------------------------------------------------------------------------------*
+ * Comment:                                                                     *
+ *                                                                              *
+ ********************************************************************************/
 
 // C++ headers
 #include <sstream>
@@ -61,9 +61,11 @@ using namespace CLHEP;
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 namespace ChiNu_NS{
   // EJ309 Scintillator - Energy and time Resolution
-  const double EnergyThreshold = 0.*MeV;
+  const double EnergyThreshold = 0.02*MeV;
   const double ResoTime = 0.686*ns ;
-  const double ResoEnergy = 0.1*MeV ;
+  const double ResoEnergySlope = 0.06514 ;
+  const double ResoEnergyOffset = 0.09271*MeV ;
+  //  const double ResoEnergy = 0.1*MeV ;
   const double Radius = 8.90*cm ; 
   const double Thickness = 5.08*cm ; 
   const string Material = "EJ309";
@@ -121,19 +123,21 @@ ChiNu::ChiNu(){
 ChiNu::~ChiNu(){
 }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ChiNu::AddDetector(G4ThreeVector POS){
+void ChiNu::AddDetector(G4ThreeVector POS, double TimeResolution){
   // Convert the POS value to R theta Phi as Spherical coordinate is easier in G4 
   m_R.push_back(POS.mag());
   m_Theta.push_back(POS.theta());
   m_Phi.push_back(POS.phi());
+  m_ResoTime.push_back(TimeResolution);
 }
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ChiNu::AddDetector(double  R, double  Theta, double  Phi){
+void ChiNu::AddDetector(double  R, double  Theta, double  Phi, double TimeResolution){
   m_R.push_back(R);
   m_Theta.push_back(Theta);
   m_Phi.push_back(Phi);
+  m_ResoTime.push_back(TimeResolution);
 }
  
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -209,6 +213,17 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){
   if(NPOptionManager::getInstance()->GetVerboseLevel())
     cout << "//// " << blocks.size() << " detectors found " << endl; 
 
+  // In case a file of different values for different detectors is to be applied.
+  // string fTimeRes=blocks[0]->GetString("fTimeResolution");
+  // vector<double> TimeRes;
+  // if(fTimeRes!="")
+  //   {
+  //     ifstream fres(fTimeRes.c_str());
+  //     double T;
+  //     while(fres>> T)
+  // 	TimeRes.push_back(T);
+  //   }
+  
   vector<string> cart = {"POS"};
   vector<string> sphe = {"R","Theta","Phi"};
 
@@ -218,7 +233,8 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){
         cout << endl << "////  ChiNu " << i+1 <<  endl;
     
       G4ThreeVector Pos = NPS::ConvertVector(blocks[i]->GetTVector3("POS","mm"));
-      AddDetector(Pos);
+
+      AddDetector(Pos,ChiNu_NS::ResoTime);
     }
     else if(blocks[i]->HasTokenList(sphe)){
       if(NPOptionManager::getInstance()->GetVerboseLevel())
@@ -227,7 +243,13 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){
       double Theta = blocks[i]->GetDouble("Theta","deg");
       double Phi = blocks[i]->GetDouble("Phi","deg");
       m_BuildLeadShield = blocks[i]->GetInt("LeadShield");
-      AddDetector(R,Theta,Phi);
+      double TimeResolution = ChiNu_NS::ResoTime;
+      if(blocks[i]->HasToken("TimeResolution"))
+	TimeResolution=blocks[i]->GetDouble("TimeResolution","ns");
+      
+      // if(fTimeRes!="") TimeResolution = TimeRes.at((i+1)/6+9*((i+1)%6));
+      
+      AddDetector(R,Theta,Phi,TimeResolution);
     }
     else{
       cout << "ERROR: check your input file formatting " << endl;
@@ -242,9 +264,19 @@ void ChiNu::ReadConfiguration(NPL::InputParser parser){
 // Called After DetecorConstruction::AddDetector Method
 void ChiNu::ConstructDetector(G4LogicalVolume* world){
  
-  //G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air");
-  //world->SetMaterial(Air);
+  // double Vm = 0.08206 * 300 * atmosphere / (0.792 * kelvin); // pressure * bar?
+  // double density = ( ( 0.21*2*15.99903 + 0.79*2*14.00643 ) / Vm );
 
+  // cout << "  //////////////////  density=" << density << " ///////////////////" << endl;
+  // cout << "  atmosphere=" << atmosphere << " kelvin=" << kelvin << " Vm=" << Vm << " mg/cm3=" << mg/cm3 << endl;
+
+  // G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air",density * mg/cm3);
+  // world->SetMaterial(Air);
+
+  G4Material* Air = MaterialManager::getInstance()->GetMaterialFromLibrary("Air");
+  world->SetMaterial(Air);
+
+  
   for (unsigned short i = 0 ; i < m_R.size() ; i++) {
 
     G4double wX = m_R[i] * sin(m_Theta[i] ) * cos(m_Phi[i] ) ;
@@ -292,11 +324,21 @@ void ChiNu::ReadSensitive(const G4Event* ){
 
   unsigned int size = Scorer->GetMult(); 
   for(unsigned int i = 0 ; i < size ; i++){
-    vector<unsigned int> level = Scorer->GetLevel(i); 
-    double Energy = RandGauss::shoot(Scorer->GetEnergy(i),ChiNu_NS::ResoEnergy);
+    vector<unsigned int> level = Scorer->GetLevel(i);
+    int DetectorNbr = level[0];
+    
+    // Light output equation:
+    // L(Ep)=A*Ep - B*(1-exp(-C*pow(Ep,D))) from F. Pino et al. Applied Radiation and Isotopes 89 (2014) 79-84.
+    double A=0.62, B=1.3, C=0.39, D=0.97;
+    double Ep=RandGauss::shoot(Scorer->GetEnergy(i),ChiNu_NS::ResoEnergyOffset+ChiNu_NS::ResoEnergySlope*Scorer->GetEnergy(i));
+    double Energy = A*Ep - B*(1-exp(-C*pow(Ep,D)));
+    ////////////////////////
+    
+    //    Energy = RandGauss::shoot(Energy,ChiNu_NS::ResoEnergyOffset+ChiNu_NS::ResoEnergySlope*Energy);
+    
     if(Energy>ChiNu_NS::EnergyThreshold){
-      double Time = RandGauss::shoot(Scorer->GetTime(i),ChiNu_NS::ResoTime);
-      int DetectorNbr = level[0];
+      //      double Time = RandGauss::shoot(Scorer->GetTime(i),ChiNu_NS::ResoTime); // One time resolution for all detectors
+      double Time = RandGauss::shoot(Scorer->GetTime(i),m_ResoTime.at(DetectorNbr-1)); // Time resolution that can be set different for each detector
       m_Event->SetEnergy(DetectorNbr,Energy);
       m_Event->SetTime(DetectorNbr,Time); 
     }
diff --git a/NPSimulation/Detectors/ChiNu/ChiNu.hh b/NPSimulation/Detectors/ChiNu/ChiNu.hh
old mode 100644
new mode 100755
index 521f0f578b952290125ae9f2cf10665ee4d5f540..c4adf840335bd164acf14ac543dfe2d5dca80003
--- a/NPSimulation/Detectors/ChiNu/ChiNu.hh
+++ b/NPSimulation/Detectors/ChiNu/ChiNu.hh
@@ -51,9 +51,9 @@ class ChiNu : public NPS::VDetector{
     ////////////////////////////////////////////////////
   public:
     // Cartesian
-    void AddDetector(G4ThreeVector POS);
+  void AddDetector(G4ThreeVector POS, double TimeResolution);
     // Spherical
-    void AddDetector(double R,double Theta,double Phi);  
+  void AddDetector(double R,double Theta,double Phi, double TimeResolution);  
 
 
     G4AssemblyVolume* BuildDetector();
@@ -107,6 +107,7 @@ class ChiNu : public NPS::VDetector{
     vector<double>  m_Theta;
     vector<double>  m_Phi; 
     bool m_BuildLeadShield;
+    vector<double>  m_ResoTime; 
    
     // Visualisation Attribute
     G4VisAttributes* m_VisCylinder;
diff --git a/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh b/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh
index 31cb553543c02f1e5638e98b7a2cf97d9378d52e..b60d01b594c0567f50c6828785c14e0b24f0a88c 100644
--- a/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh
+++ b/NPSimulation/EventGenerator/EventGeneratorIsotropic.hh
@@ -39,7 +39,7 @@ using namespace CLHEP;
 // ROOT headers
 #include "TString.h"
 #include "TF1.h"
-#include "TH1F.h"
+#include "TH1.h"
 
 class EventGeneratorIsotropic : public NPS::VEventGenerator{
 public:     // Constructor and destructor
@@ -75,6 +75,6 @@ private:    // Source parameter from input file
 	  vector<SourceParameters> m_Parameters       ;
     ParticleStack*           m_ParticleStack    ;
     TF1* fEnergyDist;
-    TH1F* m_EnergyDistributionHist;
+    TH1D* m_EnergyDistributionHist;
 };
 #endif
diff --git a/Projects/ChiNu/Analysis.cxx b/Projects/ChiNu/Analysis.cxx
old mode 100644
new mode 100755
index fd75ddba706b2461bee8a86eb9cb8f4fa491f335..8c04f21b5c8ec678398cce981a6e43c096b1b81f
--- a/Projects/ChiNu/Analysis.cxx
+++ b/Projects/ChiNu/Analysis.cxx
@@ -53,7 +53,7 @@ void Analysis::Init(){
 void Analysis::TreatEvent(){
   ReInitValue();
   Einit = InitialConditions->GetKineticEnergy(0);
-  double init_ThetaLab = ReactionConditions->GetTheta(0)*deg;
+  double init_ThetaLab   = ReactionConditions->GetTheta(0)*deg;
   double init_BeamEnergy = ReactionConditions->GetBeamEnergy();
   //neutron->SetKineticEnergy(init_BeamEnergy);
   neutron->SetKineticEnergy(Einit);
@@ -63,34 +63,98 @@ void Analysis::TreatEvent(){
   double Ytarget = InitialConditions->GetIncidentPositionY();
   double Ztarget = 0;//InitialConditions->GetIncidentPositionZ();
   TVector3 TargetPos = TVector3(Xtarget,Ytarget,Ztarget);
+  //  cout << "Xtarget=" << Xtarget << endl;
 
+  unsigned int IntCoord_mult=InteractionCoordinates->GetDetectedMultiplicity();
+  InCellHitMultiplicity=IntCoord_mult;
+  
+  // cout << "m_ChiNu->Energy.size()=" << m_ChiNu->Energy.size() << endl;
+  //  cout << "IntCoord_mult=" << IntCoord_mult << endl;
   for(int i=0; i<m_ChiNu->Energy.size(); i++){
-    if(m_ChiNu->Energy.size()>0){
-      double Rdet, R;
-      Rdet = m_ChiNu->GetDetectorPosition(m_ChiNu->DetectorNumber[i]);
-      TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]);
-      TVector3 HitPos = DetPos-TargetPos;
-      //R= HitPos.Mag()*1e-3;
-      R= Rdet*mm;
-      Distance.push_back(R);	
-      Det.push_back(m_ChiNu->DetectorNumber[i]); 
-      T.push_back(m_ChiNu->Time[i]);
-      double T_stop = (m_ChiNu->Time[i])*1e-9;
-      //neutron->SetTimeOfFlight((T_stop-beam_TOF)/(Rdet*1e-3));
-      neutron->SetTimeOfFlight((T_stop)/(Rdet*1e-3-8e-3));
-      E.push_back(m_ChiNu->Energy[i]);
-      Elab.push_back(neutron->GetEnergy());
-
-
-      double DeltaTheta = atan(89.0/Rdet);
-      double exp_ThetaLab = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]).Theta();
-      double random_ThetaLab = ra.Uniform(exp_ThetaLab-DeltaTheta, exp_ThetaLab+DeltaTheta);
-      double dEx = my_Reaction->ReconstructRelativistic(Elab[i], random_ThetaLab);
+    double Rdet, R;
+
+    TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]);
+    TVector3 HitPos = DetPos-TargetPos;
+    Rdet = DetPos.Mag() ;
+    R    = Rdet*mm;
+    
+    Distance.push_back(R);	
+    Det.push_back(m_ChiNu->DetectorNumber[i]); 
+    T.push_back(m_ChiNu->Time[i]);
+    double T_stop = (m_ChiNu->Time[i]); 
+    neutron->SetBeta(  (Rdet/T_stop) / c_light); 
+    E.push_back(m_ChiNu->Energy[i]);
+    Elab.push_back(neutron->GetEnergy());
+
+
+    double DeltaTheta      = atan(89.0/Rdet);
+    double exp_ThetaLab    = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]).Theta();
+    double random_ThetaLab = ra.Uniform(exp_ThetaLab-DeltaTheta, exp_ThetaLab+DeltaTheta);
+    double dEx             = my_Reaction->ReconstructRelativistic(Elab[i], random_ThetaLab);
       
-      ThetaLab.push_back(random_ThetaLab/deg);
-      //ThetaLab.push_back(exp_ThetaLab/deg);
-      Ex.push_back(dEx);
-    }
+    ThetaLab.push_back(random_ThetaLab/deg);
+    //ThetaLab.push_back(exp_ThetaLab/deg);
+    Ex.push_back(dEx);
+  }
+
+  // Treatment of different hit in one detector due to neutron scattering
+  for(int i=0; i<m_ChiNu->Energy.size(); i++){
+    for(unsigned int j=0; j<IntCoord_mult; j++)
+      {// Associates with each recorded hit the full scattering pattern of the simulated neutron.
+       // At a later step, the position of each scattering point is compared with the size of the
+       // detector to determine if the hit was inside the detector or not.
+	double Rdet, R;
+
+	TVector3 DetPos = m_ChiNu->GetVectorDetectorPosition(m_ChiNu->DetectorNumber[i]);
+	TVector3 HitPos = DetPos-TargetPos;
+
+	Rdet = DetPos.Mag() ;
+	R= Rdet*mm;
+	Distance_InCell.push_back(R);	
+	Det_InCell.push_back(m_ChiNu->DetectorNumber[i]); 
+	T_InCell.push_back(m_ChiNu->Time[i]);
+
+	double T_stop = (m_ChiNu->Time[i]); 
+	neutron->SetBeta(  (Rdet/T_stop) / c_light);
+	
+	E_InCell.push_back(m_ChiNu->Energy[i]);
+	Elab_InCell.push_back(neutron->GetEnergy());
+
+	double HitX = InteractionCoordinates->GetDetectedPositionX(j);
+	double HitY = InteractionCoordinates->GetDetectedPositionY(j);
+	double HitZ = InteractionCoordinates->GetDetectedPositionZ(j);
+	double HitE = InteractionCoordinates->GetEnergy(j);
+	double HitT = InteractionCoordinates->GetTime(j);
+
+	double DetectorX = DetPos.X();
+	double DetectorY = DetPos.Y();
+	double DetectorZ = DetPos.Z();
+	R = DetPos.Mag();
+
+	TVector3 Xaxis(DetectorZ*1./R,0,-DetectorX*1./R);
+	TVector3 Yaxis(DetectorY*1./R*Xaxis.Z() , DetectorZ*1./R*Xaxis.X() - DetectorX*1./R*Xaxis.Z(), Xaxis.X()*DetectorY*1./R );
+
+	// scalar product to get the vector projection along the central detector axis:
+	double InCellDepth = ( (HitX-DetectorX)*DetectorX + (HitY-DetectorY)*DetectorY + (HitZ-DetectorZ)*DetectorZ ) *1./R; 
+	double uProjX      = DetectorX * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis X
+	double uProjY      = DetectorY * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis Y
+	double uProjZ      = DetectorZ * (1 + InCellDepth*1./R); // Projection of hit point on the detector central axis, axis Z
+
+	// Radial distance of the hit point to the detector central axis:
+	double InCellRadius = sqrt( pow(HitX - uProjX,2) + pow(HitY - uProjY,2) + pow(HitZ - uProjZ,2) );
+	double InCellHit_X = ( (HitX-DetectorX)*Xaxis.X() + (HitY-DetectorY)*Xaxis.Y() + (HitZ-DetectorZ)*Xaxis.Z() ); 
+	double InCellHit_Y = ( (HitX-DetectorX)*Yaxis.X() + (HitY-DetectorY)*Yaxis.Y() + (HitZ-DetectorZ)*Yaxis.Z() );
+
+	InCellHitDepth.push_back(InCellDepth);
+	InCellHitRadius.push_back(InCellRadius);
+	InCellHitEnergy.push_back(HitE);
+	InCellHitTime.push_back(HitT);
+	InCellHitX.push_back(InCellHit_X);
+	InCellHitY.push_back(InCellHit_Y);
+
+	neutron->SetBeta( (R/HitT) / c_light ); 
+	InCellHitEnToF.push_back(neutron->GetEnergy());
+      }
   }
 }
 
@@ -104,17 +168,34 @@ void Analysis::InitOutputBranch() {
   RootOutput::getInstance()->GetTree()->Branch("T",&T);   
   RootOutput::getInstance()->GetTree()->Branch("Distance",&Distance);   
   RootOutput::getInstance()->GetTree()->Branch("Det",&Det);   
+
+  // InCellPosition
+  RootOutput::getInstance()->GetTree()->Branch("Elab_InCell",&Elab_InCell);
+  RootOutput::getInstance()->GetTree()->Branch("E_InCell",&E_InCell);
+  RootOutput::getInstance()->GetTree()->Branch("T_InCell",&T_InCell);
+  RootOutput::getInstance()->GetTree()->Branch("Distance_InCell",&Distance_InCell);
+  RootOutput::getInstance()->GetTree()->Branch("Det_InCell",&Det_InCell);
+
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitMultiplicity",&InCellHitMultiplicity);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitDepth",&InCellHitDepth);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitRadius",&InCellHitRadius);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitEnergy",&InCellHitEnergy);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitTime",&InCellHitTime);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitEnToF",&InCellHitEnToF);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitX",&InCellHitX);
+  RootOutput::getInstance()->GetTree()->Branch("InCellHitY",&InCellHitY);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitInputBranch(){
   RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true );
-  RootInput:: getInstance()->GetChain()->SetBranchStatus("fIC_*",true );
   RootInput:: getInstance()->GetChain()->SetBranchAddress("InitialConditions",&InitialConditions);
 
   RootInput:: getInstance()->GetChain()->SetBranchStatus("ReactionConditions",true );
-  RootInput:: getInstance()->GetChain()->SetBranchStatus("fRC_*",true );
   RootInput:: getInstance()->GetChain()->SetBranchAddress("ReactionConditions",&ReactionConditions);
+  
+  RootInput:: getInstance()->GetChain()->SetBranchStatus("InteractionCoordinates",true );
+  RootInput:: getInstance()->GetChain()->SetBranchAddress("InteractionCoordinates",&InteractionCoordinates);
 }
 
 ////////////////////////////////////////////////////////////////////////////////     
@@ -127,6 +208,20 @@ void Analysis::ReInitValue(){
   T.clear();
   Distance.clear();
   Det.clear();
+  
+  Elab_InCell.clear();
+  E_InCell.clear();
+  T_InCell.clear();
+  Distance_InCell.clear();
+  Det_InCell.clear();
+
+  InCellHitDepth.clear();
+  InCellHitRadius.clear();
+  InCellHitEnergy.clear();
+  InCellHitTime.clear();
+  InCellHitEnToF.clear();
+  InCellHitX.clear();
+  InCellHitY.clear();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/Projects/ChiNu/Analysis.h b/Projects/ChiNu/Analysis.h
old mode 100644
new mode 100755
index 1be6229361fbab9ae175df3f0e61bb0b8916d2a8..bd163c1128e483dbfb9c5e548b3e6d0adf362bac
--- a/Projects/ChiNu/Analysis.h
+++ b/Projects/ChiNu/Analysis.h
@@ -53,6 +53,22 @@ private:
 	vector<double> T;
 	vector<double> Distance;
 	vector<int>    Det;
+  
+        vector<double> Elab_InCell;
+	vector<double> E_InCell;
+	vector<double> T_InCell;
+	vector<double> Distance_InCell;
+	vector<int>    Det_InCell;
+
+        int InCellHitMultiplicity;
+        vector<double> InCellHitDepth;
+        vector<double> InCellHitRadius;
+        vector<double> InCellHitX;
+        vector<double> InCellHitY;
+        vector<double> InCellHitEnergy;
+        vector<double> InCellHitTime;
+        vector<double> InCellHitEnToF;
+
 
   private:
 	TChiNuPhysics* m_ChiNu;
diff --git a/Projects/ChiNu/CMakeLists.txt b/Projects/ChiNu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/Projects/ChiNu/PhysicsListOption.txt b/Projects/ChiNu/PhysicsListOption.txt
old mode 100644
new mode 100755
diff --git a/Projects/ChiNu/chinu.detector b/Projects/ChiNu/chinu.detector
old mode 100644
new mode 100755
index 152b2dd9c346903cae81b13c8691653676de823f..158b37a2e3bc309d4b8b54195e7906f703d35002
--- a/Projects/ChiNu/chinu.detector
+++ b/Projects/ChiNu/chinu.detector
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Alias Theta
  Action= Copy
- Value= 30 45 60 75 90 105 120 135 150 
+ Value= 150 135 120 105 90 75 60 45 30 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Alias Phi
  Action= Copy
@@ -9,12 +9,15 @@ Alias Phi
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 ChiNu
  R= 1000 mm
- THETA= @Theta deg
+ % 252Cf run 167 average resolution : 0.723ns
+ % 235U run 109 average resolution : 1.0ns
+ TimeResolution= 0.723 ns 
  PHI= @Phi deg
+ THETA= @Theta deg
  LeadShield= 1
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FissionChamber
   POS= 0 0 0 mm
   GasMaterial= CF4
-  Pressure= 1 bar
+  Pressure= 0.9 bar