diff --git a/Inputs/DetectorConfiguration/lassaSingle.detector b/Inputs/DetectorConfiguration/lassaSingle.detector
new file mode 100644
index 0000000000000000000000000000000000000000..9db148ee21b7af92a1286651078e35a2e80f038e
--- /dev/null
+++ b/Inputs/DetectorConfiguration/lassaSingle.detector
@@ -0,0 +1,27 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Thickness in micrometer
+% Radius in mm
+% Temperature in K, Pressure in bar
+Target
+        THICKNESS= 6.26
+ANGLE= 0
+        RADIUS= 10
+        MATERIAL= CD2
+        X= 0
+        Y= 0
+        Z= 0
+
+%%%%%%%%%%%%%%%%%%%%%
+LASSAArray
+%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%% Telescope 0 %%%%%%%
+LassaTelescope
+A=      -3.5  -3.5  215
+B=      3.5  -3.5  215
+C=      -3.5  3.5  215
+D=      3.5  3.5  215
+
diff --git a/Inputs/EventGenerator/proton.source b/Inputs/EventGenerator/proton.source
index 7c67ffc132bc4ae1cb8d7d87b94efa8d75572cdb..052193a50c07ae4d271518d0501bbf0cd1928ead 100644
--- a/Inputs/EventGenerator/proton.source
+++ b/Inputs/EventGenerator/proton.source
@@ -4,10 +4,10 @@
 %			   Energy are given in MeV , Position in mm				  %	
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Isotropic
-	EnergyLow=  190	
+	EnergyLow=  0	
 	EnergyHigh= 190
 	HalfOpenAngleMin= 0
-	HalfOpenAngleMax= 0
+	HalfOpenAngleMax= 100
 	x0= 0	
 	y0= 0	
 	z0= 0	
diff --git a/NPAnalysis/Hira2/Analysis.cxx b/NPAnalysis/Hira2/Analysis.cxx
index 962b1069efad0cb75f157738abc2b573d5a5c6fc..d4f51a8bc06317584fd924000ba09d6cc340164c 100644
--- a/NPAnalysis/Hira2/Analysis.cxx
+++ b/NPAnalysis/Hira2/Analysis.cxx
@@ -79,6 +79,7 @@ void Analysis::TreatEvent(){
     
     //double BeamEnergy = Rand.Gaus(Initial->GetIncidentInitialKineticEnergy(),4.5);
     double BeamEnergy = InitialConditions->GetIncidentInitialKineticEnergy();
+    double Thickness;
     
     
     //cout << Thickness << endl;
@@ -127,7 +128,8 @@ void Analysis::TreatEvent(){
             if(Hira->CsI_E.size() == 1){
                 for(int countCsI =0; countCsI<Hira->CsI_E.size(); countCsI++){
                     //Try to simulate the nuclear reaction loss
-                    double Thickness = Proton_CsI.EvaluateMaterialThickness(0*MeV, Hira->CsI_E[countCsI]*MeV, 200*millimeter, 0.1*millimeter);
+                    Thickness = Proton_CsI.EvaluateMaterialThickness(0*MeV, Hira->CsI_E[countCsI]*MeV, 200*millimeter, 0.1*millimeter);
+                    cout << Thickness << endl;
                     double eval = f_proton->Eval(Thickness/10);
                     double Random_value = Rand.Uniform(0,1);
                     
@@ -175,8 +177,8 @@ void Analysis::InitOutputBranch() {
     RootOutput::getInstance()->GetTree()->Branch( "Y" , &Y , "Y/D" )  ;
     RootOutput::getInstance()->GetTree()->Branch( "Z" , &Z , "Z/D" )  ;
     RootOutput::getInstance()->GetTree()->Branch( "TelescopeNumber" , &TelescopeNumber , "TelescopeNumber/D" )  ;
-    RootOutput::getInstance()->GetTree()->Branch("InteractionCoordinates","TInteractionCoordinates",&InteractionCoordinates);
-    RootOutput::getInstance()->GetTree()->Branch("InitialConditions","TInitialConditions",&InitialConditions);
+    //RootOutput::getInstance()->GetTree()-> Branch("InteractionCoordinates","TInteractionCoordinates",&InteractionCoordinates);
+    //RootOutput::getInstance()->GetTree()->Branch("InitialConditions","TInitialConditions",&InitialConditions);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/NPAnalysis/Hira2/Analysis.h b/NPAnalysis/Hira2/Analysis.h
index a47659cdb37c00d55e5289e3ea04eceb85009552..5506be1d77d512b0840669b65190b10df922460d 100644
--- a/NPAnalysis/Hira2/Analysis.h
+++ b/NPAnalysis/Hira2/Analysis.h
@@ -64,8 +64,6 @@ private:
     
     
     
-    
-    
     //NPL::Reaction* TransferReaction;
     
     // intermediate variable
diff --git a/NPAnalysis/Hira2/RunToTreat.txt b/NPAnalysis/Hira2/RunToTreat.txt
index 0aba6058e46db18e458237a427dbce1428ff818f..45e044023d1e5a1f61ac5d67477fb1ada01143bc 100755
--- a/NPAnalysis/Hira2/RunToTreat.txt
+++ b/NPAnalysis/Hira2/RunToTreat.txt
@@ -1,5 +1,5 @@
 TTreeName 
 	SimulatedTree
 RootFileName 
-%	../../Outputs/Simulation/test.root
-  ../../Outputs/Simulation/proton_0_300.root
+	../../Outputs/Simulation/test.root
+%  ../../Outputs/Simulation/proton_0_300.root
diff --git a/NPAnalysis/Lassa/Analysis.cxx b/NPAnalysis/Lassa/Analysis.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..eda5b6648d904e2f205018cea48c19fb31d65458
--- /dev/null
+++ b/NPAnalysis/Lassa/Analysis.cxx
@@ -0,0 +1,708 @@
+/*****************************************************************************
+ * Copyright (C) 2009-2014    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             *
+ *****************************************************************************/
+
+/*****************************************************************************
+  ConfigLassa
+  MAX_STRIP_MULTIPLICITY 1
+ *                                                                           *
+ * Creation Date  : march 2025                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ * Class describing the property of an Analysis object                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "Analysis.h"
+#include "NPAnalysisFactory.h"
+#include "NPDetectorManager.h"
+#include "NPOptionManager.h"
+#include "RootOutput.h"
+#include "RootInput.h"
+#include "TROOT.h"
+#include "TSystem.h"
+#include "TFile.h"
+#include "TString.h"
+#include "TTree.h"
+#include "TBranch.h"
+#include "TMath.h"
+#include "TInteractionCoordinates.h"
+#include <algorithm>
+
+using namespace std;
+
+////////////////////////////////////////////////////////////////////////////////
+Analysis::Analysis(){
+}
+////////////////////////////////////////////////////////////////////////////////
+Analysis::~Analysis(){
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::Init(){
+  Lassa= (TLassaPhysics*) m_DetectorManager->GetDetector("LASSAArray");
+  
+  Initial = new TInitialConditions();
+  InitOutputBranch();
+  InitInputBranch();
+
+  totalEvents = 0;
+  detectedEvents = 0;
+  peakEvents = 0;
+
+  maxEnergy = -1.;
+  minEnergy = 10000.;
+
+
+  for(int i = 0; i < 16; i++){
+    for(int j = 0; j < 16; j++){
+      detectedEvs[i][j] = 0;
+      peakEvs[i][j] = 0;
+      peakEffs[i][j] = -1.;  
+      
+      if(i < 8 && j < 8){ 
+        peakEffsAvg[i][j] = -1.;
+      }
+    }
+  }
+
+  for(int i = 0; i < 5; i++){
+    
+    fitFunction = "";
+    Beta.str("");
+    Mu.str("");
+
+    fitFunction = "1-exp(-1*";
+    Beta << par[i][0];
+    fitFunction += Beta.str();
+
+    fitFunction += "*(x-";
+    Mu << par[i][1];
+    fitFunction += Mu.str();
+    fitFunction += "))";
+
+    ReactionLoss[i] = new TF1("Reaction Loss Fit Function",fitFunction.c_str(),0,100);
+    
+  }
+
+
+
+ for(int i = 0; i < 5; i++){
+  for(int j = 0; j < 2; j++){
+
+  EnergyRange[i][j].clear();
+
+    }
+  }
+
+
+  // Declare the histograms for the geometric
+  // and peak efficiency
+
+  // Peak Efficiencies
+
+    h_peakEff  = new TH2F("Peak Efficiencies", "Peak Efficiencies",16,0,16,16,0,16);
+    h_peakEff->GetXaxis()->SetTitle("X-Strip");
+    h_peakEff->GetYaxis()->SetTitle("Y-Strip");
+
+    h_peakEffAvg = new TH2F("Average Peak Efficiencies","Average Peak Efficiencies",8,0,8,8,0,8);
+    h_peakEffAvg->GetXaxis()->SetTitle("X-Strip");
+    h_peakEffAvg->GetYaxis()->SetTitle("Y-Strip");
+
+    // Geometric Efficiencies
+
+    hDetecTheta = new TH1F("hDetecTheta","DetecTheta",180,0,180);
+    hDetecTheta->GetXaxis()->SetTitle("#Theta (deg)");
+    hDetecTheta->GetYaxis()->SetTitle("Counts");
+
+    hEmittTheta = new TH1F("hEmittTheta","EmittTheta",180,0,180);
+    hEmittTheta->GetXaxis()->SetTitle("#Theta (deg)");
+    hEmittTheta->GetYaxis()->SetTitle("Counts");
+
+    hDetecThetaVsPhi = new TH2F("hDetecThetaVsPhi", "hDetecThetaVsPhi", 180,0,180,360,-180,180);
+    hDetecThetaVsPhi->GetXaxis()->SetTitle("#Theta (deg)");
+    hDetecThetaVsPhi->GetYaxis()->SetTitle("#Phi (deg)");
+
+    hGeometricEfficiency = new TH1F("hEfficiency","Efficiency",180,0,180);
+    hGeometricEfficiency->GetXaxis()->SetTitle("#Theta (deg)");
+    hGeometricEfficiency->GetYaxis()->SetTitle("#epsilon (%)");
+
+    // Initialize the Energy loss table for each species use. 
+
+    for(int i = 0; i < 5; i++){
+  
+      EnergyLoss_Table = "_CsI.G4table";
+      EnergyLoss_Table = speciesNameArray[i] + EnergyLoss_Table;
+
+      EnergyLoss_CsI[i] = EnergyLoss(EnergyLoss_Table.c_str(),"G4Table",100);
+    }
+ 
+    peakEffSum_meat = 0.;
+    peakEffSquaredSum_meat = 0.;
+    peakEffAvg_meat = 0.;
+    peakEffSquaredAvg_meat = 0.;
+    N_meat = 0.;
+    sigma_meat = 0.;  
+
+    peakEffSum_edge = 0.;
+    peakEffSquaredSum_edge = 0.;
+    peakEffAvg_edge = 0.;
+    peakEffSquaredAvg_edge = 0.;
+    N_edge = 0.;
+    sigma_edge = 0.;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::TreatEvent(){
+  // Reinitiate calculated variable
+  ReInitValue();
+
+  totalEvents++;
+
+  totalEnergy = Initial->GetKineticEnergy(0);
+  speciesName = Initial->GetParticleName(0);  
+
+  for(int i = 0; i < 5; i++){
+    if(speciesName == speciesNameArray[i]){
+      species = i;
+    }
+  }
+
+  if(maxEnergy < totalEnergy){
+    maxEnergy = totalEnergy;
+  }
+
+  if(minEnergy > totalEnergy){
+    minEnergy = totalEnergy;  
+  }
+
+  if(minEnergy < .0001){
+    minEnergy = 0.;
+  }
+
+  EDelta = .05*totalEnergy;
+
+  ThetaLab_Init = Initial->GetThetaLab_WorldFrame(0);
+
+  hEmittTheta->Fill(ThetaLab_Init);
+
+  ///////////////////////////LOOP on Lassa Hit//////////////////////////////////
+//  if(Lassa -> ThickSi_E.size() == 1){
+  if(Lassa -> ThickSi_E.size() >= 1){ 
+
+      TelescopeNumber = Lassa->TelescopeNumber[0];
+      XStrip = Lassa->ThickSi_StripNumberX[0];
+      YStrip = Lassa->ThickSi_StripNumberY[0];      
+
+      X = Lassa->GetPositionOfInteraction(0).X();
+      Y = Lassa->GetPositionOfInteraction(0).Y();
+      Z = Lassa->GetPositionOfInteraction(0).Z();
+  
+      TVector3 PositionOnLassa = TVector3(X,Y,Z);
+      TVector3 ZUnit = TVector3(0,0,1);
+
+      double X_target = Initial->GetIncidentPositionX();
+      double Y_target = Initial->GetIncidentPositionY();
+      double Z_target = Initial->GetIncidentPositionZ();
+
+      TVector3 PositionOnTarget = TVector3(X_target,Y_target,Z_target);
+      TVector3 HitDirection = PositionOnLassa-PositionOnTarget;
+      TVector3 HitDirectionUnit = HitDirection.Unit();
+
+      TVector3 BeamDirection = Initial->GetBeamDirection();
+      double XBeam = BeamDirection.X();
+      double YBeam = BeamDirection.Y();
+      double ZBeam = BeamDirection.Z();
+
+      ThetaLab = BeamDirection.Angle(HitDirection);
+      ThetaLab = ThetaLab/deg;
+
+      PhiLab = HitDirection.Phi()/deg;
+
+      E_ThickSi = Lassa->ThickSi_E[0];
+
+      hDetecTheta->Fill(ThetaLab);
+
+      hDetecThetaVsPhi->Fill(ThetaLab,PhiLab);
+
+      if(Lassa->CsI_E.size()>=1){  
+
+        detectedEvents++;
+        detectedEvs[XStrip][YStrip]++;
+  
+        E_CsI_Temp = Lassa->CsI_E[0];
+
+     if(E_CsI_Temp > E_nucThres[species]){  
+
+        zeroth_thres = .01;
+        first_thres = .05;
+        x_0 = -1;
+        x_1 = -1;
+        x_neg1 = -1;
+        zeroth_upperbound = -1.;
+        first_lowerbound = -1.;
+        slope = 10000;
+      
+
+        // We want to check to see if the energy is within 2% of any of the stored energy values
+
+        for(int i = 0; i < EnergyRange[species][1].size(); i++){
+
+          zeroth_upperbound = (1+zeroth_thres)*EnergyRange[species][1][i];
+          zeroth_lowerbound = (1-zeroth_thres)*EnergyRange[species][1][i];
+
+          first_upperbound = (1+first_thres)*EnergyRange[species][1][i];
+          first_lowerbound = (1-first_thres)*EnergyRange[species][1][i];
+
+          if(zeroth_upperbound > E_CsI_Temp && E_CsI_Temp > zeroth_lowerbound) {x_0 = i;}
+            
+          if(first_upperbound > E_CsI_Temp && E_CsI_Temp > zeroth_upperbound){x_1 = i;}
+            
+          if(first_lowerbound < E_CsI_Temp && E_CsI_Temp < zeroth_lowerbound){x_neg1 = i;}
+
+          if(x_0 != -1 && x_1 != -1 && x_neg1 != -1){break;}
+           
+        }
+
+          // If there is no matching point, then a new (energy,range) point
+          // will be added to the vector. 
+
+        if(x_0 == -1){
+
+          Range = EnergyLoss_CsI[species].EvaluateMaterialThickness(.0000001*MeV,Lassa->CsI_E[0]*MeV,15*cm,10*micrometer);
+          Range_0 = Range; 
+          Range_1 = Range;
+          // Add a new point at the end
+          EnergyRange[species][1].push_back(E_CsI_Temp);
+
+          EnergyRange[species][2].push_back(Range);
+        }
+
+        else{
+
+            if(x_1 == -1 || x_neg1 == -1){Range_1 = EnergyRange[species][2][x_0];}
+
+            else{
+
+              if(E_CsI_Temp > EnergyRange[species][1][x_0]){
+                slope = (EnergyRange[species][2][x_1]-EnergyRange[species][2][x_0])/(EnergyRange[species][1][x_1]-EnergyRange[species][1][x_0]);
+              }
+
+              else {
+              slope = (EnergyRange[species][2][x_0]-EnergyRange[species][2][x_neg1])/(EnergyRange[species][1][x_0]-EnergyRange[species][1][x_neg1]);
+              } 
+              
+            Range_0 = EnergyRange[species][2][x_0];
+
+            Range_1 = slope*(E_CsI_Temp-EnergyRange[species][1][x_0]) + Range_0;
+          }       
+        
+      }
+
+//        Range = EnergyLoss_CsI[species].EvaluateMaterialThickness(.0000001*MeV,Lassa->CsI_E[0]*MeV,15*cm,10*micrometer);
+        Range = Range_1;
+
+        eval = ReactionLoss[species]->Eval(Range/10);
+        Random_value = Rand.Uniform(0,1); 
+
+        if(Random_value>eval)E_CsI = Lassa->CsI_E[0];
+        else E_CsI = Rand.Uniform(0,Lassa->CsI_E[0]);   
+
+        }
+
+        else {E_CsI = E_CsI_Temp;}
+
+          //E_CsI = Lassa->CsI_E[0];
+          
+        ELab = E_ThickSi + E_CsI;
+    
+          //Check if the energy of the event is within the peak of the beam energy
+
+        if(ELab > (totalEnergy-EDelta) && ELab < (totalEnergy+EDelta) && ELab > 0.){
+          peakEvents++;
+          peakEvs[XStrip][YStrip]++;
+        } 
+      }
+    }      
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::End(){
+
+  geomEff = 100*((double)detectedEvents)/((double)totalEvents);
+
+  peakEff = 100*((double)peakEvents)/((double)detectedEvents);
+
+  hist_Title = "";
+  canvas_Title = "";  
+
+  maxEnergy_String.str("");
+
+  maxEnergy_String << maxEnergy; 
+
+  minEnergy_String.str("");
+
+  minEnergy_String << minEnergy;
+
+  cout << endl;
+  cout << "Max Energy: " << maxEnergy << endl;
+  cout << "Min Energy: " << minEnergy << endl;
+
+  if(minEnergy == maxEnergy){
+ 
+    hist_Title += speciesNameArray[species];
+    hist_Title += " ";
+    hist_Title += maxEnergy_String.str();
+    hist_Title += " MeV";
+
+    canvas_Title += "_";
+    canvas_Title += speciesNameArray[species];
+    canvas_Title += maxEnergy_String.str();
+    canvas_Title += "MeV";
+  }
+
+  else{
+
+    cout << endl;
+    cout << "Else!" << endl;
+
+    hist_Title += speciesNameArray[species];
+    hist_Title += " ";
+    hist_Title += minEnergy_String.str();
+    hist_Title += "->";
+    hist_Title += maxEnergy_String.str();
+    hist_Title += " MeV";
+
+    canvas_Title += "_";
+    canvas_Title += speciesNameArray[species];
+    canvas_Title += minEnergy_String.str();
+    canvas_Title += "to";
+    canvas_Title += maxEnergy_String.str();
+    canvas_Title += "MeV";
+  }
+
+  // Files
+
+  simData_Title = "simData";
+  simData_Title += canvas_Title;
+  simData_Title += ".csv";
+  simData.open(simData_Title.c_str());
+
+  peakEffMatrix_Title = "peakEffMatrix";
+  peakEffMatrix_Title += canvas_Title;
+  peakEffMatrix_Title += ".csv";
+  peakEffMatrix.open(peakEffMatrix_Title.c_str());
+
+  peakEffAvgMatrix_Title = "peakEffAvgMatrix";
+  peakEffAvgMatrix_Title += canvas_Title;
+  peakEffAvgMatrix_Title += ".csv";
+  peakEffAvgMatrix.open(peakEffAvgMatrix_Title.c_str());
+
+  detectEvMatrix_Title = "detectEvMatrix";
+  detectEvMatrix_Title += canvas_Title;
+  detectEvMatrix_Title += ".csv";
+  detectEvMatrix.open(detectEvMatrix_Title.c_str());
+
+  // Fill the histograms and files
+
+  for(int i = 0; i < 16; i++){  
+    for(int j = 0; j < 16; j++){
+  
+      if(detectedEvs[i][j] != 0){    
+        peakEffs[i][j] = 100*((double)peakEvs[i][j])/((double)detectedEvs[i][j]);
+        h_peakEff->Fill(i,j,peakEffs[i][j]);
+      }
+
+      else{
+        peakEffs[i][j] = 0;
+      }
+    }
+  }  
+
+  for(int i = 0; i < 8; i++){
+    for(int j = 0; j < 8; j++){
+      peakEffsAvg[i][j] = .25*(peakEffs[i][j] + peakEffs[i+8][j] + peakEffs[i][j+8] + peakEffs[i+8][j+8]);
+      h_peakEffAvg->Fill(i,j,peakEffsAvg[i][j]);
+    }
+  }
+
+  cout << endl;
+  cout << "Total Events: " << totalEvents << endl;
+  cout << "Detected Events: " << detectedEvents << endl;
+  cout << "PeakEvents: " << peakEvents << endl;
+
+  cout << "Geometric Efficiency: " << geomEff << endl;
+  cout << "Peak Efficiency: " << peakEff << endl;
+
+  cout << "Range List Length: " << EnergyRange[species][2].size() << endl;
+
+  simData << "Species Name: " << speciesNameArray[species] << endl;
+  simData << "Maximum Energy: " << maxEnergy << endl;
+  simData << endl << endl;
+
+  simData << "Total Events: " << totalEvents << endl;
+  simData << "Detected Events: " << detectedEvents << endl;
+  simData << "PeakEvents: " << peakEvents << endl;
+
+  simData << "Geometric Efficiency: " << geomEff << endl;
+  simData << "Peak Efficiency: " << peakEff << endl;
+
+  for(int i = 0; i < 16; i++){
+    for(int j = 0; j < 16; j++){
+   
+      if(j == 0) peakEffMatrix << peakEffs[i][j] << ",";
+      else{peakEffMatrix<< peakEffs[i][j] << ",";}
+      if(j == 15) peakEffMatrix << endl; 
+
+      if(j == 0) detectEvMatrix << detectedEvs[i][j] << ",";
+      else{detectEvMatrix << detectedEvs[i][j] << ",";}
+      if(j == 15) detectEvMatrix << endl;
+
+      if(i < 8 && j < 8){
+
+        if(j == 0) peakEffAvgMatrix << peakEffsAvg[i][j] << ",";
+        else{peakEffAvgMatrix<< peakEffsAvg[i][j] << ",";}
+        if(j == 15) peakEffAvgMatrix << endl;
+      
+      }
+    }
+  }
+
+
+  // I want to calculate the mean and the standard deviation of
+  // the peak efficiency in two regions (the meat of the crystal
+  // and the edges). 
+
+  // We will be averaging over the four quadrants of one detector.
+
+  for(int i = 0; i < 16; i++){
+    for(int j = 0; j < 16; j++){
+
+      if(0 < i && i < 7 && 0 < j && j < 7 || 0 < i && i < 7 && 8 < j && j < 15 || 8 < i && i < 15 && 0 < j && j < 7 || 8 < i && i < 15 && 8 < j && j < 15){
+        peakEffSum_meat += peakEffs[i][j];
+        peakEffSquaredSum_meat += peakEffs[i][j]*peakEffs[i][j]; 
+        N_meat++;
+
+        cout << endl;
+        cout << "x: " << i << " " << "y: " << j << endl;
+        cout << "Meat!" << endl;
+        cout << "Peak Efficiency: " << peakEffs[i][j] << endl;
+
+      }
+
+      else{
+        peakEffSum_edge += peakEffs[i][j];
+        peakEffSquaredSum_edge += peakEffs[i][j]*peakEffs[i][j];
+        N_edge++;
+
+        cout << endl;
+        cout << "x: " << i << " " << "y: " << j << endl;
+        cout << "Edge!" << endl;
+        cout << "Peak Efficiency: " << peakEffs[i][j] << endl;
+      }
+    }
+  } 
+
+
+  peakEffAvg_meat = peakEffSum_meat/N_meat;
+  peakEffAvg_edge = peakEffSum_edge/N_edge;
+
+  peakEffSquaredAvg_meat = peakEffSquaredSum_meat/N_meat;
+  peakEffSquaredAvg_edge = peakEffSquaredSum_edge/N_edge;
+
+  sigma_meat = sqrt(peakEffSquaredAvg_meat-peakEffAvg_meat*peakEffAvg_meat);
+  sigma_edge = sqrt(peakEffSquaredAvg_edge-peakEffAvg_edge*peakEffAvg_edge);
+
+  cout << endl;
+  cout << "N_meat: " << N_meat << endl;
+  cout << "N_edge: " << N_edge << endl;
+
+  cout << "Peak Eff Avg Meat: " << peakEffAvg_meat << endl;
+  cout << "Peak Eff Avg Edge: " << peakEffAvg_edge << endl;
+
+  cout << "sigma_meat: " << sigma_meat << endl;
+  cout << "sigma_edge: " << sigma_edge << endl;
+
+  // Close the files
+
+  detectEvMatrix.close();
+  peakEffMatrix.close();
+  peakEffAvgMatrix.close();
+  simData.close();
+
+  // Draw the histograms on canvases
+
+  // Canvases
+  
+    // Peak Efficiencies
+    
+    canvas_peakEffMatrix = new TCanvas("Peak Eff Matrix","Peak Eff Matrix",1000,1000);
+    canvas_peakEffMatrix->cd();
+    h_peakEff->Draw("colz");
+    h_peakEff->SetStats(0);
+    h_peakEff->SetMaximum(100);
+    h_peakEff->SetMinimum(30);
+    peakEff_hTitle = "Peak Eff Matrix ";
+    peakEff_hTitle += hist_Title;
+    h_peakEff->SetTitle(peakEff_hTitle.c_str());
+    peakEff_cTitle = "canvas_peakEffMatrix";
+    peakEff_cTitle += canvas_Title;
+    peakEff_cTitle += ".jpg";
+    canvas_peakEffMatrix->SaveAs(peakEff_cTitle.c_str());
+
+    canvas_peakEffAvgMatrix = new TCanvas("Peak Eff Average Matrix","Peak Eff Average",1000,1000);    
+    canvas_peakEffAvgMatrix->cd();
+    h_peakEffAvg->Draw("colz");
+    h_peakEffAvg->SetStats(0);
+    h_peakEffAvg->SetMaximum(100);
+    h_peakEffAvg->SetMinimum(30);
+    peakEffAvg_hTitle = "Peak Eff Average Matrix";
+    peakEffAvg_hTitle += hist_Title;
+    h_peakEff->SetTitle(peakEffAvg_hTitle.c_str());
+    peakEffAvg_cTitle = "canvas_peakEffAvgMatrix";
+    peakEffAvg_cTitle += canvas_Title;
+    peakEffAvg_cTitle += ".jpg";
+    canvas_peakEffAvgMatrix->SaveAs(peakEffAvg_cTitle.c_str());
+
+    // Geometric Efficiency
+
+    canvas_Emitt = new TCanvas("canvas_Emitt", "Distrib",900,900);
+    canvas_Emitt->cd();
+    hEmittTheta->Draw("");
+    hDetecTheta->SetLineColor(kGreen);
+    hDetecTheta->Draw("same");
+  
+    canvas_Detec = new TCanvas("canvas_Detec", "Distrib",900,900);
+    canvas_Detec->cd();
+    hDetecTheta->Draw("");
+
+    canvas_DetecThetaVsPhi = new TCanvas("canvas_DetecThetaVsPhi", "Distrib",900,900);
+    canvas_DetecThetaVsPhi->cd();
+    hDetecThetaVsPhi->Draw("colz");
+
+    canvas_GeometricEfficiency = new TCanvas("canvas_GeometricEfficiency", "Distrib",900,900);
+    canvas_GeometricEfficiency->cd();
+    hGeometricEfficiency->Divide(hDetecTheta, hEmittTheta, 100, 1);
+    hGeometricEfficiency->Draw("");
+
+  // Save canvases to jpg's
+
+  emitt_hTitle = "Emitted Angle";
+  emitt_hTitle += hist_Title;
+  hEmittTheta->SetTitle(emitt_hTitle.c_str());
+
+  detec_hTitle = "Detected Angle";
+  detec_hTitle += hist_Title;
+  hDetecTheta->SetTitle(detec_hTitle.c_str());
+
+  detec_hTitle = "Detected Angle (Theta Vs Phi)";
+  detec_hTitle += hist_Title;
+  hDetecThetaVsPhi->SetTitle(detec_hTitle.c_str());
+  
+  geomEff_hTitle = "Detected Angle (Theta Vs Phi)";
+  geomEff_hTitle += hist_Title;
+  hGeometricEfficiency->SetTitle(geomEff_hTitle.c_str());
+
+  emitt_cTitle = "canvas_Emitt";
+  emitt_cTitle += canvas_Title;
+  emitt_cTitle += ".jpg";
+  canvas_Emitt->SaveAs(emitt_cTitle.c_str());
+
+  detec_cTitle = "canvas_Detec";
+  detec_cTitle += canvas_Title;
+  detec_cTitle += ".jpg";
+  canvas_Detec->SaveAs(detec_cTitle.c_str());
+
+  detecThetaVsPhi_cTitle = "canvas_DetecThetaVsPhi";
+  detecThetaVsPhi_cTitle += canvas_Title;
+  detecThetaVsPhi_cTitle += ".jpg";  
+  canvas_DetecThetaVsPhi->SaveAs(detecThetaVsPhi_cTitle.c_str());
+
+  geomEff_cTitle = "canvas_GeometricEfficiency";
+  geomEff_cTitle += canvas_Title;
+  geomEff_cTitle += ".jpg";
+  canvas_GeometricEfficiency->SaveAs(geomEff_cTitle.c_str());
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::InitOutputBranch() {
+  //RootOutput::getInstance()->GetTree()->Branch("Ex",&Ex,"Ex/D");
+  RootOutput::getInstance()->GetTree()->Branch("ELab",&ELab,"ELab/D");
+  RootOutput::getInstance()->GetTree()->Branch("ThetaLab",&ThetaLab,"ThetaLab/D");
+  RootOutput::getInstance()->GetTree()->Branch("PhiLab",&PhiLab,"PhiLab/D");
+//  RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D");
+//  RootOutput::getInstance()->GetTree()->Branch("totalEvents",&totalEvents,"totalEvents/I");
+//  RootOutput::getInstance()->GetTree()->Branch("detectedEvents",&detectedEvents,"detectedEvents/I");
+//  RootOutput::getInstance()->GetTree()->Branch("peakEvents",&peakEvents,"peakEvents/I");
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::InitInputBranch(){
+  RootInput:: getInstance()->GetChain()->SetBranchStatus("InitialConditions",true );
+  RootInput:: getInstance()->GetChain()->SetBranchStatus("fIC_*",true );
+  RootInput:: getInstance()->GetChain()->SetBranchAddress("InitialConditions",&Initial);
+}
+
+////////////////////////////////////////////////////////////////////////////////     
+void Analysis::ReInitValue(){
+
+  E_ThickSi = -1.;
+  E_CsI = -1.;
+  ELab = -1.;
+  E_CsI_Temp = -1.;
+  ThetaLab = -1000;
+  PhiLab = -1000;
+  X = -1000;
+  Y = -1000;
+  Z = -1000;
+  TelescopeNumber = -1;
+  EDelta = -1.;
+
+
+  ThetaLab_Init = -1000;
+
+  fitFunction = "";
+  Mu.str("");
+  Beta.str("");
+  species = -1;
+
+  Range = -1.;
+  Range_0 = -1.;
+  Range_1 = -1.;
+  devRange_0 = -1000.;
+  devRange_1 = -1000.;
+  eval = -1.;
+  Random_value = -1.;
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//            Construct Method to be pass to the DetectorFactory              //
+////////////////////////////////////////////////////////////////////////////////
+NPL::VAnalysis* Analysis::Construct(){
+  return (NPL::VAnalysis*) new Analysis();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//            Registering the construct method to the factory                 //
+////////////////////////////////////////////////////////////////////////////////
+extern "C"{
+class proxy{
+  public:
+    proxy(){
+      NPL::AnalysisFactory::getInstance()->SetConstructor(Analysis::Construct);
+    }
+};
+
+proxy p;
+}
+
diff --git a/NPAnalysis/Lassa/Analysis.h b/NPAnalysis/Lassa/Analysis.h
new file mode 100644
index 0000000000000000000000000000000000000000..33c2590c6015a10ce2dbf502b112c41e0b445f23
--- /dev/null
+++ b/NPAnalysis/Lassa/Analysis.h
@@ -0,0 +1,212 @@
+#ifndef Analysis_h 
+#define Analysis_h
+/*****************************************************************************
+ * Copyright (C) 2009-2014    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: Adrien MATTA  contact address: a.matta@surrey.ac.uk      *
+ *                                                                           *
+ * Creation Date  : march 2025                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ * Class describing the property of an Analysis object                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+#include"NPVAnalysis.h"
+#include"TLassaPhysics.h"
+#include "TInitialConditions.h"
+#include "NPEnergyLoss.h"
+#include "NPReaction.h"
+#include "TRandom3.h"
+#include "TMath.h"
+#include <sstream>
+#include <string>
+#include "TCanvas.h"
+#include "TH1F.h"
+#include "TH2F.h"
+#include "TF1.h"
+#include <iostream>
+#include <fstream>
+#include <vector>
+
+
+class Analysis: public NPL::VAnalysis{
+  public:
+    Analysis();
+    ~Analysis();
+
+  public: 
+    void Init();
+    void TreatEvent();
+    void End();
+    void InitOutputBranch();
+    void InitInputBranch();
+    void ReInitValue();
+    static NPL::VAnalysis* Construct();
+
+  private:
+    double ELab;
+    double E_ThickSi;
+    double E_CsI;
+    double EDelta;
+    double PhiLab;
+    double ThetaLab;
+    double ThetaLab_Init;
+    double X,Y,Z;
+    double TelescopeNumber;
+    double thresholdEnergy;
+    double totalEnergy;
+    double maxEnergy;
+    double minEnergy;
+    ostringstream maxEnergy_String;
+    ostringstream minEnergy_String;
+    double E_CsI_Temp;
+    double devRange_0;
+    double devRange_1;
+    double devRange_Sum_0;
+    double devRange_Sum_1;
+    double devRangeSquared_Sum_0;
+    double devRangeSquared_Sum_1;
+    double devRange_Avg_0;
+    double devRangeSquared_Avg_0;
+    double devRange_Avg_1;
+    double devRangeSquared_Avg_1;
+    double sigma_Range_0;
+    double sigma_Range_1;
+    double devRangeMax_0;
+    double devRangeMax_1;
+
+    string hist_Title;
+    string canvas_Title;
+
+    int XStrip;
+    int YStrip;
+
+    TLassaPhysics* Lassa;
+    TInitialConditions* Initial;
+    string speciesName;
+
+    // intermediate variable
+    TRandom3 Rand;
+
+    // Geometric Efficiency
+    double geomEff;
+    TH1F* hEmittTheta;
+    TH1F* hDetecTheta;
+    TH2F* hDetecThetaVsPhi;
+    TH1F* hGeometricEfficiency;
+    TCanvas *canvas_Emitt;
+    TCanvas *canvas_Detec;
+    TCanvas *canvas_DetecThetaVsPhi;
+    TCanvas *canvas_GeometricEfficiency;
+    string emitt_Title;
+    string Detec_Title;
+    string DetecThetaVsPhi_Title;
+    string GeometricEfficiency_Title;
+
+    // Peak Efficiencies
+    int totalEvents;
+    int detectedEvents;
+    int peakEvents;
+    double peakEff;
+    int detectedEvs[16][16];
+    int peakEvs[16][16];
+    double peakEffs[16][16];
+    double peakEffsAvg[8][8];
+    TH2F* h_peakEff;
+    TH2F* h_peakEffAvg;
+    TCanvas* canvas_peakEffMatrix;
+    TCanvas* canvas_peakEffAvgMatrix;
+    string peakEffs_Title;
+    string peakEffsAvg_Title;  
+ 
+    // Files 
+    ofstream simData;
+    ofstream peakEffMatrix;
+    ofstream peakEffAvgMatrix;
+    ofstream detectEvMatrix;  
+    string simData_Title;
+    string peakEffMatrix_Title;
+    string peakEffAvgMatrix_Title;
+    string detectEvMatrix_Title;
+
+
+    // Range calculation
+    double zeroth_upperbound;
+    double zeroth_lowerbound;
+    double first_upperbound;
+    double first_lowerbound;
+    double slope;
+    double zeroth_thres;
+    double first_thres;
+    double Energy_Temp;
+    double Range_0;
+    double Range_1;
+    int x_0;
+    int x_1;
+    int x_neg1;
+
+    //Histogram and Canvas Titles
+    string peakEff_hTitle;
+    string peakEff_cTitle;
+    string peakEffAvg_hTitle;
+    string peakEffAvg_cTitle;
+    string emitt_hTitle;
+    string emitt_cTitle;
+    string detec_hTitle;
+    string detec_cTitle;
+    string detecThetaVsPhi_hTitle;
+    string detecThetaVsPhi_cTitle;
+    string geomEff_hTitle;
+    string geomEff_cTitle;
+
+    // CsI Nuclear Reaction Correction Fit Function
+    double Range;
+    double maxRange;
+    double eval;
+    double Random_value;
+    TF1* ReactionLoss[5];
+    NPL::EnergyLoss EnergyLoss_CsI[5];
+    string EnergyLoss_Name;
+    string EnergyLoss_Table;
+    string fitFunction;    
+    ostringstream Mu;
+    ostringstream Beta;
+    int species;
+    string speciesNameArray[5] = {"proton","deuteron","triton","He3","alpha"};
+    double par[5][2] = {{0.0360046, 0.0921675},
+                        {0.0473272, 0.0433612},
+                        {0.0558374, 0.0327295},
+                        {0.0478917, 0.0475857},
+                        {0.0518713, 0.036529}};
+    
+    vector <double> EnergyRange[5][2];
+    double E_nucThres[5] = {13.617,7.022,5.106,11.064,8.936};
+//    double E_nucThres[5] = {0.,0.,0.,0.,0.};
+
+  int N_meat;
+  int N_edge;
+  double peakEffSum_meat;
+  double peakEffSum_edge;
+  double peakEffAvg_meat;
+  double peakEffAvg_edge;
+  double peakEffSquaredSum_meat;
+  double peakEffSquaredSum_edge;
+  double peakEffSquaredAvg_meat;
+  double peakEffSquaredAvg_edge;
+  double sigma_meat;
+  double sigma_edge;
+
+
+
+};
+#endif
diff --git a/NPAnalysis/Lassa/CMakeLists.txt b/NPAnalysis/Lassa/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f1da3aaa28c6236b3015ad1de9b29cf62972181b
--- /dev/null
+++ b/NPAnalysis/Lassa/CMakeLists.txt
@@ -0,0 +1,2 @@
+cmake_minimum_required (VERSION 2.8) 
+include("../NPAnalysis.cmake")
diff --git a/NPAnalysis/Lassa/RunToTreat.txt b/NPAnalysis/Lassa/RunToTreat.txt
new file mode 100755
index 0000000000000000000000000000000000000000..82908222e590c8760e20a5e47347834912b6c19c
--- /dev/null
+++ b/NPAnalysis/Lassa/RunToTreat.txt
@@ -0,0 +1,5 @@
+TTreeName 
+	SimulatedTree
+RootFileName 
+	../../Outputs/Simulation/Example1.root
+
diff --git a/NPLib/MUST2/CMakeLists.txt b/NPLib/MUST2/CMakeLists.txt
index d72904c227de537b6eb154ec1f1ef32484702c87..8fbac83bcbea46e599f2a88b5f079d2fe785c3ca 100644
--- a/NPLib/MUST2/CMakeLists.txt
+++ b/NPLib/MUST2/CMakeLists.txt
@@ -2,4 +2,4 @@ add_custom_command(OUTPUT TMust2PhysicsDict.cxx COMMAND ../scripts/build_dict.sh
 add_custom_command(OUTPUT TMust2DataDict.cxx COMMAND ../scripts/build_dict.sh TMust2Data.h TMust2DataDict.cxx TMust2Data.rootmap libNPMUST2.dylib DEPENDS TMust2Data.h)
 add_library(NPMUST2 SHARED TMust2Data.cxx TMust2Physics.cxx TMust2DataDict.cxx TMust2PhysicsDict.cxx TMust2Spectra.cxx)
 target_link_libraries(NPMUST2 ${ROOT_LIBRARIES} NPCore) 
-install(FILES TMust2Data.h TMust2Physics.h TMust2Spectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
+install(FILES TMust2Data.h TMust2Physics.h TMust2Spectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
\ No newline at end of file
diff --git a/NPLib/Physics/nubtab03.asc b/NPLib/Physics/nubtab03.asc
index ad13518a4a647bcad839c6aa43d8cda6b39cd92b..ff36e90df6acf0887671baf100b32c1beec5b6aa 100644
--- a/NPLib/Physics/nubtab03.asc
+++ b/NPLib/Physics/nubtab03.asc
@@ -199,7 +199,7 @@
 030 0130   30Al   -15872       14                              3.60   s 0.06   3+            01           B-=100
 030 0140   30Si   -24432.928    0.030                        stbl              0+            01           IS=3.0872 5
 030 0150   30P    -20200.6      0.3                            2.498  m 0.004  1+            01           B+=100
-030 0160   30S    -14063        3                              1.178  s 0.005  0+            01           B+=100
+030 0160   30S    -14059.0        3                              1.178  s 0.005  0+            01           B+=100
 030 0170   30Cl     4440#     200#                           <30     ns        3+#           01 93Po.Ai   p ?
 030 0180   30Ar    20080#     300#                           <20     ns        0+               93Po.Ai   2p ?
 031 0090   31F     56290#     600#                             1#    ms >260ns 5/2+#            99Sa06i   B- ?;B-n ?
@@ -209,7 +209,7 @@
 031 0130   31Al   -14954       20                            644     ms 25     (5/2,3/2)+    01           B-=100;B-n<1.6
 031 0140   31Si   -22949.01     0.04                         157.3    m 0.3    3/2+          01           B-=100
 031 0150   31P    -24440.88     0.18                         stbl              1/2+          01           IS=100.
-031 0160   31S    -19044.6      1.5                            2.572  s 0.013  1/2+          01           B+=100
+031 0160   31S    -19042.52      1.5                            2.572  s 0.013  1/2+          01           B+=100
 031 0170   31Cl    -7070       50                            150     ms 25     3/2+          01 85Ay02d   B+=100;B+p=0.7
 031 0180   31Ar    11290#     210#                            14.4   ms 0.6    5/2(+#)       01 00Fy01t   B+=100;B+p=63 7;B+2p=7.2 11;B+3p<1.4;B+pA<0.38;B+A<0.03
 032 0100   32Ne    37280#     800#                             3.5   ms 0.9    0+            01           B-=100;B-n ?
@@ -245,7 +245,7 @@
 034 0160   34S    -29931.79     0.11                         stbl              0+            01           IS=4.29 28
 034 0170   34Cl   -24439.78     0.18                           1.5264 s 0.0014 0+            01           B+=100
 034 0171   34Clm  -24293.42     0.18    146.36    0.03        32.00   m 0.04   3+            01           B+=55.4 6;IT=44.6 6
-034 0180   34Ar   -18377.2      0.4                          845     ms 3      0+            01           B+=100
+034 0180   34Ar   -18378.2      0.4                          845     ms 3      0+            01           B+=100
 034 0190   34K     -1480#     300#                           <40     ns        1+#           01 93Po.Ai   p ?
 034 0200   34Ca    13150#     300#                           <35     ns        0+            01 93Po.Ai   2p ?
 035 0110   35Na    39580#     950#                             1.5   ms 0.5    3/2+#         01           B-=100;B-n=?
@@ -299,7 +299,7 @@
 039 0130   39Al    21400     1470                             10#    ms >200ns 3/2+#         01 89Gu03i   B- ?
 039 0140   39Si     1930      340                             90#    ms >1us   7/2-#         01 90Au.Ai   B- ?
 039 0150   39P    -12870      100                            190     ms 50     1/2+#         01 95Re.Atd  B-=100;B-n=26 8
-039 0160   39S    -23160       50                             11.5    s 0.5    (3/2,5/2,7/2)-01           B-=100
+039 0160   39S    -23162       50                             11.5    s 0.5    (3/2,5/2,7/2)-01           B-=100
 039 0170   39Cl   -29800.2      1.7                           55.6    m 0.2    3/2+          01           B-=100
 039 0180   39Ar   -33242        5                            269      y 3      7/2-          01           B-=100
 039 0190   39K    -33807.01     0.19                         stbl              3/2+          01           IS=93.2581 44
@@ -310,7 +310,7 @@
 040 0130   40Al    29300#     700#                            10#    ms >260ns               02 97Sa14i   B- ?;B-n ?
 040 0140   40Si     5470      560                             20#    ms >200ns 0+            02 89Gu03i   B- ?;B-n ?
 040 0150   40P     -8110      140                            153     ms 8      (2-,3-)       02           B-=100;B-n=15.8 21
-040 0160   40S    -22870      140                              8.8    s 2.2    0+            02           B-=100
+040 0160   40S    -22837      140                              8.8    s 2.2    0+            02           B-=100
 040 0170   40Cl   -27560       30                              1.35   m 0.02   2-            02           B-=100
 040 0180   40Ar   -35039.8960   0.0027                       stbl              0+            02           IS=99.6003 30
 040 0190   40K    -33535.20     0.19                           1.251 Gy 0.011  4-            02           IS=0.0117 1;B-=89.28 13;B+=10.72 13
@@ -322,7 +322,7 @@
 041 0130   41Al    35700#     800#                             2#    ms >260ns 3/2+#         02 97Sa14i   B- ?
 041 0140   41Si    13560     1840                             30#    ms >200ns 7/2-#         02 89Gu03i   B- ?
 041 0150   41P     -5280      220                            150     ms 15     1/2+#         02           B-=100;B-n=30 10
-041 0160   41S    -19020      120                              1.99   s 0.05   7/2-#         02           B-=100;B-n ?
+041 0160   41S    -19008      120                              1.99   s 0.05   7/2-#         02           B-=100;B-n ?
 041 0170   41Cl   -27310       70                             38.4    s 0.8    (1/2+,3/2+)   02           B-=100
 041 0180   41Ar   -33067.5      0.3                          109.61   m 0.04   7/2-          02           B-=100
 041 0190   41K    -35559.07     0.19                         stbl              3/2+          02           IS=6.7302 44
@@ -334,7 +334,7 @@
 042 0130   42Al    43680#     900#                             1#    ms                                   B- ?;B-n ?
 042 0140   42Si    18430#     500#                             5#    ms >200ns 0+            01 90Le03i   B- ?;B-n ?
 042 0150   42P       940      450                            120     ms 30                   01 89Le16t   B-=100;B-n=50 20
-042 0160   42S    -17680      120                              1.013  s 0.015  0+            01           B-=100;B-n<4
+042 0160   42S    -17637      120                              1.013  s 0.015  0+            01           B-=100;B-n<4
 042 0170   42Cl   -24910      140                              6.8    s 0.3                  01           B-=100
 042 0180   42Ar   -34423        6                             32.9    y 1.1    0+            01           B-=100
 042 0190   42K    -35021.56     0.22                          12.360  h 0.012  2-            01           B-=100
@@ -347,7 +347,7 @@
 042 0240   42Cr     5990#     300#                            14     ms 3      0+            01 01Gi01td  B+~100;B+p=?;2p ?
 043 0140   43Si    26700#     700#                            15#    ms >260ns 3/2-#            02No11i   B- ?;B-n ?
 043 0150   43P      5770      970                             33     ms 3      1/2+#         01           B-=100;B-n=100
-043 0160   43S    -11970      200                            260     ms 15     3/2-#         01 98Wi.At   B-=100;B-n=40 10
+043 0160   43S    -12195      200                            260     ms 15     3/2-#         01 98Wi.At   B-=100;B-n=40 10
 043 0161   43Sxm  -11650      200       319       5          480     ns 50     (7/2-)        01 00Sa21ej  IT=100
 043 0170   43Cl   -24170      160                              3.07   s 0.07   3/2+#         01           B-=100;B-n ?
 043 0180   43Ar   -32010        5                              5.37   m 0.06   (5/2-)        01           B-=100
@@ -362,7 +362,7 @@
 043 0240   43Cr    -2130#     220#                            21.6   ms 0.7    (3/2+)        01           B+=100;B+p=23 6;B+2p=6 5;B+A ?
 044 0140   44Si    32840#     800#                            10#    ms        0+                         B- ?;B-n ?
 044 0150   44P     12100#     700#                            30#    ms >200ns               99 89Gu03i   B- ?
-044 0160   44S     -9120      390                            123     ms 10     0+            99           B-=100;B-n=18 3
+044 0160   44S     -9204      390                            123     ms 10     0+            99           B-=100;B-n=18 3
 044 0170   44Cl   -20230      110                            560     ms 110                  99           B-=100;B-n<8
 044 0180   44Ar   -32673.1      1.6                           11.87   m 0.05   0+            99           B-=100
 044 0190   44K    -35810       40                             22.13   m 0.19   2-            99           B-=100
@@ -377,7 +377,7 @@
 044 0240   44Cr   -13460#      50#                            54     ms 4      0+            99 96Fa09d   B+=100;B+p=7 3
 044 0250   44Mn     6400#     500#                          <105     ns        2-#           99           p ?
 045 0150   45P     17900#     800#                             8#    ms >200ns 1/2+#         93 90Le03i   B- ?
-045 0160   45S     -3250     1740                             82     ms 13     3/2-#         97           B-=100;B-n=54
+045 0160   45S     -3989     1740                             82     ms 13     3/2-#         97           B-=100;B-n=54
 045 0170   45Cl   -18360      120                            400     ms 40     3/2+#         95           B-=100;B-n=24 4
 045 0180   45Ar   -29770.6      0.5                           21.48   s 0.15   (1/2,3/2,5/2)-95           B-=100
 045 0190   45K    -36608       10                             17.3    m 0.6    3/2+          95           B-=100
@@ -393,7 +393,7 @@
 046 0150   46P     25500#     900#                             4#    ms >200ns               00 90Le03i   B- ?
 046 0160   46S       700#     700#                            30#    ms >200ns 0+            00 89Gu03i   B- ?
 046 0170   46Cl   -14710      720                            220     ms 40                   00           B-=100;B-n=60 9
-046 0180   46Ar   -29720       40                              8.4    s 0.6    0+            00           B-=100
+046 0180   46Ar   -29730.8       40                              8.4    s 0.6    0+            00           B-=100
 046 0190   46K    -35418       16                            105      s 10     2(-)          00 82To02j   B-=100
 046 0200   46Ca   -43135.1      2.3                          stbl       >100Ey 0+            00 99Be64t   IS=0.004 3;2B- ?
 046 0210   46Sc   -41757.1      0.8                           83.79   d 0.04   4+            00           B-=100
@@ -407,7 +407,7 @@
 046 0260   46Fe      760#     350#                             9     ms 4      0+            00 01Gi01td  B+=100;B+p=36 20
 047 0160   47S      8000#     800#                            20#    ms >200ns 3/2-#         95 89Gu03i   B- ?
 047 0170   47Cl   -10520#     600#                           200#    ms >200ns 3/2+#         95 89Gu03i   B-=100;B-n<3
-047 0180   47Ar   -25910      100                            580     ms 120    3/2-#         95 89Ba.Bt   B-=100;B-n<1
+047 0180   47Ar   -25211      100                            580     ms 120    3/2-#         95 89Ba.Bt   B-=100;B-n<1
 047 0190   47K    -35696        8                             17.50   s 0.24   1/2+          95           B-=100
 047 0200   47Ca   -42340.1      2.3                            4.536  d 0.003  7/2-          95           B-=100
 047 0210   47Sc   -44332.1      2.0                            3.3492 d 0.0006 7/2-          95           B-=100
@@ -421,7 +421,7 @@
 047 0270   47Co    10700#     500#                                             7/2-#                      p ?
 048 0160   48S     13200#     900#                            10#    ms >200ns 0+               90Le03i   B- ?
 048 0170   48Cl    -4700#     700#                           100#    ms >200ns                  89Gu03i   B- ?
-048 0180   48Ar   -23720#     300#                           500#    ms        0+                         B- ?
+048 0180   48Ar   -22280     300#                           500#    ms        0+                         B- ?
 048 0190   48K    -32124       24                              6.8    s 0.2    (2-)          95           B-=100;B-n=1.14 15
 048 0200   48Ca   -44214        4                             53     Ey 17     0+            95 00Br63t   IS=0.187 21;2B-=?;B- ?
 048 0210   48Sc   -44496        5                             43.67   h 0.09   6+            95           B-=100
@@ -434,7 +434,7 @@
 048 0280   48Ni    18400#     500#                            10#    ms >500ns 0+            01 00Bl01i   2p ?
 049 0160   49S     22000#     950#                          <200     ns        3/2-#         97 90Le03i   n ?
 049 0170   49Cl      300#     800#                            50#    ms >200ns 3/2+#         95 89Gu03i   B- ?
-049 0180   49Ar   -18150#     500#                           170     ms 50     3/2-#         95 03We09td  B-=100;B-n=65 20
+049 0180   49Ar   -17800     500#                           170     ms 50     3/2-#         95 03We09td  B-=100;B-n=65 20
 049 0190   49K    -30320       70                              1.26   s 0.05   (3/2+)        95           B-=100;B-n=86 9
 049 0200   49Ca   -41289        4                              8.718  m 0.006  3/2-          95           B-=100
 049 0210   49Sc   -46552        4                             57.2    m 0.2    7/2-          95           B-=100
@@ -442,7 +442,7 @@
 049 0230   49V    -47956.9      1.2                          330      d 15     7/2-          95           EC=100
 049 0240   49Cr   -45330.5      2.4                           42.3    m 0.1    5/2-          95           B+=100
 049 0250   49Mn   -37616       24                            382     ms 7      5/2-          01           B+=100
-049 0260   49Fe   -24580#     150#                            70     ms 3      (7/2-)        01 96Fa09j   B+=100;B+p=52 10
+049 0260   49Fe   -24750     150#                            70     ms 3      (7/2-)        01 96Fa09j   B+=100;B+p=52 10
 049 0270   49Co    -9580#     260#                           <35     ns        7/2-#         97 94Bl10i   p ?
 049 0280   49Ni     9000#     400#                            13     ms 4      7/2-#         97 01Gi01td  B+=100;B+p=?
 050 0170   50Cl     7300#     900#                            20#    ms                                   B- ?
@@ -456,7 +456,7 @@
 050 0240   50Cr   -50259.5      1.0                          stbl       >1.3Ey 0+            95 03Bi05t   IS=4.345 13;2B+ ?
 050 0250   50Mn   -42626.8      1.0                          283.9   ms 0.5    0+            95           B+=100
 050 0251   50Mnm  -42398        7       229       7            1.75   m 0.03   5+            95           B+=100
-050 0260   50Fe   -34480       60                            155     ms 11     0+            01           B+=100;B+p~0
+050 0260   50Fe   -34488       60                            155     ms 11     0+            01           B+=100;B+p~0
 050 0270   50Co   -17200#     170#                            44     ms 4      (6+)          01 96Fa09jd  B+=100;B+p=54 12
 050 0280   50Ni    -3790#     260#                             9.1   ms 1.8    0+            97 01Ma.At   B+ ?
 051 0170   51Cl    13500#    1000#                             2#    ms >200ns 3/2+#         97 90Le03i   B- ?
@@ -468,14 +468,14 @@
 051 0230   51V    -52201.4      1.0                          stbl              7/2-          97           IS=99.750 4
 051 0240   51Cr   -51448.8      1.0                           27.7025 d 0.0024 7/2-          97           EC=100
 051 0250   51Mn   -48241.3      1.0                           46.2    m 0.1    5/2-          97           B+=100
-051 0260   51Fe   -40222       15                            305     ms 5      5/2-          97           B+=100
+051 0260   51Fe   -40202       15                            305     ms 5      5/2-          97           B+=100
 051 0270   51Co   -27270#     150#                            60#    ms >200ns 7/2-#         97 87Po04i   B+ ?
 051 0280   51Ni   -11440#     260#                            30#    ms >200ns 7/2-#         97 87Po04i   B+ ?
 052 0180   52Ar    -3000#     900#                            10#    ms        0+            00           B- ?
 052 0190   52K    -16200#     700#                           105     ms 5      2-#           00 ABBW  d   B-=100;B-n~64;B-2n~21
 052 0200   52Ca   -32510      700                              4.6    s 0.3    0+            00           B-=100;B-n<2
 052 0210   52Sc   -40360      190                              8.2    s 0.2    3(+)          00           B-=100
-052 0220   52Ti   -49465        7                              1.7    m 0.1    0+            00           B-=100
+052 0220   52Ti   -49468        7                              1.7    m 0.1    0+            00           B-=100
 052 0230   52V    -51441.3      1.0                            3.743  m 0.005  3+            00           B-=100
 052 0240   52Cr   -55416.9      0.8                          stbl              0+            00           IS=83.789 18
 052 0250   52Mn   -50705.4      2.0                            5.591  d 0.003  6+            00           B+=100
@@ -494,7 +494,7 @@
 053 0230   53V    -51849        3                              1.60   m 0.04   7/2-          99           B-=100
 053 0240   53Cr   -55284.7      0.8                          stbl              3/2-          99           IS=9.501 17
 053 0250   53Mn   -54687.9      0.8                            3.7   My 0.4    7/2-          99           EC=100
-053 0260   53Fe   -50945.3      1.8                            8.51   m 0.02   7/2-          99           B+=100
+053 0260   53Fe   -50946.3      1.8                            8.51   m 0.02   7/2-          99           B+=100
 053 0261   53Fem  -47904.9      1.8    3040.4     0.3          2.526  m 0.024  19/2-         99 97Ge11t   IT=100
 053 0270   53Co   -42645       18                            242     ms 8      7/2-#         99 02Lo13t   B+=100
 053 0271   53Com  -39447       22      3197      29     p    247     ms 12     (19/2-)       99           B+~98.5;p~1.5
@@ -509,7 +509,7 @@
 054 0231   54Vxm  -49783       15       108       3          900     ns 500    (5+)             98Gr14ej  IT=100
 054 0240   54Cr   -56932.5      0.8                          stbl              0+            01           IS=2.365 7
 054 0250   54Mn   -55555.4      1.3                          312.03   d 0.03   3+            01 02Un02t   EC=100;B-<2.9e-4;e+=1.28e-7 25
-054 0260   54Fe   -56252.5      0.7                          stbl              0+            01           IS=5.845 35;2B+ ?
+054 0260   54Fe   -56253.5      0.7                          stbl              0+            01           IS=5.845 35;2B+ ?
 054 0261   54Fem  -49725.6      0.9    6526.9     0.6        364     ns 7      10+           01           IT=100
 054 0270   54Co   -48009.5      0.7                          193.23  ms 0.14   0+            01           B+=100
 054 0271   54Com  -47812.1      0.9     197.4     0.5          1.48   m 0.02   (7)+          01           B+=100
@@ -523,7 +523,7 @@
 055 0230   55V    -49150      100                              6.54   s 0.15   7/2-#         01           B-=100
 055 0240   55Cr   -55107.5      0.8                            3.497  m 0.003  3/2-          01           B-=100
 055 0250   55Mn   -57710.6      0.7                          stbl              5/2-          01           IS=100.
-055 0260   55Fe   -57479.4      0.7                            2.737  y 0.011  3/2-          01           EC=100
+055 0260   55Fe   -57480.4      0.7                            2.737  y 0.011  3/2-          01           EC=100
 055 0270   55Co   -54027.6      0.7                           17.53   h 0.03   7/2-          01           B+=100
 055 0280   55Ni   -45336       11                            204.7   ms 1.7    7/2-          01 02Lo13t   B+=100
 055 0290   55Cu   -31620#     300#                            40#    ms >200ns 3/2-#         01 87Po04i   B+ ?;p ?
@@ -534,7 +534,7 @@
 056 0230   56V    -46080      200                            216     ms 4      (1+)          99 03Ma02tj  B-=100;B-n ?
 056 0240   56Cr   -55281.2      1.9                            5.94   m 0.10   0+            99           B-=100
 056 0250   56Mn   -56909.7      0.7                            2.5789 h 0.0001 3+            99           B-=100
-056 0260   56Fe   -60605.4      0.7                          stbl              0+            99           IS=91.754 36
+056 0260   56Fe   -60606.4      0.7                          stbl              0+            99           IS=91.754 36
 056 0270   56Co   -56039.4      2.1                           77.23   d 0.03   4+            99           B+=100
 056 0280   56Ni   -53904       11                              6.075  d 0.010  0+            99           B+=100
 056 0290   56Cu   -38600#     140#                            93     ms 3      (4+)          99 01Bo54tjd B+=100;B+p=0.40 12
diff --git a/NPLib/scripts/Style_nptool.C b/NPLib/scripts/Style_nptool.C
index d6960b6cd055cd40953d747050db441dd5c49c13..2ab7df15ed77879aa6af30fc1af7f194b720d8f0 100644
--- a/NPLib/scripts/Style_nptool.C
+++ b/NPLib/scripts/Style_nptool.C
@@ -9,25 +9,25 @@ void Style_nptool(){
   TStyle* style_nptool = new TStyle("nptool", "style_nptool");
 
   //General 
-  style_nptool->SetFrameFillColor(kWhite);	
-  style_nptool->SetFrameBorderMode(0);	
+  style_nptool->SetFrameFillColor(kWhite);
+  style_nptool->SetFrameBorderMode(0);
   style_nptool->SetFrameLineColor(kBlack);
   style_nptool->SetStatColor(kWhite);	
   style_nptool->SetFillColor(kWhite); 
-  style_nptool->SetTitleFillColor(kWhite);  
+  style_nptool->SetTitleFillColor(kWhite);
 
   // Canvas
-  style_nptool->SetCanvasColor(kWhite);	
+  style_nptool->SetCanvasColor(kWhite);
   style_nptool->SetCanvasDefH(800);
   style_nptool->SetCanvasDefW(800);
-  style_nptool->SetCanvasBorderMode(0);	
+  style_nptool->SetCanvasBorderMode(0);
 
   // Pad
   style_nptool->SetPadBottomMargin(0.15);
   style_nptool->SetPadLeftMargin(0.15);
   style_nptool->SetPadTopMargin(0.05);
   style_nptool->SetPadRightMargin(0.10);
-  style_nptool->SetPadBorderMode(0);	
+  style_nptool->SetPadBorderMode(0);
   style_nptool->SetPadBorderSize(1);
   style_nptool->SetPadColor(kWhite);		
   style_nptool->SetPadTickX(1);
@@ -35,19 +35,25 @@ void Style_nptool(){
 
   // Desable stat title and fit  
   style_nptool->SetOptStat(0);
-  style_nptool->SetOptTitle(0);
-  style_nptool->SetOptFit(0);		
+  //style_nptool->SetOptTitle(0);
+  //style_nptool->SetOptFit(0);
 
   // x axis
-  style_nptool->SetTitleXSize(0.06);     
+  style_nptool->SetTitleXSize(0.06);
   style_nptool->SetTitleXOffset(1.0);     
   style_nptool->SetLabelOffset(0.1,"X");   
   style_nptool->SetLabelSize(0.04,"X");
   style_nptool->SetLabelOffset(0.006,"X");
+    
+    /*style_nptool->SetTitleBorderSize(0);
+    style_nptool->SetTitleX(0.1f);
+    style_nptool->SetTitleW(0.8f);
+    style_nptool->SetTitleAlign(3);*/
 
   // y axis
+    //style_nptool->GetYaxis()->CenterTitle();
   style_nptool->SetTitleYSize(0.06);  
-  style_nptool->SetTitleYOffset(1.1);  
+  style_nptool->SetTitleYOffset(1.1);
   style_nptool->SetLabelOffset(0.1,"Y");
   style_nptool->SetLabelSize(0.04,"Y");
   style_nptool->SetLabelOffset(0.006,"Y");