diff --git a/Inputs/DetectorConfiguration/hira.detector b/Inputs/DetectorConfiguration/hira.detector
index 09b869fb7116a3347c0caeb8c6726a8e81ccc7b0..0420a979eb3256413e3d08bc8be9064e2948a289 100755
--- a/Inputs/DetectorConfiguration/hira.detector
+++ b/Inputs/DetectorConfiguration/hira.detector
@@ -9,7 +9,7 @@ GeneralTarget
 Target
 	THICKNESS= 45
   ANGLE= 0
-	RADIUS=	15
+	RADIUS=	10
 	MATERIAL= CH2
 	X= 0
 	Y= 0
diff --git a/NPAnalysis/Hira/Analysis b/NPAnalysis/Hira/Analysis
index 276ccdd7d66539d5c152646f617309d7e4f19c40..a1eda041f6342c1023f4cda8ff998fcfc8212266 100755
Binary files a/NPAnalysis/Hira/Analysis and b/NPAnalysis/Hira/Analysis differ
diff --git a/NPAnalysis/Hira/Analysis.cxx b/NPAnalysis/Hira/Analysis.cxx
index 3416df30edbc3edb676fa8fde72518703dca0e28..20889f2d5abdd4687eb37e6955bc12039de3e65b 100644
--- a/NPAnalysis/Hira/Analysis.cxx
+++ b/NPAnalysis/Hira/Analysis.cxx
@@ -107,20 +107,20 @@ int main(int argc, char** argv)
                
                TVector3 PositionOnHira         = TVector3(X,Y,Z);
                TVector3 ZUnit                  = TVector3(0,0,1);
-               //TVector3 TelescopeNormal      = -Must2->GetTelescopeNormal(countHira);
-               //TVector3 TargetNormal         = TVector3(-sin(TargetAngle*deg),0,cos(TargetAngle*deg));
+               //TVector3 TelescopeNormal      = -Hira->GetTelescopeNormal(countHira);
+               TVector3 TargetNormal            = TVector3(0,0,1);//TVector3(-sin(TargetAngle*deg),0,cos(TargetAngle*deg));
                
                double X_target					= InitialConditions->GetIncidentPositionX();
                double Y_target					= InitialConditions->GetIncidentPositionY();
                double Z_target					= InitialConditions->GetIncidentPositionZ();
                
-               //TVector3 PositionOnTarget		= TVector3(X_target,Y_target,Z_target);
-               TVector3 PositionOnTarget		= TVector3(0,0,0);
+               TVector3 PositionOnTarget		= TVector3(X_target,Y_target,Z_target);
+               //TVector3 PositionOnTarget		= TVector3(0,0,0);
                TVector3 HitDirection			= PositionOnHira - PositionOnTarget;
                TVector3 HitDirectionUnit		= HitDirection.Unit();
                
                //double ThetaNormalHira			= HitDirection.Angle(TelescopeNormal);
-               //double ThetaNormalTarget		= HitDirection.Angle(TargetNormal);
+               double ThetaNormalTarget         = HitDirection.Angle(TargetNormal);
                
                //double ThetaBeam				= InitialConditions->GetICIncidentAngleTheta(countHira);
                //double PhiBeam					= InitialConditions->GetICIncidentAnglePhi(countHira);
@@ -145,19 +145,22 @@ int main(int argc, char** argv)
                    for(int countCsI =0; countCsI<Hira->CsI_E.size(); countCsI++){
                        E_CsI = Hira->CsI_E[countCsI];
                        if(E_CsI>EnergyThreshold)ELab += E_CsI;
-                       //if(E_CsI>EnergyThreshold) ELab = E_ThinSi + E_ThickSi + E_CsI;
                    }
                }
-               //else ELab = -1000;
+               else E_CsI = -1000;
+               
+               ELab	= EL_deuteron_CH2.EvaluateInitialEnergy(ELab,
+                                                            (TargetThickness/2)*micrometer,
+                                                            ThetaNormalTarget);
+
             
                // ********************** Angle in the CM frame *****************************
                TransfertReaction -> SetNuclei3(ELab, ThetaLab*deg);
                ThetaCM          = TransfertReaction->GetThetaCM()/deg;
                ExcitationEnergy	= TransfertReaction->GetExcitation4();
-               
-               RootOutput::getInstance()->GetTree()->Fill();
            }
        }
+       RootOutput::getInstance()->GetTree()->Fill();
     }
 
    cout << "A total of " << nentries << " event has been annalysed " << endl ;
diff --git a/NPAnalysis/Hira/Analysis.h b/NPAnalysis/Hira/Analysis.h
index b9ff62b5316a414db4b60458a2b9e4ebdc7f02e0..544b4424344bed22bde358b4e24a3fb2c0f4c84e 100644
--- a/NPAnalysis/Hira/Analysis.h
+++ b/NPAnalysis/Hira/Analysis.h
@@ -124,8 +124,9 @@ using namespace NPL ;
 namespace ENERGYLOSS
 	{
 	
+            EnergyLoss EL_deuteron_CH2 =  EnergyLoss("deuteron_CH2.G4table","G4Table",100 );
 		//	Declare your Energy loss here	:
-	/*		EnergyLoss ProtonTarget = EnergyLoss 	(	"CD2.txt" 	,
+	/*		EnergyLoss DeuerontTarget = EnergyLoss 	(	"CD2.txt" 	,
 														100 		,
 														1,
 														1			);
diff --git a/NPAnalysis/Hira/Analysis.o b/NPAnalysis/Hira/Analysis.o
index 3092ec6b048c0a7096d829ba14213ee9cd6d35a4..23bcb614e32cd6d9b95ed2fc3a516c031d442eb5 100644
Binary files a/NPAnalysis/Hira/Analysis.o and b/NPAnalysis/Hira/Analysis.o differ
diff --git a/NPAnalysis/Hira/Show.C b/NPAnalysis/Hira/Show.C
index 4b1106049dec09ed6b61d64df55025465fc33202..68361983baba7305f80f0c4bbc15e8d48b70943e 100644
--- a/NPAnalysis/Hira/Show.C
+++ b/NPAnalysis/Hira/Show.C
@@ -1,17 +1,36 @@
 void InitChain();
+void LoadCut();
+
 TChain *chain;
 TGraph *kin;
 
+int nentries;
+
+TCutG *cut_kine;
+
+
 void Show()
 {
     gStyle->SetOptStat(0);
     InitChain();
+    LoadCut();
+    
+    nentries = chain->GetEntries();
+    
+    //**************** Condition ****************//
+    TString CondCut = "cut_kine";
+    TString CondTot = CondCut;//+"&&"+
+    //*******************************************//
     
     TCanvas* mainC0  = new TCanvas("Hira XY", "Hira XY" , 800,600);
-    TCanvas* mainC1  = new TCanvas("PID", "PID" , 800,600);
+    TCanvas* mainC1  = new TCanvas("PID", "PID" , 1200,600);
     TCanvas* mainC2  = new TCanvas("Kinematics", "Kinematics" , 800,600);
     TCanvas* mainC3  = new TCanvas("Phi-Theta", "Phi-Theta" , 800,600);
     TCanvas* mainC4  = new TCanvas("BeamSpot", "BeamSpot" , 800,600);
+    TCanvas* mainC5  = new TCanvas("ThetaCM", "ThetaCM" , 800,600);
+    TCanvas* mainC6  = new TCanvas("Efficiency", "Efficiency" , 800,600);
+    TCanvas* mainC7  = new TCanvas("CrossSection","CrossSection",800,600);
+    mainC1->Divide(2,1);
 
     mainC0->cd();
     chain->Draw("Y:X>>h0(300,-300,300,200,-200,200)","","colz");
@@ -20,12 +39,21 @@ void Show()
     h0->GetYaxis()->SetTitle("Y (mm)");
     h0->SetTitle("");
     
-    mainC1->cd();
+    
+    mainC1->cd(1);
     chain->Draw("E_ThickSi:E_CsI>>h1(1000,0,200,1000,0,25)","","colz");
     TH2F* h1 = (TH2F*)gDirectory->FindObjectAny("h1");
     h1->GetXaxis()->SetTitle("E_{CsI} (MeV)");
     h1->GetYaxis()->SetTitle("E_{Si} (MeV)");
     h1->SetTitle("");
+
+    mainC1->cd(2);
+    chain->Draw("E_ThinSi:E_ThickSi>>h12(1000,0,25,1000,0,5)","","colz");
+    TH2F* h12 = (TH2F*)gDirectory->FindObjectAny("h12");
+    h12->GetXaxis()->SetTitle("E_{Si} (MeV)");
+    h12->GetYaxis()->SetTitle("#Delta E (MeV)");
+    h12->SetTitle("");
+
     
     mainC2->cd();
     chain->Draw("ELab:ThetaLab>>h2(1000,0,50,1000,0,200)","","colz");
@@ -55,6 +83,32 @@ void Show()
     h4->GetXaxis()->SetTitle("X_{beam} (mm)");
     h4->GetYaxis()->SetTitle("Y_{beam} (mm)");
     h4->SetTitle("");
+    
+    mainC5->cd();
+    chain->Draw("ThetaCM>>h5(25,0,100)",CondTot,"E1");
+    TH1F* h5 = (TH1F*)gDirectory->FindObjectAny("h5");
+    h5->GetXaxis()->SetTitle("#theta_{CM} (deg)");
+    h5->SetTitle("");
+    
+    
+    //Efficiency calculation
+    mainC6->cd();
+    TH1F *Efficiency = new TH1F("Efficiency", "Efficiency", 25, 0, 100);
+    Efficiency->SetXTitle("#theta_{CM}");
+    Efficiency->SetTitle("Efficiency");
+    Efficiency->Add(h5,4*TMath::Pi()/nentries);
+    Efficiency->Draw();
+    
+    // Cross-Section
+    mainC7->cd();
+    mainC7->SetLogy();
+    TH1F *h7 = new TH1F("h7", "h7", 25, 0, 100);
+    h7->SetXTitle("#theta_{CM}");
+    h7->SetYTitle("d#sigma/d#Omega (mb/sr)");
+    h7->SetTitle("");
+    h7->Divide(h5,Efficiency,1,nentries/(4*TMath::Pi()));//262000
+    h7->Draw();
+
 
     return;
 }
@@ -69,4 +123,26 @@ void InitChain()
     chain->Add("/Users/pierremorfouace/Physics/NPTool/nptool/Outputs/Analysis/46Ar_pd.root");
     
     return;
-}
\ No newline at end of file
+}
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+void LoadCut()
+{
+    TString Cut_Name = "CUT/cut_kine.root";
+    TString Object_Name = "cut_kine";
+    TFile* f_cut_kine = new TFile(Cut_Name,"read");
+    cut_kine = (TCutG*) f_cut_kine->FindObjectAny(Object_Name);
+    
+    return;
+}
+
+
+
+
+
+
+
+
+
diff --git a/NPSimulation/Hira/Hira.hh b/NPSimulation/Hira/Hira.hh
index f2a0e2b897a2787256475f982b8bf8cd28a0a30e..f049bbe9f6f00d0cac8a8b4a55803001e6e1196f 100644
--- a/NPSimulation/Hira/Hira.hh
+++ b/NPSimulation/Hira/Hira.hh
@@ -47,10 +47,10 @@ namespace HIRA
 {
 	
 	// Resolution
-	const G4double ResoTime		= 0.212765957    ;// = 500ps                 //   Unit is  ns/2.35
-	const G4double ResoCsI      	= 0.106           ;// = 250 kev of resolution //   Unit is MeV/2.35
-	const G4double ResoThickSi  	= 0.051          ;// = 120keV of Resolution   //   Unit is MeV/2.35
-	const G4double ResoThinSi	= 0.034          ;// = 80keV of Resolution   //   Unit is MeV/2.35
+    const G4double ResoTime         = 0.212765957;      // = 500ps                 //   Unit is  ns/2.35
+    const G4double ResoCsI      	= 0.200/2.35;       // = 250 kev of resolution //   Unit is MeV/2.35
+    const G4double ResoThickSi  	= 0.065/2.35;       // = 120keV of Resolution   //   Unit is MeV/2.35
+    const G4double ResoThinSi       = 0.050/2.35;       // = 80keV of Resolution   //   Unit is MeV/2.35
 	
     const G4double EnergyThreshold = 0.;//100*keV;
 	
@@ -59,7 +59,7 @@ namespace HIRA
 	const G4double Length		= 7.*cm ;
 	const G4int NumberOfStrip	= 32;
 	
-	const G4double SiliconFace       = 64*mm ;
+	const G4double SiliconFace       = 63*mm ;
 	const G4double AluStripThickness = 0.4*micrometer ;
 	const G4double ThinSiThickness	 = 65*micrometer ;
 	const G4double ThickSiThickness	 = 1500*micrometer ;
@@ -68,10 +68,10 @@ namespace HIRA
 	const G4double MylarCsIThickness = 3*micrometer;
     const G4double CsIThickness      = 4.*cm;// + 2*MylarCsIThickness ;
     
-    const G4double CsIXFront         = 32.*mm;
+    const G4double CsIXFront         = 33.*mm;
     const G4double CsIXBack          = 37.*mm;
-    const G4double CsIYFront         = 32.*mm;
-    const G4double CsIYBack          = 32.*mm;
+    const G4double CsIYFront         = 33.*mm;
+    const G4double CsIYBack          = 33.*mm;
     const G4double DistInterCsI      = 0.01*mm;
     
 	const G4double ClusterFaceFront  = 7*cm;