diff --git a/NPSimulation/Detectors/Chio/Chio.cc b/NPSimulation/Detectors/Chio/Chio.cc
index 4d6f446f893258209ff32d737562bcf3e30b8575..73afee883eb51daa3e1df7d9113af3abb45095b3 100644
--- a/NPSimulation/Detectors/Chio/Chio.cc
+++ b/NPSimulation/Detectors/Chio/Chio.cc
@@ -154,19 +154,19 @@ G4LogicalVolume* Chio::BuildDetector(){
     G4Material* Mylar= MaterialManager::getInstance()->GetMaterialFromLibrary("Mylar");
 
     G4MaterialPropertiesTable* MPT = new G4MaterialPropertiesTable();      
-    MPT->AddConstProperty("DE_PAIRENERGY",30*eV);
+    MPT->AddConstProperty("DE_PAIRENERGY",30*eV, true);
     //  MPT->AddConstProperty("DE_AMPLIFICATION",1e4);
-    MPT->AddConstProperty("DE_ABSLENGTH",1*pc);
-    MPT->AddConstProperty("DE_DRIFTSPEED",11*cm/microsecond);
-    MPT->AddConstProperty("DE_TRANSVERSALSPREAD",6e-5*mm2/ns);
-    MPT->AddConstProperty("DE_LONGITUDINALSPREAD",4e-5*mm2/ns);
+    MPT->AddConstProperty("DE_ABSLENGTH",1*pc, true);
+    MPT->AddConstProperty("DE_DRIFTSPEED",11*cm/microsecond, true);
+    MPT->AddConstProperty("DE_TRANSVERSALSPREAD",6e-5*mm2/ns, true);
+    MPT->AddConstProperty("DE_LONGITUDINALSPREAD",4e-5*mm2/ns, true);
 
     CF4->SetMaterialPropertiesTable(MPT);
 
     G4MaterialPropertiesTable* MPT2 = new G4MaterialPropertiesTable();      
-    MPT2->AddConstProperty("DE_YIELD",1);
-    MPT2->AddConstProperty("DE_AMPLIFICATION",2);
-    MPT2->AddConstProperty("DE_ABSLENGTH",1*pc);
+    MPT2->AddConstProperty("DE_YIELD",1, true);
+    MPT2->AddConstProperty("DE_AMPLIFICATION",2, true);
+    MPT2->AddConstProperty("DE_ABSLENGTH",1*pc, true);
 
     Al->SetMaterialPropertiesTable(MPT2);
 
diff --git a/Projects/e748/Analysis.cxx b/Projects/e748/Analysis.cxx
index 376c1dd901c721db230647806bffb4ec1d9645ff..af41652d5cac69edd5d037a5c8d6c019a5126591 100644
--- a/Projects/e748/Analysis.cxx
+++ b/Projects/e748/Analysis.cxx
@@ -19,6 +19,8 @@
  *                                                                           *
  *                                                                           *
  *****************************************************************************/
+#include "NPSystemOfUnits.h"
+#include <TUrl.h>
 #include<iostream>
 using namespace std;
 #include"Analysis.h"
@@ -27,6 +29,8 @@ using namespace std;
 #include"NPOptionManager.h"
 #include"RootOutput.h"
 #include"RootInput.h"
+
+#include "TMath.h"
 ////////////////////////////////////////////////////////////////////////////////
 Analysis::Analysis(){
 }
@@ -36,185 +40,151 @@ Analysis::~Analysis(){
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::Init(){
-  M2 = (TMust2Physics*) m_DetectorManager->GetDetector("M2Telescope");
-  CATS = (TCATSPhysics*) m_DetectorManager->GetDetector("CATSDetector");
-  ModularLeaf = (TModularLeafPhysics*) m_DetectorManager->GetDetector("ModularLeaf");
-  InitOutputBranch();
-  InitInputBranch();
-  /* Rand = TRandom3(); */
-  myReaction= new NPL::Reaction();
-  myReaction->ReadConfigurationFile(NPOptionManager::getInstance()->GetReactionFile());
-  DetectorNumber = 0 ;
-  ThetaNormalTarget = 0 ;
-  ThetaM2Surface = 0; 
-  X_M2 = 0 ;
-  Y_M2 = 0 ;
-  Z_M2 = 0 ;
-  Si_E_M2 = 0 ;
-  CsI_E_M2 = 0 ; 
-  Energy = 0;
-  E_M2 = 0;
-  Si_X_M2 = 0;
-  Si_Y_M2 = 0;
-  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); 
+    //--> Detector physics
+    fM2 = (TMust2Physics*) m_DetectorManager->GetDetector("M2Telescope");
+    fCATS = (TCATSPhysics*) m_DetectorManager->GetDetector("CATSDetector");
+    //IC, Plastic and TOF from CATS
+    fModularLeaf = (TModularLeafPhysics*) m_DetectorManager->GetDetector("ModularLeaf");
+    //--> ROOT I/O
+    InitOutputBranch();
+    InitInputBranch();
+    //--> Auxiliar funcs and variables for analysis
+    fReaction= new NPL::Reaction();
+    fTargetThickness = m_DetectorManager->GetTargetThickness();
+    //	Energy loss table: the G4Table are generated by the simulation
+    fHe3CD2 = EnergyLoss("./energy_loss/He3_CD2.G4table","G4Table",10 );
+    fHe3Al = EnergyLoss("./energy_loss/He3_Al.G4table","G4Table",10);
+    fHe3Si = EnergyLoss("./energy_loss/He3_Si.G4table","G4Table",10);
+    fBeamCD2 = EnergyLoss("./energy_loss/Be12_CD2.G4table","G4Table",10);
+    fBeamMylar = EnergyLoss("./energy_loss/Be12_Mylar.G4table","G4Table",10);
+    fBeamIsobutane = EnergyLoss("./energy_loss/Be12_iC4H10_0.008bar_273.15K.G4table","G4Table",10); 
 
 }
 
-////////////////////////////////////////////////////////////////////////////////
-void Analysis::TreatEvent(){
-  // Reinitiate calculated variable
-  ReInitValue();
-
-  // Calculate Run Number
-  static string filename ;
-  filename = RootInput::getInstance()->GetChain()->GetFile()->GetName();
-  size_t minor_pos = filename.rfind("_");
-  run_minor = atoi(filename.substr(minor_pos+1,1).c_str());
-  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
-  // 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
-  double XTarget = CATS->GetPositionOnTarget().X();
-  double YTarget = CATS->GetPositionOnTarget().Y();
-
-  TVector3 BeamDirection = CATS->GetBeamDirection();
-  // 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++){ 
-    /*   //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 ;
-  
-        /* // 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
+void Analysis::TreatBeam()
+{
+    //--> Get beam vertex and direction
+    XYZPoint vertex {fCATS->GetPositionOnTargetX(), fCATS->GetPositionOnTargetY(), 0.};
+    XYZVector beamDirection {fCATS->GetBeamDirection()};
+    mThetaBeam = ComputeXYZVectorAngle(beamDirection, XYZVector(0, 0, 1));
+    //--> Beam energy CALIBRATION
+    mCATS1Calibrated = fModularLeaf->GetCalibratedValue("T_CATS1_CAV");
+    double beamSpeed { 11.0476 + mCATS1Calibrated * 0.278917}; // mm/ns
+    //work in SI units
+    beamSpeed *= 1.E6; //1.E9 * 1.E-3 m/s
+    // Beam Energy before CATS1
+    static double kCSquared {TMath::Power(TMath::C(), 2)};
+    auto gamma0 {ComputeGamma(beamSpeed)}; 
+    mEBeam = kBeamMass * (gamma0 - 1);
 
-          // 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));
+    //debug
+    // std::cout<<"Beam speed  = "<<BeamSpeed<<'\n';
+    // std::cout<<"Beta        = "<<beta<<'\n';
+    // std::cout<<"Gamma       = "<<gamma<<'\n';
+    // std::cout<<"Beam energy = "<<BeamEnergy<<'\n';
+                
+    // Energy Loss in CATS1         
+    double beamAfterCATS1 {ComputeELossInCATS(mEBeam, mThetaBeam)};
+    XYZPoint pointCATS1 {fCATS->PositionX.at(0), fCATS->PositionY.at(0), fCATS->PositionZ.at(0)};
+    XYZPoint pointCATS2 {fCATS->PositionX.at(1), fCATS->PositionY.at(1), fCATS->PositionZ.at(1)};
+    //Time correction in space between CATS1 to CATS2
+    mTimeCorr = ComputeTimeCorrectionInCATS(beamAfterCATS1, kBeamMass, pointCATS1, pointCATS2);
           
-          // 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;
+    // ELoss in CATS2
+    double beamAfterCATS2 {ComputeELossInCATS(beamAfterCATS1, mThetaBeam)};
+    //Time correction
+    mTimeCorr += ComputeTimeCorrectionInCATS(beamAfterCATS2, kBeamMass, pointCATS2, vertex);
 
-          // slow down beam inside the target
-          BeamEnergy = BeamCD2.Slow(BeamEnergyC2,TargetThickness*0.5,BeamDirection.Angle(TVector3(0,0,1))); 
-          myReaction->SetBeamEnergy(BeamEnergy);   
-          
-          }
-        
+    // Slow down beam inside the target
+    mEBeam = fBeamCD2.Slow(beamAfterCATS2, fTargetThickness * 0.5, mThetaBeam);
 
-        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;
+    //--> Set kinematic calculator
+    fReaction->SetBeamEnergy(mEBeam);
+}
 
-/*         // Evaluate energy using the thickness */ 
-        ELab = He3Al.EvaluateInitialEnergy( Energy,0.4*micrometer , ThetaM2Surface);
-/*         // Target Correction */
-        ELab   = He3CD2.EvaluateInitialEnergy( ELab ,TargetThickness/2., ThetaNormalTarget);
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::TreatEvent(){
+    // Reset saved variables
+    ReInitValue();
+    
+    // Calculate Run Number
+    static string filename ;
+    filename = RootInput::getInstance()->GetChain()->GetFile()->GetName();
+    size_t minor_pos = filename.rfind("_");
+    mRunMinor = atoi(filename.substr(minor_pos+1,1).c_str());
+    filename = filename.substr(0,minor_pos);
+    size_t major_pos = filename.rfind("_");
+    mRunMajor = atoi(filename.substr(major_pos+1,4).c_str());
+    
+    // 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
+    //------------------- BEAM ---------------------------
+    XYZPoint vertex {fCATS->GetPositionOnTargetX(), fCATS->GetPositionOnTargetY(), 0.};
+    XYZVector beamDirection {fCATS->GetBeamDirection()};
 
-/*         // Part 3 : Excitation Energy Calculation */
-        Ex = myReaction -> ReconstructRelativistic( ELab , ThetaLab );
+    bool computeBeam {true};//just do this one time if cuts are passed
+    //////////////////////////// LOOP on MUST2 Hit /////////////////
+    for(unsigned int hit = 0 ; hit < fM2->Si_E.size() ; hit++)
+    { 
+       
+        int telescopeNumber {fM2->TelescopeNumber.at(hit)};
+        XYZPoint must2Point {fM2->GetPositionOfInteraction(hit)};
 
+        //cut on telescope number
+        if(!(telescopeNumber < 9))
+            continue;
+        //cut on vertex position
+        if(!(vertex.X() > -1000 && vertex.Y() > -1000))
+            continue;
 
-/*         // Part 4 : Theta CM Calculation */
-        ThetaCM  = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg;
-        ThetaLab=ThetaLab/deg;
-     
-     }
-  }//end loop MUST2
+        // Beam computation (ONCE per event)
+        if(computeBeam)
+        {
+            TreatBeam();
+            computeBeam = true;
+        }
+        XYZVector trackDirection {must2Point - vertex};
+        // Angles computation
+        mThetaLab.push_back( ComputeXYZVectorAngle(trackDirection, beamDirection) );             
+        double mNormalThetaTarget = ComputeXYZVectorAngle(trackDirection, XYZVector(0, 0, 1));
+        double mNormalThetaM2 = ComputeXYZVectorAngle(trackDirection,
+                                               -1 * XYZVector(fM2->GetTelescopeNormal(hit)));
+        
+        // Save hit position (can't be accessed afterwards if not done here)
+        mMust2Telescopes.push_back( telescopeNumber );
+        mMust2PointsX.push_back( must2Point.X() );
+        mMust2PointsY.push_back( must2Point.Y() );
+        mMust2PointsZ.push_back( must2Point.Z() );
+                           
+        //Assume CsIE == 0!
+        double EAtDetector { fM2->Si_E.at(hit) };
+        //Save energies to custom branches
+        mMust2SiE.push_back( fM2->Si_E.at(hit) );
+        mMust2CsIE.push_back( fM2->CsI_E.at(hit) );
+        mMust2SiT.push_back( fM2->Si_T.at(hit) );
+        
+        //Backpropagate to vertex
+        double ELabIni {fHe3Al.EvaluateInitialEnergy(EAtDetector, 0.4 * micrometer, mNormalThetaM2)};
+        //Assume reaction at the middle of target and correct energy
+        mELab.push_back( fHe3CD2.EvaluateInitialEnergy(ELabIni, fTargetThickness / 2., mNormalThetaTarget) );
+        //Compute Excitation Energy
+        mEx.push_back( fReaction->ReconstructRelativistic(mELab.back(), mThetaLab.back()) );
+        //std::cout<<" Ex = "<<mEx.back()<< "MeV"<<'\n';
+        // Back to CM
+        mThetaCM.push_back( fReaction->EnergyLabToThetaCM(mELab.back(), mThetaLab.back()) / deg );//in degrees
+        mThetaLab.back() =  mThetaLab.back() / deg ;//store in degrees!
+        //debug
+        std::cout<<" EAtSil = "<<EAtDetector<<'\n';
+        std::cout<<" E1     = "<<ELabIni<<'\n';
+        std::cout<<" EVert  = "<<mELab.back()<<'\n';
+        std::cout<<" Theta  = "<<mThetaLab.back() * TMath::RadToDeg()<<'\n';
+        std::cout<<" Ex     = "<<mEx.back()<<'\n';
+    }
+    //ensure
+    if(!(mEx.size() == mThetaLab.size()))
+        throw std::runtime_error("Mismatching sizes for Eex && thetaLab vectors!");
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -223,126 +193,225 @@ void Analysis::End(){
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitOutputBranch() {
-  RootOutput::getInstance()->GetTree()->Branch("X_M2",&X_M2,"X_M2/D");
-  RootOutput::getInstance()->GetTree()->Branch("Y_M2",&Y_M2,"Y_M2/D");
-  RootOutput::getInstance()->GetTree()->Branch("Ex",&Ex,"Ex/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaLab",&ThetaLab,"ThetaLab/D");
-  RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D");
-  /* RootOutput::getInstance()->GetTree()->Branch("OriginalThetaLab",&OriginalThetaLab,"OriginalThetaLab/D"); */
-  RootOutput::getInstance()->GetTree()->Branch("ELab",&ELab,"ELab/D"); 
-  RootOutput::getInstance()->GetTree()->Branch("TimeCorr",&TimeCorr,"TimeCorr/D"); 
-  RootOutput::getInstance()->GetTree()->Branch("BeamLength",&BeamLength,"BeamLength/D"); 
-  RootOutput::getInstance()->GetTree()->Branch("ParticleLength",&ParticleLength,"ParticleLength/D"); 
-  RootOutput::getInstance()->GetTree()->Branch("BeamEnergy",&BeamEnergy,"BeamEnergy/D"); 
-
-
-  RootOutput::getInstance()->GetTree()->Branch("GATCONF",&vGATCONF,"GATCONF/s");
-  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("Ex", &mEx);
+    RootOutput::getInstance()->GetTree()->Branch("ELab", &mELab);
+    RootOutput::getInstance()->GetTree()->Branch("ThetaLab", &mThetaLab);
+    RootOutput::getInstance()->GetTree()->Branch("ThetaCM", &mThetaCM);
+    RootOutput::getInstance()->GetTree()->Branch("BeamEnergy", &mEBeam, "BeamEnergy/D");
+    RootOutput::getInstance()->GetTree()->Branch("BeamTheta", &mThetaBeam, "BeamTheta/D");
+    RootOutput::getInstance()->GetTree()->Branch("TimeCorr", &mTimeCorr,"TimeCorr/D");
+    //mNormalThetaTarget
+    //mNormalThetaM2
+    RootOutput::getInstance()->GetTree()->Branch("Must2Telescopes", &mMust2Telescopes);
+    RootOutput::getInstance()->GetTree()->Branch("Must2SiE", &mMust2SiE);
+    RootOutput::getInstance()->GetTree()->Branch("Must2CsIE", &mMust2CsIE);
+    RootOutput::getInstance()->GetTree()->Branch("Must2SiT", &mMust2SiT);
+    RootOutput::getInstance()->GetTree()->Branch("Must2PointsX", &mMust2PointsX);
+    RootOutput::getInstance()->GetTree()->Branch("Must2PointsY", &mMust2PointsY);
+    RootOutput::getInstance()->GetTree()->Branch("Must2PointsZ", &mMust2PointsZ);
+    // RootOutput::getInstance()->GetTree()->Branch("Must2Time", &mMust2Time, "Must2Time/D");
+    // RootOutput::getInstance()->GetTree()->Branch("Must2SiE", &mMust2SiE, "Must2SiE/D");
+    // RootOutput::getInstance()->GetTree()->Branch("Must2CsI", &mMust2CsIE, "Must2CsI/D");
+    // RootOutput::getInstance()->GetTree()->Branch("BeamLength", &mBeamLength, "BeamLength/D"); 
+    // RootOutput::getInstance()->GetTree()->Branch("ParticleLength", &mTrackLength, "ParticleLength/D");
+    RootOutput::getInstance()->GetTree()->Branch("RunMajor", &mRunMajor, "RunMajor/I");
+    RootOutput::getInstance()->GetTree()->Branch("RunMinor", &mRunMinor, "RunMinor/I");
+    RootOutput::getInstance()->GetTree()->Branch("GATCONF", &mGATCONF, "GATCONF/s");
+    RootOutput::getInstance()->GetTree()->Branch("T_CATS1_CAV_Cal", &mCATS1Calibrated, "T_CATS1_CAV_Cal/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");
+    */
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void Analysis::InitInputBranch(){
-  /* RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true ); */
-  /* RootInput:: getInstance()->GetChain()->SetBranchStatus("fIC_*",true ); */
-  /* RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true ); */
+    /* 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("GATCONF",&mGATCONF);
+    /* 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);
+    */
 }
 
 ////////////////////////////////////////////////////////////////////////////////     
 void Analysis::ReInitValue(){
-  Ex = -1000 ;
-  ELab = -1000;
-  ThetaLab = -1000;
-  ThetaCM = -1000;
-  OriginalThetaLab = -1000;
-  OriginalELab = -1000;
-  TimeCorr=-1000;
-  BeamLength=-1000;
-  ParticleLength=-1000;
-  run_minor=-1000;
-  run_major=-1000;
-  BeamEnergy=-1000;
+    ResetMVariables();
+    // mEx = -1000 ;
+    // ELab = -1000;
+    // ThetaLab = -1000;
+    // ThetaCM = -1000;
+    // OriginalThetaLab = -1000;
+    // OriginalELab = -1000;
+    // TimeCorr=-1000;
+    // BeamLength=-1000;
+    // ParticleLength=-1000;
+    // run_minor=-1000;
+    // run_major=-1000;
+    // BeamEnergy=-1000;
+    // vT_CATS1_CAV_Cal = -1000;
+}
+
+void Analysis::ResetMVariables()
+{
+    int initVal {-1000};
+    ////////////
+    mEx.clear();
+    mELab.clear();
+    mThetaLab.clear();
+    mThetaCM.clear();
+    mEBeam = initVal;
+    mThetaBeam = initVal;
+    ////////////////////////
+    // mNormalThetaTarget = initVal;
+    // mNormalThetaM2 = initVal;
+    ////////////////////////
+    mMust2Telescopes.clear();
+    mMust2SiE.clear();
+    mMust2CsIE.clear();
+    mMust2SiT.clear();
+    mMust2PointsX.clear();
+    mMust2PointsY.clear();
+    mMust2PointsZ.clear();
+    // mMust2Time = initVal;
+    // mMust2SiE = initVal;
+    // mMust2CsIE = initVal;
+    ////////////////////////
+    // mBeamLength = initVal;
+    // mTrackLength = initVal;
+    mTimeCorr = initVal;
+    mRunMinor = initVal;
+    mRunMajor = initVal;
+    mCATS1Calibrated = initVal;
+    mGATCONF = initVal;
 }
 
+double Analysis::ComputeXYZVectorAngle(const XYZVector& v1,
+                                       const XYZVector& v2)
+{
+    //reproduce the same calculus as TVector3
+    double ptot2 {v1.Mag2() * v2.Mag2()};
+    if(ptot2 <= 0)
+        return 0.;
+    else
+    {
+        double arg {v1.Dot(v2) / TMath::Sqrt(ptot2)};
+        if(arg > 1.)
+            arg = 1.;
+        if(arg < -1.)
+            arg = -1.;
+        return TMath::ACos(arg);
+    }
+}
+
+double Analysis::ComputeGamma(double vInSIUnits)
+{
+    double beta {vInSIUnits / TMath::C()};
+    double gamma {1. / TMath::Sqrt(1. - beta * beta)};
+    return gamma;
+}
+
+double Analysis::ComputeELossInCATS(double initEBeam, double thetaBeam)
+{
+    //1. Mylar
+    double E {fBeamMylar.Slow(initEBeam, 1.2 * micrometer, thetaBeam)};
+    //2. Isobutane
+    E = fBeamIsobutane.Slow(E, 1. / 3 * cm, thetaBeam);
+    //3. Mylar again
+    E = fBeamMylar.Slow(E, 0.9 * micrometer, thetaBeam);
+    //4. Again iC4H10
+    E = fBeamIsobutane.Slow(E, 1. / 3 * cm, thetaBeam);
+    //5. 3rd Mylar
+    E = fBeamMylar.Slow(E, 0.9 * micrometer, thetaBeam);
+    //6. 3rd isobutane...
+    E = fBeamIsobutane.Slow(E, 1. / 3 * cm, thetaBeam);
+    //7. Finally, last mylar
+    E = fBeamMylar.Slow(E, 1.2 * micrometer, thetaBeam);
+    return E;
+}
+
+double Analysis::ComputeTimeCorrectionInCATS(double EBeam, double MBeam,
+                                             const XYZPoint& p0, const XYZPoint& p1)
+{
+    //Velocity
+    double gamma {1. + EBeam / MBeam};
+    double beta {TMath::Sqrt(1 - 1. / (gamma * gamma))};
+    double v {beta  * TMath::C() * 1.E-6};//m/s to mm/ns
+    //Distance
+    auto dist {(p1 - p0).R()};
+    return dist / v;
+}
 ////////////////////////////////////////////////////////////////////////////////
 //            Construct Method to be pass to the DetectorFactory              //
 ////////////////////////////////////////////////////////////////////////////////
 NPL::VAnalysis* Analysis::Construct(){
-  return (NPL::VAnalysis*) new Analysis();
+    return (NPL::VAnalysis*) new Analysis();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 //            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..547c29d242051818c5b53a05afe96487ce11c3d5 100644
--- a/Projects/e748/Analysis.h
+++ b/Projects/e748/Analysis.h
@@ -29,12 +29,22 @@
 #include "NPEnergyLoss.h"
 #include "NPReaction.h"
 #include "TRandom3.h"
+#include <Math/Point3D.h>
+
+#include <Math/Vector3D.h>
+#include <RtypesCore.h>
+#include <TAttMarker.h>
+#include <unordered_map>
+#include <vector>
 class Analysis: public NPL::VAnalysis{
-  public:
+public:
     Analysis();
     ~Analysis();
 
-  public: 
+    //for points
+    using XYZPoint = ROOT::Math::XYZPoint;
+    using XYZVector = ROOT::Math::XYZVector;
+public: 
     void Init();
     void TreatEvent();
     void End();
@@ -42,81 +52,98 @@ class Analysis: public NPL::VAnalysis{
     void InitInputBranch();
     void ReInitValue();
     static NPL::VAnalysis* Construct();
+private:
+    void ResetMVariables();
+    void TreatBeam();
+    double ComputeXYZVectorAngle(const XYZVector& v1,
+                                 const XYZVector& v2);
+    double ComputeGamma(double vInSIUnits);
+    double ComputeELossInCATS(double initEBeam, double beamAngle);
+    double ComputeTimeCorrectionInCATS(double EBeam, double MBeam,
+                                       const XYZPoint& p0, const XYZPoint& p1);
+private:
+    //Naming convention:
+    //-- m members are going to be written to .root file
+    //-- f members just used in the class
+    //////////////////////////////////////
+    // Kinematic variables for each track
+    std::vector<double> mEx;
+    std::vector<double> mELab;
+    std::vector<double> mThetaLab;
+    std::vector<double> mThetaCM;
+    //std::vector<double> mNormalThetaM2;
+    // Kinematics and variables for beam
+    double mEBeam;
+    double mThetaBeam;
+    //double mNormalThetaTarget;
+    double mTimeCorr;
+    // MUST2 hits;
+    // WARNING: Not all info is contained in TMUST2Physics (//!)
+    std::vector<short> mMust2Telescopes;
+    std::vector<double> mMust2SiE;
+    std::vector<double> mMust2CsIE;
+    std::vector<double> mMust2SiT;
+    //points are decomposed by coords. bc ROOT doesnt
+    // know how to read and RVec of XYZPoints and I dont want to play
+    //with dictionaries...
+    std::vector<double> mMust2PointsX;
+    std::vector<double> mMust2PointsY;
+    std::vector<double> mMust2PointsZ;
+    //Lengths and TOF
+    // double mBeamLength;
+    // double mTrackLength;
+    int mRunMinor;
+    int mRunMajor;
+    short mCATS1Calibrated;
+    short mGATCONF;
+    
+    ///////////////////////////////////////
+    NPL::Reaction* fReaction;
+    NPL::EnergyLoss fHe3CD2;
+    NPL::EnergyLoss fHe3Al;
+    NPL::EnergyLoss fHe3Si;
+    NPL::EnergyLoss fBeamCD2;
+    NPL::EnergyLoss fBeamMylar;
+    NPL::EnergyLoss fBeamIsobutane;
 
-  private:
-    double Ex;
-    double ELab;
-    double ThetaLab;
-    double ThetaCM;
-    NPL::Reaction* myReaction;
-
-    // intermediate variable
-    TRandom3 Rand;
-    int DetectorNumber;
-    double ThetaNormalTarget;
-    double ThetaM2Surface; 
-    double X_M2;
-    double Y_M2;
-    double Z_M2;
-    double Si_E_M2;
-    double CsI_E_M2; 
-    double Energy ;
-    double E_M2 ;
-    double Si_X_M2;
-    double Si_Y_M2;
-    double ZTarget;
-    double TimeCorr;
-    double BeamLength;
-    double ParticleLength;
-    double TargetThickness;
-    double OriginalThetaLab;
-    double OriginalELab;
-    double BeamEnergy;
-    int run_major;
-    int run_minor;
-    NPL::EnergyLoss He3CD2  ;
-    NPL::EnergyLoss He3Al   ;
-    NPL::EnergyLoss He3Si   ;
-    NPL::EnergyLoss BeamCD2 ;
-    NPL::EnergyLoss BeamMylar ;
-    NPL::EnergyLoss BeamIsobutane ;
-
-
-
-    TMust2Physics* M2;
-   TCATSPhysics* CATS;
-   TModularLeafPhysics* ModularLeaf;
-   TInitialConditions* Initial;
-    //other variables 
-   Short_t         vADC_CHIO_V15;
-   Short_t         vADC_VOIE_29;
-   Short_t         vCHIO;
-   Short_t         vCONFDEC;
-   Short_t         vCONFDEC_AGAVA;
-   Short_t         vDATATRIG;
-   Short_t         vDATATRIG_CHIO;
-   Short_t         vE1D6;
-   Short_t         vE2D6;
-   Short_t         vED4;
-   Short_t         vEXL_HF;
-   Short_t         vGALD4X;
-   Short_t         vGALD4Y;
-   Short_t         vGATCONF;
-   Short_t         vQCaviar;
-   Short_t         vQPlast;
-   Short_t         vTCAVHF;
-   Short_t         vTE1D6CAV;
-   Short_t         vTE1D6GAL;
-   Short_t         vTE1D6HF;
-   Short_t         vTED4HF;
-   Short_t         vTGALD4HF;
-   Short_t         vT_CATS1_2;
-   Short_t         vT_CATS1_CAV;
-   Short_t         vT_MUVI_CATS1;
-   Short_t         vT_PL_CATS1;
-   Short_t         vT_PL_CATS2;
-   Short_t         vT_PL_CHIO;
-   Short_t         vT_PLchCATS1;
+    double fTargetThickness;
+    double kBeamMass {12.026922 * 931.494 - 4 * 0.511};//12Be
+    
+    TMust2Physics* fM2;
+    TCATSPhysics* fCATS;
+    TModularLeafPhysics* fModularLeaf;
+    TInitialConditions* fInitial;
+    // //other variables 
+    // Short_t         vADC_CHIO_V15;
+    // Short_t         vADC_VOIE_29;
+    // Short_t         vCHIO;
+    // Short_t         vCONFDEC;
+    // Short_t         vCONFDEC_AGAVA;
+    // Short_t         vDATATRIG;
+    // Short_t         vDATATRIG_CHIO;
+    // Short_t         vE1D6;
+    // Short_t         vE2D6;
+    // Short_t         vED4;
+    // Short_t         vEXL_HF;
+    // Short_t         vGALD4X;
+    // Short_t         vGALD4Y;
+    // Short_t         vGATCONF;
+    // Short_t         vQCaviar;
+    // Short_t         vQPlast;
+    // Short_t         vTCAVHF;
+    // Short_t         vTE1D6CAV;
+    // Short_t         vTE1D6GAL;
+    // Short_t         vTE1D6HF;
+    // Short_t         vTED4HF;
+    // Short_t         vTGALD4HF;
+    // Short_t         vT_CATS1_2;
+    // Short_t         vT_CATS1_CAV;
+    // Short_t         vT_CATS1_CAV_Cal;
+    // Short_t         vT_MUVI_CATS1;
+    // Short_t         vT_PL_CATS1;
+    // Short_t         vT_PL_CATS2;
+    // Short_t         vT_PL_CHIO;
+    // Short_t         vT_PLchCATS1;
 
 
 };
diff --git a/Projects/e748/BeamID.cxx b/Projects/e748/BeamID.cxx
index 18f6996382344b729f4d64b3358fc4709ffcea88..94d17ad0375b7ef627dca69bc8ea1c903454da6e 100644
--- a/Projects/e748/BeamID.cxx
+++ b/Projects/e748/BeamID.cxx
@@ -1,34 +1,38 @@
+#include <TCanvas.h>
 void BeamID(){
+    gStyle->SetOptStat("nmeruoi");
   // Load the Main Tree
-  TFile* file = new TFile("../../Outputs/Analysis/e748_Physics_12Be.root");
+  TFile* file = new TFile("./Data/Analysis/e748_Physics_12Be.root");
   TTree* tree = (TTree*) file->FindObjectAny("PhysicsTree");
+  //tree->Print();
 
-  TFile* fileR = new TFile("../../Outputs/Analysis/e748_12Be.root");
+  TFile* fileR = new TFile("./Data/Analysis/e748_12Be.root");
   TTree* treeR = (TTree*) fileR->FindObjectAny("ResultTree");
   tree->AddFriend(treeR);
+  //treeR->Print();
 
   // Load the IC chain
   TChain* IC = new TChain("Numexo2");
-  IC->Add("/data/Transfert/e748/Merged/run_0315.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0316.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0317.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0318.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0320.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0321.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0323.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0325.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0326.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0327.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0328.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0329.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0330.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0331.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0339.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0341.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0342.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0346.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0347.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0348.root");
+  IC->Add("./Data/Merged/run_0315.root");
+  IC->Add("./Data/Merged/run_0316.root");
+  IC->Add("./Data/Merged/run_0317.root");
+  IC->Add("./Data/Merged/run_0318.root");
+  IC->Add("./Data/Merged/run_0320.root");
+  IC->Add("./Data/Merged/run_0321.root");
+  IC->Add("./Data/Merged/run_0323.root");
+  IC->Add("./Data/Merged/run_0325.root");
+  IC->Add("./Data/Merged/run_0326.root");
+  IC->Add("./Data/Merged/run_0327.root");
+  IC->Add("./Data/Merged/run_0328.root");
+  IC->Add("./Data/Merged/run_0329.root");
+  IC->Add("./Data/Merged/run_0330.root");
+  IC->Add("./Data/Merged/run_0331.root");
+  IC->Add("./Data/Merged/run_0339.root");
+  IC->Add("./Data/Merged/run_0341.root");
+  IC->Add("./Data/Merged/run_0342.root");
+  IC->Add("./Data/Merged/run_0346.root");
+  IC->Add("./Data/Merged/run_0347.root");
+  IC->Add("./Data/Merged/run_0348.root");
   // Friend the two trees
   tree->AddFriend(IC);
 
@@ -40,5 +44,8 @@ void BeamID(){
   c->cd(2);
   tree->Draw("QPlast:T_CATS1_CAV>>hIC2(400,0,400,4000,0,16000)","TelescopeNumber@.size()==0","colz");
 
+  auto* c1 {new TCanvas("c1")};
+  tree->Draw("T_CATS1_CAV");
+
   
   }
diff --git a/Projects/e748/CMakeLists.txt b/Projects/e748/CMakeLists.txt
index 22c74affdfc45019bdda2594f8439c52d4ab97ec..58f19ada74c5884684f93f288d2ed7e9feae41c6 100644
--- a/Projects/e748/CMakeLists.txt
+++ b/Projects/e748/CMakeLists.txt
@@ -1,5 +1,7 @@
 cmake_minimum_required (VERSION 2.8) 
 # Setting the policy to match Cmake version
 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
+## write compile_commands.json to clangd
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 # include the default NPAnalysis cmake file
 include("../../NPLib/ressources/CMake/NPAnalysis.cmake")
diff --git a/Projects/e748/ID.cxx b/Projects/e748/ID.cxx
index e0702d26f2bd4af093e19a0b8943b1567faf3b95..912d764ab9950fab97f0fdebafa6cfae124cad0c 100644
--- a/Projects/e748/ID.cxx
+++ b/Projects/e748/ID.cxx
@@ -1,35 +1,35 @@
 void ID(){
 
   // Load the Main Tree
-  TFile* file = new TFile("../../Outputs/Analysis/e748_Physics_12Be.root");
+  TFile* file = new TFile("./Data/Analysis/e748_Physics_12Be.root");
   TTree* tree = (TTree*) file->FindObjectAny("PhysicsTree");
 
-  TFile* fileR = new TFile("../../Outputs/Analysis/e748_12Be.root");
+  TFile* fileR = new TFile("./Data/Analysis/e748_12Be.root");
   TTree* treeR = (TTree*) fileR->FindObjectAny("ResultTree");
   tree->AddFriend(treeR);
 
   // Load the IC chain
   TChain* IC = new TChain("Numexo2");
-  IC->Add("/data/Transfert/e748/Merged/run_0315.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0316.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0317.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0318.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0320.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0321.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0323.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0325.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0326.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0327.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0328.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0329.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0330.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0331.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0339.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0341.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0342.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0346.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0347.root");
-  IC->Add("/data/Transfert/e748/Merged/run_0348.root");
+  IC->Add("./Data/Merged/run_0315.root");
+  IC->Add("./Data/Merged/run_0316.root");
+  IC->Add("./Data/Merged/run_0317.root");
+  IC->Add("./Data/Merged/run_0318.root");
+  IC->Add("./Data/Merged/run_0320.root");
+  IC->Add("./Data/Merged/run_0321.root");
+  IC->Add("./Data/Merged/run_0323.root");
+  IC->Add("./Data/Merged/run_0325.root");
+  IC->Add("./Data/Merged/run_0326.root");
+  IC->Add("./Data/Merged/run_0327.root");
+  IC->Add("./Data/Merged/run_0328.root");
+  IC->Add("./Data/Merged/run_0329.root");
+  IC->Add("./Data/Merged/run_0330.root");
+  IC->Add("./Data/Merged/run_0331.root");
+  IC->Add("./Data/Merged/run_0339.root");
+  IC->Add("./Data/Merged/run_0341.root");
+  IC->Add("./Data/Merged/run_0342.root");
+  IC->Add("./Data/Merged/run_0346.root");
+  IC->Add("./Data/Merged/run_0347.root");
+  IC->Add("./Data/Merged/run_0348.root");
   /*
   // Check that the number of entry is the same
   if( tree->GetEntries() != IC->GetEntries() ){
@@ -67,7 +67,7 @@ void ID(){
   TFile* cutTOF = new TFile("TOF.root");
   TCutG* cutt = (TCutG*) cutTOF->FindObjectAny("TOF");
 
-  tree->Draw("Si_T+TimeCorr+((TelescopeNumber==1)*-2.521+(TelescopeNumber==2)*0.148+(TelescopeNumber==3)*-1.922+(TelescopeNumber==4)*-7.176):Si_E>>hTOFc(1000,0,30,1000,460,580)","","colz");
+  tree->Draw("Si_T + TimeCorr + ((TelescopeNumber==1)*-2.521+(TelescopeNumber==2)*0.148+(TelescopeNumber==3)*-1.922+(TelescopeNumber==4)*-7.176):Si_E>>hTOFc(1000,0,30,1000,460,580)","","colz");
   cutt->Draw("same");
 
   /*new TCanvas();
diff --git a/Projects/e748/MT.cxx b/Projects/e748/MT.cxx
index 825ac0c313b511b04c2a3b20c57e1f95492f8aa1..474712803640129da29b47b9f0b5c2214c77c0d3 100644
--- a/Projects/e748/MT.cxx
+++ b/Projects/e748/MT.cxx
@@ -1,32 +1,32 @@
 void MT(){
-using namespace ROOT::Experimental; // TDataFrame's namespace
+
 //ROOT::EnableImplicitMT();
   // Load the Main Tree
-  TChain chain("PhysicsTree");
-  chain.Add("../../Outputs/Analysis/e748_12Be.root");
+  TChain chain("ResultTree");
+  chain.Add("./Data/Analysis/e748_12Be.root");
 
   // Load the IC chain
   TChain IC("Numexo2");
-  IC.Add("/data/Transfert/e748/Merged/run_0315.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0316.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0317.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0318.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0320.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0321.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0323.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0325.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0326.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0327.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0328.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0329.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0330.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0331.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0339.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0341.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0342.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0346.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0347.root");
-  IC.Add("/data/Transfert/e748/Merged/run_0348.root");
+  IC.Add("./Data/Merged/run_0315.root");
+  IC.Add("./Data/Merged/run_0316.root");
+  IC.Add("./Data/Merged/run_0317.root");
+  IC.Add("./Data/Merged/run_0318.root");
+  IC.Add("./Data/Merged/run_0320.root");
+  IC.Add("./Data/Merged/run_0321.root");
+  IC.Add("./Data/Merged/run_0323.root");
+  IC.Add("./Data/Merged/run_0325.root");
+  IC.Add("./Data/Merged/run_0326.root");
+  IC.Add("./Data/Merged/run_0327.root");
+  IC.Add("./Data/Merged/run_0328.root");
+  IC.Add("./Data/Merged/run_0329.root");
+  IC.Add("./Data/Merged/run_0330.root");
+  IC.Add("./Data/Merged/run_0331.root");
+  IC.Add("./Data/Merged/run_0339.root");
+  IC.Add("./Data/Merged/run_0341.root");
+  IC.Add("./Data/Merged/run_0342.root");
+  IC.Add("./Data/Merged/run_0346.root");
+  IC.Add("./Data/Merged/run_0347.root");
+  IC.Add("./Data/Merged/run_0348.root");
 /*
   // Check that the number of entry is the same
   if( tree->GetEntries() != IC->GetEntries() ){
@@ -47,7 +47,7 @@ using namespace ROOT::Experimental; // TDataFrame's namespace
   }
   chain.SetEntryList(elist);
 
-  TDataFrame DF(chain);
+  ROOT::RDataFrame DF(chain);
 
 
   // TOF per telescope
diff --git a/Projects/e748/RunToTreat/RunToTreat_12Be.txt b/Projects/e748/RunToTreat/RunToTreat_12Be.txt
index 6f697d60b8c8d52d58771fc1aedc83388819b86f..ed36646e387ff125fc0225dad8f45f6d215d956f 100644
--- a/Projects/e748/RunToTreat/RunToTreat_12Be.txt
+++ b/Projects/e748/RunToTreat/RunToTreat_12Be.txt
@@ -1,23 +1,23 @@
 TTreeName 
 	AutoTree
 RootFileName 
- /data/Transfert/e748/root/run_0315_*.root
- /data/Transfert/e748/root/run_0316_*.root
- /data/Transfert/e748/root/run_0317_*.root
- /data/Transfert/e748/root/run_0318_*.root
- /data/Transfert/e748/root/run_0320_*.root
- /data/Transfert/e748/root/run_0321_*.root
- /data/Transfert/e748/root/run_0323_*.root
- /data/Transfert/e748/root/run_0325_*.root
- /data/Transfert/e748/root/run_0326_*.root
- /data/Transfert/e748/root/run_0327_*.root
- /data/Transfert/e748/root/run_0328_*.root
- /data/Transfert/e748/root/run_0329_*.root
- /data/Transfert/e748/root/run_0330_*.root
- /data/Transfert/e748/root/run_0331_*.root
- /data/Transfert/e748/root/run_0339_*.root
- /data/Transfert/e748/root/run_0341_*.root
- /data/Transfert/e748/root/run_0342_*.root
- /data/Transfert/e748/root/run_0346_*.root
- /data/Transfert/e748/root/run_0347_*.root
- /data/Transfert/e748/root/run_0348_*.root
+ ./Data/root/run_0315_*.root
+ ./Data/root/run_0316_*.root
+ ./Data/root/run_0317_*.root
+ ./Data/root/run_0318_*.root
+ ./Data/root/run_0320_*.root
+ ./Data/root/run_0321_*.root
+ ./Data/root/run_0323_*.root
+ ./Data/root/run_0325_*.root
+ ./Data/root/run_0326_*.root
+ ./Data/root/run_0327_*.root
+ ./Data/root/run_0328_*.root
+ ./Data/root/run_0329_*.root
+ ./Data/root/run_0330_*.root
+ ./Data/root/run_0331_*.root
+ ./Data/root/run_0339_*.root
+ ./Data/root/run_0341_*.root
+ ./Data/root/run_0342_*.root
+ ./Data/root/run_0346_*.root
+ ./Data/root/run_0347_*.root
+ ./Data/root/run_0348_*.root
diff --git a/Projects/e748/Target.cxx b/Projects/e748/Target.cxx
index fe30793cbc942f3bda100965962898092f616c45..7f528ed2c64b3e24bdb22e7c5aa0b09ce855962c 100644
--- a/Projects/e748/Target.cxx
+++ b/Projects/e748/Target.cxx
@@ -1,7 +1,7 @@
 void Target(){
   
   // Load the Main Tree
-  TFile* file = new TFile("../../Outputs/Analysis/e748_Mask.root");
+  TFile* file = new TFile("./Data/Analysis/e748_Mask.root");
   TTree* tree = (TTree*) file->FindObjectAny("PhysicsTree");
 
 
diff --git a/Projects/e748/e748.detector b/Projects/e748/e748.detector
index 5ecaffe098cada6f161b3feae1ea0dfbda51425a..6f28e0636b0f8fffb8c327d5de4e057b3e7ad4d9 100755
--- a/Projects/e748/e748.detector
+++ b/Projects/e748/e748.detector
@@ -95,7 +95,7 @@ M2Telescope
  X1_Y128= 114.6 -1.8  -144.5
  SI= 1     
  SILI= 0      
- CSI= 1     
+ CSI= 1    
  VIS= all     
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Projects/e748/energy_loss/Be12_iC4H10_0.008bar_273.15K.G4table b/Projects/e748/energy_loss/Be12_iC4H10_0.008bar_273.15K.G4table
index 8b646d293787284f33dcb649b88cc39e82953b8e..f525633b8256e1941b363bc971bf356d24780646 100644
--- a/Projects/e748/energy_loss/Be12_iC4H10_0.008bar_273.15K.G4table
+++ b/Projects/e748/energy_loss/Be12_iC4H10_0.008bar_273.15K.G4table
@@ -1,463 +1,462 @@
 Table from Geant4 generate using NPSimulation 	Particle: Be12	Material: NPS_iC4H10_0.008bar_273.15K
 0	0
-0.001	2.50969e-06
-0.002	2.54265e-06
-0.003	2.52307e-06
-0.005	2.4777e-06
-0.007	2.44108e-06
-0.009	2.42646e-06
-0.013	2.42001e-06
-0.021	2.48293e-06
-0.029	2.58914e-06
-0.037	2.70364e-06
-0.045	2.83084e-06
-0.053	2.95419e-06
-0.061	3.0737e-06
-0.069	3.2011e-06
-0.077	3.32551e-06
-0.085	3.44225e-06
-0.093	3.55236e-06
-0.101	3.65669e-06
-0.109	3.75591e-06
-0.117	3.85399e-06
-0.125	3.95193e-06
-0.133	4.05071e-06
-0.141	4.14855e-06
-0.149	4.2433e-06
-0.157	4.33684e-06
-0.165	4.42831e-06
-0.173	4.51802e-06
-0.181	4.60687e-06
-0.189	4.69361e-06
-0.197	4.77957e-06
-0.205	4.86365e-06
-0.213	4.94597e-06
-0.221	5.02779e-06
-0.229	5.10834e-06
-0.237	5.1881e-06
-0.245	5.26643e-06
-0.253	5.34342e-06
-0.261	5.41977e-06
-0.269	5.4952e-06
-0.277	5.56945e-06
-0.285	5.64258e-06
-0.293	5.71463e-06
-0.301	5.78496e-06
-0.309	5.85407e-06
-0.317	5.92328e-06
-0.325	5.99249e-06
-0.333	6.0617e-06
-0.341	6.13093e-06
-0.349	6.20084e-06
-0.357	6.27074e-06
-0.365	6.34065e-06
-0.373	6.41055e-06
-0.381	6.47506e-06
-0.389	6.53698e-06
-0.405	6.66083e-06
-0.421	6.78468e-06
-0.437	6.90927e-06
-0.453	7.0342e-06
-0.469	7.15912e-06
-0.485	7.27327e-06
-0.501	7.38381e-06
-0.517	7.49436e-06
-0.533	7.6049e-06
-0.549	7.71545e-06
-0.565	7.82599e-06
-0.581	7.93718e-06
-0.597	8.04688e-06
-0.613	8.14182e-06
-0.629	8.23677e-06
-0.645	8.33197e-06
-0.661	8.42758e-06
-0.677	8.52319e-06
-0.693	8.6188e-06
-0.709	8.71442e-06
-0.725	8.81003e-06
-0.741	8.90564e-06
-0.757	8.9936e-06
-0.789	9.15202e-06
-0.821	9.31044e-06
-0.853	9.46888e-06
-0.885	9.62805e-06
-0.917	9.78722e-06
-0.949	9.94146e-06
-0.981	1.00705e-05
-1.013	1.01995e-05
-1.045	1.03286e-05
-1.077	1.04576e-05
-1.109	1.05866e-05
-1.141	1.07158e-05
-1.173	1.08452e-05
-1.205	1.09561e-05
-1.237	1.10502e-05
-1.301	1.12387e-05
-1.365	1.14277e-05
-1.429	1.16168e-05
-1.493	1.18058e-05
-1.557	1.19303e-05
-1.621	1.2052e-05
-1.685	1.21737e-05
-1.749	1.22956e-05
-1.813	1.24176e-05
-1.941	1.26093e-05
-2.069	1.27377e-05
-2.197	1.28663e-05
-2.325	1.29952e-05
-2.453	1.30641e-05
-2.709	1.31356e-05
-3.221	1.31575e-05
-4.245	1.27905e-05
-5.269	1.22353e-05
-6.293	1.16401e-05
-7.317	1.10508e-05
-8.341	1.05208e-05
-9.365	1.00038e-05
-10.389	9.55572e-06
-11.413	9.1129e-06
-12.437	8.72064e-06
-13.461	8.37098e-06
-14.485	8.02138e-06
-15.509	7.71356e-06
-16.533	7.4416e-06
-17.557	7.16967e-06
-18.581	6.89778e-06
-19.605	6.67345e-06
-20.629	6.46447e-06
-21.653	6.25549e-06
-22.677	6.04655e-06
-23.701	5.83764e-06
-24.725	5.60152e-06
-25.749	5.45559e-06
-26.773	5.31702e-06
-27.797	5.1853e-06
-28.821	5.05996e-06
-29.845	4.9403e-06
-30.869	4.82608e-06
-31.893	4.71709e-06
-32.917	4.61299e-06
-33.941	4.51348e-06
-34.965	4.41827e-06
-35.989	4.32711e-06
-37.013	4.23965e-06
-38.037	4.15572e-06
-39.061	4.07518e-06
-40.085	3.99784e-06
-41.109	3.9235e-06
-42.133	3.852e-06
-43.157	3.78318e-06
-44.181	3.71692e-06
-45.205	3.65305e-06
-46.229	3.59147e-06
-47.253	3.53204e-06
-48.277	3.47465e-06
-49.301	3.41912e-06
-50.325	3.36536e-06
-51.349	3.31336e-06
-52.373	3.26305e-06
-53.397	3.21434e-06
-54.421	3.16715e-06
-55.445	3.12142e-06
-56.469	3.07709e-06
-57.493	3.03408e-06
-58.517	2.99236e-06
-59.541	2.95184e-06
-60.565	2.91249e-06
-61.589	2.87425e-06
-62.613	2.83707e-06
-63.637	2.80092e-06
-64.661	2.76576e-06
-65.685	2.73157e-06
-66.709	2.69829e-06
-67.733	2.66587e-06
-68.757	2.63427e-06
-69.781	2.60342e-06
-70.805	2.57334e-06
-71.829	2.544e-06
-72.853	2.51538e-06
-73.877	2.48745e-06
-74.901	2.46018e-06
-75.925	2.43356e-06
-76.949	2.40755e-06
-77.973	2.38215e-06
-78.997	2.35731e-06
-80.021	2.33304e-06
-81.045	2.3093e-06
-82.069	2.28609e-06
-83.093	2.26337e-06
-85.141	2.21938e-06
-87.189	2.17723e-06
-89.237	2.13679e-06
-91.285	2.09795e-06
-93.333	2.06063e-06
-95.381	2.02472e-06
-97.429	1.99016e-06
-99.477	1.95685e-06
-101.525	1.92473e-06
-103.573	1.89373e-06
-105.621	1.8638e-06
-107.669	1.83489e-06
-109.717	1.80694e-06
-111.765	1.77991e-06
-113.813	1.75375e-06
-115.861	1.72842e-06
-117.909	1.70388e-06
-119.957	1.68009e-06
-122.005	1.65701e-06
-124.053	1.63462e-06
-126.101	1.61287e-06
-128.149	1.59176e-06
-130.197	1.57124e-06
-132.245	1.5513e-06
-134.293	1.53191e-06
-136.341	1.51304e-06
-138.389	1.49467e-06
-140.437	1.47679e-06
-142.485	1.45937e-06
-144.533	1.44239e-06
-146.581	1.42584e-06
-148.629	1.40971e-06
-150.677	1.39397e-06
-152.725	1.37862e-06
-154.773	1.36363e-06
-156.821	1.349e-06
-158.869	1.33471e-06
-160.917	1.32074e-06
-162.965	1.3071e-06
-165.013	1.29376e-06
-167.061	1.28072e-06
-169.109	1.26797e-06
-173.205	1.24328e-06
-177.301	1.21963e-06
-181.397	1.19695e-06
-185.493	1.17518e-06
-189.589	1.15426e-06
-193.685	1.13351e-06
-197.781	1.11417e-06
-201.877	1.09555e-06
-205.973	1.07761e-06
-210.069	1.0603e-06
-214.165	1.0436e-06
-218.261	1.02747e-06
-222.357	1.01188e-06
-226.453	9.96807e-07
-230.549	9.82224e-07
-234.645	9.68106e-07
-238.741	9.54432e-07
-242.837	9.41179e-07
-246.933	9.28328e-07
-251.029	9.15861e-07
-255.125	9.03761e-07
-259.221	8.92011e-07
-263.317	8.80596e-07
-267.413	8.69502e-07
-271.509	8.58714e-07
-275.605	8.4822e-07
-279.701	8.38009e-07
-283.797	8.28067e-07
-287.893	8.18382e-07
-291.989	8.08945e-07
-296.085	7.99747e-07
-300.181	7.9078e-07
-304.277	7.82035e-07
-308.373	7.73504e-07
-312.469	7.65179e-07
-316.565	7.57051e-07
-320.661	7.49115e-07
-324.757	7.41363e-07
-328.853	7.3379e-07
-332.949	7.26387e-07
-337.045	7.19151e-07
-345.237	7.05153e-07
-353.429	6.91754e-07
-361.621	6.78915e-07
-369.813	6.66601e-07
-378.005	6.5478e-07
-386.197	6.43423e-07
-394.389	6.32501e-07
-402.581	6.21991e-07
-410.773	6.11868e-07
-418.965	6.02112e-07
-427.157	5.92702e-07
-435.349	5.8362e-07
-443.541	5.74848e-07
-451.733	5.66371e-07
-459.925	5.58173e-07
-468.117	5.50241e-07
-476.309	5.42562e-07
-484.501	5.35124e-07
-492.693	5.27915e-07
-500.885	5.20924e-07
-509.077	5.14143e-07
-517.269	5.0756e-07
-525.461	5.01169e-07
-533.653	4.94959e-07
-541.845	4.88925e-07
-550.037	4.83057e-07
-558.229	4.77349e-07
-566.421	4.71795e-07
-574.613	4.66388e-07
-582.805	4.61123e-07
-590.997	4.55994e-07
-599.189	4.50995e-07
-607.381	4.46122e-07
-615.573	4.4137e-07
-623.765	4.36734e-07
-631.957	4.32211e-07
-640.149	4.27795e-07
-648.341	4.23484e-07
-656.533	4.19273e-07
-672.917	4.11138e-07
-689.301	4.03365e-07
-705.685	3.95929e-07
-722.069	3.88809e-07
-738.453	3.81984e-07
-754.837	3.75438e-07
-771.221	3.69151e-07
-787.605	3.6311e-07
-803.989	3.573e-07
-820.373	3.51708e-07
-836.757	3.46321e-07
-853.141	3.41128e-07
-869.525	3.36119e-07
-885.909	3.31285e-07
-902.293	3.26615e-07
-918.677	3.22103e-07
-935.061	3.17739e-07
-951.445	3.13516e-07
-967.829	3.09429e-07
-984.213	3.05469e-07
-1000.6	3.01632e-07
-1016.98	2.97911e-07
-1033.37	2.94301e-07
-1049.75	2.90798e-07
-1066.13	2.87395e-07
-1082.52	2.8409e-07
-1098.9	2.80878e-07
-1115.29	2.77755e-07
-1131.67	2.74717e-07
-1148.05	2.71761e-07
-1164.44	2.68883e-07
-1180.82	2.6608e-07
-1197.21	2.6335e-07
-1213.59	2.60689e-07
-1229.97	2.58095e-07
-1262.74	2.53098e-07
-1295.51	2.48339e-07
-1328.28	2.43803e-07
-1361.05	2.39474e-07
-1393.81	2.35338e-07
-1426.58	2.31383e-07
-1459.35	2.27597e-07
-1492.12	2.23969e-07
-1524.89	2.2049e-07
-1557.65	2.17151e-07
-1590.42	2.13944e-07
-1623.19	2.1086e-07
-1655.96	2.07893e-07
-1688.73	2.05036e-07
-1721.49	2.02283e-07
-1754.26	1.99629e-07
-1787.03	1.97067e-07
-1819.8	1.94594e-07
-1852.57	1.92205e-07
-1885.33	1.89895e-07
-1918.1	1.87661e-07
-1950.87	1.85499e-07
-1983.64	1.83405e-07
-2016.41	1.81376e-07
-2049.17	1.7941e-07
-2081.94	1.77503e-07
-2114.71	1.75653e-07
-2147.48	1.73857e-07
-2180.25	1.72113e-07
-2213.01	1.7042e-07
-2278.55	1.67173e-07
-2344.09	1.64102e-07
-2409.62	1.61193e-07
-2475.16	1.58434e-07
-2540.69	1.55813e-07
-2606.23	1.5332e-07
-2671.77	1.50947e-07
-2737.3	1.48685e-07
-2802.84	1.46527e-07
-2868.37	1.44465e-07
-2933.91	1.42494e-07
-2999.45	1.40608e-07
-3064.98	1.38801e-07
-3130.52	1.37068e-07
-3196.05	1.35406e-07
-3261.59	1.3381e-07
-3327.13	1.32277e-07
-3392.66	1.30802e-07
-3458.2	1.29383e-07
-3523.73	1.28016e-07
-3589.27	1.267e-07
-3654.81	1.2543e-07
-3720.34	1.24205e-07
-3851.41	1.21881e-07
-3982.49	1.19711e-07
-4113.56	1.17681e-07
-4244.63	1.15778e-07
-4375.7	1.1399e-07
-4506.77	1.12308e-07
-4637.85	1.10724e-07
-4768.92	1.09228e-07
-4899.99	1.07815e-07
-5031.06	1.06478e-07
-5162.13	1.05211e-07
-5293.21	1.04008e-07
-5424.28	1.02867e-07
-5555.35	1.01781e-07
-5686.42	1.00748e-07
-5817.49	9.97645e-08
-6079.64	9.79311e-08
-6341.78	9.6259e-08
-6603.93	9.47292e-08
-6866.07	9.33256e-08
-7128.21	9.20345e-08
-7390.36	9.08439e-08
-7652.5	8.97435e-08
-7914.65	8.87244e-08
-8176.79	8.77787e-08
-8438.93	8.68996e-08
-8701.08	8.60811e-08
-9225.37	8.46048e-08
-9749.65	8.33141e-08
-10273.9	8.21802e-08
-10798.2	8.11798e-08
-11322.5	8.02941e-08
-11846.8	7.95075e-08
-12895.4	7.81815e-08
-13944	7.71209e-08
-14992.5	7.62674e-08
-16041.1	7.55779e-08
-18138.3	7.45687e-08
-20235.4	7.39139e-08
-24429.7	7.32649e-08
-32818.3	7.32724e-08
-49595.5	7.48734e-08
-66372.8	7.67978e-08
-83150	7.86024e-08
-99927.2	8.02273e-08
-116704	8.16853e-08
-133482	8.30003e-08
-150259	8.41936e-08
-167036	8.5283e-08
-183813	8.62838e-08
-200590	8.72086e-08
-217368	8.80675e-08
-250922	8.96203e-08
-284477	9.09938e-08
-318031	9.22231e-08
-351585	9.33346e-08
-385140	9.43482e-08
-418694	9.52794e-08
-485803	9.69414e-08
-552912	9.83922e-08
-620021	9.96789e-08
-687130	1.00834e-07
-754239	1.0188e-07
-821347	1.02836e-07
-955565	1.04528e-07
+0.001	2.54448e-06
+0.002	2.59185e-06
+0.003	2.58332e-06
+0.005	2.54053e-06
+0.007	2.50628e-06
+0.009	2.49157e-06
+0.013	2.4831e-06
+0.021	2.53861e-06
+0.029	2.63523e-06
+0.037	2.73903e-06
+0.045	2.85502e-06
+0.053	2.96708e-06
+0.061	3.07564e-06
+0.069	3.19281e-06
+0.077	3.30801e-06
+0.085	3.41672e-06
+0.093	3.52011e-06
+0.101	3.619e-06
+0.109	3.71401e-06
+0.117	3.80902e-06
+0.125	3.90486e-06
+0.133	4.00238e-06
+0.141	4.09967e-06
+0.149	4.19445e-06
+0.157	4.2885e-06
+0.165	4.38086e-06
+0.173	4.47178e-06
+0.181	4.56207e-06
+0.189	4.65045e-06
+0.197	4.73819e-06
+0.205	4.82417e-06
+0.213	4.90848e-06
+0.221	4.99236e-06
+0.229	5.07501e-06
+0.237	5.15689e-06
+0.245	5.23736e-06
+0.253	5.3165e-06
+0.261	5.395e-06
+0.269	5.47257e-06
+0.277	5.54895e-06
+0.285	5.62419e-06
+0.293	5.69832e-06
+0.301	5.77139e-06
+0.309	5.84408e-06
+0.317	5.91588e-06
+0.325	5.98671e-06
+0.333	6.05662e-06
+0.341	6.12566e-06
+0.349	6.19451e-06
+0.357	6.26254e-06
+0.365	6.32978e-06
+0.373	6.39626e-06
+0.381	6.46211e-06
+0.389	6.52753e-06
+0.397	6.59225e-06
+0.413	6.71964e-06
+0.429	6.84455e-06
+0.445	6.96774e-06
+0.461	7.08847e-06
+0.477	7.2068e-06
+0.493	7.3228e-06
+0.509	7.43658e-06
+0.525	7.54822e-06
+0.541	7.65785e-06
+0.557	7.7655e-06
+0.573	7.87151e-06
+0.589	7.97607e-06
+0.605	8.0788e-06
+0.621	8.17975e-06
+0.637	8.27896e-06
+0.653	8.37707e-06
+0.669	8.4736e-06
+0.685	8.56852e-06
+0.701	8.66185e-06
+0.717	8.75363e-06
+0.733	8.84389e-06
+0.749	8.93266e-06
+0.765	9.0202e-06
+0.797	9.19128e-06
+0.829	9.35681e-06
+0.861	9.51715e-06
+0.893	9.67278e-06
+0.925	9.82334e-06
+0.957	9.96894e-06
+0.989	1.01097e-05
+1.021	1.02459e-05
+1.053	1.03775e-05
+1.085	1.05046e-05
+1.117	1.06274e-05
+1.149	1.07463e-05
+1.181	1.08612e-05
+1.213	1.09721e-05
+1.245	1.10791e-05
+1.309	1.12821e-05
+1.373	1.1471e-05
+1.437	1.16462e-05
+1.501	1.18083e-05
+1.565	1.19583e-05
+1.629	1.20966e-05
+1.693	1.22237e-05
+1.757	1.23407e-05
+1.885	1.25454e-05
+2.013	1.27151e-05
+2.141	1.28534e-05
+2.269	1.29643e-05
+2.525	1.31163e-05
+2.781	1.31932e-05
+3.293	1.31832e-05
+4.317	1.27882e-05
+5.341	1.22176e-05
+6.365	1.16099e-05
+7.389	1.10269e-05
+8.413	1.04851e-05
+9.437	9.98176e-06
+10.461	9.5161e-06
+11.485	9.08847e-06
+12.509	8.6969e-06
+13.533	8.33761e-06
+14.557	8.00575e-06
+15.581	7.69912e-06
+16.605	7.41383e-06
+17.629	7.14532e-06
+18.653	6.89286e-06
+19.677	6.65593e-06
+20.701	6.43361e-06
+21.725	6.225e-06
+22.749	6.02917e-06
+23.773	5.84519e-06
+24.797	5.67214e-06
+25.821	5.50921e-06
+26.845	5.35565e-06
+27.869	5.21074e-06
+28.893	5.07377e-06
+29.917	4.94422e-06
+30.941	4.82165e-06
+31.965	4.70561e-06
+32.989	4.59547e-06
+34.013	4.49065e-06
+35.037	4.39057e-06
+36.061	4.29473e-06
+37.085	4.20405e-06
+38.109	4.11769e-06
+39.133	4.03521e-06
+40.157	3.95618e-06
+41.181	3.88048e-06
+42.205	3.80789e-06
+43.229	3.73822e-06
+44.253	3.67129e-06
+45.277	3.60693e-06
+46.301	3.54499e-06
+47.325	3.48533e-06
+48.349	3.42784e-06
+49.373	3.37245e-06
+50.397	3.31902e-06
+51.421	3.2674e-06
+52.445	3.21751e-06
+53.469	3.16924e-06
+54.493	3.12255e-06
+55.517	3.07734e-06
+56.541	3.03353e-06
+57.565	2.99107e-06
+58.589	2.9499e-06
+59.613	2.90995e-06
+60.637	2.87117e-06
+61.661	2.8335e-06
+62.685	2.79689e-06
+63.709	2.76131e-06
+64.733	2.72671e-06
+65.757	2.69307e-06
+66.781	2.66034e-06
+67.805	2.62847e-06
+68.829	2.59742e-06
+69.853	2.56716e-06
+70.877	2.53767e-06
+71.901	2.5089e-06
+72.925	2.48085e-06
+73.949	2.45347e-06
+74.973	2.42674e-06
+75.997	2.40065e-06
+77.021	2.37516e-06
+78.045	2.35027e-06
+79.069	2.32593e-06
+80.093	2.30215e-06
+81.117	2.27888e-06
+82.141	2.25613e-06
+84.189	2.21209e-06
+86.237	2.16989e-06
+88.285	2.12943e-06
+90.333	2.09058e-06
+92.381	2.05326e-06
+94.429	2.01735e-06
+96.477	1.9828e-06
+98.525	1.94967e-06
+100.573	1.91773e-06
+102.621	1.88678e-06
+104.669	1.8569e-06
+106.717	1.82806e-06
+108.765	1.80018e-06
+110.813	1.77321e-06
+112.861	1.74712e-06
+114.909	1.72186e-06
+116.957	1.6974e-06
+119.005	1.67368e-06
+121.053	1.65068e-06
+123.101	1.62836e-06
+125.149	1.6067e-06
+127.197	1.58566e-06
+129.245	1.56521e-06
+131.293	1.54534e-06
+133.341	1.52602e-06
+135.389	1.50722e-06
+137.437	1.48892e-06
+139.485	1.47111e-06
+141.533	1.45375e-06
+143.581	1.43685e-06
+145.629	1.42036e-06
+147.677	1.40429e-06
+149.725	1.38861e-06
+151.773	1.37332e-06
+153.821	1.35839e-06
+155.869	1.34381e-06
+157.917	1.32958e-06
+159.965	1.31567e-06
+162.013	1.30208e-06
+164.061	1.28879e-06
+166.109	1.2758e-06
+168.157	1.2631e-06
+172.253	1.23851e-06
+176.349	1.21495e-06
+180.445	1.19236e-06
+184.541	1.17068e-06
+188.637	1.14985e-06
+192.733	1.12918e-06
+196.829	1.10992e-06
+200.925	1.09137e-06
+205.021	1.07349e-06
+209.117	1.05625e-06
+213.213	1.03961e-06
+217.309	1.02355e-06
+221.405	1.00802e-06
+225.501	9.93005e-07
+229.597	9.78478e-07
+233.693	9.64414e-07
+237.789	9.50793e-07
+241.885	9.37592e-07
+245.981	9.24791e-07
+250.077	9.12372e-07
+254.173	9.00317e-07
+258.269	8.88611e-07
+262.365	8.7724e-07
+266.461	8.66189e-07
+270.557	8.55443e-07
+274.653	8.44989e-07
+278.749	8.34816e-07
+282.845	8.24913e-07
+286.941	8.15269e-07
+291.037	8.05872e-07
+295.133	7.96714e-07
+299.229	7.87786e-07
+303.325	7.79079e-07
+307.421	7.70585e-07
+311.517	7.62295e-07
+315.613	7.54202e-07
+319.709	7.46299e-07
+323.805	7.3858e-07
+327.901	7.31038e-07
+331.997	7.23667e-07
+336.093	7.1646e-07
+344.285	7.02519e-07
+352.477	6.89174e-07
+360.669	6.76387e-07
+368.861	6.64124e-07
+377.053	6.5235e-07
+385.245	6.41038e-07
+393.437	6.30159e-07
+401.629	6.1969e-07
+409.821	6.09607e-07
+418.013	5.99889e-07
+426.205	5.90516e-07
+434.397	5.81468e-07
+442.589	5.72729e-07
+450.781	5.64285e-07
+458.973	5.5612e-07
+467.165	5.4822e-07
+475.357	5.40571e-07
+483.549	5.33163e-07
+491.741	5.25983e-07
+499.933	5.1902e-07
+508.125	5.12264e-07
+516.317	5.05708e-07
+524.509	4.99342e-07
+532.701	4.93158e-07
+540.893	4.87148e-07
+549.085	4.81303e-07
+557.277	4.75617e-07
+565.469	4.70085e-07
+573.661	4.647e-07
+581.853	4.59456e-07
+590.045	4.54347e-07
+598.237	4.49368e-07
+606.429	4.44514e-07
+614.621	4.39781e-07
+622.813	4.35163e-07
+631.005	4.30657e-07
+639.197	4.26258e-07
+647.389	4.21962e-07
+655.581	4.17767e-07
+671.965	4.09662e-07
+688.349	4.01917e-07
+704.733	3.94508e-07
+721.117	3.87414e-07
+737.501	3.80615e-07
+753.885	3.74091e-07
+770.269	3.67827e-07
+786.653	3.61807e-07
+803.037	3.56016e-07
+819.421	3.50442e-07
+835.805	3.45073e-07
+852.189	3.39898e-07
+868.573	3.34905e-07
+884.957	3.30086e-07
+901.341	3.25431e-07
+917.725	3.20932e-07
+934.109	3.16581e-07
+950.493	3.12371e-07
+966.877	3.08294e-07
+983.261	3.04345e-07
+999.645	3.00519e-07
+1016.03	2.96809e-07
+1032.41	2.9321e-07
+1048.8	2.89716e-07
+1065.18	2.86323e-07
+1081.57	2.83027e-07
+1097.95	2.79825e-07
+1114.33	2.7671e-07
+1130.72	2.73681e-07
+1147.1	2.70732e-07
+1163.49	2.67862e-07
+1179.87	2.65068e-07
+1196.25	2.62347e-07
+1212.64	2.59696e-07
+1229.02	2.57111e-07
+1261.79	2.5213e-07
+1294.56	2.47388e-07
+1327.33	2.42869e-07
+1360.09	2.38555e-07
+1392.86	2.34434e-07
+1425.63	2.30493e-07
+1458.4	2.26721e-07
+1491.17	2.23105e-07
+1523.93	2.19638e-07
+1556.7	2.16311e-07
+1589.47	2.13114e-07
+1622.24	2.10039e-07
+1655.01	2.0708e-07
+1687.77	2.04231e-07
+1720.54	2.01487e-07
+1753.31	1.98841e-07
+1786.08	1.96287e-07
+1818.85	1.9382e-07
+1851.61	1.91437e-07
+1884.38	1.89134e-07
+1917.15	1.86907e-07
+1949.92	1.84752e-07
+1982.69	1.82665e-07
+2015.45	1.80642e-07
+2048.22	1.78682e-07
+2080.99	1.76782e-07
+2113.76	1.74939e-07
+2146.53	1.7315e-07
+2179.29	1.71412e-07
+2212.06	1.69723e-07
+2277.6	1.66489e-07
+2343.13	1.63428e-07
+2408.67	1.60529e-07
+2474.21	1.57779e-07
+2539.74	1.55167e-07
+2605.28	1.52683e-07
+2670.81	1.50317e-07
+2736.35	1.48061e-07
+2801.89	1.4591e-07
+2867.42	1.43854e-07
+2932.96	1.41887e-07
+2998.49	1.40005e-07
+3064.03	1.38202e-07
+3129.57	1.36473e-07
+3195.1	1.34814e-07
+3260.64	1.33221e-07
+3326.17	1.3169e-07
+3391.71	1.30218e-07
+3457.25	1.288e-07
+3522.78	1.27436e-07
+3588.32	1.2612e-07
+3653.85	1.24851e-07
+3719.39	1.23627e-07
+3850.46	1.21303e-07
+3981.53	1.19132e-07
+4112.61	1.17099e-07
+4243.68	1.15193e-07
+4374.75	1.13403e-07
+4505.82	1.11718e-07
+4636.89	1.10129e-07
+4767.97	1.08629e-07
+4899.04	1.0721e-07
+5030.11	1.05868e-07
+5161.18	1.04596e-07
+5292.25	1.03388e-07
+5423.33	1.02241e-07
+5554.4	1.0115e-07
+5685.47	1.00111e-07
+5816.54	9.91207e-08
+6078.69	9.72746e-08
+6340.83	9.55898e-08
+6602.97	9.40451e-08
+6865.12	9.26279e-08
+7127.26	9.13215e-08
+7389.41	9.01164e-08
+7651.55	8.89994e-08
+7913.69	8.79637e-08
+8175.84	8.70019e-08
+8437.98	8.61063e-08
+8700.13	8.52699e-08
+9224.41	8.37608e-08
+9748.7	8.24357e-08
+10273	8.12676e-08
+10797.3	8.02332e-08
+11321.6	7.93122e-08
+11845.9	7.84907e-08
+12370.1	7.78209e-08
+13418.7	7.6739e-08
+14467.3	7.58731e-08
+15515.9	7.51777e-08
+17613	7.4169e-08
+19710.2	7.35243e-08
+23904.5	7.29067e-08
+32293.1	7.2982e-08
+49070.3	7.46854e-08
+65847.5	7.66749e-08
+82624.7	7.85253e-08
+99401.9	8.01854e-08
+116179	8.16703e-08
+132956	8.30054e-08
+149734	8.42141e-08
+166511	8.53164e-08
+183288	8.63282e-08
+200065	8.72625e-08
+216842	8.81298e-08
+250397	8.96964e-08
+283951	9.10808e-08
+317506	9.23202e-08
+351060	9.34414e-08
+384615	9.44648e-08
+418169	9.54057e-08
+485278	9.70863e-08
+552387	9.85538e-08
+619496	9.98557e-08
+686605	1.01025e-07
+753713	1.02086e-07
+820822	1.03057e-07
+955040	1.04782e-07
diff --git a/thisNPTool.sh b/thisNPTool.sh
new file mode 100644
index 0000000000000000000000000000000000000000..d05c765448ad28b6908afa6cde675755d44dc5db
--- /dev/null
+++ b/thisNPTool.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Self locate script when sourced
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+
+# And now export
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:"${SCRIPT_DIR}/NPLib/lib"
+export ROOT_INCLUDE_PATH=${ROOT_INCLUDE_PATH}:"${SCRIPT_DIR}/NPLib/include"