diff --git a/Inputs/DetectorConfiguration/S1554.detector b/Inputs/DetectorConfiguration/S1554.detector
new file mode 100644
index 0000000000000000000000000000000000000000..cba870dd24bcaae47aa4156cd36d591e14e8540c
--- /dev/null
+++ b/Inputs/DetectorConfiguration/S1554.detector
@@ -0,0 +1,156 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%0.2mg/cm2
+Target
+	THICKNESS= 9 
+	RADIUS=	5
+	MATERIAL= CD2
+	ANGLE= 0
+	X= 0
+	Y= 0
+	Z= 0
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Sharc
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %Upstream CD
+  SharcQQQ
+    Z= -71
+    R= 0
+    Phi= 0
+    ThicknessDector= 500
+  SharcQQQ
+    Z= -71
+    R= 0
+    Phi= 90
+    ThicknessDector= 500
+  SharcQQQ
+    Z= -71
+    R= 0
+    Phi= 180
+    ThicknessDector= 500
+  SharcQQQ
+    Z= -71
+    R= 0
+    Phi= 270
+    ThicknessDector= 500
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Upstream Box
+  SharcBOX
+    Z= -28.4
+    ThicknessDector1= 500
+    ThicknessDector2= 500
+    ThicknessDector3= 500
+    ThicknessDector4= 500
+    ThicknessPAD1= 0
+    ThicknessPAD2= 0
+    ThicknessPAD3= 0
+    ThicknessPAD4= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Down Stream Box
+  SharcBOX
+    Z= 31.4
+    ThicknessDector1= 140
+    ThicknessDector2= 140
+    ThicknessDector3= 140
+    ThicknessDector4= 140
+    ThicknessPAD1= 1500
+    ThicknessPAD2= 1500
+    ThicknessPAD3= 1500
+    ThicknessPAD4= 1500
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Downstream CD
+  SharcQQQ
+    Z= 67
+    R= 0
+    Phi= 0
+    ThicknessDector= 500
+  SharcQQQ
+    Z= 67
+    R= 0
+    Phi= 90
+    ThicknessDector= 500
+  SharcQQQ
+    Z= 67
+    R= 0
+    Phi= 180
+    ThicknessDector= 500
+  SharcQQQ
+    Z= 67
+    R= 0
+    Phi= 270
+    ThicknessDector= 500
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%		
+%Tigress Array
+Tigress
+%%%%%%%%%%%%%%%%%%%%
+%Corona(90) Ring
+%%%%%%%%%%%%%%%%%%%%
+TigressClover
+    CloverId= 5
+    R= 145
+    Phi= 22.5
+    Theta= 90
+TigressClover
+    CloverId= 6
+    R= 145 
+    Phi= 67.5
+    Theta= 90
+TigressClover
+    CloverId= 7
+    R= 145 
+    Phi= 112.5
+    Theta= 90
+TigressClover
+    CloverId= 8
+    R= 145 
+    Phi= 157.5
+    Theta= 90
+TigressClover
+    CloverId= 9
+    R= 145 
+    Phi= 202.5
+    Theta= 90
+TigressClover
+    CloverId= 10
+    R= 145 
+    Phi= 247.5
+    Theta= 90
+TigressClover
+    CloverId= 11
+    R= 145 
+    Phi= 292.5
+    Theta= 90
+TigressClover
+    CloverId= 12
+    R= 145 
+    Phi= 337.5
+    Theta= 90
+%%%%%%%%%%%%%%%%%%%%
+%Backwards(145) Ring
+%%%%%%%%%%%%%%%%%%%%
+TigressClover
+    CloverId= 13
+    R= 145 
+    Phi= 22.5
+    Theta= 135
+TigressClover
+    CloverId= 14
+    R= 145 
+    Phi= 112.5
+    Theta= 135
+TigressClover
+    CloverId= 15
+    R= 145 
+    Phi= 202.5
+    Theta= 135
+TigressClover
+    CloverId= 16
+    R= 145 
+    Phi= 292.5
+    Theta= 135
+%%%%%%%%%%%%%%%%%%%%
+Trifoil
diff --git a/Inputs/DetectorConfiguration/Sharc.detector b/Inputs/DetectorConfiguration/Sharc.detector
index 5f4dbff2d3f6bcca31bc921d48d69a08807081fa..3bf7193ed3366e88119da2de1b785d9aba308d20 100644
--- a/Inputs/DetectorConfiguration/Sharc.detector
+++ b/Inputs/DetectorConfiguration/Sharc.detector
@@ -4,7 +4,7 @@ GeneralTarget
 
 %0.2mg/cm2
 Target
-	THICKNESS= 4.8
+	THICKNESS= 9
 	RADIUS=	5
 	MATERIAL= CD2
 	ANGLE= 0
@@ -82,4 +82,15 @@ Sharc
     R= 0
     Phi= 270
     ThicknessDector= 500
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Plastic
+	X= 0
+	Y= 0
+	Z= 400
+	Thickness= 0.025
+	Shape= Square
+	Height= 40
+	Width= 40
+	Scintillator= BC400
+	LeadThickness= 0.09
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/EventGenerator/28Mgdp.reaction b/Inputs/EventGenerator/28Mgdp.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..0b311d9874da47c46879110de8fee3f6ae1cd00e
--- /dev/null
+++ b/Inputs/EventGenerator/28Mgdp.reaction
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%% S1107 at Triumf %%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Beam
+  Particle= 28Mg
+  ExcitationEnergy= 0
+  Energy= 224
+  SigmaEnergy= 0.448
+  SigmaThetaX= 0.01 
+  SigmaPhiY= 0.01
+  SigmaX= 0.5
+  SigmaY= 0.5
+  MeanThetaX= 0
+  MeanPhiY= 0
+  MeanX= 0
+  MeanY= 0
+  %EnergyProfilePath=
+  %XThetaXProfilePath=
+  %YPhiYProfilePath=
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TwoBodyReaction
+	Beam= 28Mg
+	Target= 2H
+	Light= 1H
+	Heavy= 29Mg
+	ExcitationEnergyLight= 0.0
+	ExcitationEnergyHeavy= 5.0 
+  CrossSectionPath= 22.mg CSR
+	ShootLight= 1
+	ShootHeavy= 1
+  
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%GammaDecay 25Na
+  Cascade
+    BranchingRatio= 70
+    Energies= 2.2
+    DifferentialCrossSection= 11Li(d,3He)10He.txt	Gamma25Na
+  Cascade
+    BranchingRatio= 30
+    Energies= 1.0 1.2
diff --git a/Inputs/EventGenerator/30Pdp.reaction b/Inputs/EventGenerator/30Pdp.reaction
index 21711e4be4061d069148c9a02d09a4587bd94248..5dc8fbdbc30db63601beef6276d3a14858578ffd 100644
--- a/Inputs/EventGenerator/30Pdp.reaction
+++ b/Inputs/EventGenerator/30Pdp.reaction
@@ -1,5 +1,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%  Reaction file for 3He(25Al,d)26Al reaction  %%%%%%%%%
+%%%%%%%%%%%  Reaction file for 30P(d,p)31P reaction  %%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Beam
    Particle= 30P
@@ -21,7 +21,7 @@ TwoBodyReaction
 	Heavy= 31P
 	ExcitationEnergyHeavy= 6.3
 	ExcitationEnergyLight= 0.0
-   CrossSectionPath= flat.txt CS
+   CrossSectionPath= 30Pdp_6MeV_l=0 CS %flat.txt CS
 	ShootLight= 1
 	ShootHeavy= 0
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/NPAnalysis/S1554/22.si b/NPAnalysis/S1554/22.si
new file mode 100644
index 0000000000000000000000000000000000000000..6d9163232ef53b3d24e4ea05a7de3d449bfd5c33
--- /dev/null
+++ b/NPAnalysis/S1554/22.si
@@ -0,0 +1,181 @@
+   0.00   8.082999E+01
+   0.96   8.013461E+01
+   1.92   7.807824E+01
+   2.88   7.474845E+01
+   3.84   7.028513E+01
+   4.80   6.487207E+01
+   5.76   5.872597E+01
+   6.72   5.208399E+01
+   7.68   4.519057E+01
+   8.64   3.828463E+01
+   9.60   3.158781E+01
+  10.56   2.529468E+01
+  11.52   1.956526E+01
+  12.48   1.452010E+01
+  13.44   1.023819E+01
+  14.41   6.757372E+00
+  15.37   4.076943E+00
+  16.33   2.162190E+00
+  17.29   9.501766E-01
+  18.25   3.563639E-01
+  19.21   2.815332E-01
+  20.18   6.185614E-01
+  21.14   1.258682E+00
+  22.10   2.096945E+00
+  23.06   3.036686E+00
+  24.03   3.992911E+00
+  24.99   4.894570E+00
+  25.95   5.685780E+00
+  26.92   6.326100E+00
+  27.88   6.789981E+00
+  28.85   7.065583E+00
+  29.81   7.153095E+00
+  30.78   7.062749E+00
+  31.74   6.812668E+00
+  32.71   6.426687E+00
+  33.68   5.932258E+00
+  34.64   5.358531E+00
+  35.61   4.734672E+00
+  36.58   4.088454E+00
+  37.54   3.445147E+00
+  38.51   2.826715E+00
+  39.48   2.251286E+00
+  40.45   1.732889E+00
+  41.42   1.281428E+00
+  42.39   9.028334E-01
+  43.36   5.993811E-01
+  44.33   3.701125E-01
+  45.30   2.113377E-01
+  46.27   1.171760E-01
+  47.25   8.010797E-02
+  48.22   9.151219E-02
+  49.19   1.421664E-01
+  50.17   2.226974E-01
+  51.14   3.239696E-01
+  52.12   4.374054E-01
+  53.09   5.552348E-01
+  54.07   6.706767E-01
+  55.04   7.780529E-01
+  56.02   8.728439E-01
+  57.00   9.516905E-01
+  57.98   1.012351E+00
+  58.95   1.053624E+00
+  59.93   1.075241E+00
+  60.91   1.077740E+00
+  61.89   1.062333E+00
+  62.87   1.030760E+00
+  63.86   9.851529E-01
+  64.84   9.279005E-01
+  65.82   8.615252E-01
+  66.80   7.885734E-01
+  67.79   7.115213E-01
+  68.77   6.326960E-01
+  69.76   5.542144E-01
+  70.75   4.779374E-01
+  71.73   4.054407E-01
+  72.72   3.379991E-01
+  73.71   2.765836E-01
+  74.70   2.218697E-01
+  75.69   1.742540E-01
+  76.68   1.338789E-01
+  77.67   1.006615E-01
+  78.66   7.432630E-02
+  79.65   5.443989E-02
+  80.64   4.044575E-02
+  81.64   3.169825E-02
+  82.63   2.749481E-02
+  83.63   2.710534E-02
+  84.62   2.979840E-02
+  85.62   3.486372E-02
+  86.62   4.163078E-02
+  87.61   4.948352E-02
+  88.61   5.787110E-02
+  89.61   6.631512E-02
+  90.61   7.441344E-02
+  91.61   8.184095E-02
+  92.61   8.834787E-02
+  93.62   9.375581E-02
+  94.62   9.795218E-02
+  95.62   1.008834E-01
+  96.63   1.025469E-01
+  97.63   1.029835E-01
+  98.64   1.022685E-01
+  99.65   1.005040E-01
+ 100.65   9.781104E-02
+ 101.66   9.432246E-02
+ 102.67   9.017676E-02
+ 103.68   8.551262E-02
+ 104.69   8.046432E-02
+ 105.70   7.515820E-02
+ 106.71   6.971000E-02
+ 107.73   6.422301E-02
+ 108.74   5.878703E-02
+ 109.75   5.347803E-02
+ 110.77   4.835837E-02
+ 111.78   4.347747E-02
+ 112.80   3.887291E-02
+ 113.82   3.457166E-02
+ 114.83   3.059159E-02
+ 115.85   2.694294E-02
+ 116.87   2.362977E-02
+ 117.89   2.065139E-02
+ 118.91   1.800357E-02
+ 119.93   1.567961E-02
+ 120.95   1.367119E-02
+ 121.97   1.196908E-02
+ 123.00   1.056353E-02
+ 124.02   9.444573E-03
+ 125.04   8.602090E-03
+ 126.07   8.025798E-03
+ 127.10   7.705073E-03
+ 128.12   7.628729E-03
+ 129.15   7.784749E-03
+ 130.18   8.160007E-03
+ 131.20   8.740017E-03
+ 132.23   9.508727E-03
+ 133.26   1.044837E-02
+ 134.29   1.153943E-02
+ 135.32   1.276065E-02
+ 136.35   1.408918E-02
+ 137.38   1.550076E-02
+ 138.42   1.697010E-02
+ 139.45   1.847118E-02
+ 140.48   1.997771E-02
+ 141.51   2.146364E-02
+ 142.55   2.290360E-02
+ 143.58   2.427345E-02
+ 144.62   2.555071E-02
+ 145.65   2.671506E-02
+ 146.69   2.774869E-02
+ 147.72   2.863666E-02
+ 148.76   2.936713E-02
+ 149.80   2.993156E-02
+ 150.84   3.032475E-02
+ 151.87   3.054490E-02
+ 152.91   3.059347E-02
+ 153.95   3.047504E-02
+ 154.99   3.019707E-02
+ 156.03   2.976962E-02
+ 157.07   2.920499E-02
+ 158.11   2.851733E-02
+ 159.15   2.772229E-02
+ 160.19   2.683658E-02
+ 161.23   2.587755E-02
+ 162.27   2.486286E-02
+ 163.31   2.381009E-02
+ 164.36   2.273641E-02
+ 165.40   2.165836E-02
+ 166.44   2.059152E-02
+ 167.48   1.955044E-02
+ 168.53   1.854842E-02
+ 169.57   1.759748E-02
+ 170.61   1.670831E-02
+ 171.65   1.589026E-02
+ 172.70   1.515139E-02
+ 173.74   1.449850E-02
+ 174.78   1.393724E-02
+ 175.83   1.347220E-02
+ 176.87   1.310696E-02
+ 177.91   1.284422E-02
+ 178.96   1.268585E-02
+ 180.00   1.263293E-02
diff --git a/NPAnalysis/S1554/22.sie b/NPAnalysis/S1554/22.sie
new file mode 100644
index 0000000000000000000000000000000000000000..213132212ab0ce67c947ccb12eab41b83d4be8db
--- /dev/null
+++ b/NPAnalysis/S1554/22.sie
@@ -0,0 +1,181 @@
+   0.00   1.108964E+02
+   0.95   1.110523E+02
+   1.91   1.114927E+02
+   2.86   1.121379E+02
+   3.82   1.128632E+02
+   4.77   1.135110E+02
+   5.73   1.139048E+02
+   6.68   1.138653E+02
+   7.64   1.132258E+02
+   8.59   1.118459E+02
+   9.55   1.096229E+02
+  10.50   1.064992E+02
+  11.46   1.024653E+02
+  12.41   9.755997E+01
+  13.37   9.186575E+01
+  14.32   8.550242E+01
+  15.28   7.861815E+01
+  16.24   7.137960E+01
+  17.19   6.396181E+01
+  18.15   5.653859E+01
+  19.11   4.927403E+01
+  20.06   4.231555E+01
+  21.02   3.578859E+01
+  21.98   2.979331E+01
+  22.94   2.440281E+01
+  23.89   1.966312E+01
+  24.85   1.559439E+01
+  25.81   1.219322E+01
+  26.77   9.435687E+00
+  27.73   7.280947E+00
+  28.69   5.675011E+00
+  29.65   4.554579E+00
+  30.61   3.850707E+00
+  31.57   3.492168E+00
+  32.53   3.408406E+00
+  33.49   3.532023E+00
+  34.45   3.800745E+00
+  35.42   4.158881E+00
+  36.38   4.558288E+00
+  37.34   4.958884E+00
+  38.31   5.328754E+00
+  39.27   5.643927E+00
+  40.24   5.887884E+00
+  41.20   6.050856E+00
+  42.17   6.128991E+00
+  43.13   6.123433E+00
+  44.10   6.039375E+00
+  45.07   5.885112E+00
+  46.03   5.671148E+00
+  47.00   5.409363E+00
+  47.97   5.112272E+00
+  48.94   4.792380E+00
+  49.91   4.461646E+00
+  50.88   4.131056E+00
+  51.85   3.810298E+00
+  52.82   3.507552E+00
+  53.80   3.229356E+00
+  54.77   2.980570E+00
+  55.74   2.764411E+00
+  56.72   2.582539E+00
+  57.69   2.435203E+00
+  58.67   2.321405E+00
+  59.64   2.239105E+00
+  60.62   2.185416E+00
+  61.60   2.156815E+00
+  62.57   2.149341E+00
+  63.55   2.158783E+00
+  64.53   2.180848E+00
+  65.51   2.211315E+00
+  66.49   2.246159E+00
+  67.48   2.281662E+00
+  68.46   2.314493E+00
+  69.44   2.341775E+00
+  70.43   2.361118E+00
+  71.41   2.370647E+00
+  72.40   2.369000E+00
+  73.38   2.355315E+00
+  74.37   2.329203E+00
+  75.36   2.290707E+00
+  76.34   2.240255E+00
+  77.33   2.178606E+00
+  78.32   2.106789E+00
+  79.31   2.026050E+00
+  80.31   1.937788E+00
+  81.30   1.843508E+00
+  82.29   1.744760E+00
+  83.29   1.643104E+00
+  84.28   1.540061E+00
+  85.28   1.437087E+00
+  86.27   1.335536E+00
+  87.27   1.236642E+00
+  88.27   1.141505E+00
+  89.27   1.051069E+00
+  90.27   9.661266E-01
+  91.27   8.873059E-01
+  92.27   8.150780E-01
+  93.27   7.497588E-01
+  94.27   6.915178E-01
+  95.28   6.403877E-01
+  96.28   5.962774E-01
+  97.29   5.589851E-01
+  98.30   5.282139E-01
+  99.30   5.035865E-01
+ 100.31   4.846610E-01
+ 101.32   4.709457E-01
+ 102.33   4.619132E-01
+ 103.34   4.570140E-01
+ 104.35   4.556883E-01
+ 105.37   4.573767E-01
+ 106.38   4.615300E-01
+ 107.39   4.676168E-01
+ 108.41   4.751303E-01
+ 109.42   4.835938E-01
+ 110.44   4.925649E-01
+ 111.46   5.016383E-01
+ 112.48   5.104484E-01
+ 113.49   5.186702E-01
+ 114.51   5.260203E-01
+ 115.53   5.322562E-01
+ 116.56   5.371761E-01
+ 117.58   5.406175E-01
+ 118.60   5.424558E-01
+ 119.62   5.426026E-01
+ 120.65   5.410034E-01
+ 121.67   5.376358E-01
+ 122.70   5.325068E-01
+ 123.73   5.256507E-01
+ 124.76   5.171268E-01
+ 125.78   5.070166E-01
+ 126.81   4.954218E-01
+ 127.84   4.824615E-01
+ 128.87   4.682707E-01
+ 129.90   4.529970E-01
+ 130.94   4.367990E-01
+ 131.97   4.198441E-01
+ 133.00   4.023061E-01
+ 134.04   3.843630E-01
+ 135.07   3.661953E-01
+ 136.11   3.479834E-01
+ 137.14   3.299062E-01
+ 138.18   3.121384E-01
+ 139.22   2.948494E-01
+ 140.25   2.782006E-01
+ 141.29   2.623445E-01
+ 142.33   2.474222E-01
+ 143.37   2.335628E-01
+ 144.41   2.208811E-01
+ 145.45   2.094772E-01
+ 146.49   1.994351E-01
+ 147.53   1.908216E-01
+ 148.58   1.836864E-01
+ 149.62   1.780610E-01
+ 150.66   1.739592E-01
+ 151.71   1.713764E-01
+ 152.75   1.702908E-01
+ 153.79   1.706629E-01
+ 154.84   1.724373E-01
+ 155.88   1.755426E-01
+ 156.93   1.798933E-01
+ 157.98   1.853908E-01
+ 159.02   1.919246E-01
+ 160.07   1.993742E-01
+ 161.12   2.076104E-01
+ 162.16   2.164973E-01
+ 163.21   2.258939E-01
+ 164.26   2.356557E-01
+ 165.31   2.456370E-01
+ 166.36   2.556920E-01
+ 167.40   2.656768E-01
+ 168.45   2.754513E-01
+ 169.50   2.848803E-01
+ 170.55   2.938353E-01
+ 171.60   3.021957E-01
+ 172.65   3.098502E-01
+ 173.70   3.166977E-01
+ 174.75   3.226486E-01
+ 175.80   3.276257E-01
+ 176.85   3.315647E-01
+ 177.90   3.344148E-01
+ 178.95   3.361396E-01
+ 180.00   3.367169E-01
diff --git a/NPAnalysis/S1554/Analysis.cxx b/NPAnalysis/S1554/Analysis.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..014f58c8f6768d402451f670608ae520a149bea5
--- /dev/null
+++ b/NPAnalysis/S1554/Analysis.cxx
@@ -0,0 +1,161 @@
+/*****************************************************************************
+ * 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 2015                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ * Class describing the property of an Analysis object                       *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+#include<iostream>
+using namespace std;
+#include"Analysis.h"
+#include"NPAnalysisFactory.h"
+#include"NPDetectorManager.h"
+#include"NPOptionManager.h"
+////////////////////////////////////////////////////////////////////////////////
+Analysis::Analysis(){
+}
+////////////////////////////////////////////////////////////////////////////////
+Analysis::~Analysis(){
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::Init(){
+  InitOutputBranch();
+  InitInputBranch();
+
+  Sharc = (TSharcPhysics*)  m_DetectorManager -> GetDetector("Sharc");
+  LightCD2 = EnergyLoss("proton_CD2.G4table","G4Table",100 );
+  LightSi = EnergyLoss("proton_Si.G4table","G4Table",100);
+  BeamCD2 = EnergyLoss("Si28[0.0]_CD2.G4table","G4Table",100);
+  myReaction = new NPL::Reaction();
+  myReaction->ReadConfigurationFile(NPOptionManager::getInstance()->GetReactionFile());
+  TargetThickness = m_DetectorManager->GetTargetThickness()*micrometer;
+  OriginalBeamEnergy = myReaction->GetBeamEnergy();
+  Rand = TRandom3();
+  DetectorNumber = 0 ;
+  ThetaNormalTarget = 0 ;
+  ThetaM2Surface = 0;
+  Si_E_M2 = 0 ;
+  CsI_E_M2 = 0 ;
+  Energy = 0;
+  E_M2 = 0;
+
+  ThetaSharcSurface = 0;
+  X_Sharc = 0 ;
+  Y_Sharc = 0 ;
+  Z_Sharc = 0 ;
+  Si_E_Sharc = 0 ;
+  E_Sharc = 0;
+  Si_X_Sharc = 0;
+  Si_Y_Sharc = 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::TreatEvent(){
+  // Reinitiate calculated variable
+  ReInitValue();
+  double XTarget = 0;
+  double YTarget = 0;
+  TVector3 BeamDirection = TVector3(0,0,1);
+  double BeamEnergy = BeamCD2.Slow(OriginalBeamEnergy,TargetThickness*0.5,0);
+  myReaction->SetBeamEnergy(BeamEnergy);
+  ////////////////////////////////////////////////////////////////////////////
+  ////////////////////////////////////////////////////////////////////////////
+  //////////////////////////// LOOP on Sharc//////////////////
+  if(Sharc->Strip_E.size()>0){
+    /************************************************/
+    // Part 1 : Impact Angle
+    ThetaSharcSurface = 0;
+    ThetaNormalTarget = 0;
+    TVector3 HitDirection = Sharc -> GetPositionOfInteraction(0);
+    ThetaLab = HitDirection.Angle( BeamDirection );
+    ThetaNormalTarget = HitDirection.Angle( TVector3(0,0,1) ) ;
+
+    /************************************************/
+
+    /************************************************/
+    // Part 2 : Impact Energy
+
+    Energy = ELab = 0;
+    if(Sharc->PAD_E[0]>0){
+      Energy = Sharc->PAD_E[0];
+    }
+
+    Energy += Sharc->Strip_E[0];
+    // Target Correction
+    ELab = LightCD2.EvaluateInitialEnergy( Energy ,TargetThickness*0.5, ThetaNormalTarget);
+    /************************************************/
+
+    /************************************************/
+    // Part 3 : Excitation Energy Calculation
+    Ex = myReaction -> ReconstructRelativistic( ELab , ThetaLab );
+    /************************************************/
+
+    /************************************************/
+    // Part 4 : Theta CM Calculation
+    ThetaCM  = myReaction -> EnergyLabToThetaCM( ELab , ThetaLab)/deg;
+    ThetaLab=ThetaLab/deg;
+    ThetaLab=Rand.Uniform(ThetaLab-0.5,ThetaLab+0.5);
+    /************************************************/
+  }//end loop Sharc 
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::End(){
+}
+////////////////////////////////////////////////////////////////////////////////
+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("ThetaCM",&ThetaCM,"ThetaCM/D");
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::InitInputBranch(){
+}
+////////////////////////////////////////////////////////////////////////////////
+void Analysis::ReInitValue(){
+  Ex = -1000 ;
+  ELab = -1000;
+  ThetaLab = -1000;
+  ThetaCM = -1000;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+//            Construct Method to be pass to the AnalysisFactory              //
+////////////////////////////////////////////////////////////////////////////////
+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/S1554/Analysis.h b/NPAnalysis/S1554/Analysis.h
new file mode 100644
index 0000000000000000000000000000000000000000..5b9ce24e5556efcaeae359bb30b716735a7b6330
--- /dev/null
+++ b/NPAnalysis/S1554/Analysis.h
@@ -0,0 +1,87 @@
+#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"NPEnergyLoss.h"
+#include"NPReaction.h"
+#include"RootOutput.h"
+#include"RootInput.h"
+#include "TSharcPhysics.h"
+#include "TInitialConditions.h"
+#include <TRandom3.h>
+#include <TVector3.h>
+#include <TMath.h>
+
+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 Ex;
+  double ELab;
+  double ThetaLab;
+  double ThetaCM;
+  NPL::Reaction* myReaction;
+TInitialConditions* myInit ;
+  //	Energy loss table: the G4Table are generated by the simulation
+  EnergyLoss LightCD2;
+  EnergyLoss LightAl;
+  EnergyLoss LightSi;
+  EnergyLoss BeamCD2;
+  TVector3 BeamImpact;
+  
+  double TargetThickness ;
+  // Beam Energy
+  double OriginalBeamEnergy ; // AMEV
+                                                           // intermediate variable
+  TRandom3 Rand ;
+  int DetectorNumber  ;
+  double ThetaNormalTarget;
+  double ThetaM2Surface ;
+  double Si_E_M2 ;
+  double CsI_E_M2  ;
+  double Energy ;
+  double E_M2 ;
+  
+  double ThetaSharcSurface ;
+  double X_Sharc ;
+  double Y_Sharc ;
+  double Z_Sharc  ;
+  double Si_E_Sharc ;
+  double E_Sharc ;
+  double Si_X_Sharc ;
+  double Si_Y_Sharc ;
+  TSharcPhysics* Sharc;
+};
+#endif
diff --git a/NPAnalysis/S1554/CMakeLists.txt b/NPAnalysis/S1554/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1d6a34417c73bce95f165aa644967bd249e9b521
--- /dev/null
+++ b/NPAnalysis/S1554/CMakeLists.txt
@@ -0,0 +1,31 @@
+cmake_minimum_required (VERSION 2.8) 
+#Finding NPTool
+set(NPTOOL "$ENV{NPTOOL}")
+set(NPLIB "${NPTOOL}/NPLib")
+set(NPTOOL_INCLUDE_DIR "${NPLIB}/include")
+set(NPTOOL_LIB_DIR "${NPLIB}/lib")
+  
+include("${NPLIB}/FindROOT.cmake")  
+
+project (NPAnalysis)
+set(CMAKE_BUILD_TYPE Release)  
+# Add root to the link and include directories
+include_directories( ${ROOT_INCLUDE_DIR})
+link_directories( ${ROOT_LIBRARY_DIR})
+include_directories( ${NPTOOL_INCLUDE_DIR})
+link_directories( ${NPTOOL_LIB_DIR})
+
+# Get the compilator flag from root to assure consistancy
+EXEC_PROGRAM(${ROOT_CONFIG_EXECUTABLE}
+     ARGS "--cflags"
+     OUTPUT_VARIABLE root_cflags )
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${root_cflags}")
+
+# If the compiler is Clang, silence the unrecognised flags
+if(${CMAKE_CXX_COMPILER_ID} MATCHES ".*Clang.*")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -undefined dynamic_lookup")
+endif()
+
+add_library(NPAnalysis SHARED Analysis.cxx)
+target_link_libraries(NPAnalysis ${ROOT_LIBRARIES} -L${NPLIB}/lib -lNPCore -lNPPhysics)
diff --git a/NPAnalysis/S1554/Calibration.txt b/NPAnalysis/S1554/Calibration.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64850c017dff78052f7ee3b70905103336fbae10
--- /dev/null
+++ b/NPAnalysis/S1554/Calibration.txt
@@ -0,0 +1,3 @@
+CalibrationFilePath
+  SharcCalibration.txt
+  TigressCalibration.txt
diff --git a/NPAnalysis/S1554/RunToTreat.txt b/NPAnalysis/S1554/RunToTreat.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cd169430bda8c05446427889a1f7dc854af7a212
--- /dev/null
+++ b/NPAnalysis/S1554/RunToTreat.txt
@@ -0,0 +1,6 @@
+TTreeName
+  DataS1554
+RootFileName
+  ~/Desktop/Unpacker/data3507*
+
+
diff --git a/NPAnalysis/S1554/SharcCalibration.txt b/NPAnalysis/S1554/SharcCalibration.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da9e75e84290acf2ea2a3d6447da210ed3e7a1a2
--- /dev/null
+++ b/NPAnalysis/S1554/SharcCalibration.txt
@@ -0,0 +1,496 @@
+SHARC_D1_STRIP_FRONT1_E 1 9.71809e-05
+SHARC_D1_STRIP_FRONT2_E 0.164687 2.26585e-05
+SHARC_D1_STRIP_FRONT3_E 0.174147 2.28104e-05
+SHARC_D1_STRIP_FRONT4_E 0.162916 2.26244e-05
+SHARC_D1_STRIP_FRONT5_E 0.163951 2.18268e-05
+SHARC_D1_STRIP_FRONT6_E 0.166109 2.20008e-05
+SHARC_D1_STRIP_FRONT8_E 0.160454 2.15271e-05
+SHARC_D1_STRIP_FRONT9_E 0.165885 2.19531e-05
+SHARC_D1_STRIP_FRONT10_E 0.162686 2.20978e-05
+SHARC_D1_STRIP_FRONT11_E 0.174349 2.19763e-05
+SHARC_D1_STRIP_FRONT12_E 0.160229 2.2092e-05
+SHARC_D1_STRIP_FRONT14_E 0.168189 2.17203e-05
+SHARC_D1_STRIP_FRONT15_E 0.158883 2.13092e-05
+SHARC_D1_STRIP_FRONT16_E 0.145459 2.17219e-05
+SHARC_D1_STRIP_BACK1_E 0.153838 2.60365e-05
+SHARC_D1_STRIP_BACK2_E 0.151547 2.25412e-05
+SHARC_D1_STRIP_BACK3_E 0.159238 2.24302e-05
+SHARC_D1_STRIP_BACK4_E 0.155658 2.24398e-05
+SHARC_D1_STRIP_BACK5_E 0.15404 2.23263e-05
+SHARC_D1_STRIP_BACK6_E 0.161111 2.23206e-05
+SHARC_D1_STRIP_BACK7_E 0.158584 2.24573e-05
+SHARC_D1_STRIP_BACK8_E 0.160069 2.21756e-05
+SHARC_D1_STRIP_BACK9_E 0.154648 2.2053e-05
+SHARC_D1_STRIP_BACK10_E 0.152995 2.22484e-05
+SHARC_D1_STRIP_BACK11_E 0.15407 2.23135e-05
+SHARC_D1_STRIP_BACK12_E 0.150986 2.24622e-05
+SHARC_D1_STRIP_BACK13_E 0.164412 2.23237e-05
+SHARC_D1_STRIP_BACK14_E 0.157589 2.17609e-05
+SHARC_D1_STRIP_BACK15_E 0.154085 2.22351e-05
+SHARC_D1_STRIP_BACK16_E 0.152418 2.2914e-05
+SHARC_D1_STRIP_BACK17_E 0.145236 2.24632e-05
+SHARC_D1_STRIP_BACK18_E 0.149564 2.1789e-05
+SHARC_D1_STRIP_BACK19_E 0.160901 2.21543e-05
+SHARC_D1_STRIP_BACK20_E 0.161678 2.20323e-05
+SHARC_D1_STRIP_BACK21_E 0.159755 2.24461e-05
+SHARC_D1_STRIP_BACK22_E 0.149375 2.22273e-05
+SHARC_D1_STRIP_BACK23_E 0.158633 2.27563e-05
+SHARC_D1_STRIP_BACK24_E 0.146264 2.61009e-05
+SHARC_D2_STRIP_FRONT2_E 0.181992 2.15866e-05
+SHARC_D2_STRIP_FRONT3_E 0.173214 2.14823e-05
+SHARC_D2_STRIP_FRONT4_E 0.174668 2.14928e-05
+SHARC_D2_STRIP_FRONT5_E 0.166655 2.15335e-05
+SHARC_D2_STRIP_FRONT6_E 0.15884 2.16476e-05
+SHARC_D2_STRIP_FRONT7_E 0.168056 2.15086e-05
+SHARC_D2_STRIP_FRONT8_E 0.162027 2.13847e-05
+SHARC_D2_STRIP_FRONT9_E 0.157742 2.12032e-05
+SHARC_D2_STRIP_FRONT10_E 0.153569 2.09853e-05
+SHARC_D2_STRIP_FRONT11_E 0.153675 2.06502e-05
+SHARC_D2_STRIP_FRONT12_E 0.154205 2.1239e-05
+SHARC_D2_STRIP_FRONT13_E 0.147765 2.12137e-05
+SHARC_D2_STRIP_FRONT14_E 0.141683 2.10439e-05
+SHARC_D2_STRIP_FRONT15_E 0.153863 2.12348e-05
+SHARC_D2_STRIP_FRONT16_E 0.154194 2.11789e-05
+SHARC_D2_STRIP_BACK2_E 0.161791 2.16439e-05
+SHARC_D2_STRIP_BACK3_E 0.158998 2.13021e-05
+SHARC_D2_STRIP_BACK4_E 0.155088 2.12472e-05
+SHARC_D2_STRIP_BACK5_E 0.151944 2.14828e-05
+SHARC_D2_STRIP_BACK6_E 0.155744 2.11617e-05
+SHARC_D2_STRIP_BACK7_E 0.159097 2.12061e-05
+SHARC_D2_STRIP_BACK8_E 0.156703 2.11961e-05
+SHARC_D2_STRIP_BACK9_E 0.167073 2.14596e-05
+SHARC_D2_STRIP_BACK10_E 0.15311 2.14144e-05
+SHARC_D2_STRIP_BACK11_E 0.150879 2.17228e-05
+SHARC_D2_STRIP_BACK12_E 0.148134 2.13678e-05
+SHARC_D2_STRIP_BACK13_E 0.150769 2.09629e-05
+SHARC_D2_STRIP_BACK14_E 0.158156 2.15112e-05
+SHARC_D2_STRIP_BACK15_E 0.166186 2.15378e-05
+SHARC_D2_STRIP_BACK16_E 0.164185 2.19222e-05
+SHARC_D2_STRIP_BACK17_E 0.149017 2.15916e-05
+SHARC_D2_STRIP_BACK18_E 0.15531 2.14079e-05
+SHARC_D2_STRIP_BACK19_E 0.158552 2.1928e-05
+SHARC_D2_STRIP_BACK20_E 0.156214 2.16906e-05
+SHARC_D2_STRIP_BACK21_E 0.156121 2.18188e-05
+SHARC_D2_STRIP_BACK22_E 0.161442 2.16562e-05
+SHARC_D2_STRIP_BACK23_E 0.159057 2.10402e-05
+SHARC_D2_STRIP_BACK24_E 0.133271 2.23707e-05
+SHARC_D3_STRIP_FRONT1_E 0.170498 2.17833e-05
+SHARC_D3_STRIP_FRONT2_E 0.177864 2.16078e-05
+SHARC_D3_STRIP_FRONT3_E 0.166926 2.13756e-05
+SHARC_D3_STRIP_FRONT4_E 0.161308 2.14367e-05
+SHARC_D3_STRIP_FRONT5_E 0.165043 2.12113e-05
+SHARC_D3_STRIP_FRONT6_E 0.152747 2.14685e-05
+SHARC_D3_STRIP_FRONT7_E 0.148567 2.15193e-05
+SHARC_D3_STRIP_FRONT8_E 0.146428 2.15751e-05
+SHARC_D3_STRIP_FRONT9_E 0.157735 2.19116e-05
+SHARC_D3_STRIP_FRONT10_E 0.148186 2.1768e-05
+SHARC_D3_STRIP_FRONT11_E 0.143739 2.15243e-05
+SHARC_D3_STRIP_FRONT12_E 0.141352 2.15329e-05
+SHARC_D3_STRIP_FRONT13_E 0.137131 2.10355e-05
+SHARC_D3_STRIP_FRONT14_E 0.131506 2.09502e-05
+SHARC_D3_STRIP_FRONT15_E 0.146444 2.13021e-05
+SHARC_D3_STRIP_FRONT16_E 0.15261 2.10132e-05
+SHARC_D3_STRIP_BACK1_E 0.141785 2.24297e-05
+SHARC_D3_STRIP_BACK2_E 0.169104 2.15242e-05
+SHARC_D3_STRIP_BACK3_E 0.169554 2.12474e-05
+SHARC_D3_STRIP_BACK4_E 0.165779 2.13588e-05
+SHARC_D3_STRIP_BACK5_E 0.169948 2.16378e-05
+SHARC_D3_STRIP_BACK6_E 0.173751 2.09587e-05
+SHARC_D3_STRIP_BACK7_E 0.171863 2.13399e-05
+SHARC_D3_STRIP_BACK8_E 0.168346 2.15308e-05
+SHARC_D3_STRIP_BACK9_E 0.163165 2.11919e-05
+SHARC_D3_STRIP_BACK10_E 0.176397 2.04944e-05
+SHARC_D3_STRIP_BACK11_E 0.174951 2.09201e-05
+SHARC_D3_STRIP_BACK12_E 0.167448 2.0926e-05
+SHARC_D3_STRIP_BACK13_E 0.168121 2.103e-05
+SHARC_D3_STRIP_BACK14_E 0.168596 2.09978e-05
+SHARC_D3_STRIP_BACK15_E 0.175062 2.10524e-05
+SHARC_D3_STRIP_BACK16_E 0.166321 2.13564e-05
+SHARC_D3_STRIP_BACK17_E 0.162009 2.11844e-05
+SHARC_D3_STRIP_BACK18_E 0.171647 2.13428e-05
+SHARC_D3_STRIP_BACK19_E 0.165273 2.09417e-05
+SHARC_D3_STRIP_BACK20_E 0.178293 2.08393e-05
+SHARC_D3_STRIP_BACK21_E 0.16557 2.10342e-05
+SHARC_D3_STRIP_BACK22_E 0.166472 2.13356e-05
+SHARC_D3_STRIP_BACK23_E 0.178184 2.11782e-05
+SHARC_D4_STRIP_FRONT1_E 0.143893 2.15775e-05
+SHARC_D4_STRIP_FRONT2_E 0.151215 2.19168e-05
+SHARC_D4_STRIP_FRONT3_E 0.13701 2.16589e-05
+SHARC_D4_STRIP_FRONT4_E 0.150528 2.19227e-05
+SHARC_D4_STRIP_FRONT5_E 0.139879 2.20799e-05
+SHARC_D4_STRIP_FRONT6_E 0.132977 2.12784e-05
+SHARC_D4_STRIP_FRONT7_E 0.125682 2.16596e-05
+SHARC_D4_STRIP_FRONT12_E 0.117107 2.16223e-05
+SHARC_D4_STRIP_FRONT13_E 0.115119 2.11676e-05
+SHARC_D4_STRIP_FRONT14_E 0.11296 2.16328e-05
+SHARC_D4_STRIP_FRONT15_E 0.113554 2.12594e-05
+SHARC_D4_STRIP_FRONT16_E 0.120279 2.13435e-05
+SHARC_D4_STRIP_BACK1_E 0.116399 2.21512e-05
+SHARC_D4_STRIP_BACK2_E 0.153885 2.28043e-05
+SHARC_D4_STRIP_BACK3_E 0.116021 2.25722e-05
+SHARC_D4_STRIP_BACK4_E 0.11138 2.22597e-05
+SHARC_D4_STRIP_BACK6_E 0.12692 2.28943e-05
+SHARC_D4_STRIP_BACK7_E 0.090648 2.32e-05
+SHARC_D4_STRIP_BACK8_E 0.110853 2.26683e-05
+SHARC_D4_STRIP_BACK9_E 0.106239 2.33143e-05
+SHARC_D4_STRIP_BACK10_E 0.12392 2.30434e-05
+SHARC_D4_STRIP_BACK11_E 0.116171 2.19613e-05
+SHARC_D4_STRIP_BACK12_E 0.115817 2.19587e-05
+SHARC_D4_STRIP_BACK13_E 0.116895 2.20284e-05
+SHARC_D4_STRIP_BACK14_E 0.11774 2.21507e-05
+SHARC_D4_STRIP_BACK15_E 0.108548 2.24632e-05
+SHARC_D4_STRIP_BACK16_E 0.126504 2.24063e-05
+SHARC_D4_STRIP_BACK18_E 0.13103 2.26364e-05
+SHARC_D4_STRIP_BACK21_E 0.116827 2.23377e-05
+SHARC_D4_STRIP_BACK22_E 0.120895 2.24211e-05
+SHARC_D4_STRIP_BACK23_E 0.103585 2.26749e-05
+SHARC_D4_STRIP_BACK24_E 0.128199 2.23913e-05
+SHARC_D5_STRIP_FRONT1_E 0.0184746 2.19244e-05
+SHARC_D5_STRIP_FRONT2_E 0.0220658 2.18118e-05
+SHARC_D5_STRIP_FRONT3_E 0.0258988 2.20747e-05
+SHARC_D5_STRIP_FRONT4_E 0.012098 2.21849e-05
+SHARC_D5_STRIP_FRONT5_E 0.0132119 2.187e-05
+SHARC_D5_STRIP_FRONT6_E 0.0231413 2.2357e-05
+SHARC_D5_STRIP_FRONT8_E 0.0971659 2.16172e-05
+SHARC_D5_STRIP_FRONT9_E 0.04333 2.12817e-05
+SHARC_D5_STRIP_FRONT10_E 0.0507796 2.15983e-05
+SHARC_D5_STRIP_FRONT11_E 0.0243644 2.19276e-05
+SHARC_D5_STRIP_FRONT12_E 0.0259251 2.17859e-05
+SHARC_D5_STRIP_FRONT13_E 0.0335124 2.19481e-05
+SHARC_D5_STRIP_FRONT14_E 0.0399368 2.17655e-05
+SHARC_D5_STRIP_FRONT15_E 0.0184578 2.12683e-05
+SHARC_D5_STRIP_FRONT16_E 0.022659 2.21454e-05
+SHARC_D5_STRIP_BACK11_E 0.0568813 2.07567e-05
+SHARC_D5_STRIP_BACK12_E 0.0585774 2.08176e-05
+SHARC_D5_STRIP_BACK13_E 0.0653997 2.08075e-05
+SHARC_D5_STRIP_BACK14_E 0.0678985 2.10715e-05
+SHARC_D5_STRIP_BACK15_E 0.0595765 2.09586e-05
+SHARC_D5_STRIP_BACK16_E 0.0626579 2.09575e-05
+SHARC_D5_STRIP_BACK17_E 0.0598144 2.08644e-05
+SHARC_D5_STRIP_BACK18_E 0.0615517 2.06992e-05
+SHARC_D5_STRIP_BACK19_E 0.0617771 2.1087e-05
+SHARC_D5_STRIP_BACK20_E 0.0616774 2.11152e-05
+SHARC_D5_STRIP_BACK21_E 0.0536845 2.0387e-05
+SHARC_D5_STRIP_BACK22_E 0.050151 2.09927e-05
+SHARC_D5_STRIP_BACK23_E 0.04769 2.10759e-05
+SHARC_D5_STRIP_BACK24_E -0.0798476 2.1628e-05
+SHARC_D5_STRIP_BACK25_E 0.0446056 2.15827e-05
+SHARC_D5_STRIP_BACK27_E 0.0474283 2.1244e-05
+SHARC_D5_STRIP_BACK28_E 0.0517215 2.14623e-05
+SHARC_D5_STRIP_BACK29_E 0.042902 2.11875e-05
+SHARC_D5_STRIP_BACK30_E 0.0439854 2.14907e-05
+SHARC_D5_STRIP_BACK31_E 0.0498488 2.11159e-05
+SHARC_D5_STRIP_BACK32_E 0.0418072 2.15367e-05
+SHARC_D5_STRIP_BACK33_E 0.0401053 2.12155e-05
+SHARC_D5_STRIP_BACK34_E 0.0405886 2.1192e-05
+SHARC_D5_STRIP_BACK38_E 0.0436775 2.17032e-05
+SHARC_D5_STRIP_BACK39_E 0.0434241 2.12179e-05
+SHARC_D5_STRIP_BACK40_E 0.0491315 2.16629e-05
+SHARC_D5_STRIP_BACK43_E 0.058932 2.0904e-05
+SHARC_D5_STRIP_BACK44_E 0.0541304 2.0784e-05
+SHARC_D6_STRIP_FRONT3_E 0.0267244 2.14665e-05
+SHARC_D6_STRIP_FRONT4_E 0.0194191 2.16453e-05
+SHARC_D6_STRIP_FRONT5_E 0.0214514 2.1681e-05
+SHARC_D6_STRIP_FRONT6_E 0.0185885 2.14626e-05
+SHARC_D6_STRIP_FRONT7_E 0.0107993 2.16074e-05
+SHARC_D6_STRIP_FRONT8_E 0.0220856 2.17046e-05
+SHARC_D6_STRIP_FRONT9_E 3.53799 0.000324051
+SHARC_D6_STRIP_FRONT10_E 0.0147158 2.17499e-05
+SHARC_D6_STRIP_FRONT11_E 0.0180041 2.11129e-05
+SHARC_D6_STRIP_FRONT12_E 0.00928292 2.1948e-05
+SHARC_D6_STRIP_FRONT13_E 0.0130352 2.14338e-05
+SHARC_D6_STRIP_FRONT14_E 0.0126762 2.13344e-05
+SHARC_D6_STRIP_FRONT15_E 0.0130653 2.18171e-05
+SHARC_D6_STRIP_FRONT16_E 0.011682 2.17847e-05
+SHARC_D6_STRIP_FRONT17_E 0.0155902 2.20876e-05
+SHARC_D6_STRIP_FRONT18_E 0.0108346 2.18593e-05
+SHARC_D6_STRIP_FRONT19_E 0.0145107 2.20757e-05
+SHARC_D6_STRIP_FRONT20_E 0.0107507 2.2692e-05
+SHARC_D6_STRIP_FRONT21_E 0.0140636 2.25682e-05
+SHARC_D6_STRIP_FRONT22_E 0.0172886 2.2133e-05
+SHARC_D6_STRIP_FRONT23_E -0.0252202 2.20485e-05
+SHARC_D6_STRIP_BACK1_E -0.169393 2.38599e-05
+SHARC_D6_STRIP_BACK2_E 0.0275962 2.29444e-05
+SHARC_D6_STRIP_BACK3_E 0.075551 2.30798e-05
+SHARC_D6_STRIP_BACK4_E 0.0514595 2.28556e-05
+SHARC_D6_STRIP_BACK5_E 0.0581235 2.25471e-05
+SHARC_D6_STRIP_BACK6_E 0.0435178 2.26392e-05
+SHARC_D6_STRIP_BACK7_E 0.0463227 2.24721e-05
+SHARC_D6_STRIP_BACK8_E 0.0464039 2.26593e-05
+SHARC_D6_STRIP_BACK9_E 0.0464575 2.23355e-05
+SHARC_D6_STRIP_BACK10_E 0.0440967 2.27238e-05
+SHARC_D6_STRIP_BACK11_E 0.0395257 2.25909e-05
+SHARC_D6_STRIP_BACK12_E 0.0222998 2.22406e-05
+SHARC_D6_STRIP_BACK13_E 0.0178924 2.23953e-05
+SHARC_D6_STRIP_BACK14_E 0.0338867 2.26127e-05
+SHARC_D6_STRIP_BACK15_E 0.0373955 2.33028e-05
+SHARC_D6_STRIP_BACK16_E 0.0276929 2.31612e-05
+SHARC_D6_STRIP_BACK17_E 0.0162478 2.29907e-05
+SHARC_D6_STRIP_BACK18_E 0.0220379 2.29427e-05
+SHARC_D6_STRIP_BACK19_E 0.022612 2.36231e-05
+SHARC_D6_STRIP_BACK20_E 0.0186129 2.32864e-05
+SHARC_D6_STRIP_BACK21_E 0.0151438 2.33919e-05
+SHARC_D6_STRIP_BACK23_E 0.0158743 2.27083e-05
+SHARC_D6_STRIP_BACK25_E 0.0381616 2.27827e-05
+SHARC_D6_STRIP_BACK26_E 0.0248942 2.29145e-05
+SHARC_D6_STRIP_BACK27_E 0.0356308 2.26366e-05
+SHARC_D6_STRIP_BACK29_E 0.0233163 2.29887e-05
+SHARC_D6_STRIP_BACK30_E 0.041849 2.30691e-05
+SHARC_D6_STRIP_BACK31_E 0.0369897 2.27207e-05
+SHARC_D6_STRIP_BACK33_E 0.0441671 2.30209e-05
+SHARC_D6_STRIP_BACK34_E 0.0360893 2.23514e-05
+SHARC_D6_STRIP_BACK35_E 0.0339634 2.24387e-05
+SHARC_D6_STRIP_BACK36_E 0.060896 2.26085e-05
+SHARC_D6_STRIP_BACK37_E 0.00208911 3.18512e-05
+SHARC_D6_STRIP_BACK38_E 0.0168685 2.51637e-05
+SHARC_D6_STRIP_BACK39_E 0.0434731 2.29497e-05
+SHARC_D6_STRIP_BACK40_E 0.0385564 2.24943e-05
+SHARC_D6_STRIP_BACK41_E 3.53799 0.000324051
+SHARC_D6_STRIP_BACK42_E 0.0385198 2.24836e-05
+SHARC_D6_STRIP_BACK43_E 0.0285279 2.29171e-05
+SHARC_D6_STRIP_BACK44_E 0.0265627 2.25233e-05
+SHARC_D6_STRIP_BACK45_E 0.0333433 2.2531e-05
+SHARC_D6_STRIP_BACK46_E 0.0200449 2.29807e-05
+SHARC_D6_STRIP_BACK47_E 0.0293445 2.24907e-05
+SHARC_D7_STRIP_FRONT1_E 0.0111471 2.14709e-05
+SHARC_D7_STRIP_FRONT2_E 0.0109067 2.19744e-05
+SHARC_D7_STRIP_FRONT3_E -0.0144983 2.12644e-05
+SHARC_D7_STRIP_FRONT4_E 0.00958447 2.21958e-05
+SHARC_D7_STRIP_FRONT5_E 0.00809943 2.21e-05
+SHARC_D7_STRIP_FRONT6_E 0.0110324 2.22059e-05
+SHARC_D7_STRIP_FRONT7_E 0.016297 2.17193e-05
+SHARC_D7_STRIP_FRONT8_E 0.0133115 2.20289e-05
+SHARC_D7_STRIP_FRONT9_E 0.00415246 2.08826e-05
+SHARC_D7_STRIP_FRONT10_E 0.00902517 2.13638e-05
+SHARC_D7_STRIP_FRONT11_E 0.00770633 2.15624e-05
+SHARC_D7_STRIP_FRONT12_E -0.00164026 2.13971e-05
+SHARC_D7_STRIP_FRONT13_E 0.00403168 2.16003e-05
+SHARC_D7_STRIP_FRONT14_E 0.00881677 2.22311e-05
+SHARC_D7_STRIP_FRONT15_E -0.0334207 2.20094e-05
+SHARC_D7_STRIP_FRONT16_E 0.00373577 2.20422e-05
+SHARC_D7_STRIP_FRONT17_E 0.00897941 2.21518e-05
+SHARC_D7_STRIP_FRONT18_E -0.000181608 2.2362e-05
+SHARC_D7_STRIP_FRONT19_E 0.00775456 2.20313e-05
+SHARC_D7_STRIP_FRONT20_E 0.0155661 2.19076e-05
+SHARC_D7_STRIP_FRONT21_E 0.0168267 2.21411e-05
+SHARC_D7_STRIP_FRONT22_E 0.00881832 2.23677e-05
+SHARC_D7_STRIP_FRONT23_E 0.00365454 2.21892e-05
+SHARC_D7_STRIP_BACK12_E 0.0490787 2.28767e-05
+SHARC_D7_STRIP_BACK13_E 0.0543162 2.27022e-05
+SHARC_D7_STRIP_BACK14_E 0.0422382 2.26245e-05
+SHARC_D7_STRIP_BACK15_E 0.0255048 2.30319e-05
+SHARC_D7_STRIP_BACK16_E -0.0418349 2.28575e-05
+SHARC_D7_STRIP_BACK17_E 0.0449648 2.30128e-05
+SHARC_D7_STRIP_BACK18_E 0.0311507 2.31352e-05
+SHARC_D7_STRIP_BACK19_E 0.0424563 2.29341e-05
+SHARC_D7_STRIP_BACK20_E 0.0417637 2.28612e-05
+SHARC_D7_STRIP_BACK21_E 0.0373395 2.289e-05
+SHARC_D7_STRIP_BACK22_E 0.0326856 2.28419e-05
+SHARC_D7_STRIP_BACK23_E 0.0357087 2.25265e-05
+SHARC_D7_STRIP_BACK24_E 0.0280085 2.29681e-05
+SHARC_D7_STRIP_BACK25_E 0.0342112 2.34278e-05
+SHARC_D7_STRIP_BACK26_E 0.0367721 2.29647e-05
+SHARC_D7_STRIP_BACK27_E 0.0388958 2.35108e-05
+SHARC_D7_STRIP_BACK29_E 0.0297903 2.32002e-05
+SHARC_D7_STRIP_BACK31_E 0.0247006 2.24339e-05
+SHARC_D7_STRIP_BACK32_E 0.0378452 2.2825e-05
+SHARC_D7_STRIP_BACK33_E 0.0397023 2.32915e-05
+SHARC_D7_STRIP_BACK34_E 0.0288076 2.30423e-05
+SHARC_D7_STRIP_BACK36_E 0.0404461 2.2752e-05
+SHARC_D7_STRIP_BACK38_E 0.0233955 2.34949e-05
+SHARC_D7_STRIP_BACK39_E 0.0298339 2.2881e-05
+SHARC_D7_STRIP_BACK40_E 0.0280095 2.32431e-05
+SHARC_D7_STRIP_BACK41_E 0.0241983 2.29269e-05
+SHARC_D7_STRIP_BACK42_E 0.0218632 2.29931e-05
+SHARC_D7_STRIP_BACK43_E 0.0206106 2.30039e-05
+SHARC_D7_STRIP_BACK44_E 0.0136246 2.25895e-05
+SHARC_D7_STRIP_BACK45_E 0.0337216 2.34113e-05
+SHARC_D7_STRIP_BACK46_E 0.0251993 2.32068e-05
+SHARC_D7_STRIP_BACK47_E 0.0306201 2.27172e-05
+SHARC_D8_STRIP_FRONT1_E -0.00938955 2.13663e-05
+SHARC_D8_STRIP_FRONT2_E -0.000148791 2.14337e-05
+SHARC_D8_STRIP_FRONT3_E -0.00615021 2.16178e-05
+SHARC_D8_STRIP_FRONT4_E 0.0023255 2.13416e-05
+SHARC_D8_STRIP_FRONT5_E 0.00514757 2.17759e-05
+SHARC_D8_STRIP_FRONT11_E -0.00672231 2.14599e-05
+SHARC_D8_STRIP_FRONT12_E -0.00684039 2.14697e-05
+SHARC_D8_STRIP_FRONT13_E -0.00810409 2.207e-05
+SHARC_D8_STRIP_FRONT16_E -0.00685472 2.20266e-05
+SHARC_D8_STRIP_FRONT17_E -0.0131768 2.2297e-05
+SHARC_D8_STRIP_FRONT18_E -0.0029741 2.19304e-05
+SHARC_D8_STRIP_FRONT19_E -0.00693736 2.22931e-05
+SHARC_D8_STRIP_FRONT20_E -0.00171549 2.22701e-05
+SHARC_D8_STRIP_FRONT21_E -0.00929376 2.21767e-05
+SHARC_D8_STRIP_FRONT22_E -0.0278538 2.21839e-05
+SHARC_D8_STRIP_FRONT23_E -0.0022602 2.20649e-05
+SHARC_D8_STRIP_BACK2_E 3.53799 0.000324051
+SHARC_D8_STRIP_BACK3_E 0.0980749 2.72316e-05
+SHARC_D8_STRIP_BACK4_E 0.0567821 2.32254e-05
+SHARC_D8_STRIP_BACK5_E 0.0721435 2.81065e-05
+SHARC_D8_STRIP_BACK6_E 0.0426144 2.28552e-05
+SHARC_D8_STRIP_BACK7_E 0.0413196 2.27331e-05
+SHARC_D8_STRIP_BACK8_E 0.0409884 2.2848e-05
+SHARC_D8_STRIP_BACK9_E 0.0418038 2.32477e-05
+SHARC_D8_STRIP_BACK10_E 0.0316771 2.31747e-05
+SHARC_D8_STRIP_BACK11_E 0.0372514 2.26756e-05
+SHARC_D8_STRIP_BACK12_E 0.0370299 2.27828e-05
+SHARC_D8_STRIP_BACK13_E 0.0301217 2.25029e-05
+SHARC_D8_STRIP_BACK14_E 0.0286195 2.25003e-05
+SHARC_D8_STRIP_BACK15_E 0.0299568 2.29574e-05
+SHARC_D8_STRIP_BACK17_E 3.53799 0.000324051
+SHARC_D8_STRIP_BACK18_E 0.000891401 2.39545e-05
+SHARC_D8_STRIP_BACK19_E 0.00753597 2.40669e-05
+SHARC_D8_STRIP_BACK20_E 0.00554838 2.34512e-05
+SHARC_D8_STRIP_BACK21_E 0.0156689 2.32156e-05
+SHARC_D8_STRIP_BACK22_E 0.0160044 2.27685e-05
+SHARC_D8_STRIP_BACK23_E 0.00154922 2.35261e-05
+SHARC_D8_STRIP_BACK24_E 0.00941722 2.3384e-05
+SHARC_D8_STRIP_BACK25_E 0.00684016 2.32117e-05
+SHARC_D8_STRIP_BACK26_E -0.00548732 2.34809e-05
+SHARC_D8_STRIP_BACK27_E 0.0201157 2.34148e-05
+SHARC_D8_STRIP_BACK28_E 0.018198 2.36256e-05
+SHARC_D8_STRIP_BACK29_E 0.0190719 2.33848e-05
+SHARC_D8_STRIP_BACK30_E 0.0292787 2.29745e-05
+SHARC_D8_STRIP_BACK31_E 0.0285674 2.25822e-05
+SHARC_D8_STRIP_BACK32_E 0.0231226 2.28624e-05
+SHARC_D8_STRIP_BACK33_E 0.0386775 2.27137e-05
+SHARC_D8_STRIP_BACK34_E 0.0290607 2.29847e-05
+SHARC_D8_STRIP_BACK35_E 0.0341422 2.28036e-05
+SHARC_D8_STRIP_BACK36_E 3.53799 0.000324051
+SHARC_D8_STRIP_BACK37_E 0.0188344 2.32843e-05
+SHARC_D8_STRIP_BACK38_E 0.0349254 2.26834e-05
+SHARC_D8_STRIP_BACK39_E 0.0352429 2.33297e-05
+SHARC_D8_STRIP_BACK40_E 0.0323803 2.15357e-05
+SHARC_D8_STRIP_BACK41_E 0.0250631 2.35277e-05
+SHARC_D8_STRIP_BACK43_E 0.0255274 2.2294e-05
+SHARC_D8_STRIP_BACK44_E 0.0234287 2.32661e-05
+SHARC_D8_STRIP_BACK45_E 0.0270765 2.30607e-05
+SHARC_D8_STRIP_BACK46_E 0.0161063 2.26809e-05
+SHARC_D8_STRIP_BACK47_E 0.0176102 2.31787e-05
+SHARC_D10_STRIP_FRONT1_E -0.0246137 2.40276e-05
+SHARC_D10_STRIP_FRONT2_E -0.0247509 2.36702e-05
+SHARC_D10_STRIP_FRONT3_E -0.0223287 2.35191e-05
+SHARC_D10_STRIP_FRONT4_E -0.0231089 2.41774e-05
+SHARC_D10_STRIP_FRONT5_E -0.02485 2.39843e-05
+SHARC_D10_STRIP_FRONT6_E -0.0287019 2.39263e-05
+SHARC_D10_STRIP_FRONT7_E -0.0188632 2.28559e-05
+SHARC_D10_STRIP_FRONT8_E -0.0156374 2.30957e-05
+SHARC_D10_STRIP_FRONT9_E -0.0159356 2.30804e-05
+SHARC_D10_STRIP_FRONT10_E -0.0227716 2.33393e-05
+SHARC_D10_STRIP_FRONT11_E -0.0162527 2.31961e-05
+SHARC_D10_STRIP_FRONT12_E -0.0213478 2.37989e-05
+SHARC_D10_STRIP_FRONT13_E -0.0136014 2.36708e-05
+SHARC_D10_STRIP_FRONT14_E -0.0126604 2.43061e-05
+SHARC_D10_STRIP_FRONT15_E -0.00918633 2.43673e-05
+SHARC_D10_STRIP_FRONT16_E -0.023791 2.35819e-05
+SHARC_D10_STRIP_FRONT17_E -0.0294735 2.42918e-05
+SHARC_D10_STRIP_FRONT18_E -0.0162182 2.39197e-05
+SHARC_D10_STRIP_FRONT19_E -0.0223356 2.45194e-05
+SHARC_D10_STRIP_FRONT20_E -0.0177009 2.39589e-05
+SHARC_D10_STRIP_FRONT21_E -0.0227187 2.43008e-05
+SHARC_D10_STRIP_FRONT22_E -0.0134246 2.37881e-05
+SHARC_D10_STRIP_FRONT23_E -0.0226326 2.38859e-05
+SHARC_D10_STRIP_BACK11_E 0.0584119 2.55133e-05
+SHARC_D10_STRIP_BACK12_E 0.0699967 2.23195e-05
+SHARC_D10_STRIP_BACK13_E 0.0682196 2.45787e-05
+SHARC_D10_STRIP_BACK14_E 0.0503693 2.26041e-05
+SHARC_D10_STRIP_BACK15_E 0.0502025 2.27367e-05
+SHARC_D10_STRIP_BACK16_E 0.0586348 2.2878e-05
+SHARC_D10_STRIP_BACK17_E 0.0603656 2.28189e-05
+SHARC_D10_STRIP_BACK18_E 0.0591394 2.27393e-05
+SHARC_D10_STRIP_BACK19_E 0.0549039 2.2804e-05
+SHARC_D10_STRIP_BACK20_E 0.0494821 2.32013e-05
+SHARC_D10_STRIP_BACK21_E 0.0487158 2.20511e-05
+SHARC_D10_STRIP_BACK22_E 0.0405202 2.2122e-05
+SHARC_D10_STRIP_BACK23_E 0.0319081 2.21269e-05
+SHARC_D10_STRIP_BACK24_E 0.0235831 2.25546e-05
+SHARC_D10_STRIP_BACK25_E 0.0264097 2.24409e-05
+SHARC_D10_STRIP_BACK26_E 0.0318306 2.27382e-05
+SHARC_D10_STRIP_BACK27_E 0.0362605 2.25108e-05
+SHARC_D10_STRIP_BACK28_E 0.0275711 2.30077e-05
+SHARC_D10_STRIP_BACK29_E 0.0337957 2.28222e-05
+SHARC_D10_STRIP_BACK30_E 0.0270704 2.33736e-05
+SHARC_D10_STRIP_BACK31_E 0.0360256 2.22405e-05
+SHARC_D10_STRIP_BACK32_E 0.0481137 2.27023e-05
+SHARC_D10_STRIP_BACK33_E 0.0441632 2.26257e-05
+SHARC_D10_STRIP_BACK34_E 0.0344984 2.28046e-05
+SHARC_D10_STRIP_BACK35_E 0.0407187 2.25085e-05
+SHARC_D10_STRIP_BACK36_E 0.0446098 2.28614e-05
+SHARC_D10_STRIP_BACK37_E 0.0369654 2.24067e-05
+SHARC_D10_STRIP_BACK38_E 0.0426523 2.32392e-05
+SHARC_D10_STRIP_BACK39_E 0.042786 2.29164e-05
+SHARC_D10_STRIP_BACK40_E 0.057569 2.23818e-05
+SHARC_D10_STRIP_BACK41_E 0.0505517 2.22661e-05
+SHARC_D10_STRIP_BACK42_E 0.0427701 2.31198e-05
+SHARC_D10_STRIP_BACK43_E 0.0325823 2.28741e-05
+SHARC_D10_STRIP_BACK44_E 0.0382447 2.2782e-05
+SHARC_D10_STRIP_BACK45_E 0.041409 2.28557e-05
+SHARC_D10_STRIP_BACK46_E 0.0428671 2.32039e-05
+SHARC_D10_STRIP_BACK47_E 0.0471655 2.3262e-05
+SHARC_D12_STRIP_FRONT1_E -0.00484915 2.33405e-05
+SHARC_D12_STRIP_FRONT2_E -0.0014674 2.34682e-05
+SHARC_D12_STRIP_FRONT3_E -0.0130518 2.33915e-05
+SHARC_D12_STRIP_FRONT5_E -0.0190662 2.37877e-05
+SHARC_D12_STRIP_FRONT6_E -0.0207672 2.43109e-05
+SHARC_D12_STRIP_FRONT8_E -0.00795163 2.36519e-05
+SHARC_D12_STRIP_FRONT9_E -0.0137762 2.36385e-05
+SHARC_D12_STRIP_FRONT10_E -0.0179864 2.36641e-05
+SHARC_D12_STRIP_FRONT11_E -0.0171115 2.34168e-05
+SHARC_D12_STRIP_FRONT12_E -0.0156885 2.28764e-05
+SHARC_D12_STRIP_FRONT13_E -0.0107117 2.35969e-05
+SHARC_D12_STRIP_FRONT14_E -0.0229854 2.37416e-05
+SHARC_D12_STRIP_FRONT15_E -0.0137189 2.38798e-05
+SHARC_D12_STRIP_FRONT16_E -0.0140456 2.40203e-05
+SHARC_D12_STRIP_FRONT17_E -0.0200381 2.36551e-05
+SHARC_D12_STRIP_FRONT18_E -0.00805789 2.35912e-05
+SHARC_D12_STRIP_FRONT19_E -0.0186952 2.43875e-05
+SHARC_D12_STRIP_FRONT20_E -0.0144919 2.45319e-05
+SHARC_D12_STRIP_FRONT21_E -0.0163102 2.33092e-05
+SHARC_D12_STRIP_FRONT22_E -0.0137205 2.36079e-05
+SHARC_D12_STRIP_FRONT23_E -0.0228041 2.40822e-05
+SHARC_D12_STRIP_BACK1_E 3.53799 0.000324051
+SHARC_D12_STRIP_BACK2_E -0.168899 2.64359e-05
+SHARC_D12_STRIP_BACK3_E 0.0255178 2.53173e-05
+SHARC_D12_STRIP_BACK4_E 0.00579596 2.50901e-05
+SHARC_D12_STRIP_BACK5_E 0.0135761 2.5215e-05
+SHARC_D12_STRIP_BACK6_E 0.00734285 2.55434e-05
+SHARC_D12_STRIP_BACK7_E 0.0193437 2.46671e-05
+SHARC_D12_STRIP_BACK8_E 0.00600789 2.50851e-05
+SHARC_D12_STRIP_BACK9_E 0.00144002 2.51709e-05
+SHARC_D12_STRIP_BACK10_E -0.0122236 2.49197e-05
+SHARC_D12_STRIP_BACK11_E -0.00690914 2.49627e-05
+SHARC_D12_STRIP_BACK12_E -0.0190408 2.50708e-05
+SHARC_D12_STRIP_BACK13_E -0.0136739 2.52216e-05
+SHARC_D12_STRIP_BACK14_E -0.000614762 2.48763e-05
+SHARC_D12_STRIP_BACK15_E -0.0115212 2.50992e-05
+SHARC_D12_STRIP_BACK16_E -0.0113651 2.48327e-05
+SHARC_D12_STRIP_BACK17_E -0.00670837 2.55571e-05
+SHARC_D12_STRIP_BACK18_E 0.013741 2.57646e-05
+SHARC_D12_STRIP_BACK19_E -0.000419331 2.51958e-05
+SHARC_D12_STRIP_BACK20_E -0.00456227 2.91852e-05
+SHARC_D12_STRIP_BACK21_E -0.0226305 2.50211e-05
+SHARC_D12_STRIP_BACK22_E -0.0111732 2.56048e-05
+SHARC_D12_STRIP_BACK23_E -0.00691075 2.51414e-05
+SHARC_D12_STRIP_BACK24_E -0.00912395 2.51848e-05
+SHARC_D12_STRIP_BACK25_E -0.0104703 2.52789e-05
+SHARC_D12_STRIP_BACK26_E 0.00903197 2.41685e-05
+SHARC_D12_STRIP_BACK27_E -0.00597004 2.5631e-05
+SHARC_D12_STRIP_BACK28_E -0.00411177 2.51907e-05
+SHARC_D12_STRIP_BACK29_E -0.00238402 2.55322e-05
+SHARC_D12_STRIP_BACK30_E -0.0019266 2.56927e-05
+SHARC_D12_STRIP_BACK32_E 0.00903099 2.46706e-05
+SHARC_D12_STRIP_BACK33_E -0.000226763 2.46582e-05
+SHARC_D12_STRIP_BACK34_E 0.0165983 2.48672e-05
+SHARC_D12_STRIP_BACK35_E 0.00202338 2.48451e-05
+SHARC_D12_STRIP_BACK36_E 0.0028113 2.47164e-05
+SHARC_D12_STRIP_BACK37_E 0.00321136 2.50483e-05
+SHARC_D12_STRIP_BACK38_E 0.00273738 2.49378e-05
+SHARC_D12_STRIP_BACK39_E 0.00942349 2.46461e-05
+SHARC_D12_STRIP_BACK40_E -0.00127344 2.51202e-05
+SHARC_D12_STRIP_BACK41_E -0.0502734 2.51267e-05
+SHARC_D12_STRIP_BACK42_E -0.00239558 2.45522e-05
+SHARC_D12_STRIP_BACK43_E -0.00143522 2.4463e-05
+SHARC_D12_STRIP_BACK44_E -0.00154555 2.54788e-05
+SHARC_D12_STRIP_BACK45_E -0.00260741 2.50383e-05
+SHARC_D12_STRIP_BACK46_E -0.00107954 2.52285e-05
+SHARC_D12_STRIP_BACK47_E 0.0096826 2.5544e-05
diff --git a/NPAnalysis/S1554/SharcEff.root b/NPAnalysis/S1554/SharcEff.root
new file mode 100644
index 0000000000000000000000000000000000000000..7a23fa69e60c04c900074535a14ae2c71c13133d
Binary files /dev/null and b/NPAnalysis/S1554/SharcEff.root differ
diff --git a/NPAnalysis/S1554/Show.C b/NPAnalysis/S1554/Show.C
new file mode 100644
index 0000000000000000000000000000000000000000..74b2446eb248c52cd8511932e6ac2ef4bafdb3d3
--- /dev/null
+++ b/NPAnalysis/S1554/Show.C
@@ -0,0 +1,59 @@
+void Show(){
+  
+  TFile* file = new TFile("../../Outputs/Analysis/BeamTest.root");
+  TTree* tree = (TTree*) file->FindObjectAny("PhysicsTree");
+
+  TCanvas* c = new TCanvas("Result","Result",600,600);
+  c->Divide(2,2);
+
+  c->cd(1);
+  tree->Draw("Ex:AddBack_DC/1000.>>h(500,0,10,500,-5,10)","ELab>0 && ThetaLab>90","colz");
+ 
+  c->cd(2);
+  tree->Draw("Ex>>hE(150,-5,10)","ELab>0 && ThetaLab>90");
+  tree->Draw("Ex>>hE2(150,-5,10)","ELab>0 && ThetaLab>90&&Trifoil.Time>50 && Trifoil.Time<65","same");
+  TH1F* hEx2 =  (TH1F*) gDirectory->FindObjectAny("hE2");    
+  hEx2->SetFillColor(kOrange+7);
+  hEx2->SetLineColor(kOrange+7); 
+  c->cd(3);
+  tree->Draw("ThetaCM>>hCM(36,0,180)","ThetaLab>90 && Trifoil.Time>50 && Trifoil.Time<65 && Ex>-0.8 && Ex< 0.2","");
+  //tree->Draw("ThetaCM>>hCMb(36,0,180)","ThetaLab>90 && Ex>-0.8 && Ex< 0.2","same");
+
+  TH1F* hCM = (TH1F*) gDirectory->FindObjectAny("hCM");
+  //TH1F* hCMb = (TH1F*) gDirectory->FindObjectAny("hCMb");
+ // hCMb->SetMarkerColor(kGreen-3);
+//  hCMb->Sumw2();
+
+  TFile* effFile = new TFile("SharcEff.root");
+  hCM->Sumw2();
+  TH1F* eff = (TH1F*) effFile->FindObjectAny("hDetecThetaCM");
+  eff->Sumw2();
+  eff->Rebin(5);
+  hCM->Divide(eff);
+  hCM->GetXaxis()->SetRangeUser(0,60);
+  gPad->SetLogy();
+
+  TGraph* g = new TGraph("22.si");
+  g->Draw("c"); 
+  double normal = hCM->GetBinContent(hCM->FindBin(8))/g->Eval(8);
+  TF1* f = new TF1("f",Form("%f",normal),0,180);
+   hCM->Divide(f);
+  /*double normalb = hCM->GetBinContent(hCM->FindBin(8))/hCMb->GetBinContent(hCMb->FindBin(8));
+  TF1* fb = new TF1("fb",Form("%f",1./normalb),0,180);
+  hCMb->Divide(fb); 
+*/
+  c->cd(4);
+  tree->Draw("ThetaCM>>hCM2(36,0,180)","ThetaLab>90 && Trifoil.Time>50 && Trifoil.Time<65 && Ex>4 && Ex< 5","");
+  TH1F* hCM2 = (TH1F*) gDirectory->FindObjectAny("hCM2"); 
+  hCM2->Sumw2();
+  hCM2->Divide(eff);              
+  hCM2->GetXaxis()->SetRangeUser(0,60);  
+  gPad->SetLogy();  
+
+  TGraph* g2 = new TGraph("22.sie");
+  g2->Draw("c"); 
+  normal = hCM2->GetBinContent(hCM->FindBin(8))/g2->Eval(8);
+  TF1* f2 = new TF1("f2",Form("%f",normal),0,180);
+  hCM2->Divide(f2);
+
+}
diff --git a/NPAnalysis/S1554/TigressCalibration.txt b/NPAnalysis/S1554/TigressCalibration.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c3fc300dcb244d7994d48ba9dafe14a03d3c8bb
--- /dev/null
+++ b/NPAnalysis/S1554/TigressCalibration.txt
@@ -0,0 +1,48 @@
+TIGRESS_D5_CRY1_SEG0_E -0.771891 0.00123357
+TIGRESS_D5_CRY2_SEG0_E -0.260452 0.00126496
+TIGRESS_D5_CRY3_SEG0_E 0.0512326 0.00129933
+TIGRESS_D5_CRY4_SEG0_E -0.0404476 0.00128342
+TIGRESS_D6_CRY1_SEG0_E -0.0738317 0.00130117
+TIGRESS_D6_CRY2_SEG0_E -0.0218315 0.00131135
+TIGRESS_D6_CRY3_SEG0_E -0.475758 0.00104663
+TIGRESS_D6_CRY4_SEG0_E 0.00667737 0.00127443
+TIGRESS_D7_CRY1_SEG0_E 0.0772489 0.00132636
+TIGRESS_D7_CRY2_SEG0_E -0.431499 0.00129204
+TIGRESS_D7_CRY3_SEG0_E -0.232263 0.00129774
+TIGRESS_D7_CRY4_SEG0_E 0.00755919 0.00131869
+TIGRESS_D8_CRY1_SEG0_E 0.110836 0.00126591
+TIGRESS_D8_CRY2_SEG0_E 0.210256 0.00125411
+TIGRESS_D8_CRY3_SEG0_E -0.105597 0.00126849
+TIGRESS_D8_CRY4_SEG0_E -0.60881 0.00128748
+TIGRESS_D9_CRY1_SEG0_E -0.369976 0.0013191
+TIGRESS_D9_CRY2_SEG0_E -0.857263 0.00124882
+TIGRESS_D9_CRY3_SEG0_E -0.272451 0.00138852
+TIGRESS_D9_CRY4_SEG0_E -0.192207 0.00122637
+TIGRESS_D10_CRY1_SEG0_E 0.169917 0.00127444
+TIGRESS_D10_CRY2_SEG0_E 0.276966 0.00124415
+TIGRESS_D10_CRY3_SEG0_E -0.310557 0.00131662
+TIGRESS_D10_CRY4_SEG0_E 0.715662 0.00125387
+TIGRESS_D11_CRY1_SEG0_E -0.059879 0.0012897
+TIGRESS_D11_CRY2_SEG0_E -0.231845 0.00132258
+TIGRESS_D11_CRY3_SEG0_E -0.0413033 0.00123055
+TIGRESS_D11_CRY4_SEG0_E -0.28909 0.00122752
+TIGRESS_D12_CRY1_SEG0_E -0.364146 0.00126993
+TIGRESS_D12_CRY2_SEG0_E 0.191165 0.00128822
+TIGRESS_D12_CRY3_SEG0_E -0.666555 0.00131427
+TIGRESS_D12_CRY4_SEG0_E 0.0413247 0.00130442
+TIGRESS_D13_CRY1_SEG0_E 0.123573 0.00125444
+TIGRESS_D13_CRY2_SEG0_E -0.0301719 0.00123952
+TIGRESS_D13_CRY3_SEG0_E -0.0415504 0.00127214
+TIGRESS_D13_CRY4_SEG0_E 0.0409325 0.00124429
+TIGRESS_D14_CRY1_SEG0_E -0.0612007 0.00125159
+TIGRESS_D14_CRY2_SEG0_E -0.0504007 0.00129919
+TIGRESS_D14_CRY3_SEG0_E -0.241456 0.00128343
+TIGRESS_D14_CRY4_SEG0_E -0.744806 0.00127653
+TIGRESS_D15_CRY1_SEG0_E -0.091431 0.00127068
+TIGRESS_D15_CRY2_SEG0_E 0.120978 0.00127709
+TIGRESS_D15_CRY3_SEG0_E -0.464926 0.00129037
+TIGRESS_D15_CRY4_SEG0_E 0.17606 0.00125192
+TIGRESS_D16_CRY1_SEG0_E -0.0548401 0.0013308
+TIGRESS_D16_CRY2_SEG0_E -0.149941 0.0012316
+TIGRESS_D16_CRY3_SEG0_E -0.195287 0.00134661
+TIGRESS_D16_CRY4_SEG0_E -0.120961 0.00133271
diff --git a/NPAnalysis/S1554/macro/Energy/EnergyCalibrator.cxx b/NPAnalysis/S1554/macro/Energy/EnergyCalibrator.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..483efc6181b1e0518870022af03a15b882ee5ba8
--- /dev/null
+++ b/NPAnalysis/S1554/macro/Energy/EnergyCalibrator.cxx
@@ -0,0 +1,64 @@
+void EnergyCalibrator(){
+  TFile* file = new TFile("~/Desktop/nptool/Outputs/Analysis/Sharc_Calib.root");
+  NPL::CalibrationSource* cs1 = new NPL::CalibrationSource();
+  NPL::EnergyLoss* el = new NPL::EnergyLoss("EnergyLossTable/alpha_Al.G4table","G4Table",10);
+
+  ofstream calfile("SharcCalibration.txt");
+  ofstream deadfile("DeadLayer.txt");
+
+  if(!deadfile.is_open() || !calfile.is_open())
+    exit(1);
+
+  vector<double> coeff;
+
+  for(unsigned int det = 0 ; det < 12 ; det++){
+    TH2* h2d = (TH2*) file->FindObjectAny(Form("SHARC%i_STR_FRONT_E_RAW",det+1));
+    if(h2d){
+      for(unsigned int i = 1 ; i < h2d->GetNbinsX() ; i++){
+        TH1D* h = h2d->ProjectionY("px",i,i);
+
+        NPL::CalibrationSource* cs = new NPL::CalibrationSource();
+        cs->Set_ThreeAlphaSource();
+
+        NPL::SiliconCalibrator* mycal = new NPL::SiliconCalibrator();
+      //  double dist = mycal->ZeroExtrapolation(h,cs,el,coeff,0,5000,150000,300000);
+         double dist = mycal->SimpleCalibration(h,cs,el,coeff,150000,300000);
+
+        gPad->Update();
+        if(dist>=0){
+          deadfile << Form("SHARC_D%i_STRIP_FRONT%i_DEADLAYER ",det+1,i) << dist <<endl;
+          calfile << Form("SHARC_D%i_STRIP_FRONT%i_E ",det+1,i) << coeff[0] << " " << coeff[1] << endl; 
+        }
+
+        delete h;
+        delete mycal;
+        delete cs;
+      }
+    
+    h2d = (TH2*) file->FindObjectAny(Form("SHARC%i_STR_BACK_E_RAW",det+1));
+    if(h2d){
+      for(unsigned int i = 1 ; i < h2d->GetNbinsX() ; i++){
+        TH1D* h = h2d->ProjectionY("px",i,i);
+
+        NPL::CalibrationSource* cs = new NPL::CalibrationSource();
+        cs->Set_ThreeAlphaSource();
+
+        NPL::SiliconCalibrator* mycal = new NPL::SiliconCalibrator();
+       // double dist = mycal->ZeroExtrapolation(h,cs,el,coeff,0,5000,150000,300000);
+         double dist = mycal->SimpleCalibration(h,cs,el,coeff,150000,300000);
+
+        gPad->Update();
+        if(dist>=0){
+          deadfile << Form("SHARC_D%i_STRIP_BACK%i_DEADLAYER ",det+1,i) << dist <<endl;
+          calfile << Form("SHARC_D%i_STRIP_BACK%i_E ",det+1,i) << coeff[0] << " " << coeff[1] << endl; 
+        }
+
+        delete h;
+        delete mycal;
+        delete cs;
+      }
+    } 
+    }
+  }
+
+}
diff --git a/NPAnalysis/Sharc/Analysis.cxx b/NPAnalysis/Sharc/Analysis.cxx
index 3c5c5eb9dcc113cf00713f0f3a4c2352c36f6483..746ee20af14f3135d570d532341ff590acc32218 100644
--- a/NPAnalysis/Sharc/Analysis.cxx
+++ b/NPAnalysis/Sharc/Analysis.cxx
@@ -39,9 +39,8 @@ void Analysis::Init(){
   
   Sharc = (TSharcPhysics*)  m_DetectorManager -> GetDetector("Sharc");
   LightCD2 = EnergyLoss("proton_CD2.G4table","G4Table",100 );
-  LightAl = EnergyLoss("proton_Al.G4table","G4Table",100);
   LightSi = EnergyLoss("proton_Si.G4table","G4Table",100);
-  BeamCD2 = EnergyLoss("Rb88_CD2.G4table","G4Table",100);
+  BeamCD2 = EnergyLoss("Mg28[0.0]_CD2.G4table","G4Table",100);
   myReaction = new NPL::Reaction();
   myReaction->ReadConfigurationFile(NPOptionManager::getInstance()->GetReactionFile());
    TargetThickness = m_DetectorManager->GetTargetThickness()*micrometer;
diff --git a/NPAnalysis/Sharc/configs/ConfigSharc.dat b/NPAnalysis/Sharc/configs/ConfigSharc.dat
index 512e38edf780d4eee434ec099c6572c6073622a1..d8b051af5a332c9da1b32b78b12f565d66f723e1 100644
--- a/NPAnalysis/Sharc/configs/ConfigSharc.dat
+++ b/NPAnalysis/Sharc/configs/ConfigSharc.dat
@@ -1,5 +1,5 @@
 ConfigSharc
 %  DISABLE_ALL SH1
-%  DISABLE_CHANNEL SH2STRF1
+  DISABLE_CHANNEL SH2STRF1
 %  DISABLE_CHANNEL SH2STRB1   
 
diff --git a/NPAnalysis/macros/GeometricalEfficiency.C b/NPAnalysis/macros/GeometricalEfficiency.C
index d3ec1b9e46eec5f9f9e7ce57e4a2c472d64b0ffe..843843e63dc4bc81ac2ce3d4080fc581be289048 100644
--- a/NPAnalysis/macros/GeometricalEfficiency.C
+++ b/NPAnalysis/macros/GeometricalEfficiency.C
@@ -86,6 +86,13 @@ void GeometricalEfficiency(const char * fname = "myResult"){
       hDetecThetaCM->Fill(initCond->GetThetaCM(0));
     }
   }
+
+   hEmittTheta->Sumw2();
+    hEmittThetaCM->Sumw2();
+      hDetecTheta->Sumw2();
+      hDetecThetaCM->Sumw2();
+   
+
    TCanvas *c0 = new TCanvas("c0", "Distrib",800,800);
   hEmittTheta->Draw("");
   hDetecTheta->Draw("same");
@@ -103,7 +110,7 @@ void GeometricalEfficiency(const char * fname = "myResult"){
   c4->SetTopMargin(0.01);
   c4->SetRightMargin(0.03);
   TH1F* SolidACM = new TH1F(*hDetecThetaCM);
- //// SolidACM->Sumw2();
+  SolidACM->Sumw2();
   TF1* C = new TF1("C",Form("1. /(2*%f*sin(x*%f/180.)*1*%f/180)",M_PI,M_PI,M_PI),0,180);
   SolidACM->Divide(hEmittThetaCM);
   SolidACM->Divide(C,1);
diff --git a/NPLib/CMakeLists.txt b/NPLib/CMakeLists.txt
index faad18de0b36de48b2a8340247e56070f796f2bc..15f9fb07d652c548e79620ac5822d9d6dcad4388 100644
--- a/NPLib/CMakeLists.txt
+++ b/NPLib/CMakeLists.txt
@@ -62,9 +62,10 @@ MACRO(subdirlist result curdir)
       string(COMPARE EQUAL "${child}" "InteractionCoordinates" r8)
       string(COMPARE EQUAL "${child}" "Utility" r9)
       string(COMPARE EQUAL "${child}" "bin" r10)
-      IF(NOT r0 AND NOT r1 AND NOT r2 AND NOT r3 AND NOT r4 AND NOT r5 AND NOT r6 AND NOT r7 AND NOT r8 AND NOT r9 AND NOT r10)
-        string(COMPARE EQUAL "${DETLIST}" "" r11)
-        IF(r11)
+      string(COMPARE EQUAL "${child}" "Calibration" r11)
+      IF(NOT r0 AND NOT r1 AND NOT r2 AND NOT r3 AND NOT r4 AND NOT r5 AND NOT r6 AND NOT r7 AND NOT r8 AND NOT r9 AND NOT r10 AND NOT r11)
+        string(COMPARE EQUAL "${DETLIST}" "" r12)
+        IF(r12)
           LIST(APPEND dirlist ${child})
         ELSEIF(${DETLIST} MATCHES ".*${child}.*" )
           LIST(APPEND dirlist ${child}) 
@@ -77,8 +78,9 @@ ENDMACRO()
 
 # Call the Macro
 subdirlist(SUB_DIRECTORY ${CMAKE_BINARY_DIR})
-set(SUB_DIRECTORY ${SUB_DIRECTORY} Core Physics InitialConditions InteractionCoordinates Utility)
+set(SUB_DIRECTORY ${SUB_DIRECTORY} Core Physics Calibration InitialConditions InteractionCoordinates Utility)
 include_directories("Core/")
+include_directories("Physics/")
 include_directories("Online/")
 
 # Add each sub folder to the project
diff --git a/NPLib/Calibration/CMakeLists.txt b/NPLib/Calibration/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bc1954b58f4176ec141d39b947898e04284a343d
--- /dev/null
+++ b/NPLib/Calibration/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_custom_command(OUTPUT NPSiliconCalibratorDict.cxx NPSiliconCalibrator.rootmap NPSiliconCalibratorDict_rdict.pcm COMMAND ../scripts/build_dict.sh NPSiliconCalibrator.h NPSiliconCalibratorDict.cxx NPSiliconCalibrator.rootmap libNPCalibration.so NPCalibrationLinkDef1.h) 
+add_custom_command(OUTPUT NPCalibrationSourceDict.cxx NPCalibrationSource.rootmap NPCalibrationSourceDict_rdict.pcm COMMAND ../scripts/build_dict.sh NPCalibrationSource.h NPCalibrationSourceDict.cxx NPCalibrationSource.rootmap libNPCalibration.so NPCalibrationLinkDef2.h) 
+add_library(NPCalibration SHARED NPCalibrationSource.cxx NPSiliconCalibrator.cxx NPSiliconCalibratorDict.cxx NPCalibrationSourceDict.cxx)
+target_link_libraries(NPCalibration ${ROOT_LIBRARIES} -lSpectrum  NPCore NPPhysics)  
+install(FILES NPCalibrationSource.h NPCalibrationSource.h DESTINATION  ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
diff --git a/NPLib/Calibration/NPCalibrationLinkDef1.h b/NPLib/Calibration/NPCalibrationLinkDef1.h
new file mode 100644
index 0000000000000000000000000000000000000000..fb032828f53dbc0af2f36562cbaec262d3bbd5ad
--- /dev/null
+++ b/NPLib/Calibration/NPCalibrationLinkDef1.h
@@ -0,0 +1,3 @@
+#ifdef __CINT__
+#pragma link C++ defined_in "NPSiliconCalibrator.h";
+#endif
diff --git a/NPLib/Calibration/NPCalibrationLinkDef2.h b/NPLib/Calibration/NPCalibrationLinkDef2.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b3648e6b7617da25edc7982e3eaa9b67f038b89
--- /dev/null
+++ b/NPLib/Calibration/NPCalibrationLinkDef2.h
@@ -0,0 +1,3 @@
+#ifdef __CINT__
+#pragma link C++ defined_in "NPCalibrationSource.h";
+#endif
diff --git a/NPLib/Calibration/NPCalibrationSource.cxx b/NPLib/Calibration/NPCalibrationSource.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d38ede09cc87121c472a962a7a522e7d2c96dd89
--- /dev/null
+++ b/NPLib/Calibration/NPCalibrationSource.cxx
@@ -0,0 +1,131 @@
+// NPL
+#include "NPCalibrationSource.h"
+
+// Root
+#include"TDirectory.h"
+
+////////////////////////////////////////////////////////////////////////////////
+NPL::CalibrationSource::CalibrationSource(){
+m_SourceSignal = 0 ;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+NPL::CalibrationSource::~CalibrationSource(){
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::ComputeSourceSignal(){
+  TString contribution;
+  unsigned int arg_number = 0;
+
+  for(unsigned int i = 0 ; i < m_Energies.size() ; i++){
+    for(unsigned int j = 0 ; j < m_Energies[i].size() ; j++){
+      contribution +=
+      Form("(%f)*[%i]*exp(-(x-[%i]*%f)*(x-[%i]*%f)/(2*[%i]*[%i]))",
+            m_BranchingRatio[i][j]/m_BranchingRatio[i][0], arg_number,
+            arg_number+1, m_Energies[i][j]/m_Energies[i][0],
+            arg_number+1, m_Energies[i][j]/m_Energies[i][0],
+            arg_number+2,arg_number+2);
+    
+      if(j!=m_Energies[i].size()-1) contribution+="+";
+    }
+
+    arg_number+=3;
+      if(i!=m_Energies.size()-1) contribution+="+";
+  }
+
+  m_SourceSignal = new TF1("np_source_signal",contribution,0,1e9);
+  m_SourceSignal->SetNpx(20000);
+  arg_number = 0;
+  for(unsigned int i = 0 ; i < m_Energies.size() ; i++){
+    m_SourceSignal->SetParameter(arg_number++,1000);
+    m_SourceSignal->SetParameter(arg_number++,5000+i*1000);
+    m_SourceSignal->SetParameter(arg_number++,20);
+  }
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+TF1* NPL::CalibrationSource::GetSourceSignal(){
+  if(!m_SourceSignal)
+    ComputeSourceSignal();
+
+  return m_SourceSignal;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::AddParticleContribution(vector<double> Energies ,  vector<double> ErrEnergies, vector<double> BranchingRatio){
+  m_Energies.push_back(Energies);
+  m_ErrEnergies.push_back(ErrEnergies);
+  m_BranchingRatio.push_back(BranchingRatio);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::Set_ThreeAlphaSource(){
+ Set_239Pu();
+ Set_241Am();
+ Set_244Cm();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::Set_239Pu(){
+  vector<double> Energies;
+  vector<double> ErrEnergies;
+  vector<double> BranchingRatio;
+  
+  Energies.push_back(5.15659);
+  Energies.push_back(5.11443);
+  Energies.push_back(5.1055);
+
+  ErrEnergies.push_back(1.4e-4);
+  ErrEnergies.push_back(8e-5);
+  ErrEnergies.push_back(8e-4);
+  
+  BranchingRatio.push_back(70.77);
+  BranchingRatio.push_back(17.11);
+  BranchingRatio.push_back(11.94);
+
+  AddParticleContribution(Energies,ErrEnergies,BranchingRatio);
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::Set_241Am(){
+  vector<double> Energies;
+  vector<double> ErrEnergies;
+  vector<double> BranchingRatio;
+  
+  Energies.push_back(5.48556);
+  Energies.push_back(5.44280);
+  Energies.push_back(5.388);
+
+  ErrEnergies.push_back(1.2e-4);
+  ErrEnergies.push_back(1.3e-4);
+  ErrEnergies.push_back(1e-3); // to be checked
+  
+  BranchingRatio.push_back(84.8);
+  BranchingRatio.push_back(13.1);
+  BranchingRatio.push_back(1.66);
+
+  AddParticleContribution(Energies,ErrEnergies,BranchingRatio);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void NPL::CalibrationSource::Set_244Cm(){
+  vector<double> Energies;
+  vector<double> ErrEnergies;
+  vector<double> BranchingRatio;
+  
+  Energies.push_back(5.80477);
+  Energies.push_back(5.76264);
+
+  ErrEnergies.push_back(5e-5);
+  ErrEnergies.push_back(3e-5);
+  
+  BranchingRatio.push_back(76.40);
+  BranchingRatio.push_back(23.60);
+
+  AddParticleContribution(Energies,ErrEnergies,BranchingRatio);
+}
+
+
diff --git a/NPLib/Calibration/NPCalibrationSource.h b/NPLib/Calibration/NPCalibrationSource.h
new file mode 100644
index 0000000000000000000000000000000000000000..b7919854eb8b2af6798469bd02623a2e3adbbe0f
--- /dev/null
+++ b/NPLib/Calibration/NPCalibrationSource.h
@@ -0,0 +1,54 @@
+#ifndef __NPCALIBRATIONSOURCE_H__
+#define __NPCALIBRATIONSOURCE_H__
+
+// STL
+#include <iostream>
+#include <string>
+#include <cmath>
+#include <vector>
+using namespace std;
+
+// Root
+#include <TF1.h>
+
+// NPL
+#include "NPEnergyLoss.h"
+
+namespace NPL{
+  class CalibrationSource{
+    
+  public:
+    CalibrationSource();
+    ~CalibrationSource();
+    
+  private: // Basic information
+    // First Index is for main peak, second index for the relative sattellites peaks
+    vector< vector<double> > m_Energies;
+    vector< vector<double> > m_BranchingRatio;
+    vector< vector<double> > m_ErrEnergies;
+  
+  private: // Computed source signal (a TF1 ready for fit use, set up with physical value)
+    TF1* m_SourceSignal;
+    void ComputeSourceSignal();
+   
+  public: // Getter and Setter
+    TF1* GetSourceSignal();
+    
+  public: // Get and Set the energies
+    // for particle like source (one gaussian per energies)
+    void AddParticleContribution(vector<double> Energies ,  vector<double> ErrEnergies, vector<double> BranchingRatio);
+    
+    inline vector< vector<double> > GetEnergies(){return m_Energies;}
+    inline vector< vector<double> > GetEnergiesErrors(){return m_ErrEnergies;}
+    inline vector< vector<double> > GetBranchingRatio(){return m_BranchingRatio;}
+    
+ 
+  public: // Some Standard source
+    void Set_ThreeAlphaSource();
+    void Set_239Pu();
+    void Set_241Am();
+    void Set_244Cm();
+    
+  };
+}
+#endif
diff --git a/NPLib/Calibration/NPSiliconCalibrator.cxx b/NPLib/Calibration/NPSiliconCalibrator.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..cb77a079043bcb9152fafbe6ff84389df7e4c1b9
--- /dev/null
+++ b/NPLib/Calibration/NPSiliconCalibrator.cxx
@@ -0,0 +1,235 @@
+// NPL
+#include "NPSiliconCalibrator.h"
+
+// Root
+#include "TSpectrum.h"
+
+NPL::SiliconCalibrator::SiliconCalibrator(){
+}
+
+//////////////////////////////////////////////
+NPL::SiliconCalibrator::~SiliconCalibrator(){
+}
+
+//////////////////////////////////////////////
+double NPL::SiliconCalibrator::ZeroExtrapolation(TH1* histo, NPL::CalibrationSource* CS, NPL::EnergyLoss* EL, vector<double>& coeff, unsigned int pedestal, unsigned int max_iteration,double rmin,double rmax){
+ if(histo->GetEntries()==0){
+    coeff.clear();
+    coeff.push_back(0);
+    coeff.push_back(-1);
+    return -1;
+  }
+  
+ int counts=0;
+  if(rmin == -1 && rmax == -1){
+    rmin = histo->GetBinCenter(1);
+    rmax = histo->GetBinCenter(histo->GetNbinsX()-1);
+  }
+
+  else{
+        for(unsigned int i = 1 ; i < histo->GetNbinsX() ; i++){ 
+      if(histo->GetBinCenter(i) < rmin || histo->GetBinCenter(i) > rmax)
+        histo->SetBinContent(i,0);
+      else
+        counts+= histo->GetBinContent(i);
+    }
+  }
+
+ if(counts == 0){
+    coeff.clear();
+    coeff.push_back(0);
+    coeff.push_back(-1);
+    return -2;
+  }
+  
+  m_CalibrationSource= CS;
+  m_EL_Al= EL;
+
+  double DistanceToPedestal = 100000;
+  double Step = 0.1*micrometer;
+  bool   LastStepIncrease = false;
+  bool   LastStepDecrease = false;
+  double my_precision = 0.1;
+  // Energy of the Source and sigma on the value (MeV)
+
+  double Assume_Thickness = 0 ; // micrometer
+  vector<double> Assume_E; // Energie calculated assuming Assume_Thickness deadlayer of Al
+
+  unsigned int k= 0;
+
+  double* Source_E = new double[CS->GetEnergies().size()];
+  double* Source_Sig = new double[CS->GetEnergies().size()];
+
+  unsigned int source_size =  CS->GetEnergies().size() ;
+  for(unsigned int i = 0 ; i < source_size ; i++){
+    Source_E[i] = CS->GetEnergies()[i][0];
+    Source_Sig[i] =  CS->GetEnergiesErrors()[i][0]; 
+  }
+  Assume_E.resize(source_size,0);
+  TGraphErrors* g = FitSpectrum(histo);
+  while(k++<max_iteration && abs(Assume_Thickness) < 100*micrometer){
+
+    // Compute the new assumed energies
+    double* x = g->GetX();
+    for(unsigned int i = 0 ; i < source_size ; i++){
+      Assume_E[i] = EL->Slow(Source_E[i] , Assume_Thickness, 0);
+      g->SetPoint(i,x[i] ,Assume_E[i]);
+    }
+
+    DistanceToPedestal = FitPoints(g,&Assume_E[0] , Source_Sig, coeff, 0 );
+    if(abs(DistanceToPedestal) < my_precision || Step < 0.01*micrometer)
+      break;
+
+    else if(DistanceToPedestal > 0 ){
+      if(LastStepIncrease)
+        Step *= 10.;
+
+      Assume_Thickness += Step;
+      LastStepIncrease = true;
+    }
+
+    else if(DistanceToPedestal < 0 ){
+      if(LastStepDecrease)
+        Step *= 10.;
+
+      Assume_Thickness -= Step;
+      LastStepDecrease = true;
+    }
+
+    // In this case the step size need to be changed
+    if(LastStepIncrease && LastStepDecrease){
+      Step *= 0.1;
+      LastStepIncrease = false ;
+      LastStepDecrease = false ;
+    }
+
+  }
+
+  if(abs(DistanceToPedestal) > my_precision && Step > 0.01*micrometer){
+    cout << "Zero extrapolation failed on : histo " << histo->GetName() << ". Final value is:" << Assume_Thickness / micrometer << "um with step "<< Step/micrometer << ", Dst to Pedestal = " << abs(DistanceToPedestal) << endl;
+    return -1000;
+  }
+
+  else if(Assume_Thickness<0){
+    DistanceToPedestal = FitPoints(g,Source_E , Source_Sig, coeff, 0 );
+    return 0;
+  }
+  delete g;
+  return Assume_Thickness/micrometer;
+}
+////////////////////////////////////////////////////////////////////////////////
+double NPL::SiliconCalibrator::SimpleCalibration(TH1* histo, NPL::CalibrationSource* CS, NPL::EnergyLoss* EL, vector<double>& coeff, double rmin,double rmax){
+ if(histo->GetEntries()==0){
+    coeff.clear();
+    coeff.push_back(0);
+    coeff.push_back(-1);
+    return -1;
+  }
+  
+ int counts=0;
+  if(rmin == -1 && rmax == -1){
+    rmin = histo->GetBinCenter(1);
+    rmax = histo->GetBinCenter(histo->GetNbinsX()-1);
+  }
+
+  else{
+        for(unsigned int i = 1 ; i < histo->GetNbinsX() ; i++){ 
+      if(histo->GetBinCenter(i) < rmin || histo->GetBinCenter(i) > rmax)
+        histo->SetBinContent(i,0);
+      else
+        counts+= histo->GetBinContent(i);
+    }
+  }
+
+ if(counts < 30){
+    coeff.clear();
+    coeff.push_back(0);
+    coeff.push_back(-1);
+    return -2;
+  }
+  
+  m_CalibrationSource= CS;
+  m_EL_Al= EL;
+
+  double* Source_E = new double[CS->GetEnergies().size()];
+  double* Source_Sig = new double[CS->GetEnergies().size()];
+
+  unsigned int source_size =  CS->GetEnergies().size() ;
+  for(unsigned int i = 0 ; i < source_size ; i++){
+    Source_E[i] = CS->GetEnergies()[i][0];
+    Source_Sig[i] = CS->GetEnergiesErrors()[i][0]; 
+  }
+  TGraphErrors* g = FitSpectrum(histo);
+  // Compute the new assumed energies
+   FitPoints(g,Source_E , Source_Sig, coeff, 0 );
+  
+  delete g;
+  return 1;
+}
+
+
+//////////////////////////////////////////////
+double NPL::SiliconCalibrator::FitPoints(TGraphErrors* Graph,double* Energies, double* ErrEnergies, vector<double>& coeff, double pedestal ){
+
+  Graph->Fit("pol1","Q");
+  coeff.clear();
+  coeff.push_back(Graph->GetFunction("pol1")->GetParameter(0));
+  coeff.push_back(Graph->GetFunction("pol1")->GetParameter(1));
+  // Compute the Distance to pedestal:
+  return (pedestal + coeff[0]/coeff[1] );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+TGraphErrors* NPL::SiliconCalibrator::FitSpectrum(TH1* histo){
+  TF1* fitfunc =  m_CalibrationSource->GetSourceSignal();
+  // Perform a peak search to get a hint of where are the peaks
+  TSpectrum* sp = new TSpectrum(4,1);
+  Int_t nfound = 0;
+  nfound = sp->Search(histo,3,"",0.25);
+  float* xpeaks = sp->GetPositionX();
+
+  if(nfound>1){
+    for(Int_t p=0;p<nfound;p++){
+      for(Int_t i=0;i<nfound-1;i++){
+        if(xpeaks[i]>xpeaks[i+1]){ 
+          Float_t varia=xpeaks[i];
+          xpeaks[i]=xpeaks[i+1];
+          xpeaks[i+1]=varia;
+        }	  
+      }
+    }
+  }
+
+
+  if(nfound==3){
+    fitfunc->SetParameter(1,xpeaks[0]);
+    fitfunc->SetParameter(4,xpeaks[1]);
+    fitfunc->SetParameter(7,xpeaks[2]);
+    
+    // ballpark the sigma
+    double sigma = (xpeaks[1]-xpeaks[0])/100;
+    fitfunc->SetParameter(2,sigma);
+    fitfunc->SetParameter(5,sigma);
+    fitfunc->SetParameter(8,sigma);
+    
+    histo->GetXaxis()->SetRangeUser(xpeaks[0]-xpeaks[0]/20.,xpeaks[2]+xpeaks[2]/20.);
+  }
+  
+  histo->Fit(fitfunc,"Q");
+  TF1* fit = histo->GetFunction(fitfunc->GetName());
+  TGraphErrors* Graph = new TGraphErrors();
+  // Set the value of the TGraphError
+  vector< vector<double> > Energies = m_CalibrationSource->GetEnergies();
+  vector< vector<double> > ErrEnergies = m_CalibrationSource->GetEnergiesErrors();
+
+  unsigned int mysize = Energies.size();
+  int point = 0 ;
+
+  for(unsigned int i = 0 ; i < mysize ; i++){
+    Graph->SetPoint(point,fit->GetParameter(3*i+1) ,Energies[i][0]);
+    Graph->SetPointError(point++,fit->GetParError(3*i+1),ErrEnergies[i][0]);
+  } 
+  return Graph;
+}
+
+
diff --git a/NPLib/Calibration/NPSiliconCalibrator.h b/NPLib/Calibration/NPSiliconCalibrator.h
new file mode 100644
index 0000000000000000000000000000000000000000..280bae49aa680563ddc69f5ba357511ab927cece
--- /dev/null
+++ b/NPLib/Calibration/NPSiliconCalibrator.h
@@ -0,0 +1,38 @@
+// STL
+#include <vector>
+using namespace std;
+
+// Root
+#include "TH1.h"
+#include "TGraphErrors.h"
+#include "TGraph.h"
+// NPL
+#include "NPEnergyLoss.h"
+#include "NPCalibrationSource.h"
+
+namespace NPL{
+  class SiliconCalibrator{
+
+    public:
+      SiliconCalibrator();
+      ~SiliconCalibrator();
+
+    private:
+      NPL::EnergyLoss* m_EL_Al;
+      NPL::CalibrationSource* m_CalibrationSource;
+      TF1* m_FitFunction;
+
+    public:
+      // Use the Zero Extrapolation method to perform fit and return the dead layer thickness
+      double ZeroExtrapolation(TH1* histo, NPL::CalibrationSource* CS, NPL::EnergyLoss* EL, vector<double>& coeff, unsigned int pedestal, unsigned int max_iteration = 10000 , double rmin=-1,double rmax=-1);
+
+      double SimpleCalibration(TH1* histo, NPL::CalibrationSource* CS, NPL::EnergyLoss* EL, vector<double>& coeff, double rmin=-1,double rmax=-1);
+
+      // Return distance to pedestal. Use energies in Energies to perform fit and fill coeff with the results
+      double FitPoints(TGraphErrors* Graph, double* Energies , double* ErrEnergies, vector<double>& coeff , double pedestal = 0 );
+      // return a canvas containning the results
+      void DisplayResults();
+      // 
+      TGraphErrors* FitSpectrum(TH1* histo);
+  };
+}
diff --git a/NPLib/Core/CMakeLists.txt b/NPLib/Core/CMakeLists.txt
index ff16db4f787761554ccc59ebe277338b923e5fe7..a296ddd9313bb1037d749b0f5f102505bae21f7d 100644
--- a/NPLib/Core/CMakeLists.txt
+++ b/NPLib/Core/CMakeLists.txt
@@ -1,6 +1,6 @@
 add_custom_command(OUTPUT TAsciiFileDict.cxx TAsciiFileDict_rdict.pcm TAsciiFile.rootmap COMMAND  ../scripts/build_dict.sh TAsciiFile.h TAsciiFileDict.cxx TAsciiFile.rootmap libNPCore.so)  
 add_custom_command(OUTPUT NPVDetectorDict.cxx NPVDetectorDict_rdict.pcm NPVDetector.rootmap COMMAND  ../scripts/build_dict.sh NPVDetector.h NPVDetectorDict.cxx NPVDetector.rootmap libNPCore.so NPCoreLinkdef.h)  
-add_custom_command(OUTPUT NPOnlineDict.cxx NPOnlineDict_rdict.pcm NPOnline.rootmap COMMAND ../scripts/build_dict.sh NPOnline.h NPOnlineDict.cxx NPOnline.rootmap libNPOnline.dylib NPOnlineLinkDef.h DEPENDS NPOnline.h)
+add_custom_command(OUTPUT NPOnlineDict.cxx NPOnlineDict_rdict.pcm NPOnline.rootmap COMMAND ../scripts/build_dict.sh NPOnline.h NPOnlineDict.cxx NPOnline.rootmap libNPCore.dylib NPOnlineLinkDef.h DEPENDS NPOnline.h)
 add_library(NPCore SHARED NPVAnalysis.cxx NPAnalysisFactory.cxx NPCalibrationManager.cxx NPOptionManager.cxx RootOutput.cxx RootInput.cxx TAsciiFile.cxx TAsciiFileDict.cxx NPDetectorManager.cxx NPVDetector.cxx NPVDetectorDict.cxx NPVSpectra.cxx NPDetectorFactory.cxx NPOnline.cxx NPOnlineDict.cxx NPSpectraServer.cxx )
 target_link_libraries(NPCore ${ROOT_LIBRARIES}) 
 install(FILES NPVAnalysis.h NPAnalysisFactory.h  NPCalibrationManager.h NPOptionManager.h RootInput.h RootOutput.h TAsciiFile.h NPDetectorManager.h NPVDetector.h NPGlobalSystemOfUnits.h NPPhysicalConstants.h NPSystemOfUnits.h NPVSpectra.h NPDetectorFactory.h NPOnline.h NPSpectraServer.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
diff --git a/NPLib/MUST2/CMakeLists.txt b/NPLib/MUST2/CMakeLists.txt
index da6652b2b813b63ba044ab510ecbe68a633992f7..f9de5855937ae55fdfd25ac273a31d7f16ece004 100644
--- a/NPLib/MUST2/CMakeLists.txt
+++ b/NPLib/MUST2/CMakeLists.txt
@@ -2,5 +2,4 @@ add_custom_command(OUTPUT TMust2PhysicsDict.cxx TMust2PhysicsDict_rdict.pcm TMus
 add_custom_command(OUTPUT TMust2DataDict.cxx TMust2DataDict_rdict.pcm TMust2Data.rootmap 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})
diff --git a/NPLib/Physics/NPPhysicsLinkDef.h b/NPLib/Physics/NPPhysicsLinkDef.h
index 3ca75ab55b8209905747d9ea8fb85d3f743b6a85..7f7bb77816c1424f53d2fb4cd94b851cbd8b9975 100644
--- a/NPLib/Physics/NPPhysicsLinkDef.h
+++ b/NPLib/Physics/NPPhysicsLinkDef.h
@@ -2,4 +2,5 @@
 #pragma link C++ defined_in "./NPReaction.h";
 #pragma link C++ defined_in "./NPBeam.h";
 #pragma link C++ defined_in "./NPNucleus.h";
+#pragma link C++ defined_in "./NPEnergyLoss.h";
 #endif
diff --git a/NPLib/Plastic/TPlasticPhysics.cxx b/NPLib/Plastic/TPlasticPhysics.cxx
index c45831e9358943f0ce12a428add03a5ad790e258..bae84998da8a2c821e0e99db5205e9c75981b6dc 100644
--- a/NPLib/Plastic/TPlasticPhysics.cxx
+++ b/NPLib/Plastic/TPlasticPhysics.cxx
@@ -213,7 +213,7 @@ void TPlasticPhysics::ReadConfiguration(string Path)
                   /////////////////////////////////////////////////
                   //   If All necessary information there, toggle out
                
-               if ( check_Theta && check_Phi && check_R && check_Thickness && check_Radius &&   check_LeadThickness && check_Scintillator &&   check_Height &&   check_Width && check_Shape && check_X && check_Y && check_Z ) 
+               if ( ((check_Theta && check_Phi && check_R) ||( check_X && check_Y && check_Z)  )&& check_Thickness  &&   check_LeadThickness && check_Scintillator && (check_Radius ||  (check_Height && check_Width)) && check_Shape ) 
                   { 
                      NumberOfDetector++;
                      
diff --git a/NPLib/Sharc/TSharcPhysics.cxx b/NPLib/Sharc/TSharcPhysics.cxx
index e21fb7d32a53afa52ed81b95c1c00234ef68f444..da193a4ddb91a65541c36ad8dee73664abbd1f8a 100644
--- a/NPLib/Sharc/TSharcPhysics.cxx
+++ b/NPLib/Sharc/TSharcPhysics.cxx
@@ -60,7 +60,7 @@ TSharcPhysics::TSharcPhysics(){
   m_StripBack_E_Threshold = 0 ;
   
   m_Take_E_Front=false;
-  m_Take_T_Back=true;
+  m_Take_T_Back=false;
 }
 
 ///////////////////////////////////////////////////////////////////////////
@@ -684,7 +684,7 @@ void TSharcPhysics::InitializeRootInputRaw(){
   inputChain->SetBranchStatus( "Sharc" , true );
   // The following line is necessary only for system were the tree is splitted
   // (older root version). The found argument silenced the Branches not found
-  // error for non splitted tree.
+  // warning for non splitted tree.
   inputChain->SetBranchStatus( "fSharc_*",true,found);
   inputChain->SetBranchAddress( "Sharc" , &m_EventData );
 
@@ -707,7 +707,6 @@ void TSharcPhysics::InitializeRootInputPhysics(){
   inputChain->SetBranchStatus( "PAD_E" , true );
   inputChain->SetBranchStatus( "PAD_T" , true );
   inputChain->SetBranchAddress( "Sharc" , &m_EventPhysics )      ;
-
 }
 
 ///////////////////////////////////////////////////////////////////////////
@@ -875,22 +874,18 @@ void TSharcPhysics::InitializeStandardParameter()
   m_PADChannelStatus.clear() ;
   
   ChannelStatus.resize(24,true);
-  for(int i = 0 ; i < m_NumberOfDetector ; ++i)
-    {
+  for(int i = 0 ; i < m_NumberOfDetector ; ++i){
     m_FrontChannelStatus[i] = ChannelStatus;
     }
   
   ChannelStatus.resize(48,true);
-  for(int i = 0 ; i < m_NumberOfDetector ; ++i)
-    {
+  for(int i = 0 ; i < m_NumberOfDetector ; ++i){
     m_BackChannelStatus[i] = ChannelStatus;
     }
   
   ChannelStatus.resize(1,true);
-  for(int i = 0 ; i < m_NumberOfDetector ; ++i)
-    {
+  for(int i = 0 ; i < m_NumberOfDetector ; ++i){
     m_PADChannelStatus[i] = ChannelStatus;
-    
     }
   
   m_MaximumStripMultiplicityAllowed = m_NumberOfDetector   ;
@@ -965,14 +960,14 @@ NPL::VDetector* TSharcPhysics::Construct(){
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-class proxy{
+class proxy_sharc{
   public:
-    proxy(){
+    proxy_sharc(){
       NPL::DetectorFactory::getInstance()->AddToken("Sharc","Sharc");
       NPL::DetectorFactory::getInstance()->AddDetector("Sharc",TSharcPhysics::Construct);
     }
 };
 
-proxy p;
+proxy_sharc p;
 }
 
diff --git a/NPLib/Sharc/TSharcSpectra.cxx b/NPLib/Sharc/TSharcSpectra.cxx
index a0177b8e16a622466f157e8b36baef3559427c19..92382988bd2b57a4ae368fb242bfd04542a31dbe 100644
--- a/NPLib/Sharc/TSharcSpectra.cxx
+++ b/NPLib/Sharc/TSharcSpectra.cxx
@@ -68,33 +68,33 @@ TSharcSpectra::~TSharcSpectra(){
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::InitRawSpectra(){
 
-  string name;
+  static string name;
   for (unsigned int i = 0; i < fNumberOfDetector; i++) { // loop on number of detectors
-  name = "SharcRaw"+NPL::itoa(i+1);
-  TCanvas* c1 = new TCanvas(name.c_str(),name.c_str());
-  c1->Divide(3,2);
-  int i1 = 0;  
+    name = "SharcRaw"+NPL::itoa(i+1);
+    TCanvas* c1 = new TCanvas(name.c_str(),name.c_str());
+    c1->Divide(3,2);
+    int i1 = 0;  
     // STR_FRONT_E_RAW
     c1->cd(++i1);
     name = "SHARC"+NPL::itoa(i+1)+"_STR_FRONT_E_RAW";
-    AddHisto2D(name, name, fStripFront, 1, fStripFront+1, 512, 0, 8192, "SHARC/RAW/STR_FRONT_E")->Draw("colz");
+    AddHisto2D(name, name, fStripFront, 1, fStripFront+1, 5000, 0, 1.5e6, "SHARC/RAW/STR_FRONT_E")->Draw("colz");
 
     // STR_BACK_E_RAW
     c1->cd(++i1);
     name = "SHARC"+NPL::itoa(i+1)+"_STR_BACK_E_RAW";
-    AddHisto2D(name, name, fStripBack, 1, fStripBack+1, 512, 0, 8192, "SHARC/RAW/STR_BACK_E")->Draw("colz");
+    AddHisto2D(name, name, fStripBack, 1, fStripBack+1, 5000, 0, 1.5e6, "SHARC/RAW/STR_BACK_E")->Draw("colz");
 
     // PAD_E_RAW
     c1->cd(++i1);
     name = "SHARC"+NPL::itoa(i+1)+"_PAD_E_RAW";
-    AddHisto1D(name, name, 512, 0, 16384, "SHARC/RAW/PAD_E")->Draw("");
+    AddHisto1D(name, name, 500, 0, 2500, "SHARC/RAW/PAD_E")->Draw("");
 
     // STR_FRONT_RAW_MULT
     c1->cd(++i1);
     name = "SHARC"+NPL::itoa(i+1)+"_STR_FRONT_RAW_MULT";
     AddHisto1D(name, name, fStripFront, 1, fStripFront+1, "SHARC/RAW/MULT")->Draw("");
     gPad->SetLogy();
-  
+
     // STR_BACK_RAW_MULT
     c1->cd(++i1);
     name = "SHARC"+NPL::itoa(i+1)+"_STR_BACK_RAW_MULT";
@@ -106,14 +106,14 @@ void TSharcSpectra::InitRawSpectra(){
     name = "SHARC"+NPL::itoa(i+1)+"_PAD_RAW_MULT";
     AddHisto1D(name, name, fNumberOfDetector, 1, fNumberOfDetector+1, "SHARC/RAW/MULT")->Draw("");
     gPad->SetLogy();
-    
+
     AddCanvas(c1);  
   } // end loop on number of detectors
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::InitPreTreatedSpectra(){
-  string name;
+  static string name;
   for (unsigned int i = 0; i < fNumberOfDetector; i++) { // loop on number of detectors
     // STR_FRONT_E_CAL
     name = "SHARC"+NPL::itoa(i+1)+"_STR_FRONT_E_CAL";
@@ -138,26 +138,25 @@ void TSharcSpectra::InitPreTreatedSpectra(){
     // PAD_CAL_MULT
     name = "SHARC"+NPL::itoa(i+1)+"_PAD_CAL_MULT";
     AddHisto1D(name, name, fNumberOfDetector, 1, fNumberOfDetector+1, "SHARC/CAL/MULT");
-   
+
     // PAD_CAL_ID 
-     name = "SHARC"+NPL::itoa(i+1)+"_PAD_CAL_ID";
-     AddHisto2D(name, name,100,0,50,500,0,50, "SHARC/CAL/ID");
+    name = "SHARC"+NPL::itoa(i+1)+"_PAD_CAL_ID";
+    AddHisto2D(name, name,100,0,50,500,0,50, "SHARC/CAL/ID");
+
+    // Front-Back Energy Correlation
+      name = "SHARC"+NPL::itoa(i+1)+"_FB_COR";
+      AddHisto2D(name, name,500,0,25,500,0,25, "SHARC/CAL/FB"); 
+
   }  // end loop on number of detectors
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::InitPhysicsSpectra(){
-  string name;
+  static string name;
   // Kinematic Plot 
   name = "SHARC_THETA_E";
   AddHisto2D(name, name,360,0,180,500,0,50,"SHARC/PHY");
 
-  // X-Y Energy Correlation
-  for (unsigned int i = 0 ; i < fNumberOfDetector ; i++) { // loop on number of detectors
-    name = "SHARC"+NPL::itoa(i+1)+"_XY_COR";
-    AddHisto2D(name, name,500,0,25,500,0,25, "SHARC/PHY"); 
-  }
-
   // ID Plot
   // PAD-DE:
   name = "SHARC_PAD_E_E";
@@ -174,21 +173,23 @@ void TSharcSpectra::InitPhysicsSpectra(){
 
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
-  string name;
-  string family;
+  static string name;
+  static string family;
 
   // STR_FRONT_E 
-  for (unsigned int i = 0; i < RawData->GetMultiplicityFront(); i++) {
+  unsigned int mysize = RawData->GetMultiplicityFront();
+  for (unsigned int i = 0; i < mysize; i++) {
     name = "SHARC"+NPL::itoa(RawData->GetFront_DetectorNbr(i))+"_STR_FRONT_E_RAW";
     family = "SHARC/RAW/STR_FRONT_E";
 
     GetHisto(family,name)
       -> Fill(RawData->GetFront_StripNbr(i), 
-          RawData->GetFront_Energy(i) - 8192);
+          RawData->GetFront_Energy(i));
   }
 
   // STR_BACK_E
-  for (unsigned int i = 0; i < RawData->GetMultiplicityBack(); i++) {
+  mysize = RawData->GetMultiplicityBack();
+  for (unsigned int i = 0; i < mysize; i++) {
     name = "SHARC"+NPL::itoa( RawData->GetBack_DetectorNbr(i) )+"_STR_BACK_E_RAW";
     family = "SHARC/RAW/STR_BACK_E";
 
@@ -198,7 +199,8 @@ void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
   }
 
   // PAD_E
-  for (unsigned int i = 0; i < RawData->GetMultiplicityPAD(); i++) {
+  mysize = RawData->GetMultiplicityPAD();
+  for (unsigned int i = 0; i < mysize; i++) {
     name = "SHARC"+NPL::itoa(RawData->GetPAD_DetectorNbr(i))+"_PAD_E_RAW";
     family = "SHARC/RAW/PAD_E";
 
@@ -216,7 +218,6 @@ void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
   }
 
   for( unsigned int i = 0; i < fNumberOfDetector; i++){
-
     name = "SHARC"+NPL::itoa(i+1)+"_STR_FRONT_RAW_MULT";
     family= "SHARC/RAW/MULT";
     GetHisto(family,name)
@@ -227,7 +228,8 @@ void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
   for( unsigned int i = 0; i < fNumberOfDetector; i++)
     myMULT[i] = 0 ; 
 
-  for(unsigned int i = 0 ; i < RawData->GetMultiplicityBack();i++){
+  mysize = RawData->GetMultiplicityBack();
+  for(unsigned int i = 0 ; i < mysize;i++){
     myMULT[RawData->GetBack_DetectorNbr(i)-1] += 1;  
   }
 
@@ -241,8 +243,8 @@ void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
   // PAD MULT
   for( unsigned int i = 0; i < fNumberOfDetector; i++)
     myMULT[i] = 0 ; 
-
-  for(unsigned int i = 0 ; i < RawData->GetMultiplicityPAD();i++){
+  mysize = RawData->GetMultiplicityPAD();
+  for(unsigned int i = 0 ; i < mysize ;i++){
     myMULT[RawData->GetPAD_DetectorNbr(i)-1] += 1;  
   }
 
@@ -257,10 +259,28 @@ void TSharcSpectra::FillRawSpectra(TSharcData* RawData){
 
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
-  string name ;
-  string family;
+  static string name ;
+  static string family;
+
+  // Front-Back
+  unsigned int mysizeF = PreTreatedData->GetMultiplicityFront();
+  unsigned int mysizeB = PreTreatedData->GetMultiplicityBack();
+
+  for (unsigned int i = 0; i < mysizeF; i++) {
+    for (unsigned int j = 0; j < mysizeB; j++) {
+      if(PreTreatedData->GetFront_DetectorNbr(i)==PreTreatedData->GetBack_DetectorNbr(j)){
+        name = "SHARC"+NPL::itoa(PreTreatedData->GetFront_DetectorNbr(i))+"_FB_COR";
+        family = "SHARC/CAL/FB";
+      GetHisto(family,name)
+        -> Fill(PreTreatedData->GetFront_Energy(i),
+                PreTreatedData->GetBack_Energy(j) );
+      }
+    }
+  } 
+
   // STR_FRONT_E
-  for (unsigned int i = 0; i < PreTreatedData->GetMultiplicityFront(); i++) {
+  unsigned int mysize = PreTreatedData->GetMultiplicityFront();
+  for (unsigned int i = 0; i < mysize; i++) {
     name = "SHARC"+NPL::itoa(PreTreatedData->GetFront_DetectorNbr(i))+"_STR_FRONT_E_CAL";
     family = "SHARC/CAL/STR_FRONT_E";
 
@@ -269,7 +289,8 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
           PreTreatedData->GetFront_Energy(i));
   }
   // STR_BACK_E
-  for (unsigned int i = 0; i < PreTreatedData->GetMultiplicityBack(); i++) {
+  mysize = PreTreatedData->GetMultiplicityBack();
+  for (unsigned int i = 0; i < mysize; i++) {
     name = "SHARC"+NPL::itoa( PreTreatedData->GetBack_DetectorNbr(i))+"_STR_BACK_E_CAL";
     family = "SHARC/CAL/STR_BACK_E";
 
@@ -278,20 +299,22 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
           PreTreatedData->GetBack_Energy(i));
   }
   // PAD_E
-  for (unsigned int i = 0; i < PreTreatedData->GetMultiplicityPAD (); i++) {
+  mysize = PreTreatedData->GetMultiplicityPAD();
+  for (unsigned int i = 0; i < mysize ; i++) {
     name = "SHARC"+NPL::itoa(PreTreatedData->GetPAD_DetectorNbr(i))+"_PAD_E_CAL";
     family = "SHARC/CAL/PAD_E";
 
     GetHisto(family,name)
       -> Fill(PreTreatedData->GetPAD_Energy(i));
   }
-  
+
   // STR_FRONT MULT
   int myMULT[fNumberOfDetector];
   for( unsigned int i = 0; i < fNumberOfDetector; i++)
     myMULT[i] = 0 ; 
 
-  for(unsigned int i = 0 ; i < PreTreatedData->GetMultiplicityFront();i++){
+  mysize = PreTreatedData->GetMultiplicityFront(); 
+  for(unsigned int i = 0 ; i < mysize ;i++){
     myMULT[PreTreatedData->GetFront_DetectorNbr(i)-1] += 1;  
   }
 
@@ -307,7 +330,8 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
   for( unsigned int i = 0; i < fNumberOfDetector; i++)
     myMULT[i] = 0 ; 
 
-  for(unsigned int i = 0 ; i < PreTreatedData->GetMultiplicityBack();i++){
+  mysize = PreTreatedData->GetMultiplicityBack();
+  for(unsigned int i = 0 ; i < mysize ;i++){
     myMULT[PreTreatedData->GetBack_DetectorNbr(i)-1] += 1;  
   }
 
@@ -322,7 +346,8 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
   for( unsigned int i = 0; i < fNumberOfDetector; i++)
     myMULT[i] = 0 ; 
 
-  for(unsigned int i = 0 ; i < PreTreatedData->GetMultiplicityPAD();i++){
+  mysize =  PreTreatedData->GetMultiplicityPAD();
+  for(unsigned int i = 0 ; i < mysize ;i++){
     myMULT[PreTreatedData->GetPAD_DetectorNbr(i)-1] += 1;  
   }
 
@@ -335,15 +360,17 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
 
   //E-PAD ID
   family = "SHARC/CAL/ID";
-  for (unsigned int i = 0; i < PreTreatedData->GetMultiplicityFront(); i++) {
-   for (unsigned int j = 0; j < PreTreatedData->GetMultiplicityPAD(); j++) {
-    
-    if(PreTreatedData->GetFront_DetectorNbr(i) == PreTreatedData->GetPAD_DetectorNbr(j)){ 
-      name = "SHARC"+NPL::itoa(PreTreatedData->GetFront_DetectorNbr(i))+"_PAD_CAL_ID";
-    
-      GetHisto(family,name)
-        -> Fill(PreTreatedData->GetPAD_Energy(j), 
-          PreTreatedData->GetFront_Energy(i));
+  mysize = PreTreatedData->GetMultiplicityFront();
+  unsigned int mysizePAD = PreTreatedData->GetMultiplicityPAD();
+  for (unsigned int i = 0; i < mysize ; i++) {
+    for (unsigned int j = 0; j < mysizePAD; j++) {
+
+      if(PreTreatedData->GetFront_DetectorNbr(i) == PreTreatedData->GetPAD_DetectorNbr(j)){ 
+        name = "SHARC"+NPL::itoa(PreTreatedData->GetFront_DetectorNbr(i))+"_PAD_CAL_ID";
+
+        GetHisto(family,name)
+          -> Fill(PreTreatedData->GetPAD_Energy(j), 
+              PreTreatedData->GetFront_Energy(i));
       }
     }
   }
@@ -353,11 +380,13 @@ void TSharcSpectra::FillPreTreatedSpectra(TSharcData* PreTreatedData){
 
 ////////////////////////////////////////////////////////////////////////////////
 void TSharcSpectra::FillPhysicsSpectra(TSharcPhysics* Physics){
-  string name;
-  string family= "SHARC/PHY";
-    
+  static string name;
+  static string family;
+  family= "SHARC/PHY";
+
   // Kine plot
-  for(unsigned int i = 0 ; i < Physics->Strip_E.size(); i++){
+  unsigned int mysize = Physics->Strip_E.size();
+  for(unsigned int i = 0 ; i < mysize ; i++){
     double Theta = Physics->GetPositionOfInteraction(i).Angle(TVector3(0,0,1));
     Theta = Theta/deg;
     double Etot=Physics->Strip_E[i];
diff --git a/NPLib/Tiara/TTiaraBarrelPhysics.cxx b/NPLib/Tiara/TTiaraBarrelPhysics.cxx
index d4cf5d4a98bde01491d59e5d61f213ddffa8ad8e..bf3bd703d9695604d9263c2fe4508cad4ea985b7 100644
--- a/NPLib/Tiara/TTiaraBarrelPhysics.cxx
+++ b/NPLib/Tiara/TTiaraBarrelPhysics.cxx
@@ -734,7 +734,7 @@ for(unsigned int k = 0 ; k < sizeB ; k++){
         public:
           brlproxy(){
             NPL::DetectorFactory::getInstance()->AddToken("Tiara","Tiara");
-            NPL::DetectorFactory::getInstance()->AddDetector("TiaraBarrel",TTiaraBarrelPhysics::Construct);
+            NPL::DetectorFactory::getInstance()->AddDetector("TiaraInnerBarrel=",TTiaraBarrelPhysics::Construct);
           }
       };
 
diff --git a/NPLib/Tigress/TTigressData.h b/NPLib/Tigress/TTigressData.h
index 016fc51c6157444b8a76c69349e33c3884c6d9d7..f1e9372219a652f6d846166a9369578c3de8194c 100644
--- a/NPLib/Tigress/TTigressData.h
+++ b/NPLib/Tigress/TTigressData.h
@@ -61,21 +61,22 @@ public:
   inline void SetGeCloverNbr(const UShort_t &GeCloverNbr){fTIG_Ge_CloverNbr.push_back(GeCloverNbr); }
   inline void SetGeCrystalNbr(const UShort_t &GeCrystalNbr){fTIG_Ge_CrystalNbr.push_back(GeCrystalNbr);}
   inline void SetGeSegmentNbr(const UShort_t &GeSegmentNbr){fTIG_Ge_SegmentNbr.push_back(GeSegmentNbr);}
-  inline void SetGeEnergy(const UShort_t &GeEnergy){fTIG_Ge_Energy.push_back(GeEnergy);}
-  inline void SetGeTimeCFD(const UShort_t &GeTimeCFD){fTIG_Ge_TimeCFD.push_back(GeTimeCFD);}
-  inline void SetGeTimeLED(const UShort_t &GeTimeLED){fTIG_Ge_TimeLED.push_back(GeTimeLED);}
+  inline void SetGeEnergy(const Double_t &GeEnergy){fTIG_Ge_Energy.push_back(GeEnergy);}
+  inline void SetGeTimeCFD(const Double_t &GeTimeCFD){fTIG_Ge_TimeCFD.push_back(GeTimeCFD);}
+  inline void SetGeTimeLED(const Double_t &GeTimeLED){fTIG_Ge_TimeLED.push_back(GeTimeLED);}
 
   inline void SetBGOCloverNbr(const UShort_t &BGOCloverNbr){fTIG_BGO_CloverNbr.push_back(BGOCloverNbr); }
   inline void SetBGOCrystalNbr(const UShort_t &BGOCrystalNbr){fTIG_BGO_CrystalNbr.push_back(BGOCrystalNbr);}
   inline void SetBGOPmNbr(const UShort_t &BGOPmNbr){fTIG_BGO_PmNbr.push_back(BGOPmNbr);}
-  inline void SetBGOEnergy(const UShort_t &BGOEnergy){fTIG_BGO_Energy.push_back(BGOEnergy);}
-  inline void SetBGOTimeCFD(const UShort_t &BGOTimeCFD){fTIG_BGO_TimeCFD.push_back(BGOTimeCFD);}
-  inline void SetBGOTimeLED(const UShort_t &BGOTimeLED){fTIG_BGO_TimeLED.push_back(BGOTimeLED);}
+  inline void SetBGOEnergy(const Double_t &BGOEnergy){fTIG_BGO_Energy.push_back(BGOEnergy);}
+  inline void SetBGOTimeCFD(const Double_t &BGOTimeCFD){fTIG_BGO_TimeCFD.push_back(BGOTimeCFD);}
+  inline void SetBGOTimeLED(const Double_t &BGOTimeLED){fTIG_BGO_TimeLED.push_back(BGOTimeLED);}
 
   /////////////////////           GETTERS           ////////////////////////
   inline UShort_t GetGeCloverNbr(const unsigned int &i)   {return fTIG_Ge_CloverNbr[i]; }
   inline UShort_t GetGeCrystalNbr(const unsigned int &i)  {return fTIG_Ge_CrystalNbr[i]; }
   inline UShort_t GetGeSegmentNbr(const unsigned int &i)  {return fTIG_Ge_SegmentNbr[i]; }
+
   inline Double_t GetGeEnergy(const unsigned int &i)      {return fTIG_Ge_Energy[i];}
   inline Double_t GetGeTimeCFD(const unsigned int &i)     {return fTIG_Ge_TimeCFD[i];}
   inline Double_t GetGeTimeLED(const unsigned int &i)     {return fTIG_Ge_TimeLED[i];}
diff --git a/NPLib/Tigress/TTigressPhysics.cxx b/NPLib/Tigress/TTigressPhysics.cxx
index fe99a5c96e2757fd7c5b128364569f9101feb272..bd10da52313ea9aefc39fe96d5757ca8bfc5221e 100644
--- a/NPLib/Tigress/TTigressPhysics.cxx
+++ b/NPLib/Tigress/TTigressPhysics.cxx
@@ -34,57 +34,84 @@ using namespace std;
 #include "TAsciiFile.h"
 //   ROOT
 #include "TChain.h"
+#include "TLorentzVector.h"
 ///////////////////////////////////////////////////////////////////////////
 
 ClassImp(TTigressPhysics)
-///////////////////////////////////////////////////////////////////////////
-TTigressPhysics::TTigressPhysics()  {
-  m_EventData         = new TTigressData ;
-  m_PreTreatedData    = new TTigressData ;
-  m_EventPhysics      = this ;
-  Clear();
-};
+  ///////////////////////////////////////////////////////////////////////////
+  TTigressPhysics::TTigressPhysics()  {
+    m_EventData         = new TTigressData ;
+    m_PreTreatedData    = new TTigressData ;
+    m_EventPhysics      = this ;
+    Clear();
+  };
 
 
 /////////////////////////////////////////////////
 void TTigressPhysics::BuildPhysicalEvent(){
   PreTreat();
- 
-  if(m_EventData->GetMultiplicityGe()<10){
-    for(unsigned int i = 0 ; i < m_EventData->GetMultiplicityGe() ; i++){
-      if( m_EventData->GetGeSegmentNbr(i)==9 && m_EventData->GetGeEnergy(i)>20){
-        Gamma_Energy.push_back( m_EventData->GetGeEnergy(i));
-        Crystal_Number.push_back( m_EventData->GetGeCrystalNbr(i));
-        Clover_Number.push_back( m_EventData->GetGeCloverNbr(i));
-        
-        // Look for Associate BGO
-        bool BGOcheck = false ;
-        for(unsigned j = 0 ;  j <  m_EventData->GetMultiplicityBGO() ; j++){
+
+  for(unsigned int i = 0 ; i < m_EventData->GetMultiplicityGe() ; i++){
+    if( m_EventData->GetGeSegmentNbr(i)==0 && m_EventData->GetGeEnergy(i)>20){
+      int clover = m_EventData->GetGeCloverNbr(i);
+      int cry = m_EventData->GetGeCrystalNbr(i);
+      double Energy =  CalibrationManager::getInstance()->ApplyCalibration("TIGRESS/D"+ NPL::itoa(clover)+"_CRY"+ NPL::itoa(cry)+"_SEG"+ NPL::itoa(m_EventData->GetGeSegmentNbr(i))+"_E", m_EventData->GetGeEnergy(i));
+      Gamma_Energy.push_back(Energy);
+      Crystal_Number.push_back(m_EventData->GetGeCrystalNbr(i));
+      Clover_Number.push_back(m_EventData->GetGeCloverNbr(i));
+      Gamma_Time.push_back(m_EventData->GetGeTimeCFD(i));
+      // Look for Associate BGO
+      bool BGOcheck = false ;
+      for(unsigned j = 0 ;  j <  m_EventData->GetMultiplicityBGO() ; j++){
+
+        if( m_EventData->GetBGOCloverNbr(j)== m_EventData->GetGeCloverNbr(i) && m_EventData->GetBGOEnergy(j)>20 )
+          BGOcheck = true ;
+      }
+      BGO.push_back(BGOcheck);
+    }
+  }
+
+  map<int, double> map_E;
+  for(unsigned int i = 0 ; i < 16 ; i ++) {
+    unsigned int mysize = Gamma_Energy.size();
+    for(unsigned int g = 0 ; g < mysize ; g++){
+      if(Clover_Number[g] == i+1){
+        map_E[i] += Gamma_Energy[g]  ; 
+      }
+    }
+  }
+
+
+  for(unsigned int i = 0 ; i < 16 ; i ++) {
+    if(map_E[i]>0){
+      AddBack_E.push_back(map_E[i]);
+      if(i>12){
+        TLorentzVector GammaLV( map_E[i]*sin(135*3.1459/180.),
+            map_E[i]*sin(135*3.1459/180.),
+            map_E[i]*cos(135*3.1459/180.),
+            map_E[i]);
         
-          if( m_EventData->GetBGOCloverNbr(j)== m_EventData->GetGeCloverNbr(i) && m_EventData->GetBGOEnergy(j)>20 )
-             BGOcheck = true ;
-        }
-        BGO.push_back(BGOcheck);
+        GammaLV.Boost(0,0,-0.12);
+        AddBack_DC.push_back(GammaLV.Energy());
       }
+      else
+         AddBack_DC.push_back(map_E[i]); 
     }
-  
   }
-  
-  
 
 }
 /////////////////////////////////////////////////
 TVector3 TTigressPhysics::GetPositionOfInteraction(int i){
-   TVector3 dummy;
+  TVector3 dummy;
 
-   return dummy;
+  return dummy;
 }
 /////////////////////////////////////////////////
 void TTigressPhysics::PreTreat(){
 
 
 } 
- 
+
 /////////////////////////////////////////////////
 void TTigressPhysics::Clear() {
 };
@@ -94,12 +121,12 @@ void TTigressPhysics::Clear() {
 void TTigressPhysics::ReadConfiguration(string Path)  {
   ifstream ConfigFile           ;
   ConfigFile.open(Path.c_str()) ;
-  
+
   if(!ConfigFile.is_open()) cout << "Config File not Found" << endl ;
-  
+
   string LineBuffer             ;
   string DataBuffer             ;
-     
+
   bool check_CloverId= false          ;
   bool check_R= false          ; 
   bool check_Theta= false          ;
@@ -112,105 +139,122 @@ void TTigressPhysics::ReadConfiguration(string Path)  {
   double Phi=0;
 
   while (!ConfigFile.eof()) {
-    
+
     getline(ConfigFile, LineBuffer);
     //   If line is a Start Up Tigress bloc, Reading toggle to true      
     if (LineBuffer.compare(0, 13, "TigressClover") == 0) {
       cout << "///" << endl ;
       cout << "Tigress Clover found: " << endl ;        
       ReadingStatus = true ;
-     }
+    }
     //   Else don't toggle to Reading Block Status
     else ReadingStatus = false ;
 
     //   Reading Block
     while(ReadingStatus)  {
       // Pickup Next Word 
- 
+
       ConfigFile >> DataBuffer ;
       //   Comment Line 
-             
+
       if (DataBuffer.compare(0, 1, "%") == 0) {ConfigFile.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );}
-    
+
       //   Finding another Clover toggle out (safety)
       else if (DataBuffer.compare(0, 13, "TigressClover") == 0) {
         cout << "WARNING: Another Detector is find before standard sequence of Token, Error may occured in Clover definition" << endl ;
         ReadingStatus = false ;
-       }
+      }
 
       else if (DataBuffer=="CloverId=") {
         check_CloverId = true;
         ConfigFile >> DataBuffer ;
         CloverId=atoi(DataBuffer.c_str());
         cout << "CloverId:  " << CloverId << endl;
-       }
-               
+      }
+
       else if (DataBuffer=="R=") {
         check_R = true;
         ConfigFile >> DataBuffer ;
         R = atof(DataBuffer.c_str());
         cout << "R:  " << R << "mm" << endl;
-       }
-               
-       else if (DataBuffer=="Theta=") {
+      }
+
+      else if (DataBuffer=="Theta=") {
         check_Theta = true;
         ConfigFile >> DataBuffer ;
         Theta = atof(DataBuffer.c_str());
         cout << "Theta:  " << Theta << "deg" << endl;
-       }
+      }
 
-       else if (DataBuffer=="Phi=") {
+      else if (DataBuffer=="Phi=") {
         check_Phi = true;
         ConfigFile >> DataBuffer ;
         Phi = atof(DataBuffer.c_str());
         cout << "Phi:  " << Phi << "deg" << endl;
-       }
-                                                
-       ///////////////////////////////////////////////////
-       //   If no Detector Token and no comment, toggle out
+      }
+
+      ///////////////////////////////////////////////////
+      //   If no Detector Token and no comment, toggle out
       else {
         ReadingStatus = false; cout << "Wrong Token Sequence: Getting out " << DataBuffer << endl ;}
-        /////////////////////////////////////////////////
-        //   If All necessary information there, toggle out
-        if ( check_Theta && check_Phi && check_R && check_CloverId) { 
-          ReadingStatus = false;
-           check_CloverId= false;
-           check_R= false; 
-           check_Theta= false;
-           check_Phi= false;
-        }
+      /////////////////////////////////////////////////
+      //   If All necessary information there, toggle out
+      if ( check_Theta && check_Phi && check_R && check_CloverId) { 
+        ReadingStatus = false;
+        check_CloverId= false;
+        check_R= false; 
+        check_Theta= false;
+        check_Phi= false;
       }
     }
- }
- 
+  }
+}
+
 ///////////////////////////////////////////////////////////////////////////
 void TTigressPhysics::InitializeRootInputRaw() 
-   {
-      TChain* inputChain = RootInput::getInstance()->GetChain()   ;
-      inputChain->SetBranchStatus( "Tigress" , true )               ;
-      inputChain->SetBranchStatus( "fTIG_*" , true )               ;
-      inputChain->SetBranchAddress( "Tigress" , &m_EventData )      ;
-   }
-   
+{
+  TChain* inputChain = RootInput::getInstance()->GetChain()   ;
+  inputChain->SetBranchStatus( "Tigress" , true )               ;
+  inputChain->SetBranchStatus( "fTIG_*" , true )               ;
+  inputChain->SetBranchAddress( "Tigress" , &m_EventData )      ;
+}
+
 ///////////////////////////////////////////////////////////////////////////
 void TTigressPhysics::InitializeRootOutput()    
-   {
-      TTree* outputTree = RootOutput::getInstance()->GetTree();
-      outputTree->Branch( "Tigress" , "TTigressPhysics" , &m_EventPhysics );
-   }
- ///////////////////////////////////////////////////////////////////////////  
+{
+  TTree* outputTree = RootOutput::getInstance()->GetTree();
+  outputTree->Branch( "Tigress" , "TTigressPhysics" , &m_EventPhysics );
+}
+///////////////////////////////////////////////////////////////////////////  
 void TTigressPhysics::ClearEventPhysics() {
   Gamma_Energy.clear();
+  Gamma_Time.clear();
   Crystal_Number.clear();
   Clover_Number.clear();
   BGO.clear();
+  AddBack_E.clear();
+  AddBack_DC.clear();
 }
- ///////////////////////////////////////////////////////////////////////////  
+///////////////////////////////////////////////////////////////////////////  
 void TTigressPhysics::ClearEventData() {
 
-m_EventData->Clear();
-m_PreTreatedData->Clear();
+  m_EventData->Clear();
+  m_PreTreatedData->Clear();
 }
+///////////////////////////////////////////////////////////////////////////
+void TTigressPhysics::AddParameterToCalibrationManager(){
+  CalibrationManager* Cal = CalibrationManager::getInstance();
+  for(int i = 0 ; i < 16; ++i){
+    for(int cry = 0 ; cry < 4 ; cry++){
+      // core are 0 and 9 , segment 1 to 8
+      for( int j = 0 ; j < 10 ; ++j){
+        Cal->AddParameter("TIGRESS", "D"+ NPL::itoa(i+1)+"_CRY"+NPL::itoa(cry+1)+"_SEG"+ NPL::itoa(j)+"_E","TIGRESS_D"+ NPL::itoa(i+1)+"_CRY"+NPL::itoa(cry+1)+"_SEG"+NPL::itoa(j)+"_E");
+      }
+    }
+  } 
+  return;
+}
+
 
 ////////////////////////////////////////////////////////////////////////////////
 //            Construct Method to be pass to the DetectorFactory              //
@@ -223,14 +267,14 @@ NPL::VDetector* TTigressPhysics::Construct(){
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-class proxy{
+class proxy_tigress{
   public:
-    proxy(){
+    proxy_tigress(){
       NPL::DetectorFactory::getInstance()->AddToken("Tigress","Tigress");
       NPL::DetectorFactory::getInstance()->AddDetector("Tigress",TTigressPhysics::Construct);
     }
 };
 
-proxy p;
+proxy_tigress p;
 }
 
diff --git a/NPLib/Tigress/TTigressPhysics.h b/NPLib/Tigress/TTigressPhysics.h
index 71c80a67866133c3ca3f50c961bd9de6d2f6e902..72783f7210e16359ddaaa412fd64acc3d7c77471 100644
--- a/NPLib/Tigress/TTigressPhysics.h
+++ b/NPLib/Tigress/TTigressPhysics.h
@@ -48,7 +48,7 @@ class TTigressPhysics :  public TObject, public NPL::VDetector{
      void ReadConfiguration(string);
 
     //   Add Parameter to the CalibrationManger
-     void AddParameterToCalibrationManager(){} ;      
+     void AddParameterToCalibrationManager();      
 
     //   Activated associated Branches and link it to the private member DetectorData address
     //   In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated
@@ -87,7 +87,10 @@ class TTigressPhysics :  public TObject, public NPL::VDetector{
     vector<int> Crystal_Number;
      vector<int> Clover_Number;
     vector<bool>   BGO;
-    
+   vector<double>   Gamma_Time;
+  vector<double> AddBack_E;   
+  vector<double> AddBack_DC;   
+
    public:
     TVector3 GetPositionOfInteraction(int i) ;
     
diff --git a/NPLib/Trifoil/TTrifoilData.cxx b/NPLib/Trifoil/TTrifoilData.cxx
index 6967214e03c83734854011c32578f272118a44be..2b24e37a1abb30ba9e4011aaafb9fed76c838258 100644
--- a/NPLib/Trifoil/TTrifoilData.cxx
+++ b/NPLib/Trifoil/TTrifoilData.cxx
@@ -36,24 +36,19 @@ using namespace std;
 ClassImp(TTrifoilData)
 
 /////////////////////////
-TTrifoilData::TTrifoilData()
-{
-
+TTrifoilData::TTrifoilData(){
 }
 
 /////////////////////////
-TTrifoilData::~TTrifoilData()
-{
+TTrifoilData::~TTrifoilData(){
 }
 
 /////////////////////////
-void TTrifoilData::Clear()
-{
+void TTrifoilData::Clear(){
   fTrifoil_Waveform.clear();
   fTrifoil_TimeCFD.clear();
   fTrifoil_TimeLED.clear();
 }
 /////////////////////////
-void TTrifoilData::Dump() const
-{
+void TTrifoilData::Dump() const{
 }
diff --git a/NPLib/Trifoil/TTrifoilData.h b/NPLib/Trifoil/TTrifoilData.h
index ebb87b4756cad5ea1b58dfa97c419cf5e413573a..2bba4f8afbb9591380232f5ca13f832ea56e38a1 100644
--- a/NPLib/Trifoil/TTrifoilData.h
+++ b/NPLib/Trifoil/TTrifoilData.h
@@ -59,7 +59,7 @@ public:
   inline Double_t GetTimeCFD(const unsigned int &i) {return fTrifoil_TimeCFD[i];}
   inline Double_t GetTimeLED(const unsigned int &i) {return fTrifoil_TimeLED[i];}
 
-  inline unsigned int GetMultiplicity() {return fTrifoil_TimeCFD.size();}
+  inline unsigned int GetMultiplicity() {return fTrifoil_Waveform.size();}
   ClassDef(TTrifoilData,1)  // TrifoilData structure
 };
 
diff --git a/NPLib/Trifoil/TTrifoilPhysics.cxx b/NPLib/Trifoil/TTrifoilPhysics.cxx
index e278a39285cbf78f216eb791c0f8c7ffbe53e52b..124b17a437accd107834c46c007b530ca5a1308b 100644
--- a/NPLib/Trifoil/TTrifoilPhysics.cxx
+++ b/NPLib/Trifoil/TTrifoilPhysics.cxx
@@ -37,73 +37,76 @@
 ///////////////////////////////////////////////////////////////////////////
 
 ClassImp(TTrifoilPhysics)
+  ///////////////////////////////////////////////////////////////////////////
+  TTrifoilPhysics::TTrifoilPhysics() { 
+    m_EventPhysics = this;
+    m_EventData = new TTrifoilData();
+  }
+
 ///////////////////////////////////////////////////////////////////////////
-TTrifoilPhysics::TTrifoilPhysics() 
-   { 
-      
-   }
-      
-///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::BuildSimplePhysicalEvent()
-   { 
-     BuildPhysicalEvent();
-   }
-   
+void TTrifoilPhysics::BuildSimplePhysicalEvent(){ 
+  BuildPhysicalEvent();
+}
+
 ///////////////////////////////////////////////////////////////////////////
-   
-void TTrifoilPhysics::BuildPhysicalEvent()
-   { 
-  
-   }
+void TTrifoilPhysics::BuildPhysicalEvent(){ 
+  unsigned int mysize = m_EventData->GetMultiplicity();
+
+  for (unsigned int i = 0 ; i < mysize ; i++){
+    TH1F h = m_EventData->GetWaveform(i);
+    unsigned int bins = h.GetNbinsX();
+    for(unsigned int b = 1 ; b < bins ; b++){
+      double diff =  h.GetBinContent(b)-h.GetBinContent(b+1);
+        if(diff<-1000){
+          Time.push_back(b); 
+          Energy.push_back(diff);
+        }
+      }
+    }
+  }
 
 
 ///////////////////////////////////////////////////////////////////////////
 void TTrifoilPhysics::Clear(){
-  EventType.clear() ;
+  Energy.clear() ;
   Time.clear() ;
-  m_EventData->Clear();
-
 }
 ///////////////////////////////////////////////////////////////////////////
 
 ////   Innherited from VDetector Class   ////            
-            
+
 ///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::ReadConfiguration(string Path)  
-{
- /*Trifoil has only one key word, so do nothing*/
+void TTrifoilPhysics::ReadConfiguration(string Path)  {
+  /*Trifoil has only one key word, so do nothing*/
   Path.clear();
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::AddParameterToCalibrationManager()   
-   {
-   
-   }
+void TTrifoilPhysics::AddParameterToCalibrationManager()   {
+}
 
 ///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::InitializeRootInputRaw() 
-   {
-      TChain* inputChain = RootInput::getInstance()->GetChain()   ;
-      inputChain->SetBranchStatus( "Trifoil" , true )               ;
-      inputChain->SetBranchStatus( "fTrifoil_*" , true )               ;
-      inputChain->SetBranchAddress( "Trifoil" , &m_EventData )      ;
-   }
-   
+void TTrifoilPhysics::InitializeRootInputRaw(){
+  TChain* inputChain = RootInput::getInstance()->GetChain();
+  static UInt_t* found =  new UInt_t[100] ;
+  inputChain->SetBranchStatus( "Trifoil" , true );
+  inputChain->SetBranchStatus( "fTrifoil_*" , true , found);
+  inputChain->SetBranchAddress( "Trifoil" , &m_EventData );
+}
+
 ///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::InitializeRootInputPhysics() 
-   {
-      TChain* inputChain = RootInput::getInstance()->GetChain();
-      inputChain->SetBranchStatus( "EventType" , true );
-      inputChain->SetBranchStatus( "Time" , true );
-   }
+void TTrifoilPhysics::InitializeRootInputPhysics(){
+  TChain* inputChain = RootInput::getInstance()->GetChain();
+  inputChain->SetBranchStatus("EventType",true);
+  inputChain->SetBranchStatus("Time",true);
+  inputChain->SetBranchAddress("Trifoil",&m_EventPhysics);
+}
 
 ///////////////////////////////////////////////////////////////////////////
-void TTrifoilPhysics::InitializeRootOutput()    
-   {
-      TTree* outputTree = RootOutput::getInstance()->GetTree();
-      outputTree->Branch( "Trifoil" , "TTrifoilPhysics" , &m_EventPhysics );
-   }
+void TTrifoilPhysics::InitializeRootOutput(){
+  TTree* outputTree = RootOutput::getInstance()->GetTree();
+  outputTree->Branch( "Trifoil" , "TTrifoilPhysics" , &m_EventPhysics );
+}
 ////////////////////////////////////////////////////////////////////////////////
 //            Construct Method to be pass to the DetectorFactory              //
 ////////////////////////////////////////////////////////////////////////////////
@@ -115,14 +118,14 @@ NPL::VDetector* TTrifoilPhysics::Construct(){
 //            Registering the construct method to the factory                 //
 ////////////////////////////////////////////////////////////////////////////////
 extern "C"{
-class proxy{
+class proxy_trifoil{
   public:
-    proxy(){
-      NPL::DetectorFactory::getInstance()->AddToken("Trifoil","Trifoil");
+    proxy_trifoil(){
+			NPL::DetectorFactory::getInstance()->AddToken("Trifoil","Trifoil");
       NPL::DetectorFactory::getInstance()->AddDetector("Trifoil",TTrifoilPhysics::Construct);
-    }
+	}
 };
 
-proxy p;
+proxy_trifoil p;
 }
 
diff --git a/NPLib/Trifoil/TTrifoilPhysics.h b/NPLib/Trifoil/TTrifoilPhysics.h
index 8d490f715be683a8cd5a4eb8063b7b70e97bf8f8..ba92c5f75b0664be3b0376718c47b8d1b530557f 100644
--- a/NPLib/Trifoil/TTrifoilPhysics.h
+++ b/NPLib/Trifoil/TTrifoilPhysics.h
@@ -48,7 +48,7 @@ class TTrifoilPhysics : public TObject, public NPL::VDetector
          
    public:
       // EventType is True if the wave form analysis return a valid Trifoil event
-      vector<bool>    EventType ;
+      vector<double>    Energy;
       vector<double>  Time ;
   
    public:      //   Innherited from VDetector Class
diff --git a/NPLib/scripts/build_dict.sh b/NPLib/scripts/build_dict.sh
index 2064d315c3e27399cc0e1ae9b656603a8af3a7bb..6d27743508fea911e28da9dcf411cf864f234be5 100755
--- a/NPLib/scripts/build_dict.sh
+++ b/NPLib/scripts/build_dict.sh
@@ -50,13 +50,13 @@ fi
 # Version 5 : generate the dictionnary then the libmap
 if [ $version_major -eq 5 ]
   then
-    rootcint -f $2 -c -I../Core $1 $5
+    rootcint -f $2 -c -I../Core -I../Physics $1 $5
 fi
 
 # Version 6 or more : generate both at once
 if [ $version_major -gt 5 ]
   then
-   rootcint -f $2 -rmf $3 -rml $lib_name -I../Core $1 $5
+   rootcint -f $2 -rmf $3 -rml $lib_name -I../Core -I../Physics $1 $5
 fi
 
 
diff --git a/NPSimulation/Plastic/Plastic.cc b/NPSimulation/Plastic/Plastic.cc
index 5c967240da198733fd4d6f4129b708f92857522e..b9e985696f19a4c8d1060dc241bb6037ff8c3e57 100644
--- a/NPSimulation/Plastic/Plastic.cc
+++ b/NPSimulation/Plastic/Plastic.cc
@@ -428,15 +428,15 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume*
           0*deg, 
           360*deg);
 
-      G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Pb");
-      G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Lead", 0, 0, 0);//AC changed lead to Al
+      G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Al");
+      G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Al", 0, 0, 0);//AC changed lead to Al
       G4VisAttributes* LeadVisAtt = new G4VisAttributes(G4Colour(0.1, 0.1, 0.1)) ;
       logicLead->SetVisAttributes(LeadVisAtt) ;
 
       G4PVPlacement( 0,
           Det_pos+(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit(),
           logicLead,
-          Name+"_Lead",   
+          Name+"_Al",   
           world,
           false,
           0);
@@ -450,7 +450,7 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume*
       G4LogicalVolume* logicPlastic = new G4LogicalVolume(solidPlastic, PlasticMaterial, Name+ "_Scintillator", 0, 0, 0);
       logicPlastic->SetSensitiveDetector(m_PlasticScorer);
 
-      G4VisAttributes* PlastVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)) ;
+      G4VisAttributes* PlastVisAtt = new G4VisAttributes(G4Colour(0, 0, 1)) ;
       logicPlastic->SetVisAttributes(PlastVisAtt) ;
 
       G4RotationMatrix Rot3D;
@@ -464,17 +464,17 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume*
     }
 
     if(m_LeadThickness[i]>0&& m_PlasticHeight[i]>0 && m_PlasticWidth[i]>0){
-      G4Box* solidLead = new G4Box(Name+"_Lead", 0.5*m_PlasticWidth[i], 0.5*m_PlasticHeight[i], 0.5*m_LeadThickness[i]);
+      G4Box* solidLead = new G4Box(Name+"_Al", 1*m_PlasticWidth[i], 1*m_PlasticHeight[i], 0.5*m_LeadThickness[i]);
 
-      G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Pb");
-      G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Lead", 0, 0, 0);
-      G4VisAttributes* LeadVisAtt = new G4VisAttributes(G4Colour(0.1, 0.1, 0.1)) ;
+      G4Material* MaterialLead = MaterialManager::getInstance()->GetMaterialFromLibrary("Al");
+      G4LogicalVolume* logicLead = new G4LogicalVolume(solidLead, MaterialLead, Name+"_Al", 0, 0, 0);
+      G4VisAttributes* LeadVisAtt = new G4VisAttributes(G4Colour(0.5, 0.5, 0.5)) ;
       logicLead->SetVisAttributes(LeadVisAtt) ;
 
       new G4PVPlacement(0,
-          Det_pos+(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit() +G4ThreeVector(0,0,-10*cm)  ,
+          Det_pos-(m_PlasticThickness[i]/2+m_LeadThickness[i]/2)*Det_pos.unit() -G4ThreeVector(0,0,1*cm)  ,
           logicLead,
-          Name+"_Lead",   
+          Name+"_Al",   
           world,
           false,
           0);