diff --git a/Inputs/CrossSection/sn132dp_gs_10AMeV.txt b/Inputs/CrossSection/sn132dp_gs_10AMeV.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4ea5ac1698811a531fe3f90c136282e67847ca94
--- /dev/null
+++ b/Inputs/CrossSection/sn132dp_gs_10AMeV.txt
@@ -0,0 +1,60 @@
+    0.00   0.12987E+01
+    2.00   0.13107E+01
+    4.00   0.13432E+01
+    6.00   0.13873E+01
+    8.00   0.14303E+01
+   10.00   0.14582E+01
+   12.00   0.14589E+01
+   14.00   0.14241E+01
+   16.00   0.13510E+01
+   18.00   0.12428E+01
+   20.00   0.11084E+01
+   22.00   0.96070E+00
+   24.00   0.81470E+00
+   26.00   0.68441E+00
+   28.00   0.58040E+00
+   30.00   0.50792E+00
+   32.00   0.46624E+00
+   34.00   0.44942E+00
+   36.00   0.44805E+00
+   38.00   0.45164E+00
+   40.00   0.45092E+00
+   42.00   0.43948E+00
+   44.00   0.41464E+00
+   46.00   0.37733E+00
+   48.00   0.33118E+00
+   50.00   0.28132E+00
+   52.00   0.23304E+00
+   54.00   0.19069E+00
+   56.00   0.15700E+00
+   58.00   0.13289E+00
+   60.00   0.11769E+00
+   62.00   0.10955E+00
+   64.00   0.10604E+00
+   66.00   0.10471E+00
+   68.00   0.10349E+00
+   70.00   0.10094E+00
+   72.00   0.96332E-01
+   74.00   0.89567E-01
+   76.00   0.81048E-01
+   78.00   0.71469E-01
+   80.00   0.61629E-01
+   82.00   0.52274E-01
+   84.00   0.43994E-01
+   86.00   0.37166E-01
+   88.00   0.31948E-01
+   90.00   0.28292E-01
+   92.00   0.25992E-01
+   94.00   0.24739E-01
+   96.00   0.24178E-01
+   98.00   0.23960E-01
+  100.00   0.23779E-01
+  102.00   0.23406E-01
+  104.00   0.22697E-01
+  106.00   0.21599E-01
+  108.00   0.20135E-01
+  110.00   0.18393E-01
+  112.00   0.16495E-01
+  114.00   0.14580E-01
+  116.00   0.12778E-01
+  118.00   0.11196E-01
diff --git a/Inputs/DetectorConfiguration/gaspardFull.detector.eps b/Inputs/DetectorConfiguration/gaspardFull.detector.eps
deleted file mode 100644
index faa2e59d2d7402f17ce7f8b62f57890f826635b1..0000000000000000000000000000000000000000
--- a/Inputs/DetectorConfiguration/gaspardFull.detector.eps
+++ /dev/null
@@ -1,892 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: gaspardFull.detector
-%%For: Nicolas de Séréville
-%%Creator: a2ps version 4.14
-%%CreationDate: Tue Jun 16 13:26:30 2009
-%%BoundingBox: 24 24 588 768
-%%DocumentData: Clean7Bit
-%%Orientation: Portrait
-%%Pages: 4
-%%PageOrder: Ascend
-%%DocumentMedia: Letter 612 792 0 () ()
-%%DocumentNeededResources: font Courier
-%%+ font Courier-Bold
-%%+ font Courier-BoldOblique
-%%+ font Courier-Oblique
-%%+ font Helvetica
-%%+ font Helvetica-Bold
-%%+ font Symbol
-%%+ font Times-Bold
-%%+ font Times-Roman
-%%DocumentProcessColors: Black 
-%%DocumentSuppliedResources: procset a2ps-a2ps-hdr
-%%+ procset a2ps-black+white-Prolog
-%%+ encoding ISO-8859-1Encoding
-%%EndComments
-/a2psdict 200 dict def
-a2psdict begin
-%%BeginProlog
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Check PostScript language level.
-/languagelevel where {
-  pop /gs_languagelevel languagelevel def
-} {
-  /gs_languagelevel 1 def
-} ifelse
-
-% EPSF import as in the Red Book
-/BeginInclude {
-  /b4_Inc_state save def    		% Save state for cleanup
-  /dict_count countdictstack def	% Count objects on dict stack
-  /op_count count 1 sub def		% Count objects on operand stack 
-  userdict begin
-    0 setgray 0 setlinecap
-    1 setlinewidth 0 setlinejoin
-    10 setmiterlimit [ ] 0 setdash newpath
-    gs_languagelevel 1 ne {
-      false setstrokeadjust false setoverprint 
-    } if
-} bind def
-
-/EndInclude {
-  count op_count sub { pos } repeat	% Clean up stacks
-  countdictstack dict_count sub { end } repeat
-  b4_Inc_state restore
-} bind def
-
-/BeginEPSF {
-  BeginInclude
-  /showpage { } def
-} bind def
-
-/EndEPSF {
-  EndInclude
-} bind def
-
-% Page prefeed
-/page_prefeed {         % bool -> -
-  statusdict /prefeed known {
-    statusdict exch /prefeed exch put
-  } {
-    pop
-  } ifelse
-} bind def
-
-/deffont {
-  findfont exch scalefont def
-} bind def
-
-/reencode_font {
-  findfont reencode 2 copy definefont pop def
-} bind def
-
-% Function c-show (str => -)
-% centers text only according to x axis.
-/c-show { 
-  dup stringwidth pop
-  2 div neg 0 rmoveto
-  show
-} bind def
-
-% Function l-show (str => -)
-% prints texts so that it ends at currentpoint
-/l-show {
-  dup stringwidth pop neg 
-  0 
-  rmoveto show
-} bind def
-
-% center-fit show (str w => -)
-% show centered, and scale currentfont so that the width is less than w
-/cfshow {
-  exch dup stringwidth pop
-  % If the title is too big, try to make it smaller
-  3 2 roll 2 copy
-  gt
-  { % if, i.e. too big
-    exch div
-    currentfont exch scalefont setfont
-  } { % ifelse
-    pop pop 
-  }
-  ifelse
-  c-show			% center title
-} bind def
-
-% Return the y size of the current font
-% - => fontsize
-/currentfontsize {
-  currentfont /FontMatrix get 3 get 1000 mul
-} bind def
-
-% reencode the font
-% <encoding-vector> <fontdict> -> <newfontdict>
-/reencode { %def
-  dup length 5 add dict begin
-    { %forall
-      % <vector> <key> <val>
-      1 index /FID ne 
-      { def }{ pop pop } ifelse
-    } forall
-    /Encoding exch def % -
-
-    % Use the font's bounding box to determine the ascent, descent,
-    % and overall height; don't forget that these values have to be
-    % transformed using the font's matrix.
-    % We use `load' because sometimes BBox is executable, sometimes not.
-    % Since we need 4 numbers an not an array avoid BBox from being executed
-    /FontBBox load aload pop
-    FontMatrix transform /Ascent exch def pop
-    FontMatrix transform /Descent exch def pop
-    /FontHeight Ascent Descent sub def
-
-    % Get the underline position and thickness if they're defined.
-    % Use 1 if they are not defined.
-    currentdict /FontInfo 2 copy known
-    { get
-      /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-
-      /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-      pop % -
-    }{ pop pop
-    } ifelse
-
-    currentdict
-  end 
-} bind def
-
-% Function print line number (<string> # -)
-/# {
-  gsave
-    sx cw mul neg 2 div 0 rmoveto
-    f# setfont
-    c-show
-  grestore
-} bind def
-
-% -------- Some routines to enlight plain b/w printings ---------
-
-% Underline
-% width --
-/dounderline {
-  currentpoint
-  gsave
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    0 rlineto
-    stroke
-  grestore
-} bind def
-
-% Underline a string
-% string --
-/dounderlinestring {
-  stringwidth pop
-  dounderline
-} bind def
-
-/UL {
-  /ul exch store
-} bind def
-
-% Draw a box of WIDTH wrt current font
-% width --
-/dobox {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    stroke
-  grestore
-} bind def
-
-/BX {
-  /bx exch store
-} bind def
-
-% Box a string
-% string --
-/doboxstring {
-  stringwidth pop
-  dobox
-} bind def
-
-%
-% ------------- Color routines ---------------
-%
-/FG /setrgbcolor load def
-
-% Draw the background
-% width --
-/dobackground {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    bgcolor aload pop setrgbcolor
-    fill
-  grestore
-} bind def
-
-% Draw bg for a string
-% string --
-/dobackgroundstring {
-  stringwidth pop
-  dobackground
-} bind def
-
-
-/BG {
-  dup /bg exch store
-  { mark 4 1 roll ] /bgcolor exch store } if
-} bind def
-
-
-/Show {
-  bg { dup dobackgroundstring } if
-  ul { dup dounderlinestring } if
-  bx { dup doboxstring } if
-  show
-} bind def
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T {
-  cw mul x0 add
-  bg { dup currentpoint pop sub dobackground } if
-  ul { dup currentpoint pop sub dounderline } if
-  bx { dup currentpoint pop sub dobox } if
-  y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n {
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-/S {
-  Show
-} bind def
-
-%%BeginResource: procset a2ps-a2ps-hdr 2.0 2
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Function title: prints page header.
-% <ct> <rt> <lt> are passed as argument
-/title { 
-  % 1. Draw the background
-  x v get y v get moveto
-  gsave
-    0 th 2 div neg rmoveto 
-    th setlinewidth
-    0.95 setgray
-    pw 0 rlineto stroke
-  grestore
-  % 2. Border it
-  gsave
-    0.7 setlinewidth
-    pw 0 rlineto
-    0 th neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-  % stk: ct rt lt
-  x v get y v get th sub 1 add moveto
-%%IncludeResource: font Helvetica
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  % 3. The left title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    fnfs 0.8 mul hm rmoveto
-    show			% left title
-  grestore
-  exch
-  % stk: ct ltw rt
-  % 4. the right title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    dup
-    pw exch stringwidth pop fnfs 0.8 mul add sub
-    hm
-    rmoveto
-    show			% right title
-  grestore
-  % stk: ct ltw rtw
-  % 5. the center title
-  gsave
-    pw 3 1 roll
-    % stk: ct pw ltw rtw
-    3 copy 
-    % Move to the center of the left room
-    sub add 2 div hm rmoveto
-    % What is the available space in here?
-    add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
-    % stk: ct space_left
-%%IncludeResource: font Helvetica-Bold
-  fHelvetica-Bold fnfs scalefont setfont
-    cfshow
-  grestore
-} bind def
-
-% Function border: prints virtual page border
-/border { %def
-  gsave				% print four sides
-    0 setgray
-    x v get y v get moveto
-    0.7 setlinewidth		% of the square
-    pw 0 rlineto
-    0 ph neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-} bind def
-
-% Function water: prints a water mark in background
-/water { %def
-  gsave
-    scx scy moveto rotate
-%%IncludeResource: font Times-Bold
-  fTimes-Bold 100 scalefont setfont
-    .97 setgray
-    dup stringwidth pop 2 div neg -50 rmoveto
-    show
-  grestore
-} bind def
-
-% Function rhead: prints the right header
-/rhead {  %def
-  lx ly moveto
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  l-show
-} bind def
-
-% Function footer (cf rf lf -> -)
-/footer {
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  dx dy moveto
-  show
-
-  snx sny moveto
-  l-show
-  
-  fnx fny moveto
-  c-show
-} bind def
-%%EndResource
-%%BeginResource: procset a2ps-black+white-Prolog 2.0 1
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T { 
-  cw mul x0 add y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n { %def
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-}  bind def
-
-/S {
-  Show
-} bind def
-
-/p {
-  false UL
-  false BX
-  fCourier bfs scalefont setfont
-  Show
-} bind def
-
-/sy {
-  false UL
-  false BX
-  fSymbol bfs scalefont setfont
-  Show
-} bind def
-
-/k {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/K {
-  false UL
-  false BX
-  fCourier-Bold bfs scalefont setfont
-  Show
-} bind def
-
-/c {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/C {
-  false UL
-  false BX
-  fCourier-BoldOblique bfs scalefont setfont
-  Show 
-} bind def
-
-/l {
-  false UL
-  false BX
-  fHelvetica bfs scalefont setfont
-  Show
-} bind def
-
-/L {
-  false UL
-  false BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show 
-} bind def
-
-/str{
-  false UL
-  false BX
-  fTimes-Roman bfs scalefont setfont
-  Show
-} bind def
-
-/e{
-  false UL
-  true BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show
-} bind def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeResource: font Courier
-%%IncludeResource: font Courier-Oblique
-%%IncludeResource: font Courier-Bold
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Symbol
-%%IncludeResource: font Courier-BoldOblique
-%%BeginResource: encoding ISO-8859-1Encoding
-/ISO-8859-1Encoding [
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright 
-/parenleft /parenright /asterisk /plus /comma /minus /period /slash 
-/zero /one /two /three /four /five /six /seven 
-/eight /nine /colon /semicolon /less /equal /greater /question 
-/at /A /B /C /D /E /F /G 
-/H /I /J /K /L /M /N /O 
-/P /Q /R /S /T /U /V /W 
-/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore 
-/quoteleft /a /b /c /d /e /f /g 
-/h /i /j /k /l /m /n /o 
-/p /q /r /s /t /u /v /w 
-/x /y /z /braceleft /bar /braceright /asciitilde /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclamdown /cent /sterling /currency /yen /brokenbar /section 
-/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron 
-/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet 
-/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown 
-/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla 
-/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis 
-/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply 
-/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls 
-/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla 
-/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis 
-/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide 
-/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 
-] def
-%%EndResource
-% Initialize page description variables.
-/sh 792 def
-/sw 612 def
-/llx 24 def
-/urx 588 def
-/ury 768 def
-/lly 24 def
-/#copies 1 def
-/th 20.000000 def
-/fnfs 15 def
-/bfs 11.547912 def
-/cw 6.928747 def
-
-% Dictionary for ISO-8859-1 support
-/iso1dict 8 dict begin
-  /fCourier ISO-8859-1Encoding /Courier reencode_font
-  /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
-  /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font
-  /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font
-  /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
-  /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
-  /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
-  /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
-currentdict end def
-/bgcolor [ 0 0 0 ] def
-/bg false def
-/ul false def
-/bx false def
-% The font for line numbering
-/f# /Helvetica findfont bfs .6 mul scalefont def
-/fSymbol /Symbol findfont def
-/hm fnfs 0.25 mul def
-/pw
-   cw 81.400000 mul
-def
-/ph
-   689.410325 th add
-def
-/pmw 0 def
-/pmh 0 def
-/v 0 def
-/x [
-  0
-] def
-/y [
-  pmh ph add 0 mul ph add
-] def
-/scx sw 2 div def
-/scy sh 2 div def
-/snx urx def
-/sny lly 2 add def
-/dx llx def
-/dy sny def
-/fnx scx def
-/fny dy def
-/lx snx def
-/ly ury fnfs 0.8 mul sub def
-/sx 0 def
-/tab 8 def
-/x0 0 def
-/y0 0 def
-%%EndSetup
-
-%%Page: (1) 1
-%%BeginPageSetup
-/pagesave save def
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 4.850123 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%%) p n
-(%%Position and distance given in mm) N
-(%%Angle given in degree) N
-(%% using the data from the experimental mesurement) N
-(%% special care is given for the X Y direction) N
-(%% NOTATTION USED IN THE FOLLOWING:) N
-(%%) N
-(%% X1_Y1 ) S 16 T () S 24 T (--> X:1    Y:1) N
-(%% X128_Y1 ) S 16 T () S 24 T (--> X:128  Y:1) N
-(%% X1_Y128 ) S 16 T () S 24 T (--> X:1    Y:128) N
-(%% X128_Y128 ) S 16 T (--> X:128  Y:128) N
-(%%Option: 0,1 for Si SiLi and CSI) N
-(%%Option: all or sensible for VISualisation) N
-(% 1.2 12.371134021) N
-(% 2   20.618556701) N
-(% 30  309.278350515) N
-() N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1) N
-(GeneralTarget) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1) N
-(Target) N
-() S 8 T (THICKNESS= 309.278350515) N
-() S 8 T (RADIUS=) S 16 T (7.5) N
-() S 8 T (MATERIAL= CD2) N
-() S 8 T (X= 0) N
-() S 8 T (Y= 0) N
-() S 8 T (Z= 0) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) S 40 T () N
-(Gaspard) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (49.1) S 32 T (66.08) S 40 T (-135.41) N
-() S 8 T (X128_Y1=) S 24 T (-48.9) S 32 T (66.22) S 40 T (-135.41) N
-() S 8 T (X1_Y128=) S 24 T (-48.8) S 32 T (135.51) S 40 T (-66.1) N
-() S 8 T (X128_Y128=) S 24 T (49.2) S 32 T (135.36) S 40 T (-66.1) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-66.04) S 32 T (61.23) S 40 T (-130.4) N
-() S 8 T (X128_Y1=) S 24 T (-135.4) S 32 T (12.32) S 40 T (-81.4) N
-() S 8 T (X1_Y128=) S 24 T (-65.94) S 32 T (130.51) S 40 T (-61.09) N
-() S 8 T (X128_Y128=) S 24 T (-135.3) S 32 T (81.6) S 40 T (-12.1) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-142.52) S 32 T (0.22) S 40 T (-69.3) N
-() S 8 T (X128_Y1=) S 24 T (-142.62) S 32 T (-69.09) S 40 T (-0.01) N
-() S 8 T (X1_Y128=) S 24 T (-142.42) S 32 T (69.5) S 40 T (0.01) N
-() S 8 T (X128_Y128=) S 24 T (-142.52) S 32 T (0.19) S 40 T (69.3) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(gaspardFull.detector) (Page 1/4) (Jun 08, 09 10:39) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-() (1/4) (Tuesday June 16, 2009) footer
-end % of iso1dict
-pagesave restore
-showpage
-%%Page: (2) 2
-%%BeginPageSetup
-/pagesave save def
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 4.850123 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) p n
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-135.54) S 32 T (-81.21) S 40 T (12.1) N
-() S 8 T (X128_Y1=) S 24 T (-66.31) S 32 T (-130.32) S 40 T (61.09) N
-() S 8 T (X1_Y128=) S 24 T (-135.44) S 32 T (-11.93) S 40 T (81.4) N
-() S 8 T (X128_Y128=) S 24 T (-66.21) S 32 T (-61.04) S 40 T (130.4) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-49.2) S 32 T (-135.36) S 40 T (66.1) N
-() S 8 T (X128_Y1=) S 24 T (48.8) S 32 T (-135.51) S 40 T (66.1) N
-() S 8 T (X1_Y128=) S 24 T (48.9) S 32 T (-66.22) S 40 T (135.41) N
-() S 8 T (X128_Y128=) S 24 T (-49.1) S 32 T (-66.08) S 40 T (135.41) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (65.94) S 32 T (-130.51) S 40 T (61.09) N
-() S 8 T (X128_Y1=) S 24 T (135.3) S 32 T (-81.6) S 40 T (12.1) N
-() S 8 T (X1_Y128=) S 24 T (135.4) S 32 T (-12.32) S 40 T (81.4) N
-() S 8 T (X128_Y128=) S 24 T (66.04) S 32 T (-61.23) S 40 T (130.4) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (142.42) S 32 T (-69.5) S 40 T (-0.01) N
-() S 8 T (X128_Y1=) S 24 T (142.52) S 32 T (-0.19) S 40 T (-69.3) N
-() S 8 T (X1_Y128=) S 24 T (142.52) S 32 T (-0.22) S 40 T (69.3) N
-() S 8 T (X128_Y128=) S 24 T (142.62) S 32 T (69.09) S 40 T (0.01) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8) N
-(GPDSquare ) N
-() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (135.44) S 32 T (11.93) S 40 T (-81.4) N
-() S 8 T (X128_Y1=) S 24 T (66.21) S 32 T (61.04) S 40 T (-130.4) N
-() S 8 T (X1_Y128=) S 24 T (66.31) S 32 T (130.32) S 40 T (-61.09) N
-() S 8 T (X128_Y128=) S 24 T (135.54) S 32 T (81.21) S 40 T ( -12.1) N
-() S 8 T (FIRSTSTAGE= 1) N
-() S 8 T (SECONDSTAGE= 0) N
-() S 8 T (THIRDSTAGE= 0) N
-() S 8 T (VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Cap Back) N
-(GPDSquare) N
-(        X1_Y1=          -12.17  -38.15  -153.33) N
-(        X128_Y1=        -81.53  -87.06  -104.34) N
-(        X1_Y128=        -61.04  45.57   -138.96) N
-(        X128_Y128=      -130.41 -3.34   -89.97) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(gaspardFull.detector) (Page 2/4) (Jun 08, 09 10:39) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-() (Tuesday June 16, 2009) (2/4) footer
-end % of iso1dict
-pagesave restore
-showpage
-%%Page: (3) 3
-%%BeginPageSetup
-/pagesave save def
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 4.850123 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(        VIS= all) p n
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N
-(GPDSquare) N
-(        X1_Y1=          -12.33  -153.3  -38.22) N
-(        X128_Y1=        -61.31  -138.89 45.43) N
-(        X1_Y128=        -130.54 -89.78  -3.56) N
-(        X128_Y128=      -81.56  -104.19 -87.21) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N
-(GPDSquare) N
-(        X1_Y1=          11.89   -153.33 -38.22) N
-(        X128_Y1=        81.26   -104.42 -87.21) N
-(        X1_Y128=        60.91   -139.07 45.43) N
-(        X128_Y128=      130.28  -130.28 -3.56) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) N
-(GPDSquare) N
-(        X1_Y1=          130.4   -3.72   -89.97) N
-(        X128_Y1=        81.28   -87.29  -104.34) N
-(        X1_Y128=        12.06   -38.18  -153.33) N
-(        X128_Y128=      61.18   45.39   -138.96) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N
-(GPDSquare) N
-(        X1_Y1=          69.15   -100.86 -100.79) N
-(        X128_Y1=        -0.22   -149.76 -51.8) N
-(        X1_Y128=        -0.08   -51.75  -149.78) N
-(        X128_Y128=      -69.44  -100.66 -100.79) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Cap Front) N
-(GPDSquare ) N
-(        X1_Y1=          -60.91  139.07  -45.43) N
-(        X128_Y1=        -130.28 90.16   3.6) N
-(        X1_Y128=        -81.26  104.42  87.21) N
-(        X128_Y128=      -11.89  153.33  38.22) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N
-(GPDSquare ) N
-(        X1_Y1=          -81.28  87.29   104.34) N
-(        X128_Y1=        -130.40 3.72    89.97) N
-(        X1_Y128=        -12.06  38.18   153.33) N
-(        X128_Y128=      -61.18  -45.39  138.96) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(gaspardFull.detector) (Page 3/4) (Jun 08, 09 10:39) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-() (3/4) (Tuesday June 16, 2009) footer
-end % of iso1dict
-pagesave restore
-showpage
-%%Page: (4) 4
-%%BeginPageSetup
-/pagesave save def
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 4.850123 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(        THIRDSTAGE= 0) p n
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N
-(GPDSquare ) N
-(        X1_Y1=          81.53   87.06   104.34) N
-(        X128_Y1=        12.17   38.15   153.33) N
-(        X1_Y128=        61.04   -45.57  138.96) N
-(        X128_Y128=      130.411 3.34    89.97) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) N
-(GPDSquare) N
-(        X1_Y1=          61.31   138.89  -45.43) N
-(        X128_Y1=        12.33   153.30  38.22) N
-(        X1_Y128=        81.56   104.19  87.21) N
-(        X128_Y128=      130.54  89.78   3.56) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N
-(GPDSquare) N
-(        X1_Y1=          0.22    149.76  51.80) N
-(        X128_Y1=        -69.15  100.86  100.79) N
-(        X1_Y128=        0.08    51.75   149.78) N
-(        X128_Y128=      69.44   100.66  100.79) N
-(        FIRSTSTAGE= 1) N
-(        SECONDSTAGE= 0) N
-(        THIRDSTAGE= 0) N
-(        VIS= all) N
-(gaspardFull.detector) (Page 4/4) (Jun 08, 09 10:39) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-() (Tuesday June 16, 2009) (4/4) footer
-end % of iso1dict
-pagesave restore
-showpage
-
-%%Trailer
-end
-%%EOF
diff --git a/Inputs/DetectorConfiguration/gaspardTestSpheric.detector b/Inputs/DetectorConfiguration/gaspardTestSpheric.detector
index c2459a56b75799b6f75ef8c265f4111d9b617454..5465fea0426fe14a09e3bedd7c97de63b6382e72 100644
--- a/Inputs/DetectorConfiguration/gaspardTestSpheric.detector
+++ b/Inputs/DetectorConfiguration/gaspardTestSpheric.detector
@@ -9,8 +9,8 @@
 GeneralTarget
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Target
-	THICKNESS= 1
-	RADIUS=	45
+	THICKNESS= 0.0001
+	RADIUS=	12
 	MATERIAL= CD2
 	X= 0
 	Y= 0
diff --git a/Inputs/DetectorConfiguration/gaspardBarrel.detector b/Inputs/DetectorConfiguration/gaspardV1Barrel.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardBarrel.detector
rename to Inputs/DetectorConfiguration/gaspardV1Barrel.detector
diff --git a/Inputs/DetectorConfiguration/gaspardCapBack.detector b/Inputs/DetectorConfiguration/gaspardV1EndCapBack.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardCapBack.detector
rename to Inputs/DetectorConfiguration/gaspardV1EndCapBack.detector
diff --git a/Inputs/DetectorConfiguration/gaspardCapFront.detector b/Inputs/DetectorConfiguration/gaspardV1EndCapFront.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardCapFront.detector
rename to Inputs/DetectorConfiguration/gaspardV1EndCapFront.detector
diff --git a/Inputs/DetectorConfiguration/gaspardFull.detector b/Inputs/DetectorConfiguration/gaspardV1Full.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardFull.detector
rename to Inputs/DetectorConfiguration/gaspardV1Full.detector
diff --git a/Inputs/DetectorConfiguration/gaspardV2CapBack.detector b/Inputs/DetectorConfiguration/gaspardV2EndCapBack.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardV2CapBack.detector
rename to Inputs/DetectorConfiguration/gaspardV2EndCapBack.detector
diff --git a/Inputs/DetectorConfiguration/gaspardV2CapFront.detector b/Inputs/DetectorConfiguration/gaspardV2EndCapFront.detector
similarity index 100%
rename from Inputs/DetectorConfiguration/gaspardV2CapFront.detector
rename to Inputs/DetectorConfiguration/gaspardV2EndCapFront.detector
diff --git a/Inputs/DetectorConfiguration/gaspardV2test.detector b/Inputs/DetectorConfiguration/gaspardV2test.detector
deleted file mode 100644
index 3360566ba592e764540b29419687230c8016fcc2..0000000000000000000000000000000000000000
--- a/Inputs/DetectorConfiguration/gaspardV2test.detector
+++ /dev/null
@@ -1,48 +0,0 @@
-%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%%
-%%Position and distance given in mm
-%%Angle given in degree
-%% using the data from the experimental mesurement
-%% special care is given for the X Y direction
-%% NOTATTION USED IN THE FOLLOWING:
-%%
-%% X1_Y1 		--> X:1    Y:1
-%% X128_Y1 		--> X:128  Y:1
-%% X1_Y128 		--> X:1    Y:128
-%% X128_Y128 	--> X:128  Y:128
-%%Option: 0,1 for Si SiLi and CSI
-%%Option: all or sensible for VISualisation
-% 1.2 12.371134021
-% 2   20.618556701
-% 30  309.278350515
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
-GeneralTarget
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
-Target
-	THICKNESS= 0.001
-	RADIUS=	7.5
-	MATERIAL= CD2
-	X= 0
-	Y= 0
-	Z= 0
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	
-GaspardTracker
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Annular Back
-GPDAnnular
-	Z=	-200
-	RMIN=	16
-	RMAX=	52
-	FIRSTSTAGE= 1
-	SECONDSTAGE= 0
-	THIRDSTAGE= 1
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 End-Cap Back
-GPDTrapezoid
-        X1_Y1=           45.64   34.43  -146.50
-        X128_Y1=         91.09   79.82   -91.36
-        X1_Y128=        120.84    8.00   -91.36
-        X128_Y128=       56.59    8.00  -146.50
-        FIRSTSTAGE= 1
-        SECONDSTAGE= 0
-        THIRDSTAGE= 1
-        VIS= all
diff --git a/Inputs/DetectorConfiguration/gaspardV2trap.detector b/Inputs/DetectorConfiguration/gaspardV2trap.detector
deleted file mode 100644
index b1dbaab6d9513bfa3d4c209fc570166ac1a2c262..0000000000000000000000000000000000000000
--- a/Inputs/DetectorConfiguration/gaspardV2trap.detector
+++ /dev/null
@@ -1,59 +0,0 @@
-%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%%
-%%Position and distance given in mm
-%%Angle given in degree
-%% using the data from the experimental mesurement
-%% special care is given for the X Y direction
-%% NOTATTION USED IN THE FOLLOWING:
-%%
-%% X1_Y1 		--> X:1    Y:1
-%% X128_Y1 		--> X:128  Y:1
-%% X1_Y128 		--> X:1    Y:128
-%% X128_Y128 	--> X:128  Y:128
-%%Option: 0,1 for Si SiLi and CSI
-%%Option: all or sensible for VISualisation
-% 1.2 12.371134021
-% 2   20.618556701
-% 30  309.278350515
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
-GeneralTarget
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
-Target
-	THICKNESS= 0.001
-	RADIUS=	7.5
-	MATERIAL= CD2
-	X= 0
-	Y= 0
-	Z= 0
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	
-GaspardTracker
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel
-GPDSquare 
-	X1_Y1=	 	49.1	66.08	-135.41
-	X128_Y1=	-48.9	66.22	-135.41
-	X1_Y128=	-48.8	135.51	-66.1
-	X128_Y128=	49.2	135.36	-66.1
-	FIRSTSTAGE= 1
-	SECONDSTAGE= 0
-	THIRDSTAGE= 1
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
-GPDTrapezoid 
-	THETA= 0
-	PHI= 0
-	R= 20
-	BETA= 0
-	FIRSTSTAGE= 0
-	SECONDSTAGE= 0
-	THIRDSTAGE= 0
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel
-GPDTrapezoid
-	X1_Y1=	 	122.02	14.32	-4.45
-	X128_Y1=	122.02	38.86	76.58
-	X1_Y128=	122.02	-38.88	76.58
-	X128_Y128=	122.02	-14.29	-4.45
-	FIRSTSTAGE= 0
-	SECONDSTAGE= 0
-	THIRDSTAGE= 0
-	VIS= all
diff --git a/Inputs/DetectorConfiguration/testPerformance.detector b/Inputs/DetectorConfiguration/testPerformance.detector
deleted file mode 100644
index fed3091d0c5f7ea14fae1ac046921b4bbf6f145c..0000000000000000000000000000000000000000
--- a/Inputs/DetectorConfiguration/testPerformance.detector
+++ /dev/null
@@ -1,365 +0,0 @@
-%Fichier de configuration manip E225
-%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
-%Thickness in micrometer
-%Radius in mm
-%Temperature in K, Pressure in bar
-%Material name according to the target library
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-GeneralTarget
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-Target
-	THICKNESS= 1
-	RADIUS=	45
-	MATERIAL= CD2
-	X= 0
-	Y= 0
-	Z= 0
-%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%%
-%%Position and R given in mm
-%%Angle given in degree
-%%Option: 0,1 for Si SiLi and CsI
-%%Option: all or sensible for VISualisation
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-MUST2Array
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
-M2Telescope
-	THETA= 0
-	PHI= 0 
-	R= 300
-	BETA= 0 -0 -0
-	SI= 1
-	SILI= 0
-	CSI= 1
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
-M2Telescope
-	THETA= 30
-	PHI= 0
-	R= 300
-	BETA= 0 -0 0
-	SI= 1
-	SILI= 0
-	CSI= 1	
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
-M2Telescope
-	THETA= 60
-	PHI= 0
-	R= 300
-	BETA= 0 0 0
-	SI= 1
-	SILI= 0
-	CSI= 1
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
-M2Telescope
-	THETA= 90
-	PHI= 0
-	R= 300
-	BETA= 0 0 0
-	SI= 1
-	SILI= 0
-	CSI= 1	
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
-M2Telescope
-	THETA= 120
-	PHI= 0
-	R= 300
-	BETA= 0 0 0
-	SI= 1
-	SILI= 0
-	CSI= 1	
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-	THETA= 150
-	PHI= 0
-	R= 300
-	BETA= 0 0 0
-	SI= 1
-	SILI= 0
-	CSI= 1	
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
-M2Telescope
-	THETA= 180
-	PHI= 0
-	R= 300
-	BETA= 0 0 0
-	SI= 1
-	SILI= 0
-	CSI= 1	
-	VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
-M2Telescope
-        THETA= -30
-        PHI= 0
-        R= 300
-        BETA= 0 -0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
-M2Telescope
-        THETA= -60
-        PHI= 0
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
-M2Telescope
-        THETA= -90
-        PHI= 0
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
-M2Telescope
-        THETA= -120
-        PHI= 0
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
-M2Telescope
-        THETA= -150
-        PHI= 0
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
-M2Telescope
-        THETA= 30
-        PHI= 90
-        R= 300
-        BETA= 0 -0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
-M2Telescope
-        THETA= 60
-        PHI= 90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
-M2Telescope
-        THETA= 90
-        PHI= 90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
-M2Telescope
-        THETA= 120
-        PHI= 90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 150
-        PHI= 90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
-M2Telescope
-        THETA= 30
-        PHI= -90
-        R= 300
-        BETA= 0 -0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
-M2Telescope
-        THETA= 60
-        PHI= -90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
-M2Telescope
-        THETA= 90
-        PHI= -90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
-M2Telescope
-        THETA= 120
-        PHI= -90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 150
-        PHI= -90
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 45 
-        PHI= 45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 90 
-        PHI= 45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 135 
-        PHI= 45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 45
-        PHI= -45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 90
-        PHI= -45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 135
-        PHI= -45
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 45
-        PHI= -135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 90
-        PHI= -135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 135
-        PHI= -135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 45
-        PHI= 135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 90
-        PHI= 135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
-M2Telescope
-        THETA= 135
-        PHI= 135
-        R= 300
-        BETA= 0 0 0
-        SI= 1
-        SILI= 0
-        CSI= 1
-        VIS= all
diff --git a/Inputs/EventGenerator/132Sndp.reaction b/Inputs/EventGenerator/132Sndp.reaction
new file mode 100644
index 0000000000000000000000000000000000000000..5bdb077e4d6f9240fe93c625687c05caedc0baf3
--- /dev/null
+++ b/Inputs/EventGenerator/132Sndp.reaction
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%  Reaction file for 60Fe(d,p)61Fe reaction  %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad
+Transfert
+	Beam= 132Sn
+	Target= 2H
+	Light= 1H
+	Heavy= 133Sn
+	ExcitationEnergy= 0.0
+	BeamEnergy= 1320
+	BeamEnergySpread= 0
+	SigmaX= 2
+	SigmaY= 2
+	SigmaThetaX= 0 
+	SigmaPhiY= 0
+	CrossSectionPath= sn132dp_gs_10AMeV.txt
+	ShootLight= 1
+	ShootHeavy= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Inputs/EventGenerator/60Fe.reaction.eps b/Inputs/EventGenerator/60Fe.reaction.eps
deleted file mode 100644
index b2dbcb72bd280cb65bceb5f53c9330e0efd9e54f..0000000000000000000000000000000000000000
--- a/Inputs/EventGenerator/60Fe.reaction.eps
+++ /dev/null
@@ -1,649 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: 60Fe.reaction
-%%For: Nicolas de Séréville
-%%Creator: a2ps version 4.14
-%%CreationDate: Tue Jun 16 11:57:57 2009
-%%BoundingBox: 24 24 588 768
-%%DocumentData: Clean7Bit
-%%Orientation: Landscape
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: Letter 612 792 0 () ()
-%%DocumentNeededResources: font Courier
-%%+ font Courier-Bold
-%%+ font Courier-BoldOblique
-%%+ font Courier-Oblique
-%%+ font Helvetica
-%%+ font Helvetica-Bold
-%%+ font Symbol
-%%+ font Times-Bold
-%%+ font Times-Roman
-%%DocumentProcessColors: Black 
-%%DocumentSuppliedResources: procset a2ps-a2ps-hdr
-%%+ procset a2ps-black+white-Prolog
-%%+ encoding ISO-8859-1Encoding
-%%EndComments
-/a2psdict 200 dict def
-a2psdict begin
-%%BeginProlog
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Check PostScript language level.
-/languagelevel where {
-  pop /gs_languagelevel languagelevel def
-} {
-  /gs_languagelevel 1 def
-} ifelse
-
-% EPSF import as in the Red Book
-/BeginInclude {
-  /b4_Inc_state save def    		% Save state for cleanup
-  /dict_count countdictstack def	% Count objects on dict stack
-  /op_count count 1 sub def		% Count objects on operand stack 
-  userdict begin
-    0 setgray 0 setlinecap
-    1 setlinewidth 0 setlinejoin
-    10 setmiterlimit [ ] 0 setdash newpath
-    gs_languagelevel 1 ne {
-      false setstrokeadjust false setoverprint 
-    } if
-} bind def
-
-/EndInclude {
-  count op_count sub { pos } repeat	% Clean up stacks
-  countdictstack dict_count sub { end } repeat
-  b4_Inc_state restore
-} bind def
-
-/BeginEPSF {
-  BeginInclude
-  /showpage { } def
-} bind def
-
-/EndEPSF {
-  EndInclude
-} bind def
-
-% Page prefeed
-/page_prefeed {         % bool -> -
-  statusdict /prefeed known {
-    statusdict exch /prefeed exch put
-  } {
-    pop
-  } ifelse
-} bind def
-
-/deffont {
-  findfont exch scalefont def
-} bind def
-
-/reencode_font {
-  findfont reencode 2 copy definefont pop def
-} bind def
-
-% Function c-show (str => -)
-% centers text only according to x axis.
-/c-show { 
-  dup stringwidth pop
-  2 div neg 0 rmoveto
-  show
-} bind def
-
-% Function l-show (str => -)
-% prints texts so that it ends at currentpoint
-/l-show {
-  dup stringwidth pop neg 
-  0 
-  rmoveto show
-} bind def
-
-% center-fit show (str w => -)
-% show centered, and scale currentfont so that the width is less than w
-/cfshow {
-  exch dup stringwidth pop
-  % If the title is too big, try to make it smaller
-  3 2 roll 2 copy
-  gt
-  { % if, i.e. too big
-    exch div
-    currentfont exch scalefont setfont
-  } { % ifelse
-    pop pop 
-  }
-  ifelse
-  c-show			% center title
-} bind def
-
-% Return the y size of the current font
-% - => fontsize
-/currentfontsize {
-  currentfont /FontMatrix get 3 get 1000 mul
-} bind def
-
-% reencode the font
-% <encoding-vector> <fontdict> -> <newfontdict>
-/reencode { %def
-  dup length 5 add dict begin
-    { %forall
-      % <vector> <key> <val>
-      1 index /FID ne 
-      { def }{ pop pop } ifelse
-    } forall
-    /Encoding exch def % -
-
-    % Use the font's bounding box to determine the ascent, descent,
-    % and overall height; don't forget that these values have to be
-    % transformed using the font's matrix.
-    % We use `load' because sometimes BBox is executable, sometimes not.
-    % Since we need 4 numbers an not an array avoid BBox from being executed
-    /FontBBox load aload pop
-    FontMatrix transform /Ascent exch def pop
-    FontMatrix transform /Descent exch def pop
-    /FontHeight Ascent Descent sub def
-
-    % Get the underline position and thickness if they're defined.
-    % Use 1 if they are not defined.
-    currentdict /FontInfo 2 copy known
-    { get
-      /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-
-      /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-      pop % -
-    }{ pop pop
-    } ifelse
-
-    currentdict
-  end 
-} bind def
-
-% Function print line number (<string> # -)
-/# {
-  gsave
-    sx cw mul neg 2 div 0 rmoveto
-    f# setfont
-    c-show
-  grestore
-} bind def
-
-% -------- Some routines to enlight plain b/w printings ---------
-
-% Underline
-% width --
-/dounderline {
-  currentpoint
-  gsave
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    0 rlineto
-    stroke
-  grestore
-} bind def
-
-% Underline a string
-% string --
-/dounderlinestring {
-  stringwidth pop
-  dounderline
-} bind def
-
-/UL {
-  /ul exch store
-} bind def
-
-% Draw a box of WIDTH wrt current font
-% width --
-/dobox {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    stroke
-  grestore
-} bind def
-
-/BX {
-  /bx exch store
-} bind def
-
-% Box a string
-% string --
-/doboxstring {
-  stringwidth pop
-  dobox
-} bind def
-
-%
-% ------------- Color routines ---------------
-%
-/FG /setrgbcolor load def
-
-% Draw the background
-% width --
-/dobackground {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    bgcolor aload pop setrgbcolor
-    fill
-  grestore
-} bind def
-
-% Draw bg for a string
-% string --
-/dobackgroundstring {
-  stringwidth pop
-  dobackground
-} bind def
-
-
-/BG {
-  dup /bg exch store
-  { mark 4 1 roll ] /bgcolor exch store } if
-} bind def
-
-
-/Show {
-  bg { dup dobackgroundstring } if
-  ul { dup dounderlinestring } if
-  bx { dup doboxstring } if
-  show
-} bind def
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T {
-  cw mul x0 add
-  bg { dup currentpoint pop sub dobackground } if
-  ul { dup currentpoint pop sub dounderline } if
-  bx { dup currentpoint pop sub dobox } if
-  y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n {
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-/S {
-  Show
-} bind def
-
-%%BeginResource: procset a2ps-a2ps-hdr 2.0 2
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Function title: prints page header.
-% <ct> <rt> <lt> are passed as argument
-/title { 
-  % 1. Draw the background
-  x v get y v get moveto
-  gsave
-    0 th 2 div neg rmoveto 
-    th setlinewidth
-    0.95 setgray
-    pw 0 rlineto stroke
-  grestore
-  % 2. Border it
-  gsave
-    0.7 setlinewidth
-    pw 0 rlineto
-    0 th neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-  % stk: ct rt lt
-  x v get y v get th sub 1 add moveto
-%%IncludeResource: font Helvetica
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  % 3. The left title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    fnfs 0.8 mul hm rmoveto
-    show			% left title
-  grestore
-  exch
-  % stk: ct ltw rt
-  % 4. the right title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    dup
-    pw exch stringwidth pop fnfs 0.8 mul add sub
-    hm
-    rmoveto
-    show			% right title
-  grestore
-  % stk: ct ltw rtw
-  % 5. the center title
-  gsave
-    pw 3 1 roll
-    % stk: ct pw ltw rtw
-    3 copy 
-    % Move to the center of the left room
-    sub add 2 div hm rmoveto
-    % What is the available space in here?
-    add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
-    % stk: ct space_left
-%%IncludeResource: font Helvetica-Bold
-  fHelvetica-Bold fnfs scalefont setfont
-    cfshow
-  grestore
-} bind def
-
-% Function border: prints virtual page border
-/border { %def
-  gsave				% print four sides
-    0 setgray
-    x v get y v get moveto
-    0.7 setlinewidth		% of the square
-    pw 0 rlineto
-    0 ph neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-} bind def
-
-% Function water: prints a water mark in background
-/water { %def
-  gsave
-    scx scy moveto rotate
-%%IncludeResource: font Times-Bold
-  fTimes-Bold 100 scalefont setfont
-    .97 setgray
-    dup stringwidth pop 2 div neg -50 rmoveto
-    show
-  grestore
-} bind def
-
-% Function rhead: prints the right header
-/rhead {  %def
-  lx ly moveto
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  l-show
-} bind def
-
-% Function footer (cf rf lf -> -)
-/footer {
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  dx dy moveto
-  show
-
-  snx sny moveto
-  l-show
-  
-  fnx fny moveto
-  c-show
-} bind def
-%%EndResource
-%%BeginResource: procset a2ps-black+white-Prolog 2.0 1
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T { 
-  cw mul x0 add y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n { %def
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-}  bind def
-
-/S {
-  Show
-} bind def
-
-/p {
-  false UL
-  false BX
-  fCourier bfs scalefont setfont
-  Show
-} bind def
-
-/sy {
-  false UL
-  false BX
-  fSymbol bfs scalefont setfont
-  Show
-} bind def
-
-/k {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/K {
-  false UL
-  false BX
-  fCourier-Bold bfs scalefont setfont
-  Show
-} bind def
-
-/c {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/C {
-  false UL
-  false BX
-  fCourier-BoldOblique bfs scalefont setfont
-  Show 
-} bind def
-
-/l {
-  false UL
-  false BX
-  fHelvetica bfs scalefont setfont
-  Show
-} bind def
-
-/L {
-  false UL
-  false BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show 
-} bind def
-
-/str{
-  false UL
-  false BX
-  fTimes-Roman bfs scalefont setfont
-  Show
-} bind def
-
-/e{
-  false UL
-  true BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show
-} bind def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeResource: font Courier
-%%IncludeResource: font Courier-Oblique
-%%IncludeResource: font Courier-Bold
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Symbol
-%%IncludeResource: font Courier-BoldOblique
-%%BeginResource: encoding ISO-8859-1Encoding
-/ISO-8859-1Encoding [
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright 
-/parenleft /parenright /asterisk /plus /comma /minus /period /slash 
-/zero /one /two /three /four /five /six /seven 
-/eight /nine /colon /semicolon /less /equal /greater /question 
-/at /A /B /C /D /E /F /G 
-/H /I /J /K /L /M /N /O 
-/P /Q /R /S /T /U /V /W 
-/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore 
-/quoteleft /a /b /c /d /e /f /g 
-/h /i /j /k /l /m /n /o 
-/p /q /r /s /t /u /v /w 
-/x /y /z /braceleft /bar /braceright /asciitilde /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclamdown /cent /sterling /currency /yen /brokenbar /section 
-/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron 
-/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet 
-/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown 
-/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla 
-/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis 
-/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply 
-/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls 
-/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla 
-/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis 
-/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide 
-/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 
-] def
-%%EndResource
-% Initialize page description variables.
-/sh 612 def
-/sw 792 def
-/llx 24 def
-/urx 768 def
-/ury 588 def
-/lly 24 def
-/#copies 1 def
-/th 15.000000 def
-/fnfs 11 def
-/bfs 7.493857 def
-/cw 4.496314 def
-
-% Dictionary for ISO-8859-1 support
-/iso1dict 8 dict begin
-  /fCourier ISO-8859-1Encoding /Courier reencode_font
-  /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
-  /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font
-  /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font
-  /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
-  /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
-  /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
-  /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
-currentdict end def
-/bgcolor [ 0 0 0 ] def
-/bg false def
-/ul false def
-/bx false def
-% The font for line numbering
-/f# /Helvetica findfont bfs .6 mul scalefont def
-/fSymbol /Symbol findfont def
-/hm fnfs 0.25 mul def
-/pw
-   cw 81.400000 mul
-def
-/ph
-   522.321860 th add
-def
-/pmw urx llx sub pw 2 mul sub 1 div def
-/pmh 0 def
-/v 0 def
-/x [
-  0
-  dup pmw add pw add
-] def
-/y [
-  pmh ph add 0 mul ph add
-  dup
-] def
-/scx sw 2 div def
-/scy sh 2 div def
-/snx urx def
-/sny lly 2 add def
-/dx llx def
-/dy sny def
-/fnx scx def
-/fny dy def
-/lx snx def
-/ly ury fnfs 0.8 mul sub def
-/sx 0 def
-/tab 8 def
-/x0 0 def
-/y0 0 def
-%%EndSetup
-
-%%Page: (1) 1
-%%BeginPageSetup
-/pagesave save def
-sh 0 translate 90 rotate
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 3.147420 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) p n
-(%%%%%%%%% Reaction file for 11Li\(d,3He\)10He reaction %%%%%%%%%) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N
-(%%Beam energy given in MeV ; Excitation in MeV) N
-(Transfert) N
-() S 8 T (Beam= 60Fe) N
-() S 8 T (Target= 2H) N
-() S 8 T (Light= 1H) N
-() S 8 T (Heavy= 61Fe) N
-() S 8 T (ExcitationEnergy= 2.0) N
-() S 8 T (BeamEnergy= 800) N
-() S 8 T (BeamEnergySpread= 0) N
-() S 8 T (BeamFWHMX= 0.6232) N
-() S 8 T (BeamFWHMY= 0.9069) N
-() S 8 T (BeamSpreadX= 0) N
-() S 8 T (CrossSectionPath= ni69_g7_01.n) N
-() S 8 T (ShootLight= 1) N
-() S 8 T (ShootHeavy= 0) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N
-() N
-(60Fe.reaction) (Page 1/1) (May 26, 09 12:13) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-(60Fe.reaction) (1/1) (Tuesday June 16, 2009) footer
-end % of iso1dict
-pagesave restore
-showpage
-
-%%Trailer
-end
-%%EOF
diff --git a/Inputs/EventGenerator/60Fe.reaction2.eps b/Inputs/EventGenerator/60Fe.reaction2.eps
deleted file mode 100644
index b6b041300fa239a4aca651a2b3edb411f3ce935d..0000000000000000000000000000000000000000
--- a/Inputs/EventGenerator/60Fe.reaction2.eps
+++ /dev/null
@@ -1,646 +0,0 @@
-%!PS-Adobe-3.0
-%%Title: 60Fe.reaction
-%%For: Nicolas de Séréville
-%%Creator: a2ps version 4.14
-%%CreationDate: Tue Jun 16 13:24:05 2009
-%%BoundingBox: 24 24 588 768
-%%DocumentData: Clean7Bit
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: Letter 612 792 0 () ()
-%%DocumentNeededResources: font Courier
-%%+ font Courier-Bold
-%%+ font Courier-BoldOblique
-%%+ font Courier-Oblique
-%%+ font Helvetica
-%%+ font Helvetica-Bold
-%%+ font Symbol
-%%+ font Times-Bold
-%%+ font Times-Roman
-%%DocumentProcessColors: Black 
-%%DocumentSuppliedResources: procset a2ps-a2ps-hdr
-%%+ procset a2ps-black+white-Prolog
-%%+ encoding ISO-8859-1Encoding
-%%EndComments
-/a2psdict 200 dict def
-a2psdict begin
-%%BeginProlog
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Check PostScript language level.
-/languagelevel where {
-  pop /gs_languagelevel languagelevel def
-} {
-  /gs_languagelevel 1 def
-} ifelse
-
-% EPSF import as in the Red Book
-/BeginInclude {
-  /b4_Inc_state save def    		% Save state for cleanup
-  /dict_count countdictstack def	% Count objects on dict stack
-  /op_count count 1 sub def		% Count objects on operand stack 
-  userdict begin
-    0 setgray 0 setlinecap
-    1 setlinewidth 0 setlinejoin
-    10 setmiterlimit [ ] 0 setdash newpath
-    gs_languagelevel 1 ne {
-      false setstrokeadjust false setoverprint 
-    } if
-} bind def
-
-/EndInclude {
-  count op_count sub { pos } repeat	% Clean up stacks
-  countdictstack dict_count sub { end } repeat
-  b4_Inc_state restore
-} bind def
-
-/BeginEPSF {
-  BeginInclude
-  /showpage { } def
-} bind def
-
-/EndEPSF {
-  EndInclude
-} bind def
-
-% Page prefeed
-/page_prefeed {         % bool -> -
-  statusdict /prefeed known {
-    statusdict exch /prefeed exch put
-  } {
-    pop
-  } ifelse
-} bind def
-
-/deffont {
-  findfont exch scalefont def
-} bind def
-
-/reencode_font {
-  findfont reencode 2 copy definefont pop def
-} bind def
-
-% Function c-show (str => -)
-% centers text only according to x axis.
-/c-show { 
-  dup stringwidth pop
-  2 div neg 0 rmoveto
-  show
-} bind def
-
-% Function l-show (str => -)
-% prints texts so that it ends at currentpoint
-/l-show {
-  dup stringwidth pop neg 
-  0 
-  rmoveto show
-} bind def
-
-% center-fit show (str w => -)
-% show centered, and scale currentfont so that the width is less than w
-/cfshow {
-  exch dup stringwidth pop
-  % If the title is too big, try to make it smaller
-  3 2 roll 2 copy
-  gt
-  { % if, i.e. too big
-    exch div
-    currentfont exch scalefont setfont
-  } { % ifelse
-    pop pop 
-  }
-  ifelse
-  c-show			% center title
-} bind def
-
-% Return the y size of the current font
-% - => fontsize
-/currentfontsize {
-  currentfont /FontMatrix get 3 get 1000 mul
-} bind def
-
-% reencode the font
-% <encoding-vector> <fontdict> -> <newfontdict>
-/reencode { %def
-  dup length 5 add dict begin
-    { %forall
-      % <vector> <key> <val>
-      1 index /FID ne 
-      { def }{ pop pop } ifelse
-    } forall
-    /Encoding exch def % -
-
-    % Use the font's bounding box to determine the ascent, descent,
-    % and overall height; don't forget that these values have to be
-    % transformed using the font's matrix.
-    % We use `load' because sometimes BBox is executable, sometimes not.
-    % Since we need 4 numbers an not an array avoid BBox from being executed
-    /FontBBox load aload pop
-    FontMatrix transform /Ascent exch def pop
-    FontMatrix transform /Descent exch def pop
-    /FontHeight Ascent Descent sub def
-
-    % Get the underline position and thickness if they're defined.
-    % Use 1 if they are not defined.
-    currentdict /FontInfo 2 copy known
-    { get
-      /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-
-      /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT
-      2 copy known
-      { get }{ pop pop 1 } ifelse
-      0 exch FontMatrix transform exch pop
-      def % <FontInfo>
-      pop % -
-    }{ pop pop
-    } ifelse
-
-    currentdict
-  end 
-} bind def
-
-% Function print line number (<string> # -)
-/# {
-  gsave
-    sx cw mul neg 2 div 0 rmoveto
-    f# setfont
-    c-show
-  grestore
-} bind def
-
-% -------- Some routines to enlight plain b/w printings ---------
-
-% Underline
-% width --
-/dounderline {
-  currentpoint
-  gsave
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    0 rlineto
-    stroke
-  grestore
-} bind def
-
-% Underline a string
-% string --
-/dounderlinestring {
-  stringwidth pop
-  dounderline
-} bind def
-
-/UL {
-  /ul exch store
-} bind def
-
-% Draw a box of WIDTH wrt current font
-% width --
-/dobox {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    stroke
-  grestore
-} bind def
-
-/BX {
-  /bx exch store
-} bind def
-
-% Box a string
-% string --
-/doboxstring {
-  stringwidth pop
-  dobox
-} bind def
-
-%
-% ------------- Color routines ---------------
-%
-/FG /setrgbcolor load def
-
-% Draw the background
-% width --
-/dobackground {
-  currentpoint
-  gsave
-    newpath
-    moveto
-    0 currentfont /Descent get currentfontsize mul rmoveto
-    dup 0 rlineto
-    0 currentfont /FontHeight get currentfontsize mul rlineto
-    neg 0 rlineto
-    closepath
-    bgcolor aload pop setrgbcolor
-    fill
-  grestore
-} bind def
-
-% Draw bg for a string
-% string --
-/dobackgroundstring {
-  stringwidth pop
-  dobackground
-} bind def
-
-
-/BG {
-  dup /bg exch store
-  { mark 4 1 roll ] /bgcolor exch store } if
-} bind def
-
-
-/Show {
-  bg { dup dobackgroundstring } if
-  ul { dup dounderlinestring } if
-  bx { dup doboxstring } if
-  show
-} bind def
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T {
-  cw mul x0 add
-  bg { dup currentpoint pop sub dobackground } if
-  ul { dup currentpoint pop sub dounderline } if
-  bx { dup currentpoint pop sub dobox } if
-  y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n {
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-/S {
-  Show
-} bind def
-
-%%BeginResource: procset a2ps-a2ps-hdr 2.0 2
-%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
-%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
-% Function title: prints page header.
-% <ct> <rt> <lt> are passed as argument
-/title { 
-  % 1. Draw the background
-  x v get y v get moveto
-  gsave
-    0 th 2 div neg rmoveto 
-    th setlinewidth
-    0.95 setgray
-    pw 0 rlineto stroke
-  grestore
-  % 2. Border it
-  gsave
-    0.7 setlinewidth
-    pw 0 rlineto
-    0 th neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-  % stk: ct rt lt
-  x v get y v get th sub 1 add moveto
-%%IncludeResource: font Helvetica
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  % 3. The left title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    fnfs 0.8 mul hm rmoveto
-    show			% left title
-  grestore
-  exch
-  % stk: ct ltw rt
-  % 4. the right title
-  gsave
-    dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack
-    dup
-    pw exch stringwidth pop fnfs 0.8 mul add sub
-    hm
-    rmoveto
-    show			% right title
-  grestore
-  % stk: ct ltw rtw
-  % 5. the center title
-  gsave
-    pw 3 1 roll
-    % stk: ct pw ltw rtw
-    3 copy 
-    % Move to the center of the left room
-    sub add 2 div hm rmoveto
-    % What is the available space in here?
-    add sub fnfs 0.8 mul sub fnfs 0.8 mul sub
-    % stk: ct space_left
-%%IncludeResource: font Helvetica-Bold
-  fHelvetica-Bold fnfs scalefont setfont
-    cfshow
-  grestore
-} bind def
-
-% Function border: prints virtual page border
-/border { %def
-  gsave				% print four sides
-    0 setgray
-    x v get y v get moveto
-    0.7 setlinewidth		% of the square
-    pw 0 rlineto
-    0 ph neg rlineto
-    pw neg 0 rlineto
-    closepath stroke
-  grestore
-} bind def
-
-% Function water: prints a water mark in background
-/water { %def
-  gsave
-    scx scy moveto rotate
-%%IncludeResource: font Times-Bold
-  fTimes-Bold 100 scalefont setfont
-    .97 setgray
-    dup stringwidth pop 2 div neg -50 rmoveto
-    show
-  grestore
-} bind def
-
-% Function rhead: prints the right header
-/rhead {  %def
-  lx ly moveto
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  l-show
-} bind def
-
-% Function footer (cf rf lf -> -)
-/footer {
-  fHelvetica fnfs 0.8 mul scalefont setfont
-  dx dy moveto
-  show
-
-  snx sny moveto
-  l-show
-  
-  fnx fny moveto
-  c-show
-} bind def
-%%EndResource
-%%BeginResource: procset a2ps-black+white-Prolog 2.0 1
-
-% Function T(ab), jumps to the n-th tabulation in the current line
-/T { 
-  cw mul x0 add y0 moveto
-} bind def
-
-% Function n: move to the next line
-/n { %def
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-} bind def
-
-% Function N: show and move to the next line
-/N {
-  Show
-  /y0 y0 bfs sub store
-  x0 y0 moveto
-}  bind def
-
-/S {
-  Show
-} bind def
-
-/p {
-  false UL
-  false BX
-  fCourier bfs scalefont setfont
-  Show
-} bind def
-
-/sy {
-  false UL
-  false BX
-  fSymbol bfs scalefont setfont
-  Show
-} bind def
-
-/k {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/K {
-  false UL
-  false BX
-  fCourier-Bold bfs scalefont setfont
-  Show
-} bind def
-
-/c {
-  false UL
-  false BX
-  fCourier-Oblique bfs scalefont setfont
-  Show
-} bind def
-
-/C {
-  false UL
-  false BX
-  fCourier-BoldOblique bfs scalefont setfont
-  Show 
-} bind def
-
-/l {
-  false UL
-  false BX
-  fHelvetica bfs scalefont setfont
-  Show
-} bind def
-
-/L {
-  false UL
-  false BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show 
-} bind def
-
-/str{
-  false UL
-  false BX
-  fTimes-Roman bfs scalefont setfont
-  Show
-} bind def
-
-/e{
-  false UL
-  true BX
-  fHelvetica-Bold bfs scalefont setfont
-  Show
-} bind def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeResource: font Courier
-%%IncludeResource: font Courier-Oblique
-%%IncludeResource: font Courier-Bold
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Symbol
-%%IncludeResource: font Courier-BoldOblique
-%%BeginResource: encoding ISO-8859-1Encoding
-/ISO-8859-1Encoding [
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright 
-/parenleft /parenright /asterisk /plus /comma /minus /period /slash 
-/zero /one /two /three /four /five /six /seven 
-/eight /nine /colon /semicolon /less /equal /greater /question 
-/at /A /B /C /D /E /F /G 
-/H /I /J /K /L /M /N /O 
-/P /Q /R /S /T /U /V /W 
-/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore 
-/quoteleft /a /b /c /d /e /f /g 
-/h /i /j /k /l /m /n /o 
-/p /q /r /s /t /u /v /w 
-/x /y /z /braceleft /bar /braceright /asciitilde /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
-/space /exclamdown /cent /sterling /currency /yen /brokenbar /section 
-/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron 
-/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet 
-/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown 
-/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla 
-/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis 
-/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply 
-/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls 
-/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla 
-/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis 
-/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide 
-/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis 
-] def
-%%EndResource
-% Initialize page description variables.
-/sh 792 def
-/sw 612 def
-/llx 24 def
-/urx 588 def
-/ury 768 def
-/lly 24 def
-/#copies 1 def
-/th 20.000000 def
-/fnfs 15 def
-/bfs 11.547912 def
-/cw 6.928747 def
-
-% Dictionary for ISO-8859-1 support
-/iso1dict 8 dict begin
-  /fCourier ISO-8859-1Encoding /Courier reencode_font
-  /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font
-  /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font
-  /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font
-  /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font
-  /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font
-  /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font
-  /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font
-currentdict end def
-/bgcolor [ 0 0 0 ] def
-/bg false def
-/ul false def
-/bx false def
-% The font for line numbering
-/f# /Helvetica findfont bfs .6 mul scalefont def
-/fSymbol /Symbol findfont def
-/hm fnfs 0.25 mul def
-/pw
-   cw 81.400000 mul
-def
-/ph
-   689.410325 th add
-def
-/pmw 0 def
-/pmh 0 def
-/v 0 def
-/x [
-  0
-] def
-/y [
-  pmh ph add 0 mul ph add
-] def
-/scx sw 2 div def
-/scy sh 2 div def
-/snx urx def
-/sny lly 2 add def
-/dx llx def
-/dy sny def
-/fnx scx def
-/fny dy def
-/lx snx def
-/ly ury fnfs 0.8 mul sub def
-/sx 0 def
-/tab 8 def
-/x0 0 def
-/y0 0 def
-%%EndSetup
-
-%%Page: (1) 1
-%%BeginPageSetup
-/pagesave save def
-%%EndPageSetup
-iso1dict begin
-gsave
-llx lly 12 add translate
-/v 0 store
-/x0 x v get 4.850123 add sx cw mul add store
-/y0 y v get bfs th add sub store
-x0 y0 moveto
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) p n
-(%%%%%%%%% Reaction file for 11Li\(d,3He\)10He reaction %%%%%%%%%) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N
-(%%Beam energy given in MeV ; Excitation in MeV) N
-(Transfert) N
-() S 8 T (Beam= 60Fe) N
-() S 8 T (Target= 2H) N
-() S 8 T (Light= 1H) N
-() S 8 T (Heavy= 61Fe) N
-() S 8 T (ExcitationEnergy= 2.0) N
-() S 8 T (BeamEnergy= 800) N
-() S 8 T (BeamEnergySpread= 0) N
-() S 8 T (BeamFWHMX= 0.6232) N
-() S 8 T (BeamFWHMY= 0.9069) N
-() S 8 T (BeamSpreadX= 0) N
-() S 8 T (CrossSectionPath= ni69_g7_01.n) N
-() S 8 T (ShootLight= 1) N
-() S 8 T (ShootHeavy= 0) N
-(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N
-() N
-(60Fe.reaction) (Page 1/1) (May 26, 09 12:13) title
-border
-grestore
-(Printed by Nicolas de S\303\251r\303\251ville) rhead
-() (1/1) (Tuesday June 16, 2009) footer
-end % of iso1dict
-pagesave restore
-showpage
-
-%%Trailer
-end
-%%EOF
diff --git a/NPAnalysis/Gaspard/CrossSection.c b/NPAnalysis/Gaspard/CrossSection.c
deleted file mode 100644
index 5640efb446f5464a98882b5a40ea015ef2745171..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/CrossSection.c
+++ /dev/null
@@ -1,121 +0,0 @@
-{
-	gROOT->Reset();
-	gStyle->SetOptStat(1);
-	gStyle->SetPalette(51,0);
-	///////////////////////
-	///////////////////////	
-	
-		double Pi = 3.141592654 	;
-
-///Usefull myAngleInRad * RadToDeg = myAngle In deg :p
-	double DegToRad = Pi/180.   ; // 2Pi/360 = Pi/180
-	double RadToDeg = 180./Pi   ; // 360/2Pi = 180/Pi
-	
-TFile *file0 = TFile::Open("./Result/myResult.root");
-	
-	cEA = new TCanvas("cEA","Kinematic Line" ,100,100,900,900);
-	hEA->Draw("COLZ");
-	cEx = new TCanvas("cEx","Excitation Energy" ,100,100,600,600);
-	hEx->Draw();
-	
-	cEHexa = new TCanvas("cEHexa","Hexaneutron bound Energy" ,100,100,600,600);
-	hEHexa->Draw();
-	
-	cCM = new TCanvas("cCm" , "Cross Section (CM)" , 100 , 100 , 900, 900) ;
-	hThetaCM->Draw();
-	
-	vector<double> relative_error;
-	double NumberOfHitX=0;
-	ifstream efficFile;
-	efficFile.open("./17cm.efficiency");
-	string EffString, ThetaString;
-	double xxx = hThetaLabCM->GetNbinsY();
-	
-	for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++)
-		{
-			// Calculate Relative error	
-			NumberOfHitX=hThetaLabCM->Integral(i, i, 1, xxx );			
-			if(NumberOfHitX!=0)relative_error.push_back( 1. / ( sqrt(NumberOfHitX) ) );
-			else {relative_error.push_back(0) ;}
-		}
-		
-	for(Int_t j = 1 ; j < hThetaLabCM->GetNbinsY() ; j++)
-		{
-			//Efficacity correction
-			efficFile >> ThetaString >> EffString;
-			double Eff = atoi(EffString.c_str());
-			for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++)
-				{
-				if (Eff!=0)
-					{
-					double pipo = (hThetaLabCM->GetCellContent(i,j))/(Eff) ;
-					hThetaLabCM->SetCellContent( i, j, pipo );
-					}
-				else hThetaLabCM->SetCellContent( i, j, 0 );
-				}
-		}
-		
-		TH1D* hCrossSection = new TH1D();
-		hCrossSection = hThetaLabCM->ProjectionX("Cross Section", 0, -1, "")	;
-		
-		for(Int_t i = 1 ; i < hCrossSection->GetNbinsX() ; i++)
-			{
-				// Calculate Error		
-				hCrossSection->SetBinContent(i, 
-				NumberOfHitX=hCrossSection->GetBinContent(i)/(sin(hCrossSection->GetBinCenter(i)*DegToRad) ));
-				double error=NumberOfHitX*relative_error[i];
-				hCrossSection->SetBinError(i,error);
-			}
-	
-	hCrossSection->Draw();
-	
-	string Path="../Data/CrossSection/11Li(d,3He)10He.txt";
-	ifstream CrossSectionFile;
-	CrossSectionFile.open(Path.c_str());
-	if( CrossSectionFile.is_open() ) 
-		cout << " file " << Path << " loading " << endl;
-	else{
-		cout << " Error, no file " << Path << " found" << endl; return;}
-	
-	
-	//Normalisation:
-	//Int_t Maximum_Bin 		= hCrossSection->GetMaximumBin()			;
-	Int_t Maximum_Bin 		= 3 										;
-	Double_t Maximum_theta 	= hCrossSection->GetBinCenter(Maximum_Bin)	;
-	Double_t Bin_Width		= hCrossSection->GetBinWidth(Maximum_Bin)	;
-	Double_t Maximum  		= hCrossSection->GetBinContent(Maximum_Bin)	;
-	
-	Double_t Normalisation_Factor = 0	;
-	Double_t ThetaVal = 0				;
-	Double_t CSVal = 0					;
-	TMarker marker						;
-	string theta,CS						;
-	
-	while( !CrossSectionFile.eof() &&  ThetaVal<60)	
-	{
-	CrossSectionFile >> theta >> CS ;
-	
-	ThetaVal=atof(theta.c_str())	;
-	
-	if(ThetaVal>(Maximum_theta-Bin_Width/1000) && ThetaVal<(Maximum_theta+Bin_Width/1000) ) 
-		{
-		CSVal=atof(CS.c_str())	;
-		Normalisation_Factor =	Maximum/CSVal;
-		} 	
-	}
-	CrossSectionFile.close();
-	CrossSectionFile.open(Path.c_str());
-
-	//Reading Cross Section
-	
-	ThetaVal=0;
-	while( !CrossSectionFile.eof() &&  ThetaVal<60)	
-	{
-	
-	CrossSectionFile >> theta >> CS ;
-	CSVal=atof(CS.c_str())			;
-	ThetaVal=atof(theta.c_str())	; 	
-	marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor	)	;
-	}
-	
-}
diff --git a/NPAnalysis/Gaspard/Makefile b/NPAnalysis/Gaspard/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..215794b2868b46e37601e95c6dedb6b1f84d7c11
--- /dev/null
+++ b/NPAnalysis/Gaspard/Makefile
@@ -0,0 +1,10 @@
+
+Analyse:
+	make -C ./src
+	
+clean:
+	make clean -C ./src
+
+distclean:
+	make clean -C ./src
+	rm Analysis
diff --git a/NPAnalysis/Gaspard/Result/myResult.root b/NPAnalysis/Gaspard/Result/myResult.root
deleted file mode 100644
index eb7aa8c9045793132a6c1c12c390e3b06e31eeb7..0000000000000000000000000000000000000000
Binary files a/NPAnalysis/Gaspard/Result/myResult.root and /dev/null differ
diff --git a/NPAnalysis/Gaspard/Result/myResult_newGPD.root b/NPAnalysis/Gaspard/Result/myResult_newGPD.root
deleted file mode 100644
index ab4d9b0461ed828ac52fcd4fab9f366248c0950e..0000000000000000000000000000000000000000
Binary files a/NPAnalysis/Gaspard/Result/myResult_newGPD.root and /dev/null differ
diff --git a/NPAnalysis/Gaspard/RunToTreat.txt b/NPAnalysis/Gaspard/RunToTreat.txt
new file mode 100644
index 0000000000000000000000000000000000000000..008354fd1b9fa2d1c15477a463be1e2bf76a6b7e
--- /dev/null
+++ b/NPAnalysis/Gaspard/RunToTreat.txt
@@ -0,0 +1,4 @@
+TTreeName 
+	SimulatedTree
+RootFileName 
+	../../Outputs/Simulation/mySimul.root
diff --git a/NPAnalysis/Gaspard/TimeOfFlight.c b/NPAnalysis/Gaspard/TimeOfFlight.c
deleted file mode 100644
index 916932fc04c540832f14c0c4cf14b4889d8972be..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/TimeOfFlight.c
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-
-	gROOT->Reset();
-	gStyle->SetOptStat(1);
-	gStyle->SetPalette(51,0);
-	//gStyle->SetPalette(1);
-	///////////////////////
-	///////////////////////	
-TFile *file0 = TFile::Open("./Result/myResult.root");
-
-   TCanvas* cTOF = new TCanvas("cTOF","Time of Flight" ,10,10,800,800);
-	hTOF1234->Draw("COLZ"); 
-	
-}
diff --git a/NPAnalysis/Gaspard/affich.c b/NPAnalysis/Gaspard/affich.c
deleted file mode 100644
index 2c8537ea62be3b91ec797d490b630dd8f4ecc6eb..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/affich.c
+++ /dev/null
@@ -1,291 +0,0 @@
-{
-
-	gROOT->Reset();
-	gStyle->SetOptStat(1);
-	//gStyle->SetPalette(51,0);
-	gStyle->SetPalette(1);
-	///////////////////////
-	///////////////////////	
-TFile *file0 = TFile::Open("./Result/myResult.root");
-
-/*   TCanvas* cTOF = new TCanvas("cTOF","Time of Flight" ,10,10,800,800);
-	cTOF->Divide(3,2);
-	
-	cTOF->cd(1);
-	hTOF1->Draw("COLZ"); 
-	
-	cTOF->cd(2);
-	hTOF2->Draw("COLZ"); 
-	
-	cTOF->cd(3);
-	hTOF3->Draw("COLZ"); 
-	
-	cTOF->cd(4);
-	hTOF4->Draw("COLZ"); 
-	
-	cTOF->cd(5);
-	hTOF5->Draw("COLZ"); */
-	
-	double Pi = 3.141592654 	;
-	double DegToRad = Pi/180.   ; // 2Pi/360 = Pi/180
-
-/*	vector<double> relative_error;
-	double NumberOfHitX=0;
-	cTheta2D = new TCanvas("cTheta2d","Cross Section" ,100,100,900,900);
-	hThetaLabCM->Draw("COLZ");*/
-	cTheta = new TCanvas("cTheta","Cross Section" ,100,100,900,900);
-	hTheta->Draw();
-/*	ifstream efficFile;
-	
-	efficFile.open("./efficiency/20cm2.efficiency");
-	string EffString, ThetaString;
-	double xxx = hThetaLabCM->GetNbinsY();
-	
-	for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++)
-		{
-			// Calculate Relative error	
-			NumberOfHitX=hThetaLabCM->Integral(i, i, 1, xxx );			
-			if(NumberOfHitX!=0)relative_error.push_back( ( sqrt(NumberOfHitX) ) / (NumberOfHitX) );
-			else {relative_error.push_back(0) ;}
-		}
-		
-	for(Int_t j = 1 ; j < hThetaLabCM->GetNbinsY() ; j++)
-		{
-			//Efficacity correction
-			efficFile >> ThetaString >> EffString;
-			double Eff = atoi(EffString.c_str());
-			for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++)
-				{
-				if (Eff!=0)
-					{
-					double pipo =  (hThetaLabCM->GetCellContent(i,j))/(Eff/100) ;
-					hThetaLabCM->SetCellContent( i, j, pipo );
-					}
-				else hThetaLabCM->SetCellContent( i, j, 0 );
-				}
-		}
-		
-		
-		TH1D* hCrossSection = new TH1D();
-		hCrossSection = hThetaLabCM->ProjectionX("Cross Section", 0, -1, "")	;
-		
-		
-		for(Int_t i = 1 ; i < hCrossSection->GetNbinsX() ; i++)
-			{
-				// Calculate Error		
-				NumberOfHitX=hCrossSection->GetBinContent(i);			
-				double error=NumberOfHitX*relative_error[i];
-				hCrossSection->SetBinError(i,error);
-			}
-	
-	hCrossSection->Draw();
-	
-/*	ofstream efficFile;
-	efficFile.open("20cm.efficiency");
-
-	for(Int_t i = 1 ; i < hTheta->GetNbinsX() ; i++)
-		{
-		
-		Double_t Flux = 100000*sin(hTheta->GetBinCenter(i)*DegToRad)*2*DegToRad/2; 
-		
-			if(Flux!=0)
-			{	
-			Double_t Efficiency = ( ( Flux - hTheta->GetBinContent(i) ) / Flux ) * 100 ;
-			
-			hTheta->SetBinContent(i, 100-Efficiency ) ;
-			
-	        efficFile << hTheta->GetBinCenter(i) << " " << 100-Efficiency << endl;
-			}
-			
-			else hTheta->SetBinContent(i, 0 );
-		}
-	
-	
-		//hTheta->Draw();*/
-
-	//efficiency correction and error bar calculation
-/*	ifstream efficFile;
-	efficFile.open("./efficiency/20cmCM.efficiency");
-	string EffString, ThetaString;
-	double Eff, relative_error, error, toto ;
-
-	for(Int_t i = 1 ; i < hThetaCM->GetNbinsX() ; i++)
-		{
-		
-			efficFile >> ThetaString >> EffString;	
-			Eff = atoi(EffString.c_str());
-			if(hThetaCM->GetBinContent(i)!=0)relative_error = sqrt(hThetaCM->GetBinContent(i))/(hThetaCM->GetBinContent(i));
-						
-			toto=hThetaCM->GetBinContent(i)*(100-Eff)	;
-			hThetaCM->SetBinContent(i, toto) ;
-			
-			error=hThetaCM->GetBinContent(i)*relative_error;
-	        hThetaCM->SetBinError(i,error);
-		}*/
-	
-
-	
-	
-	//hThetaCM->Draw();
-
-/*	string Path="/home/Adrien/Desktop/geant/Simulation/Data/CrossSection/11Li(d,3He)10He.txt";
-	ifstream CrossSectionFile;
-	CrossSectionFile.open(Path.c_str());
-	if( CrossSectionFile.is_open() ) 
-		cout << " file " << Path << " loading " << endl;
-	else{
-		cout << " Error, no file " << Path << " found" << endl; return;}
-	
-	
-	//Normalisation:
-	Int_t Maximum_Bin 		= hCrossSection->GetMaximumBin()			;
-	Double_t Maximum_theta 	= hCrossSection->GetBinCenter(Maximum_Bin)	;
-	Double_t Bin_Width		= hCrossSection->GetBinWidth(Maximum_Bin)	;
-	Double_t Maximum  		= hCrossSection->GetBinContent(Maximum_Bin)	;
-	
-	Double_t Normalisation_Factor=0;
-	
-	
-	
-	Double_t ThetaVal=0	;
-	Double_t CSVal=0	;
-	TMarker marker		;
-	string theta,CS		;
-	
-	while( !CrossSectionFile.eof() &&  ThetaVal<60)	
-	{
-	CrossSectionFile >> theta >> CS ;
-	
-	ThetaVal=atof(theta.c_str())	;
-	
-	if(ThetaVal>(Maximum_theta-Bin_Width/4) && ThetaVal<(Maximum_theta+Bin_Width/4) ) 
-		{
-		CSVal=atof(CS.c_str())	;
-		Normalisation_Factor =	Maximum/CSVal;
-		} 	
-	}
-	CrossSectionFile.close();
-	CrossSectionFile.open(Path.c_str());
-
-	//Reading Cross Section
-	
-	ThetaVal=0;
-	while( !CrossSectionFile.eof() &&  ThetaVal<60)	
-	{
-	
-	CrossSectionFile >> theta >> CS ;
-	CSVal=atof(CS.c_str())			;
-	ThetaVal=atof(theta.c_str())	; 	
-	marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor)		;
-	}
-	
-	
-	
-/*	
-	//Normalisation:
-	Double_t Maximum_Bin 			= hTheta->GetMaximumBin()			 ;
-	Double_t Maximum				= hTheta->GetBinContent(Maximum_Bin) ;
-		
-	Double_t Normalisation_Factor	= Maximum/3.;
-	
-	
-	
-	//Reading Cross Section
-	Double_t ThetaVal=0	;
-	Double_t CSVal=0	;
-	TMarker marker		;
-	string theta,CS		;
-	
-	while( !CrossSectionFile.eof() &&  ThetaVal<60)	
-	{
-	
-	CrossSectionFile >> theta >> CS ;
-	CSVal=atof(CS.c_str())			;
-	ThetaVal=atof(theta.c_str())	; 
-	
-	ThetaVal=0.000479597*pow(ThetaVal,3)-0.0670771*pow(ThetaVal,2)+3.08149*ThetaVal-0.339958 ;
-	
-	marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor)		;
-	}
-//	cTheta->SetLogy(1);
-	
-	
-	
-	
-	/*
-	cKine = new TCanvas("cKine","Kinematics lines" ,10,10,800,800);
-	hKine->Draw("COLZ");*/
-	
-/*	cKineInit = new TCanvas("cKineInit","Initial Kinematics lines" ,100,100,600,600);
-	hKineInit->Draw("COLZ");
-	
-	cEDE = new TCanvas("EDE","EDE add Strip" ,100,100,600,600);
-	hEDEAddStrip->Draw("COLZ");
-/*	cG = new TCanvas("cG","Strip position",500,100,800,600);
-	cG->Divide(3,2);
-
-	cG->cd(1);
-	Agraph2D->Draw("P0")	;
-	cG->cd(2);
-	Bgraph2D->Draw("P0")	;
-	cG->cd(3);
-	Cgraph2D->Draw("P0")	;
-	cG->cd(4);
-	Dgraph2D->Draw("P0")	;
-	cG->cd(5);
-	Egraph2D->Draw("P0")	;
-	
-	cG2 = new TCanvas("cG2","all Strip position",500,100,800,600);
-	TOTgraph2D->Draw("P0")	;
-	*/
-	cH = new TCanvas("cH","Hit density",500,100,1000,800);
-	cH->Divide(3,2);
-	
-	cH->cd(1);
-	hHIT4->Draw("COLZ");
-	cH->cd(2);
-	hHIT2->Draw("COLZ");
-	cH->cd(3);
-	hHIT5->Draw("COLZ");
-	cH->cd(4);
-	hHIT1->Draw("COLZ");
-	cH->cd(5);
-	hHIT3->Draw("COLZ");
-    cH->cd(6);
-    hThetaHeavy->Draw();
-    
-/*	cH->cd(5);
-	hXZ->Draw("COLZ");
-	cH->cd(6);
-	hXY->Draw("COLZ");
-	
-	cEDE = new TCanvas("cEDE","EDE indentification Spectra",500,100,1000,800);
-	cEDE->Divide(3,2);
-	
-	cEDE->cd(1);
-	hEDE1->Draw("COLZ");
-	cEDE->cd(2);
-	hEDE2->Draw("COLZ");
-	cEDE->cd(3);
-	hEDE3->Draw("COLZ");
-	cEDE->cd(4);
-	hEDE4->Draw("COLZ");
-	cEDE->cd(5);
-	hEDE5->Draw("COLZ");
-	cEDE->cd(6);
-	TH2F* hEDET= new TH2F("hEDET","",4000,-1,600, 400, -1, 25)	; 
-	hEDET->Add(hEDE1);
-	hEDET->Add(hEDE2);
-	hEDET->Add(hEDE3);
-	hEDET->Add(hEDE4);
-	hEDET->Draw("CLOZ");*/
-	
-	cEx = new TCanvas("cEx","Excitation Energy" ,100,100,600,600);
-	hEx->Draw();
-	/*cE = new TCanvas("cE","Light Energy" ,500,100,1000,800);
-	cE->Divide(2);
-	cE->cd(1);
-	hE1234->Draw();
-	cE->cd(2);
-	hE5->Draw();*/
-}
diff --git a/NPAnalysis/Gaspard/efficiency.c b/NPAnalysis/Gaspard/efficiency.c
deleted file mode 100644
index 9a04af185f75853d0bce5bae2009cd8cd01cae1a..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/efficiency.c
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-	gROOT->Reset();
-	gStyle->SetOptStat(1);
-	gStyle->SetPalette(51,0);
-	///////////////////////
-	///////////////////////	
-TFile *file0 = TFile::Open("./Result/myResult.root");
-	
-	double Pi = 3.141592654 	;
-	double DegToRad = Pi/180.   ; // 2Pi/360 = Pi/180
-
-	
-	ofstream efficFile;
-	efficFile.open("12cm.efficiency");
-
-	for(Int_t i = 1 ; i < hTheta->GetNbinsX() ; i++)
-		{	
-		Double_t Flux = 1000000./2. * sin(hTheta->GetBinCenter(i)*DegToRad) * (2*DegToRad) ;  
-		
-			if(Flux!=0)
-			{	
-			Double_t Efficiency = 100*( (hTheta->GetBinContent(i)) / Flux );
-			hTheta->SetBinContent(i, Efficiency ) ;
-			}
-			
-			else hTheta->SetBinContent(i, 0 );
-			
-			efficFile << hTheta->GetBinCenter(i) << " " << Efficiency << endl;
-		}
-		
-	cEff = new TCanvas("cEff","Efficiency" ,100,100,600,600);
-	hTheta->Draw();
-	
-	cHit = new TCanvas("cHit","Hit" ,100,100,600,600);
-	hXY->Draw("COLZ");
-	
-	cHit2 = new TCanvas("cHit2","Hit" ,100,100,600,600);
-	cHit2->Divide(3,2);
-	
-	cHit2->cd(1);
-	hXY1->Draw("COLZ");
-	
-	cHit2->cd(2);
-	hXY2->Draw("COLZ");
-	
-	cHit2->cd(3);
-	hXY3->Draw("COLZ");
-	
-	cHit2->cd(4);
-	hXY4->Draw("COLZ");
-	
-	cHit2->cd(5);
-	hXY5->Draw("COLZ");
-	
-	cHit2->cd(6);
-	hXY6->Draw("COLZ");
-	
-}
diff --git a/NPAnalysis/Gaspard/hit.c b/NPAnalysis/Gaspard/hit.c
deleted file mode 100644
index 50db19da5e7c54b1cba977ffe34232fb328dcdd0..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/hit.c
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-	gROOT->Reset();
-	gStyle->SetOptStat(1);
-	gStyle->SetPalette(51,0);
-	///////////////////////
-	///////////////////////	
-TFile *file0 = TFile::Open("./Result/myResult.root");
-		
-	cEff = new TCanvas("cEff","Theta Distribution" ,100,100,600,600);
-	hTheta->Draw();
-	
-	
-	cCM = new TCanvas("cCm" , "ThetaCM" , 100 , 100 , 600, 600) ;
-	hThetaCM->Draw();
-	
-	cHit = new TCanvas("cHit","Hit" ,100,100,600,600);
-	hXY->Draw("COLZ");
-	
-	
-	cHit2 = new TCanvas("cHit2","Hit" ,100,100,600,600);
-	cHit2->Divide(3,2);
-	
-	cHit2->cd(1);
-	hXY1->Draw("COLZ");
-	
-	cHit2->cd(2);
-	hXY2->Draw("COLZ");
-	
-	cHit2->cd(3);
-	hXY3->Draw("COLZ");
-	
-	cHit2->cd(4);
-	hXY4->Draw("COLZ");
-	
-	cHit2->cd(5);
-	hXY5->Draw("COLZ");
-	
-	cHit2->cd(6);
-	hXY6->Draw("COLZ");
-	
-	cEx = new TCanvas("cEx","Excitation Energy" ,100,100,300,300);
-	hEx->Draw();
-	
-}
diff --git a/NPAnalysis/Gaspard/include/ConfigurationReader.hh b/NPAnalysis/Gaspard/include/ConfigurationReader.hh
deleted file mode 100644
index d4b2e1fe1eaf30c39807391b226329724bab7b84..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/include/ConfigurationReader.hh
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef ConfigurationReader_h
-#define ConfigurationReader_h 1
-
-// STL 
-#include <string>
-#include <iostream>
-#include <fstream>
-
-// NPL 
-#include "NPReaction.h"
-using namespace NPL ;
-
-#include "must.hh"
-
-void ReadConfiguration ( string Path , array* myArray )	;
-Reaction* ReadReaction ( string Path )					;
-
-
-#endif
-
diff --git a/NPAnalysis/Gaspard/include/DetectorManager.hh b/NPAnalysis/Gaspard/include/DetectorManager.hh
new file mode 100644
index 0000000000000000000000000000000000000000..eb49f01ef92509cd0531f4f12c7eace833047e61
--- /dev/null
+++ b/NPAnalysis/Gaspard/include/DetectorManager.hh
@@ -0,0 +1,39 @@
+#ifndef DetectorManager_h
+#define DetectorManager_h
+
+//	NPL
+#include "VDetector.h"
+
+//	STL
+#include <string>
+#include <map>
+
+using namespace std ;
+using namespace NPA ;
+
+// This class manage a map of virtual detector
+
+class DetectorManager
+	{
+		public:
+			DetectorManager()		;
+			~DetectorManager()		;
+			
+		public:
+			//	Read stream at Path and pick-up Token declaration of Detector
+			void	ReadConfigurationFile(string Path)	;
+			void	BuildPhysicalEvent()				;
+			void	BuildSimplePhysicalEvent()			;
+			void	InitializeRootInput()				;
+			void	InitializeRootOutput()				;
+			void	AddDetector(string,VDetector*)		;
+			void	ClearEventPhysics()					;
+			void	ClearEventData()					;
+
+		public:	//	The map containning all detectors
+			//	Using a Map one can access to any detector using its name
+			map<string,VDetector*>	m_Detector	;
+				
+	};
+
+#endif 
diff --git a/NPAnalysis/Gaspard/include/ObjectManager.hh b/NPAnalysis/Gaspard/include/ObjectManager.hh
index 9f90b2a5dc4c538d683f5bf378a2ece2250c591a..87249677afccc0f2904ba9a871236176453ee7af 100644
--- a/NPAnalysis/Gaspard/include/ObjectManager.hh
+++ b/NPAnalysis/Gaspard/include/ObjectManager.hh
@@ -1,26 +1,65 @@
 // You can use this file to declare your spectra, file, energy loss , ... and whatever you want.
 // This way you can remove all unnecessary declaration in the main programm.
-// In order to help debugging and organising we use Name Space.
+// In order to help debugging and organizing we use Name Space.
+
+/////////////////////////////////////////////////////////////////////////////////////////////////
+// -------------------------------------- VARIOUS INCLUDE ---------------------------------------
+
+// NPA
+#include "DetectorManager.hh"
+#include "GaspardTracker.h"
+
+// STL C++
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <cmath>
+#include <cstdlib>
+
+// ROOT
+#include <TROOT.h>
+#include <TChain.h>
+#include <TFile.h>
+#include <TLeaf.h>
+#include <TVector3.h>
+#include <TRandom.h>
+
+// NPL
+#include "TMust2Data.h"
+#include "TMust2Physics.h"
+#include "NPReaction.h"
+#include "RootInput.h"
+#include "RootOutput.h"
+#include "TInteractionCoordinates.h"
+
+// Use CLHEP System of unit and Physical Constant
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+#include "CLHEP/Units/PhysicalConstants.h"
 
 
-// -----------------------------------DOUBLE, INT, BOOL--------------------------------------------
-
+// ----------------------------------------------------------------------------------------------
+double ThetaCalculation (TVector3 A , TVector3 B) ;
+/////////////////////////////////////////////////////////////////////////////////////////////////
+// ----------------------------------- DOUBLE, INT, BOOL AND MORE -------------------------------
 namespace VARIABLE
 	{
-	double Xs,Ys,Zs,N			;
-	double Theta = 0 			;
-	double Ex = 0 				;
-	double ThetaCM = 0 			;
-	int X,Y						;
-	bool check_light = false	;
+		//	Declare your Variable here:
+		
+			double X1,Y1,Z1				;
+			int N1,N2 = 0				;
+			bool check= false			;
 	
+		//	A Usefull Simple Random Generator
+			TRandom Rand;
 	}
-	
+	 
 using namespace VARIABLE ;
 // ----------------------------------------------------------------------------------------------
 
 
 
+/////////////////////////////////////////////////////////////////////////////////////////////////
 // -----------------------------------GRAPH------------------------------------------------------
 #include <TObject.h>
 #include <TH1.h>
@@ -32,53 +71,48 @@ using namespace VARIABLE ;
 namespace GRAPH
 	{
 		//	Declare your Spectra here:
-        const int NbElements = 18;
 	
-			TH2F *hXY1 = new TH2F("hXY1","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY2 = new TH2F("hXY2","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY3 = new TH2F("hXY3","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY4 = new TH2F("hXY4","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY5 = new TH2F("hXY5","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY6 = new TH2F("hXY6","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-                        TH2F *hHitPattern[NbElements];
-
-                        TH1F *hEnerX  = new TH1F("hEnerX",  "Energy X", 1000, -1, 10);
-                        TH1F *hEnerY  = new TH1F("hEnerY",  "Energy Y", 1000, -1, 10);
-                        TH2F *hEnerXY = new TH2F("hEnerXY", "Energy X vs Y", 100, -1, 10, 100, -1, 10);
-                        TH2F *hEnerTheta = new TH2F("hEnerTheta", "Energy v.s. Theta", 90, 0, 180, 400, 0, 100);
-
-			TH2F *hXY    = new TH2F("hXY","", 300 , -130 , 130 , 300 , -130 , 130 )			;
-			TH2F *hEA  = new TH2F("hEA" ,"", 120 , 0 , 60 , 260 , 0 , 130 )					;
-			TH1F *hEx = new TH1F("hEx", "E* (MeV)", 10000, -10, 40);
-			TH1F *hEHexa = new TH1F("hEHexa","EHexa (MeV)", 1000 , -5 , 5 )					;
-			TH1F *hThetaCM = new TH1F("hThetaCM","ThetaCM (deg)", 30 , 0 , 60 )				;
-			TH1F *hTheta = new TH1F("hTheta","Theta Lab (deg)",180,0,180)					;
-			TH2F *hThetaLabCM    = new TH2F("hThetaLabCM","", 90 , 0 , 180 , 90 , 0 , 180 )	;	
+			TH1F *myHist1D = new TH1F("Hist1D","Histogramm 1D ; x ; count", 1000 , -5 , 5 )					;
+	
+			TH2F *myHist2D = new TH2F("Hist2D","Histogramm 2D ; x ; y ", 128 , 1 , 128 , 128 , 1 , 128 )	;
+
+	}
+
+using namespace GRAPH ;
+// --------------------------------------------------------------------------------------------
 
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////
+// -----------------------------------CUT------------------------------------------------------
+#include <TCutG.h>
+namespace CUT
+	{
 		//	Declare your Cut here:
 
 	}
 
-using namespace GRAPH ;
-// ----------------------------------------------------------------------------------------------
+using namespace CUT ;
+// --------------------------------------------------------------------------------------------
+
 
 
-// -----------------------------------ENERGY LOSS------------------------------------------------
-/*
-#include "NPEnergyLossCorrection.h"
+////////////////////////////////////////////////////////////////////////////////////////////////
+// -----------------------------------ENERGY LOSS----------------------------------------------
+#include "NPEnergyLoss.h"
 using namespace NPL ;
 namespace ENERGYLOSS
 	{
 	
-//	EnergyLoss ProtonTarget = EnergyLoss 	(	"/home/Adrien/Desktop/dEdX.txt" ,
-//												100 							,
-//												1								);
-	
+		//	Declare your Energy loss here	:
+	/*		EnergyLoss ProtonTarget = EnergyLoss 	(	"CD2.txt" 	,
+														100 		,
+														1			);
+	*/
 	}
 	
 using namespace ENERGYLOSS ;
-*/
 // ----------------------------------------------------------------------------------------------
-
+/////////////////////////////////////////////////////////////////////////////////////////////////
 
 
diff --git a/NPAnalysis/Gaspard/include/must.hh b/NPAnalysis/Gaspard/include/must.hh
deleted file mode 100644
index d3fa3a733fc029e7ed403f3a944e9dd68fc390c4..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/include/must.hh
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef must_h
-#define must_h 1
-
-#include <vector>
-#include <TFile.h>
-#include <TH2.h>
-#include <TH2F.h>
-#include "CLHEP/Vector/ThreeVector.h"
-using namespace std 	;
-using namespace CLHEP	;
-
-class must
-{
-public:
-	must( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w)	;
-	must(	Hep3Vector C_X1_Y1 			,
-			Hep3Vector C_X128_Y1 		, 
-			Hep3Vector C_X1_Y128 		, 
-			Hep3Vector C_X128_Y128 		, 
-			Hep3Vector TargetPosition 	);
-	
-	double 	GetStripPositionX( int X , int Y )			;
-	double 	GetStripPositionY( int X , int Y )			;
-	double 	GetStripPositionZ( int X , int Y )			;
-	void 	Print()										;
-
-private:
-
-	vector< vector < double > > StripPositionX			;
-	vector< vector < double > > StripPositionY			;
-	vector< vector < double > > StripPositionZ			;
-
-};
-
-
-class array
-{
-public:
-	array();
-	void addTelescope( double theta , double phi , double distance , double beta_u , double beta_v , double beta_w)	;
-	void addTelescope(	Hep3Vector C_X1_Y1 								,
-			 			Hep3Vector C_X128_Y1 							, 
-			 			Hep3Vector C_X1_Y128 							, 
-			 			Hep3Vector C_X128_Y128 							);
-			 			
-	double GetStripPositionX( int N , int X , int Y )					;
-	double GetStripPositionY( int N , int X , int Y )					;
-	double GetStripPositionZ( int N , int X , int Y )					;
-	double GetNumberOfTelescope() {return NumberOfTelescope;}			;
-	void Print()														;
-	
-private:
-	vector< must > myArray	;
-	int NumberOfTelescope   ;
-
-public:	// Histogram
-
-/*//	Hit Density
-	vector<TH2F*>	HitDensity	;
-	
-	//	Time of Flight Identification
-	vector<TH2F*>	TOF			;
-	
-	//	EDE Identification
-	vector<TH2F*>	EDE			;
-	
-	//	Kinematic Line
-	KinematicLine				;
-	
-	//	Excitation Energy
-	ExcitationEnergy			;*/
-
-};
-
-#endif
diff --git a/NPAnalysis/Gaspard/kinematic1MeV.contour b/NPAnalysis/Gaspard/kinematic1MeV.contour
deleted file mode 100644
index 96c8267de29aec5472c1ec72fdbcf73171d62824..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/kinematic1MeV.contour
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-//========= Macro generated from object: Graph/Graph
-//========= by ROOT version5.22/00
-   
-   TGraph *graph = new TGraph(9);
-   graph->SetName("Graph");
-   graph->SetTitle("Graph");
-   graph->SetFillColor(1);
-   graph->SetPoint(0,42.5558,25.636);
-   graph->SetPoint(1,36.4453,18.3991);
-   graph->SetPoint(2,21.2109,12.2588);
-   graph->SetPoint(3,6.22768,10.943);
-   graph->SetPoint(4,6.89732,5.67982);
-   graph->SetPoint(5,24.308,7.87281);
-   graph->SetPoint(6,38.8728,14.6711);
-   graph->SetPoint(7,44.6484,23.6623);
-   graph->SetPoint(8,42.6395,25.636);
-   
-   TH1 *Graph1 = new TH1F("Graph1","Graph",100,2.3856,48.4905);
-   Graph1->SetMinimum(3.68421);
-   Graph1->SetMaximum(27.6316);
-   Graph1->SetDirectory(0);
-   Graph1->SetStats(0);
-   graph->SetHistogram(Graph1);
-   
-   graph->Draw("");
-}
diff --git a/NPAnalysis/Gaspard/makeAnalyse.sh b/NPAnalysis/Gaspard/makeAnalyse.sh
deleted file mode 100755
index 6d62d9b5efef605ec9b14fafea319941f181dd9f..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/makeAnalyse.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-# This file is here to help you making Analysis.
-# Feel free to had more such as automatic lauch ou ROOT macro
-
-
-
-cd src ; make ; cd ..
-./Analysis ../Inputs/Reaction/34Si.reaction ../Inputs/DetectorConfiguration/e530.detector
-root -l hit.c
diff --git a/NPAnalysis/Gaspard/root.ps b/NPAnalysis/Gaspard/root.ps
deleted file mode 100644
index 79ba81bb0b06619d95cb69f587fb3b0ff93f94a4..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/root.ps
+++ /dev/null
@@ -1,98 +0,0 @@
-%!PS-Adobe-2.0
-%%Title: root.ps: figure d'article
-%%Creator: ROOT Version 5.22/00
-%%CreationDate: Thu Sep 10 19:14:45 2009
-%%Orientation: Landscape
-%%EndComments
-%%BeginProlog
-/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def
-/sw {stringwidth} def /r {rotate} def /rl {roll}  def /R {repeat} def
-/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def
-/c {setrgbcolor} def /black {0 setgray} def /sd {setdash} def
-/cl {closepath} def /sf {scalefont setfont} def /lw {setlinewidth} def
-/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def
-/NC{systemdict begin initclip end}def/C{NC box clip newpath}def
-/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def 
-/mp {newpath /y exch def /x exch def} def
-/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def
-/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def
-/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def
-/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def
-/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def
-/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def
-/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def
-/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d  0 w3 neg d w3 0 d 0 w3 d w3 0 d  0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d
- 0 w3 neg d w3 neg 0 d cl s } def
-/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
- 4 {side} repeat cl fill gr} def
-/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t
- 4 {side} repeat cl s gr} def
-/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2
- sub m w w d s} def
-/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def
-/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def
-/reEncode {exch findfont dup length dict begin {1 index /FID eq  {pop pop} {def} ifelse } forall /Encoding exch def currentdict end dup /FontName get exch definefont pop } def [/Times-Bold /Times-Italic /Times-BoldItalic /Helvetica
- /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique /Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique /Times-Roman /AvantGarde-Book /AvantGarde-BookOblique /AvantGarde-Demi /AvantGarde-DemiOblique /Bookman-Demi
- /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic /Helvetica-Narrow /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique /Helvetica-Narrow-Oblique /NewCenturySchlbk-Roman /NewCenturySchlbk-Bold
- /NewCenturySchlbk-BoldItalic /NewCenturySchlbk-Italic /Palatino-Bold /Palatino-BoldItalic /Palatino-Italic /Palatino-Roman ] {ISOLatin1Encoding reEncode } forall
-/oshow {gsave [] 0 sd true charpath stroke gr} def
-/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf
- text sw pop xs add /xs exch def} def
-/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw
-pop neg xs add /xs exch def} def
-/Zone {/iy exch def /ix exch def  ix 1 sub  3144 mul  1 iy sub  2224
- mul t} def
-%%EndProlog
-%%BeginSetup
-%%EndSetup
-newpath  gsave  90 r 0 -594 t  28 20 t .25 .25 scale  gsave 
-%%Page: 1 1
- gsave  gsave 
- 1 1 Zone
- gsave  0 0 t black[  ] 0 sd 3 lw 0.999 0.999 0.999 c 2948 1992 0 0 bf black 0.999 0.999 0.999 c 2329 1574 324 219 bf black 2329 1574 324 219 bl 0.999 0.999 0.999 c 2329 1574 324 219 bf black 2329 1574 324 219 bl 1 1 1 c black 324 255 m 6 X 18 Y 5 X
- -18 Y 6 X -18 Y 17 X -18 Y 5 X 36 Y 6 X -36 Y 6 X 36 Y 11 X -18 Y 11 X -18 Y 11 X 18 Y 17 X 36 Y 5 X -36 Y 23 X -18 Y 5 X 18 Y 6 X 36 Y 5 X -54 Y 6 X 36 Y 6 X -18 Y 5 X 18 Y 6 X -18 Y 17 X 18 Y 11 X -18 Y 11 X 53 Y 6 X -53 Y 5 X 18 Y 6 X -18 Y 11 X
- 18 Y 11 X 18 Y 6 X 35 Y 5 X -18 Y 6 X -53 Y 5 X 18 Y 12 X 35 Y 5 X -53 Y 6 X -18 Y 5 X 107 Y 6 X -18 Y 5 X -53 Y 12 X 89 Y 5 X -89 Y 17 X -36 Y 6 X 89 Y 5 X -89 Y 6 X 71 Y 5 X -17 Y 6 X 17 Y 5 X 36 Y 6 X -18 Y 6 X 18 Y 5 X -53 Y 6 X 53 Y 5 X -36 Y
- 6 X -53 Y 6 X 107 Y 5 X -89 Y 6 X -18 Y 5 X 36 Y 6 X -36 Y 5 X 71 Y 6 X -35 Y 6 X 71 Y 5 X 53 Y 6 X -53 Y 5 X -71 Y 6 X 53 Y 6 X -36 Y 5 X -17 Y 6 X -18 Y 5 X 125 Y 6 X -90 Y 6 X -17 Y 5 X 71 Y 6 X -89 Y 5 X 18 Y 6 X 17 Y 5 X 36 Y 6 X 36 Y 6 X -36
- Y 11 X 36 Y 5 X -125 Y 6 X 53 Y 6 X -35 Y 5 X 160 Y 6 X -160 Y 5 X 125 Y 6 X -72 Y 5 X -53 Y 6 X 35 Y 6 X 54 Y 5 X -54 Y 6 X 107 Y 5 X -124 Y 6 X 35 Y 6 X 54 Y 5 X -36 Y 6 X 18 Y 5 X 36 Y 6 X -90 Y 5 X -35 Y 6 X 53 Y 6 X -35 Y 5 X 35 Y 6 X 72 Y 5 X
- -90 Y 6 X 54 Y 6 X -18 Y 5 X 18 Y 6 X -54 Y 5 X 36 Y 6 X 54 Y 6 X -107 Y 5 X 124 Y 6 X 18 Y 5 X -107 Y 6 X 54 Y 5 X -18 Y 6 X 36 Y 6 X 17 Y 11 X 72 Y 5 X -72 Y 6 X -107 Y 6 X 72 Y 5 X 53 Y 6 X 54 Y 5 X -89 Y 6 X -54 Y 5 X 71 Y 6 X -35 Y 6 X -54 Y 5
- X 18 Y 6 X 36 Y 5 X 143 Y 6 X 35 Y 6 X -89 Y 5 X -89 Y 6 X 53 Y 5 X 36 Y 6 X -54 Y 5 X 18 Y 6 X 143 Y 6 X -125 Y 5 X 18 Y 6 X 54 Y 5 X 53 Y 6 X 18 Y 6 X -89 Y 11 X 107 Y 5 X -36 Y 6 X -36 Y 5 X 72 Y 12 X 18 Y 5 X 71 Y 6 X -107 Y 5 X 214 Y 6 X -54 Y
- 6 X -17 Y 5 X -36 Y 6 X -107 Y 5 X 232 Y 6 X -54 Y 6 X 107 Y 5 X -89 Y 6 X 214 Y 5 X -160 Y 6 X -72 Y 5 X 18 Y 6 X 232 Y 6 X 161 Y 5 X -179 Y 6 X 250 Y 5 X -71 Y 6 X -179 Y 6 X 143 Y 5 X 285 Y 6 X 36 Y 5 X -125 Y 6 X 357 Y 5 X -286 Y 6 X 215 Y 6 X
- -286 Y 11 X 179 Y 5 X -143 Y 6 X -72 Y 6 X 250 Y 5 X -35 Y 6 X -72 Y 5 X 286 Y 6 X -90 Y 5 X -142 Y 12 X -304 Y 5 X 125 Y 6 X 107 Y 11 X -285 Y 6 X 196 Y 5 X -125 Y 6 X -53 Y 5 X -72 Y 6 X -160 Y 5 X 285 Y 6 X -410 Y 6 X 53 Y 5 X -124 Y 6 X 214 Y 5
- X -18 Y 6 X -36 Y 6 X -125 Y 5 X -160 Y 6 X 71 Y 5 X -18 Y 6 X 143 Y 6 X -143 Y 5 X -18 Y 6 X 36 Y 5 X -125 Y 6 X -18 Y 5 X 107 Y 6 X -71 Y 6 X 18 Y 5 X -18 Y 11 X 54 Y 6 X -107 Y 11 X -72 Y 6 X -36 Y 5 X 108 Y 6 X -36 Y 5 X 18 Y 6 X -18 Y 6 X 53 Y
- 5 X -125 Y 11 X 54 Y 6 X 18 Y 6 X 18 Y 5 X -125 Y 6 X -18 Y 11 X -36 Y 5 X -18 Y 6 X 90 Y 11 X -18 Y 6 X 35 Y 5 X -17 Y 6 X -72 Y 6 X 54 Y 5 X 71 Y 6 X -53 Y 5 X -18 Y 6 X -18 Y 11 X -54 Y 6 X 54 Y 5 X -18 Y 6 X -36 Y 5 X -17 Y 12 X -18 Y 5 X 71 Y
- 6 X -36 Y 5 X 18 Y 6 X 89 Y 6 X -107 Y 16 X 18 Y 6 X -53 Y 5 X 35 Y 12 X -53 Y 5 X 71 Y 6 X 18 Y 5 X -18 Y 6 X -18 Y 6 X 72 Y 5 X 18 Y 6 X -143 Y 5 X 89 Y 6 X -18 Y 5 X -53 Y 6 X 35 Y 6 X -17 Y 5 X -18 Y 6 X 35 Y 5 X -17 Y 6 X 53 Y 6 X -36 Y 5 X
- -17 Y 6 X -54 Y 5 X 71 Y 6 X -17 Y 17 X -18 Y 5 X 35 Y 6 X 90 Y 5 X -125 Y 6 X 35 Y 6 X -35 Y 5 X 35 Y 6 X -17 Y 5 X -18 Y 6 X 53 Y 6 X -18 Y 5 X -35 Y 11 X 35 Y 6 X -53 Y 11 X 18 Y 6 X 35 Y 5 X -17 Y 6 X 17 Y 5 X 36 Y 17 X -53 Y 6 X -36 Y 5 X 53 Y
- 6 X -17 Y 22 X 35 Y 6 X 54 Y 5 X -89 Y 12 X -18 Y 5 X 18 Y 6 X 53 Y 5 X -36 Y 6 X -17 Y 5 X 53 Y 17 X -89 Y 11 X 18 Y 12 X 89 Y 5 X -89 Y 6 X 18 Y 5 X -18 Y 6 X -18 Y 5 X 53 Y 6 X -53 Y 6 X 36 Y 5 X -36 Y 6 X 18 Y 5 X 18 Y 6 X -18 Y 6 X 53 Y 5 X
- -18 Y 6 X -35 Y 11 X 35 Y 6 X -53 Y 5 X 53 Y 6 X -35 Y 11 X -18 Y 11 X -18 Y 6 X 54 Y 11 X -36 Y 5 X 36 Y 12 X -36 Y 11 X 36 Y 5 X -54 Y 6 X 71 Y 5 X -35 Y 6 X 18 Y 6 X 17 Y 5 X -53 Y 6 X 71 Y 5 X -71 Y 12 X 18 Y 5 X 18 Y 6 X -36 Y 5 X 89 Y 6 X -89
- Y 5 X 18 Y 6 X 18 Y 11 X s 324 219 m 2329 X s 369 266 m -47 Y s 481 243 m -24 Y s 592 243 m -24 Y s 704 243 m -24 Y s 816 243 m -24 Y s 927 266 m -47 Y s 1039 243 m -24 Y s 1151 243 m -24 Y s 1263 243 m -24 Y s 1374 243 m -24 Y s 1486 266 m -47 Y s
- 1598 243 m -24 Y s 1709 243 m -24 Y s 1821 243 m -24 Y s 1933 243 m -24 Y s 2044 266 m -47 Y s 2156 243 m -24 Y s 2268 243 m -24 Y s 2380 243 m -24 Y s 2491 243 m -24 Y s 2603 266 m -47 Y s 369 266 m -47 Y s 2603 266 m -47 Y s
- gsave  2948 1992 0 0 C 351 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (1) show NC gr 
- gsave  2948 1992 0 0 C 873 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (1.5) show NC gr 
- gsave  2948 1992 0 0 C 1461 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (2) show NC gr 
- gsave  2948 1992 0 0 C 1992 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (2.5) show NC gr 
- gsave  2948 1992 0 0 C 2580 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (3) show NC gr  324 1793 m 2329 X s 369 1745 m 48 Y s 481 1769 m 24 Y s 592 1769 m 24 Y s 704 1769 m 24 Y s 816 1769 m 24 Y s 927 1745 m 48 Y s 1039 1769 m 24 Y s 1151
- 1769 m 24 Y s 1263 1769 m 24 Y s 1374 1769 m 24 Y s 1486 1745 m 48 Y s 1598 1769 m 24 Y s 1709 1769 m 24 Y s 1821 1769 m 24 Y s 1933 1769 m 24 Y s 2044 1745 m 48 Y s 2156 1769 m 24 Y s 2268 1769 m 24 Y s 2380 1769 m 24 Y s 2491 1769 m 24 Y s 2603
- 1745 m 48 Y s 369 1745 m 48 Y s 2603 1745 m 48 Y s 324 219 m 1574 Y s 394 219 m -70 X s 359 255 m -35 X s 359 290 m -35 X s 359 326 m -35 X s 359 362 m -35 X s 394 397 m -70 X s 359 433 m -35 X s 359 469 m -35 X s 359 505 m -35 X s 359 540 m -35 X
- s 394 576 m -70 X s 359 612 m -35 X s 359 647 m -35 X s 359 683 m -35 X s 359 719 m -35 X s 394 754 m -70 X s 359 790 m -35 X s 359 826 m -35 X s 359 861 m -35 X s 359 897 m -35 X s 394 933 m -70 X s 359 968 m -35 X s 359 1004 m -35 X s 359 1040 m
- -35 X s 359 1075 m -35 X s 394 1111 m -70 X s 359 1147 m -35 X s 359 1182 m -35 X s 359 1218 m -35 X s 359 1254 m -35 X s 394 1289 m -70 X s 359 1325 m -35 X s 359 1361 m -35 X s 359 1396 m -35 X s 359 1432 m -35 X s 394 1468 m -70 X s 359 1504 m
- -35 X s 359 1539 m -35 X s 359 1575 m -35 X s 359 1611 m -35 X s 394 1646 m -70 X s 394 1646 m -70 X s 359 1682 m -35 X s 359 1718 m -35 X s 359 1753 m -35 X s 359 1789 m -35 X s
- gsave  2948 1992 0 0 C 268 189 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (0) show NC gr 
- gsave  2948 1992 0 0 C 224 369 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (10) show NC gr 
- gsave  2948 1992 0 0 C 224 548 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (20) show NC gr 
- gsave  2948 1992 0 0 C 224 724 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (30) show NC gr 
- gsave  2948 1992 0 0 C 224 904 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (40) show NC gr 
- gsave  2948 1992 0 0 C 224 1084 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (50) show NC gr 
- gsave  2948 1992 0 0 C 224 1259 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (60) show NC gr 
- gsave  2948 1992 0 0 C 224 1439 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (70) show NC gr 
- gsave  2948 1992 0 0 C 224 1619 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (80) show NC gr  2653 219 m 1574 Y s 2583 219 m 70 X s 2618 255 m 35 X s 2618 290 m 35 X s 2618 326 m 35 X s 2618 362 m 35 X s 2583 397 m 70 X s 2618 433 m 35 X s 2618
- 469 m 35 X s 2618 505 m 35 X s 2618 540 m 35 X s 2583 576 m 70 X s 2618 612 m 35 X s 2618 647 m 35 X s 2618 683 m 35 X s 2618 719 m 35 X s 2583 754 m 70 X s 2618 790 m 35 X s 2618 826 m 35 X s 2618 861 m 35 X s 2618 897 m 35 X s 2583 933 m 70 X s
- 2618 968 m 35 X s 2618 1004 m 35 X s 2618 1040 m 35 X s 2618 1075 m 35 X s 2583 1111 m 70 X s 2618 1147 m 35 X s 2618 1182 m 35 X s 2618 1218 m 35 X s 2618 1254 m 35 X s 2583 1289 m 70 X s 2618 1325 m 35 X s 2618 1361 m 35 X s 2618 1396 m 35 X s
- 2618 1432 m 35 X s 2583 1468 m 70 X s 2618 1504 m 35 X s 2618 1539 m 35 X s 2618 1575 m 35 X s 2618 1611 m 35 X s 2583 1646 m 70 X s 2583 1646 m 70 X s 2618 1682 m 35 X s 2618 1718 m 35 X s 2618 1753 m 35 X s 2618 1789 m 35 X s 0.999 0.999 0.999 c
- 432 111 29 1871 bf black 43 1871 m -9 Y 427 X 107 Y -9 X -98 Y f 29 1871 m 111 Y 432 X -111 Y -432 X cl s 1 1 1 c black
- gsave  2948 1992 0 0 C 61 1904 t 0 r /Helvetica-Bold findfont 87.739 sf 0 0 m (E* \(MeV\)) show NC gr  gr 
-showpage
- gr 
-%%Trailer
-%%Pages:  1
- gr  gr  gr 
-%%EOF
diff --git a/NPAnalysis/Gaspard/src/Analysis.cc b/NPAnalysis/Gaspard/src/Analysis.cc
index ad75bb183b1ccf0651bc89fa15d53c912c222f65..8e4125f0c3da2b5d3ee6dfb94cbf727d318edf8f 100644
--- a/NPAnalysis/Gaspard/src/Analysis.cc
+++ b/NPAnalysis/Gaspard/src/Analysis.cc
@@ -1,337 +1,116 @@
-#include "must.hh"
-
-#include <fstream>
-#include "sstream"
-#include <string>
-#include <cmath>
-
-//include ROOT
-#include "TROOT.h"
-#include "TChain.h"
-#include "TFile.h"
-#include "TString.h"
-#include "TH2.h"
-#include "TStyle.h"
-#include "TRandom.h"
-
-//NPL
-#include "TGaspardTrackerData.h"
-#include "TInteractionCoordinates.h"
-#include "TInitialConditions.h"
-#include "NPReaction.h"
-//#include "NPEnergyLossCorrection.h"
-using namespace NPL ;
-
-// Use CLHEP System of unit and Physical Constant
-#include "CLHEP/Units/GlobalSystemOfUnits.h"
-#include "CLHEP/Units/PhysicalConstants.h"
-#include "CLHEP/Vector/ThreeVector.h"
-
-//NPA
-#include "ConfigurationReader.hh"
 #include "ObjectManager.hh"
 
-// prototype	
-double ThetaCalculation( double StripX , double StripY ,double StripZ, double PPAC_X, double PPAC_Y, double PPAC_Theta);
-double HexaEnergy(double HeavyEnergy ,double ThetaHeavy , double Excitation);
-/////////////
+using namespace std;
 
-int main(int argc,char** argv)
-{
-   // A Usefull Random Generator
-   TRandom rand;
 
-   // Get arguments from command line	
+int main(int argc,char** argv)
+{	
+   // test if number of arguments is correct
    if (argc != 4) {
       cout << 
-		"you need to specify a Reaction file, a Detector file and a ROOT file such as : Analysis myReaction.reaction myDetector.detector myRootFile.root" 
-		<< endl;
+         "you need to specify both a Reaction file and a Detector file such as : Analysis myReaction.reaction myDetector.detector runToRead.run" 
+           << endl;
       return 0;
-   }	
-   string reactionfileName = argv[1];
-   string detectorfileName = argv[2];
-   string rootfileName     = argv[3];
-
-   //////////////////////////////////////////////////////////////////////
-   ///////////////////////// Load Reaction //////////////////////////////
-   //////////////////////////////////////////////////////////////////////
-   Reaction* myReaction = ReadReaction(reactionfileName);
-
-   //////////////////////////////////////////////////////////////////////
-   ///////////////////////// Load  Detector /////////////////////////////
-   //////////////////////////////////////////////////////////////////////
-   array* myArray = new array();
-   ReadConfiguration(detectorfileName, myArray);
-	
-   cout << "////////////////////////////////////////////" << endl;
-   cout << "Total Number Of telescope : " << myArray->GetNumberOfTelescope() << endl;
-   cout << "////////////////////////////////////////////" << endl;
-
-   //////////////////////////////////////////////////////////////////////
-   /////////////////////// Load ROOT file ///////////////////////////////
-   //////////////////////////////////////////////////////////////////////
-   // Open output ROOT file from NPTool simulation run
-   string path = getenv("NPTOOL");
-   path += "/Outputs/Simulation/" + rootfileName;
-   TFile *inFile = new TFile(path.c_str());
-   TTree *tree   = (TTree*) inFile->Get("SimulatedTree");
-
-//   TChain* t1 = new TChain("SimulatedTree");
-//   t1->Add("../../Outputs/Simulation/mySimul.root");	
-   TGaspardTrackerData* EventGPD = new TGaspardTrackerData();
-   tree->SetBranchAddress("GASPARD",&EventGPD);
-   TInteractionCoordinates* InterCoord = new TInteractionCoordinates();
-   tree->SetBranchAddress("InteractionCoordinates",&InterCoord);
-   TInitialConditions* InitCond = new TInitialConditions();
-   tree->SetBranchAddress("InitialConditions",&InitCond);
-
-   //////////////////////////////////////////////////////////////////////
-   /////////////////////// Load ROOT file ///////////////////////////////
-   //////////////////////////////////////////////////////////////////////
-   for (Int_t i = 0; i < NbElements; i++) {
-      TString hname  = Form("hHitPattern%d", i+1);
-      TString htitle = Form("HitPattern%d", i+1);
-      hHitPattern[i] = new TH2F(hname, htitle, 128, 1, 128, 128, 1, 128);
    }
 
-   //////////////// Analyse Part ////////////////////////////////////////	
-   Int_t nentries = (Int_t) tree->GetEntries();
-   cout << "There are " << nentries << " entries to process" << endl;
-   for (Int_t e = 0; e < nentries; e++) {
-      check_light =false	;
-      if ((e+1)%10000==0) cout << "Entries number " << e+1 << " on " << tree->GetEntries() << endl ; 
-      tree->GetEntry(e);
-
-      // first check that there is an event detected
-      if (EventGPD->GetGPDTrkFirstStageFrontEMult() > 0) {
-         // calculate multiplicity
-         Int_t multXE = EventGPD->GetGPDTrkFirstStageFrontEMult();
-         Int_t multYE = EventGPD->GetGPDTrkFirstStageBackEMult();
-         Int_t multXT = EventGPD->GetGPDTrkFirstStageFrontTMult();
-         Int_t multYT = EventGPD->GetGPDTrkFirstStageBackTMult();
-         // case of multiplicity 1 for the strips
-         if (multXE==1 && multYE==1 && multXT==1 && multYT==1) {
-            // calculate detector number
-            Int_t det_ref = EventGPD->GetGPDTrkFirstStageFrontEDetectorNbr(0);
-            Int_t detecXE = EventGPD->GetGPDTrkFirstStageFrontEDetectorNbr(0) / det_ref;
-            Int_t detecXT = EventGPD->GetGPDTrkFirstStageFrontTDetectorNbr(0) / det_ref;
-            Int_t detecYE = EventGPD->GetGPDTrkFirstStageBackEDetectorNbr(0) / det_ref;
-            Int_t detecYT = EventGPD->GetGPDTrkFirstStageBackTDetectorNbr(0) / det_ref;
-            det_ref -= 1000; // for TGaspardTrackerDummyShape
-            // case of same detector
-            if (detecXE*detecXT*detecYE*detecYT == 1) {
-               // calculate strip number
-               Int_t stripXE = EventGPD->GetGPDTrkFirstStageFrontEStripNbr(0);
-               Int_t stripXT = EventGPD->GetGPDTrkFirstStageFrontTStripNbr(0);
-               Int_t stripYE = EventGPD->GetGPDTrkFirstStageBackEStripNbr(0);
-               Int_t stripYT = EventGPD->GetGPDTrkFirstStageBackTStripNbr(0);
-               // case of same strips on X and Y
-               if (stripXE == stripXT  &&  stripYE == stripYT) { 	// here we have a good strip event
-                  // fill hit pattern histograms
-                  hHitPattern[det_ref-1]->Fill(stripXE, stripYE);
-                  // get energy from strips
-                  Double_t EnergyStripX = EventGPD->GetGPDTrkFirstStageFrontEEnergy(0) * MeV;
-                  Double_t EnergyStripY = EventGPD->GetGPDTrkFirstStageBackEEnergy(0) * MeV;
-                  Double_t EnergyStrip  = 0.5 * (EnergyStripX + EnergyStripY);
-//                  Double_t EnergyStrip  = EnergyStripX;
-//                  if (EnergyStripY > EnergyStrip) EnergyStrip = EnergyStripY;
-                  Double_t TotalEnergy = EnergyStrip;
-                  // fill detected energy
-                  hEnerX->Fill(EnergyStripX);
-                  hEnerY->Fill(EnergyStripY);
-                  hEnerXY->Fill(EnergyStripX, EnergyStripY);
-                  // calculate multiplicity of 2nd and third stages
-                  Int_t mult2E = EventGPD->GetGPDTrkSecondStageEMult();
-                  Int_t mult2T = EventGPD->GetGPDTrkSecondStageTMult();
-                  Int_t mult3E = EventGPD->GetGPDTrkThirdStageEMult();
-                  Int_t mult3T = EventGPD->GetGPDTrkThirdStageTMult();
-                  // check if we have a 2nd stage event
-                  if (mult2E==1 && mult2T==1) {
-                     Double_t EnergySecond = EventGPD->GetGPDTrkSecondStageEEnergy(0);
-                     TotalEnergy += EnergySecond;
-                  }
-                  // check if we have a third stage event
-                  if (mult3E==1 && mult3T==1) {
-                     Double_t EnergyThird = EventGPD->GetGPDTrkThirdStageEEnergy(0);
-                     TotalEnergy += EnergyThird;
-                  }
-                  // get emitted angle in the beam frame
-//                  Double_t Theta = InitCond->GetICEmittedAngleThetaLabIncidentFrame(0) * deg;
-                  Double_t Theta = InterCoord->GetDetectedAngleTheta(0) * deg;
-                  hTheta->Fill(Theta / deg);
-                  hEnerTheta->Fill(Theta / deg, TotalEnergy);
-                  // calculate lab angle from strips
-                  Double_t xstrip = myArray->GetStripPositionX(det_ref, stripXE, stripYE);
-                  Double_t ystrip = myArray->GetStripPositionY(det_ref, stripXE, stripYE);
-                  Double_t zstrip = myArray->GetStripPositionZ(det_ref, stripXE, stripYE);
-                  Hep3Vector posstrip(xstrip, ystrip, zstrip);
-                  Double_t ThetaStrip = posstrip.theta() * rad;
-                  cout << Theta/deg << "  " << ThetaStrip/deg << endl;
-                  // calculate excitation energy
-//                  Ex = myReaction->ReconstructRelativistic(TotalEnergy / MeV, Theta / rad);
-                  Ex = myReaction->ReconstructRelativistic(TotalEnergy / MeV, ThetaStrip / rad);
-                  // condition on c.m. angle
-                  // for (d,p) reaction theta_c.m. < 40 deg
-                  Double_t ThetaCM = myReaction->EnergyLabToThetaCM(TotalEnergy / MeV, -500) * rad;
-                  hThetaCM->Fill(ThetaCM / deg);
-                  hThetaLabCM -> Fill(ThetaCM/deg,Theta/deg);
-//                  if (ThetaCM/deg < 20) {
-                     hEx->Fill(Ex);
-//                  }
-               }
-               else {
-                  cout << "Not same strips" << endl;
-               }
-            }
-            else {
-               cout << "Not same detector" << endl;
-            }
-         }
-         else {
-            cout << "Multiplicity is not one, it is: " << endl;
-            cout << "\tmultXE: " << multXE << endl;
-            cout << "\tmultXT: " << multXT << endl;
-            cout << "\tmultYE: " << multYE << endl;
-            cout << "\tmultYT: " << multYT << endl;
+   // get arguments
+   string reactionfileName  = argv[1];
+   string detectorfileName  = argv[2];
+   string runToReadfileName = argv[3];
+
+   // Instantiate RootInput and RootOutput singleton classes
+   RootInput:: getInstance(runToReadfileName);
+   RootOutput::getInstance("Analysis/Gaspard_AnalyzedData", "AnalyzedTree");
+
+   // Initialize the reaction
+   NPL::Reaction* myReaction = new Reaction();
+   myReaction->ReadConfigurationFile(reactionfileName);
+
+   // Initialize the detector
+   DetectorManager* myDetector = new DetectorManager;
+   myDetector->ReadConfigurationFile(detectorfileName);
+
+   // Attach more branch to the output
+   double Ex = 0 ; double EE = 0 ; double TT = 0 ; double X = 0 ; double Y = 0 ; int det ;
+   RootOutput::getInstance()->GetTree()->Branch("ExcitationEnergy",&Ex,"Ex/D") ;
+   RootOutput::getInstance()->GetTree()->Branch("E",&EE,"EE/D") ;
+   RootOutput::getInstance()->GetTree()->Branch("A",&TT,"TT/D") ;
+   RootOutput::getInstance()->GetTree()->Branch("X",&X,"X/D") ;
+   RootOutput::getInstance()->GetTree()->Branch("Y",&Y,"Y/D") ;
+
+   // Get GaspardTracker pointer
+   GaspardTracker* GPDTrack = (GaspardTracker*) myDetector->m_Detector["GASPARD"];
+
+   // Get the TChain and treat it
+   TChain* chain = RootInput:: getInstance() -> GetChain();
+
+   // Connect TInteractionCoordinates branch
+   TInteractionCoordinates *interCoord = 0;
+   chain->SetBranchAddress("InteractionCoordinates", &interCoord);
+   chain->SetBranchStatus("InteractionCoordinates", 0);
+
+   // Analysis is here!
+   int nentries = chain->GetEntries();
+   cout << "Number of entries to be analysed: " << nentries << endl;
+
+   for (int i = 0; i < nentries; i ++) {
+      if (i%10000 == 0 && i!=0) cout << i << " analysed events" << endl;
+      chain -> GetEntry(i);
+
+      // Treat Gaspard event
+      myDetector->ClearEventPhysics();
+      myDetector->BuildPhysicalEvent();
+
+      // Get total energy
+      double E = GPDTrack->GetEnergyDeposit();
+
+      // if there is a hit in the detector array, treat it.
+      double Theta, ThetaStrip;
+      TVector3 A;
+      if (E > -1000) {
+         // Get exact scattering angle from TInteractionCoordinates object
+         Theta = interCoord->GetDetectedAngleTheta(0) * deg;
+
+         // Get interaction coordinates taking into account the strips
+         A = GPDTrack->GetPositionOfInteraction();
+         // Calculate scattering angle
+         ThetaStrip = ThetaCalculation (A ,TVector3(0,0,1));
+
+         // Calculate excitation energy
+         if (Theta/deg > 90) {
+//            Ex = myReaction->ReconstructRelativistic(E, Theta / rad);
+            Ex = myReaction->ReconstructRelativistic(E, ThetaStrip);
          }
+         else Ex = -200;
+      }
+      else {
+         Ex = -100;
       }
-/*			
-			PhysicsMUST2->BuildPhysicalEvent(EventMUST2) ;
-			
-			///////////////////////
-			// Put your Analysis Here
-			
-			if( PhysicsMUST2->TelescopeNumber.size()>0)
-				{
-				for(Int_t mult = 0 ; mult < PhysicsMUST2->TelescopeNumber.size() ; mult++)
-					{
-					N=PhysicsMUST2->TelescopeNumber.at(mult);
-					  
-							Double_t Theta = rad *	ThetaCalculation( 
-											Xs=myArray->GetStripPositionX( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) 	,
-											Ys=myArray->GetStripPositionY( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) 	,
-											Zs=myArray->GetStripPositionZ( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) 	,
-											BeamX																				 			 	,
-											BeamY																				 		 		,
-											BeamTheta																					 	   );
-									
-									// Rand prevent binning effect due to discret Hit position pattern (strip center)							
-									hXY->Fill( (Xs-1)+2*rand.Uniform() ,(Ys-1)+2*rand.Uniform() );
-									
-									if(N==1)hXY1 -> Fill(X,Y)	;
-									if(N==2)hXY2 -> Fill(X,Y)	;
-									if(N==3)hXY3 -> Fill(X,Y)	;
-									if(N==4)hXY4 -> Fill(X,Y)	;
-															
-									Double_t Energy = PhysicsMUST2->TotalEnergy.at(mult)*MeV	 		;
-									
-									//	Correct Energy Loss in the target 
-//									Energy = ProtonTarget.EvaluateInitialEnergy(	Energy	 					, 
-//		   																			20.618556701*micrometer		, 
-//		   																			Theta						);
-		   									
-		   									
-									Ex = myReaction->ReconstructRelativistic( Energy , Theta ) 	; 
-									
-									ThetaCM = myReaction->EnergyLabToThetaCM(Energy)			;
-									hThetaLabCM -> Fill(ThetaCM/deg,Theta/deg)					;
-									hThetaCM    -> Fill(ThetaCM/deg)							;
-									hEA-> Fill(Theta/deg , Energy)								;
-									//hEA-> Fill(InitialTheta , InitialEnergy)					;
-									hTheta->Fill(Theta/deg)										;
-									check_light = true	;
-									
-									hEx->Fill(Ex);
-*/									
-									/*if(N==5 && check_light)
-										{
-											
-										double Hexa = HexaEnergy(PhysicsMUST2->TotalEnergy.at(mult) ,Ex) ;
-										cout << Hexa << endl ;
-										hEHexa->Fill(Hexa);
-										}*/
-/*					}
-					
-				}
-				
-			PhysicsMUST2->Clear();	
-			//////////////////////
-			
-			PhysicsMUST2->Clear();*/
-		}
-	
-	TFile outfile("./Result/myResult.root","RECREATE")	;
-		
-        for (Int_t i = 0; i < NbElements; i++) hHitPattern[i]->Write();
-	hTheta		-> Write()	;
-	hThetaCM 	-> Write()	;
-	hThetaLabCM -> Write()	;
-	hXY			-> Write()	;
-	hXY1		-> Write()	;
-	hXY2		-> Write()	;
-	hXY3		-> Write()	;
-	hXY4		-> Write()	;
-	hXY5		-> Write()	;
-	hXY6		-> Write()	;
-	hEx			-> Write()	;
-	hEA			-> Write()	;
-	hEHexa		-> Write()	;
-        hEnerX->Write();
-        hEnerY->Write();
-        hEnerXY->Write();
-        hEnerTheta->Write();
-
-	outfile.Close()	;	
-	
-return 0	;
-}
-
 
+      EE = E ; TT = ThetaStrip/deg;
+      if (E>-1000) {
+         X = A . X();
+         Y = A . Y();
+      }
+      else {
+         X = -1000 ; Y = -1000;
+      }
 
-double ThetaCalculation( double StripX , double StripY ,double StripZ, double PPAC_X, double PPAC_Y, double PPAC_Theta)
-	{
-		double TargetZ = -50;//mm
-		StripX = StripX-PPAC_X ; StripY = StripY-PPAC_Y ; StripZ=StripZ-TargetZ	;
-		double norme = sqrt ( StripX*StripX + StripY*StripY + StripZ*StripZ )	;
-		double Theta = acos ( StripZ / norme )									; 
-		return (Theta-PPAC_Theta)												; //return Theta in rad
-	}
+      // Fill output tree
+      RootOutput::getInstance()->GetTree()->Fill();
+   }
 
+   // delete singleton classes
+   RootOutput::getInstance()->Destroy();
+   RootInput::getInstance()->Destroy();
 
-double HexaEnergy(double HeavyEnergy ,double ThetaHeavy , double Excitation)
-	{
-			/*double M10He  = 9362.73 + Excitation	;
-			double Malpha = 3727.42					;
-			double Mn     = 939.56536				;
-			double M2 = M10He * M10He 				;
-			double Ma2 = Malpha * Malpha 			;
+   return 0;
+}
 
-			//	HeavyEnergyLab to HeavyEnergyCM
-			
-			// Initial Lab to CM Momentum
-		 	G4double InitialMomentum  = sqrt(EnergyHeavy*EnergyHeavy - Ma2)		;
-		 	G4double InitialMomentumX = sin(ThetaHeavy)							;
-		 	G4double InitialMomentumY =	sin(ThetaHeavy)							;
-		 	G4double InitialMomentumZ =	cos(ThetaHeavy)							;
-		 	
-		 	// Beta and Gamma CM to Lab									
-		 	G4double betaX = (DaughterMomentumX*p - InitialMomentumX*InitialMomentum)/E	;
-		 	G4double betaY = (DaughterMomentumY*p - InitialMomentumY*InitialMomentum)/E	;
-		 	G4double betaZ = (DaughterMomentumZ*p - InitialMomentumZ*InitialMomentum)/E	;
-		 	G4double beta  = sqrt (betaX*betaX + betaY*betaY  + betaZ*betaZ	)			;
-		 	G4double beta2 = beta*beta													;
-		 	G4double gamma = 1 / ( sqrt(1 - beta2 ) )									;
-		 	// Calculate everything for heavy particule
-		 	
-		 	G4double NewEnergy =
-		 	  gamma*E
-		 	- betaX*gamma*DaughterMomentumX*p
-		 	- betaY*gamma*DaughterMomentumY*p
-		 	- betaZ*gamma*DaughterMomentumZ*p;
-	
-			double HexaEnergy = sqrt( ( (M2 + Ma2)/(2*M10He) - (HeavyEnergy) ) * (2*M10He) );
-			
-			return(6*Mn-HexaEnergy) ;*/
-	}
 
+double ThetaCalculation (TVector3 A , TVector3 B)
+{
+   double Theta = acos( (A.Dot(B)) / (A.Mag()*B.Mag()) );
+   return Theta ;
+}
 
diff --git a/NPAnalysis/Gaspard/src/ConfigurationReader.cc b/NPAnalysis/Gaspard/src/ConfigurationReader.cc
deleted file mode 100644
index 827855f119ecf7c4073a5b1e828cfcf7d4fe3184..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/src/ConfigurationReader.cc
+++ /dev/null
@@ -1,319 +0,0 @@
-#include "ConfigurationReader.hh" 
-#include <vector>
-#include <stdlib.h>
-#include "CLHEP/Vector/ThreeVector.h"
-
-using namespace std		;
-using namespace CLHEP	;
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
-void ReadConfiguration( string Path , array* myArray)
-{
-
-////////General Reading needs////////
-	string LineBuffer;
-	string DataBuffer;
-	
-////////MUST2 Detector needs////////
-	Hep3Vector A,B,C,D;
-	 
-	double Theta,Phi,Distance,Beta_u,Beta_v,Beta_w;
-	int SI,SILI,CSI,VIS;
-	bool check_A=false;bool check_B=false;bool check_C=false;bool check_D=false;
-	bool check_Theta=false;bool check_Phi=false;bool check_Distance=false;bool check_Beta=false;
-	
-	bool MUST2=false;
-	bool Target=false;
-	bool CryoTarget=false;
-	
-//////////Target Definition needs///////
-	double TargetThickness, TargetRadius;
-	
-	//for cryogenic target
-	
-	double WindowsThickness, TargetTemperature, TargetPressure;
-	
-//////////////////////////////////////////////////////////////////////////////////////////
-	ifstream ConfigFile;
-	ConfigFile.open(Path.c_str());
-	
-	if( ConfigFile.is_open() ) 
-	cout << " Configuration file " << Path << " loading " << endl;
-	else{
-	cout << " Error, no configuration file" << Path << " found" << endl; return;}
-	
-	int i=0;
-	while( !ConfigFile.eof() )	
-	{
-	
-		//Pick-up next line
-		getline(ConfigFile, LineBuffer); i++;
-
-		//Search for comment Symbol %
-		if(LineBuffer.compare(0,1,"%")==0) {;}
-		
-		//Search for Telescope
-		else if(LineBuffer.compare(0,9,"GPDSquare")==0 || LineBuffer.compare(0,13,"GPDDummyShape")==0) 
-		{
-		
-		//A MUST2 Telescope is detected:
-		
-		//Check if it is the first telescope added. If yes, Instantiate a new Array linked to the logical World.
-			if(!MUST2)
-			{
-			//MUST2Array= new MUST2Array(world);
-			MUST2=true;			
-			}
-			
-			check_A=false; check_B=false; check_C=false; check_D=false;
-			check_Theta=false; check_Phi=false; check_Distance=false;
-			cout << "///////////////" << endl;
-			cout << "Telescope found" << endl;
-			cout << "///////////////" << endl;
-			
-			ConfigFile >> DataBuffer;
-			//Position method
-			if(DataBuffer.compare(0,6,"X1_Y1=")==0) 
-			{
-				check_A=true;
-			    ConfigFile >> DataBuffer ; A.setX( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; A.setY( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; A.setZ( atof( DataBuffer.c_str() ) );
-				
-				cout << "X1 Y1 corner position : " << A << endl; 
-			}
-			
-			//Angle method
-			if(DataBuffer.compare(0,6,"THETA=")==0) 
-			{
-				check_Theta=true;
-			    ConfigFile >> DataBuffer ; Theta=atof(DataBuffer.c_str()) ;
-				cout << "Theta:  "<< Theta << endl; 
-			}
-			
-			
-			ConfigFile >> DataBuffer;
-			
-			//Position method
-			if(DataBuffer.compare(0,8,"X128_Y1=")==0) 
-			{
-				check_B=true;
-			    ConfigFile >> DataBuffer ; B.setX( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; B.setY( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; B.setZ( atof( DataBuffer.c_str() ) );
-		
-				cout << "X128 Y1 corner position : " << B << endl; 
-			}
-			
-			//Angle method
-			if(DataBuffer.compare(0,4,"PHI=")==0) 
-			{
-				check_Phi=true;
-			    ConfigFile >> DataBuffer ; Phi=atof(DataBuffer.c_str()) ;
-				cout << "Phi:  "<< Phi << endl; 
-			}
-			
-			ConfigFile >> DataBuffer;
-			
-			//Position method
-			if(DataBuffer.compare(0,8,"X1_Y128=")==0) 
-			{
-				check_C=true;
-				ConfigFile >> DataBuffer ; C.setX( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; C.setY( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; C.setZ( atof( DataBuffer.c_str() ) );
-
-				cout << "X1 Y128 corner position : " << C << endl; 
-			}
-			
-			//Angle method
-			if(DataBuffer.compare(0,2,"R=")==0) 
-			{
-				check_Distance=true;
-			    ConfigFile >> DataBuffer ; Distance=atof(DataBuffer.c_str()) ;
-			    cout << "Distance:  "<< Distance << endl; 
-			}
-			
-			ConfigFile >> DataBuffer;
-			//Position method
-			if(DataBuffer.compare(0,10,"X128_Y128=")==0) 
-			{
-				check_D=true;
-				ConfigFile >> DataBuffer ; D.setX( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; D.setY( atof( DataBuffer.c_str() ) );
-				ConfigFile >> DataBuffer ; D.setZ( atof( DataBuffer.c_str() ) ); 
-				
-				cout << "X128 Y128 corner position : " << D << endl;  
-			}
-			
-			//Angle method
-			if(DataBuffer.compare(0,5,"BETA=")==0) 
-			{
-				check_Beta=true;
-			    ConfigFile >> DataBuffer ; Beta_u=atof(DataBuffer.c_str()) ;
-			    ConfigFile >> DataBuffer ; Beta_v=atof(DataBuffer.c_str()) ;
-			    ConfigFile >> DataBuffer ; Beta_w=atof(DataBuffer.c_str()) ;
-				cout << "Beta:  "<< Beta_u << Beta_v << Beta_w << endl; 
-			}
-			
-			ConfigFile >> DataBuffer;
-			if(DataBuffer.compare(0,10,"FIRSTSTAGE=")==0) 
-			{
-			ConfigFile >> DataBuffer;SI=atof(DataBuffer.c_str()) ;
-			}
-			
-			ConfigFile >> DataBuffer;
-			if(DataBuffer.compare(0,11,"SECONDSTAGE=")==0) 
-			{
-			ConfigFile >> DataBuffer;SILI=atof(DataBuffer.c_str()) ;
-			}
-			
-			
-			ConfigFile >> DataBuffer;
-			if(DataBuffer.compare(0,10,"THIRDSTAGE=")==0) 
-			{
-			ConfigFile >> DataBuffer;CSI=atof(DataBuffer.c_str()) ;
-			}
-					
-			
-			///Add The previously define telescope
-			
-			//With position method
-			if(check_A && check_B && check_C && check_D)
-			{
-				myArray->addTelescope( A  , 
-									   B  , 
-									   C  , 
-									   D  );
-									   
-			}
-					
-			//with angle method
-			if(check_Theta && check_Phi && check_Distance && check_Beta)
-			{					   
-				myArray->addTelescope(  Theta 		, 
-									    Phi 		, 
-									    Distance	,
-									    Beta_u		,
-									    Beta_v		,
-									    Beta_w		);
-									   
-			}
-			
-			
-		}
-				
-		//Nothing understandable
-		else ;
-		
-	
-	}
-	
-ConfigFile.close();
-return;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 
-Reaction* ReadReaction( string Path )
-{
-////////General Reading needs////////
-	string LineBuffer;
-	string DataBuffer;
-	
-////////Reaction Setting needs///////
-string Beam,Target,Heavy,Light,CrossSectionPath;
-double BeamEnergy,ExcitationEnergy;
-Reaction* myReaction;
-
-//////////////////////////////////////////////////////////////////////////////////////////
-	ifstream ReactionFile;
-	ReactionFile.open(Path.c_str());
-	
-	if( ReactionFile.is_open() ) 
-	cout << " Reaction file " << Path << " loading " << endl;
-	else{
-	cout << " Error, no Reaction file" << Path << " found" << endl; return myReaction;}
-	
-	
-	int i=0;
-	while( !ReactionFile.eof() )	
-	{
-		//Pick-up next line
-		getline(ReactionFile, LineBuffer); i++;
-
-		//Search for comment Symbol %
-		if(LineBuffer.compare(0,1,"%")==0) {;}
-		
-		else if(LineBuffer.compare(0,9,"Transfert")==0)  
-		{
-		
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,5,"Beam=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				Beam = DataBuffer;
-				cout << "Beam " << Beam << endl;
-				}
-			
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,7,"Target=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				Target = DataBuffer;
-				cout << "Target " << Target << endl;
-				}
-				
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,6,"Light=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				Light = DataBuffer;
-				cout << "Light " << Light << endl;
-				}
-			
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,6,"Heavy=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				Heavy = DataBuffer;
-				cout << "Heavy " << Heavy << endl;
-				}
-			
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,17,"ExcitationEnergy=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				ExcitationEnergy = atof(DataBuffer.c_str());
-				cout << "ExcitationEnergy " << ExcitationEnergy << " MeV" << endl;
-				}
-				
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,11,"BeamEnergy=")==0) 
-				{
-				ReactionFile >> DataBuffer;
-				BeamEnergy = atof(DataBuffer.c_str());
-				cout << "EnergyBeam " << BeamEnergy << " MeV" << endl;
-				}
-				
-			ReactionFile >> DataBuffer;ReactionFile >> DataBuffer;
-			ReactionFile >> DataBuffer;ReactionFile >> DataBuffer;
-			ReactionFile >> DataBuffer;ReactionFile >> DataBuffer;
-			ReactionFile >> DataBuffer;ReactionFile >> DataBuffer;
-			ReactionFile >> DataBuffer;ReactionFile >> DataBuffer;
-		
-				
-			ReactionFile >> DataBuffer;
-			if(DataBuffer.compare(0,17,"CrossSectionPath=")==0) 
-				{
-				ReactionFile >> CrossSectionPath;
-				cout << "CrossSectionPath " << CrossSectionPath << endl;
-				}
-		}
-	}
-	
-myReaction = new  Reaction(Beam, Target, Light, Heavy,BeamEnergy,ExcitationEnergy,CrossSectionPath);
-
-ReactionFile.close();
-return myReaction;
-
-}
-
diff --git a/NPAnalysis/Gaspard/src/ConfigurationReader.hh b/NPAnalysis/Gaspard/src/ConfigurationReader.hh
deleted file mode 100644
index d4b2e1fe1eaf30c39807391b226329724bab7b84..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/src/ConfigurationReader.hh
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef ConfigurationReader_h
-#define ConfigurationReader_h 1
-
-// STL 
-#include <string>
-#include <iostream>
-#include <fstream>
-
-// NPL 
-#include "NPReaction.h"
-using namespace NPL ;
-
-#include "must.hh"
-
-void ReadConfiguration ( string Path , array* myArray )	;
-Reaction* ReadReaction ( string Path )					;
-
-
-#endif
-
diff --git a/NPAnalysis/Gaspard/src/DetectorManager.cc b/NPAnalysis/Gaspard/src/DetectorManager.cc
new file mode 100644
index 0000000000000000000000000000000000000000..93bbbd699e84eaacedecc00f80499a4608e9a676
--- /dev/null
+++ b/NPAnalysis/Gaspard/src/DetectorManager.cc
@@ -0,0 +1,229 @@
+#include "DetectorManager.hh"
+
+//	STL
+#include <iostream>
+#include <fstream>
+#include <cstdlib>
+
+//	Detector	
+#include "Must2Array.h"
+#include "GaspardTracker.h"
+
+/////////////////////////////////////////////////////////////////////////////////////////////////
+//	Default Constructor and Destructor
+DetectorManager::DetectorManager()	
+	{}
+	
+/////////////////////////////////////////////////////////////////////////////////////////////////	
+DetectorManager::~DetectorManager()
+	{}
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////
+//	Read stream at ConfigFile and pick-up Token declaration of Detector
+void	DetectorManager::ReadConfigurationFile(string Path)	
+	{
+		////////General Reading needs////////
+	   string LineBuffer;
+	   string DataBuffer;
+
+	   /////////Boolean////////////////////
+	   bool MUST2           = false  ;
+	   bool AddThinSi       = false  ;
+	   bool GeneralTarget   = false  ;
+	   bool GPDTracker      = false  ;	// Gaspard Tracker
+	   //////////////////////////////////////////////////////////////////////////////////////////
+	   // added by Nicolas [07/05/09]
+	   string GlobalPath = getenv("NPTOOL");
+	   Path = GlobalPath + "/Inputs/DetectorConfiguration/" + Path;
+	   ifstream ConfigFile;
+	   ConfigFile.open(Path.c_str());
+
+	   if (ConfigFile.is_open())
+	   	{
+	   		cout << "/////////////////////////////" << endl;
+	      	cout << " Configuration file " << Path << " loading " << endl;
+	   	}	
+	   	
+	   else 
+	   	{
+	      cout << " Error, no configuration file" << Path << " found" << endl;
+	      return;
+	   	}
+
+
+	   while (!ConfigFile.eof()) {
+	      //Pick-up next line
+	      getline(ConfigFile, LineBuffer);
+	      //Search for comment Symbol: %
+	      if (LineBuffer.compare(0, 1, "%") == 0) {   /*Do  Nothing*/ ;}
+
+	      ////////////////////////////////////////////
+	      //////////// Search for Gaspard ////////////
+	      ////////////////////////////////////////////
+	      else if (LineBuffer.compare(0, 14, "GaspardTracker") == 0 && GPDTracker == false) {
+	         GPDTracker = true ;
+	         cout << "//////// Gaspard Tracker ////////" << endl   ;
+
+	         // Instantiate the new array as a VDetector Object
+	         VDetector* myDetector = new GaspardTracker()                  ;
+
+	         // Read Position of Telescope
+	         ConfigFile.close()                                 ;
+	         myDetector->ReadConfiguration(Path)                   ;
+	         ConfigFile.open(Path.c_str())                      ;
+
+	         // Add array to the VDetector Vector
+	         AddDetector("GASPARD", myDetector)                            ;
+	      }
+
+	      ////////////////////////////////////////////
+	      //////// Search for MUST2 Array  ////////
+	      ////////////////////////////////////////////
+	      else if (LineBuffer.compare(0, 10, "MUST2Array") == 0 && MUST2 == false) {
+	         MUST2 = true ;
+	         cout << "//////// MUST2 Array ////////" << endl   << endl   ;
+
+	         // Instantiate the new array as a VDetector Object
+	         VDetector* myDetector = new MUST2Array()                 ;
+
+	         // Read Position of Telescope
+	         ConfigFile.close()                                    ;
+	         myDetector->ReadConfiguration(Path)                      ;
+	         ConfigFile.open(Path.c_str())                         ;
+
+	         // Add array to the VDetector Vector
+	         AddDetector("MUST2" , myDetector)                               ;
+	      }
+
+	/*      ////////////////////////////////////////////
+	      ////////// Search for Add.ThinSi ///////////
+	      ////////////////////////////////////////////
+	      else if (LineBuffer.compare(0, 9, "AddThinSi") == 0 && AddThinSi == false) {
+	         AddThinSi = true ;
+	         cout << "//////// Thin Si ////////" << endl << endl   ;
+
+	         // Instantiate the new array as a VDetector Object
+	         VDetector* myDetector = new ThinSi()                  ;
+
+	         // Read Position of Telescope
+	         ConfigFile.close()                                 ;
+	         myDetector->ReadConfiguration(Path)                   ;
+	         ConfigFile.open(Path.c_str())                      ;
+
+	         // Add array to the VDetector Vector
+	         AddDetector(myDetector)                            ;
+	      }
+
+	      ////////////////////////////////////////////
+	      //////////// Search for Target /////////////
+	      ////////////////////////////////////////////
+
+	      else if (LineBuffer.compare(0, 13, "GeneralTarget") == 0 && GeneralTarget == false) {
+	         GeneralTarget = true ;
+	         cout << "////////// Target ///////////" << endl   << endl   ;
+
+	         // Instantiate the new array as a VDetector Objects
+	         VDetector* myDetector = new Target()                     ;
+
+	         // Read Position and target specification
+	         ConfigFile.close()                                    ;
+	         myDetector->ReadConfiguration(Path)                      ;
+	         ConfigFile.open(Path.c_str())                         ;
+
+	         m_TargetThickness = ((Target*)myDetector)->GetTargetThickness()   ;
+	         m_TargetRadius    = ((Target*)myDetector)->GetTargetRadius()   ;
+	         m_TargetX        = ((Target*)myDetector)->GetTargetX()         ;
+	         m_TargetY        = ((Target*)myDetector)->GetTargetY()         ;
+	         m_TargetZ        = ((Target*)myDetector)->GetTargetZ()         ;
+
+	         // Add target to the VDetector Vector
+	         AddDetector(myDetector)                               ;
+	      }*/
+
+	      //Nothing understandable
+	      //else ;
+	   }
+
+		ConfigFile.close();
+		
+		InitializeRootInput();
+		InitializeRootOutput();
+		
+		return   ;
+	}
+	
+/////////////////////////////////////////////////////////////////////////////////////////////////	
+
+void	DetectorManager::BuildPhysicalEvent()						
+	{	
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->BuildPhysicalEvent()	;	
+			}           
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////
+	
+void	DetectorManager::BuildSimplePhysicalEvent()					
+	{
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->BuildSimplePhysicalEvent()	;	
+			}    
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////
+	
+void	DetectorManager::InitializeRootInput()						
+	{
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->InitializeRootInput()	;	
+			}    
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////	
+
+void	DetectorManager::InitializeRootOutput()						
+	{
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->InitializeRootOutput()	;	
+			}   
+		
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////
+	
+void	DetectorManager::AddDetector(string DetectorName , VDetector* newDetector)	
+	{
+		m_Detector[DetectorName] = newDetector ;
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////
+void	DetectorManager::ClearEventPhysics()	
+	{
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->ClearEventPhysics()	;	
+			}   
+		
+	}
+/////////////////////////////////////////////////////////////////////////////////////////////////
+void	DetectorManager::ClearEventData()
+	{
+		map<string,VDetector*>::iterator it	;
+		
+		for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) 
+			{
+				it->second->ClearEventData()	;	
+			}   
+		
+	}
+			
diff --git a/NPAnalysis/Gaspard/src/GNUmakefile b/NPAnalysis/Gaspard/src/GNUmakefile
index 51c5fef9d17ce76ec2688e1b0f19b11c285f5ab8..c18b108aaeff1d074e76e615e2f38d050e4cfedc 100644
--- a/NPAnalysis/Gaspard/src/GNUmakefile
+++ b/NPAnalysis/Gaspard/src/GNUmakefile
@@ -5,7 +5,7 @@ CPP=g++
 EXEC=Analysis
 
 # local includes
-NPAINCLUDES = $(NPANA)/include
+NPAINCLUDES = ../include
 
 # ROOT includes
 CXXFLAGS += `root-config --cflags`
@@ -15,21 +15,21 @@ CXXFLAGS += -I$(CLHEP_INCLUDE_DIR)
 CXXFLAGS += -I$(NPAINCLUDES)
 CXXFLAGS += -I$(NPLIB)/include
 
-
 LDFLAGS  = `root-config --libs` -lMathMore
-#LDFLAGS += -L$(NPLIB) -lMust2Data -lReaction -lEnergyLossCorrection 
-LDFLAGS += -L$(NPLIB)/lib -lMust2Data -lGaspardData -lInteractionCoordinates \
-			-lInitialConditions -lReaction
-LDFLAGS += -L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB)
+LDFLAGS+= -L$(NPLIB)/lib -lVDetector -lIORoot -lReaction -lEnergyLoss \
+			-lMust2Data -lMust2Physics \
+			-lGaspardData -lGaspardPhysics \
+			-lAnnularS1Data \
+			-lInitialConditions -lInteractionCoordinates
+LDFLAGS+= -L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) 
 
 SRC= $(wildcard *.cc)
-INC= $(wildcart $(NPAINCLUDES)/*.hh)
 OBJ=$(SRC:.cc=.o)
 
 #all:$(EXEC)
 #	@$(CPP) -o $@ -c $< $(CXXFLAGS)
 
-Analysis:$(OBJ) $(INC)
+Analysis:$(OBJ)
 	@$(CPP) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
 	mv Analysis  ../Analysis
 
diff --git a/NPAnalysis/Gaspard/src/ObjectManager.hh b/NPAnalysis/Gaspard/src/ObjectManager.hh
deleted file mode 100644
index 3e2bd0b1deb511b91eec39ccf0d7b8102d370d5d..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/src/ObjectManager.hh
+++ /dev/null
@@ -1,84 +0,0 @@
-// You can use this file to declare your spectra, file, energy loss , ... and whatever you want.
-// This way you can remove all unnecessary declaration in the main programm.
-// In order to help debugging and organising we use Name Space.
-
-
-// -----------------------------------DOUBLE, INT, BOOL--------------------------------------------
-
-namespace VARIABLE
-	{
-	double Xs,Ys,Zs,N			;
-	double Theta = 0 			;
-	double Ex = 0 				;
-	double ThetaCM = 0 			;
-	int X,Y						;
-	bool check_light = false	;
-	
-	}
-	
-using namespace VARIABLE ;
-// ----------------------------------------------------------------------------------------------
-
-
-
-// -----------------------------------GRAPH------------------------------------------------------
-#include <TObject.h>
-#include <TH1.h>
-#include <TH1F.h>
-#include <TH2.h>
-#include <TH2F.h>
-#include <TGraph2D.h>
-
-namespace GRAPH
-	{
-		//	Declare your Spectra here:
-        const int NbElements = 40;
-	
-			TH2F *hXY1 = new TH2F("hXY1","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY2 = new TH2F("hXY2","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY3 = new TH2F("hXY3","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY4 = new TH2F("hXY4","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY5 = new TH2F("hXY5","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-			TH2F *hXY6 = new TH2F("hXY6","", 128 , 1 , 128 , 128 , 1 , 128 )				;
-                        TH2F *hHitPattern[NbElements];
-
-                        TH1F *hEnerX  = new TH1F("hEnerX",  "Energy X", 1000, -1, 10);
-                        TH1F *hEnerY  = new TH1F("hEnerY",  "Energy Y", 1000, -1, 10);
-                        TH2F *hEnerXY = new TH2F("hEnerXY", "Energy X vs Y", 100, -1, 10, 100, -1, 10);
-                        TH2F *hEnerTheta = new TH2F("hEnerTheta", "Energy v.s. Theta", 90, 0, 180, 400, 0, 100);
-
-			TH2F *hXY    = new TH2F("hXY","", 300 , -130 , 130 , 300 , -130 , 130 )			;
-			TH2F *hEA  = new TH2F("hEA" ,"", 120 , 0 , 60 , 260 , 0 , 130 )					;
-			TH1F *hEx = new TH1F("hEx", "E* (MeV)", 10000, -10, 40);
-			TH1F *hEHexa = new TH1F("hEHexa","EHexa (MeV)", 1000 , -5 , 5 )					;
-			TH1F *hThetaCM = new TH1F("hThetaCM","ThetaCM (deg)", 30 , 0 , 60 )				;
-			TH1F *hTheta = new TH1F("hTheta","Theta Lab (deg)",180,0,180)					;
-			TH2F *hThetaLabCM    = new TH2F("hThetaLabCM","", 90 , 0 , 180 , 90 , 0 , 180 )	;	
-
-		//	Declare your Cut here:
-
-	}
-
-using namespace GRAPH ;
-// ----------------------------------------------------------------------------------------------
-
-
-// -----------------------------------ENERGY LOSS------------------------------------------------
-/*
-#include "NPEnergyLossCorrection.h"
-using namespace NPL ;
-namespace ENERGYLOSS
-	{
-	
-//	EnergyLoss ProtonTarget = EnergyLoss 	(	"/home/Adrien/Desktop/dEdX.txt" ,
-//												100 							,
-//												1								);
-	
-	}
-	
-using namespace ENERGYLOSS ;
-*/
-// ----------------------------------------------------------------------------------------------
-
-
-
diff --git a/NPAnalysis/Gaspard/src/must.cc b/NPAnalysis/Gaspard/src/must.cc
deleted file mode 100644
index 4ccdeb7ed9e1b749e14dde0e1b5e50ca7126ca28..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/src/must.cc
+++ /dev/null
@@ -1,245 +0,0 @@
-#include "must.hh"
-#include <cmath>
-#include <iostream>
-
-using namespace std;
-
-///////////////////////////////////////////////////////
-
-//////// Constructor by Spherical Coordinate
-must::must(double theta, double phi, double distance, double beta_u , double beta_v, double beta_w)
-	{
-		double Pi = 3.141592654 ;
-
-		// convert from degree to radian:
-		theta = theta * Pi/180. ; 
-		phi   = phi   * Pi/180. ;
-
-		//Vector U on Telescope Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
-		Hep3Vector U ;	
-		//Vector V on Telescope Face (parallele to X Strip)
-		Hep3Vector V ;
-		//Vector W normal to Telescope Face (pointing CsI)
-		Hep3Vector W ;
-		//Vector position of Telescope Face center
-		Hep3Vector C ;
-
-		/*if(theta==180 && phi==90)
-			{
-				C = Hep3Vector (0,0,distance)	;
-				U = Hep3Vector (1,0,0)			;
-				V = Hep3Vector (0,1,0)			;
-				W = Hep3Vector (0,0,1)			;
-			}*/
-			
-		if(theta==0 && phi==0)
-			{
-				C = Hep3Vector (0,0,distance)	;
-				U = Hep3Vector (1,0,0)			;
-				V = Hep3Vector (0,1,0)			;
-				W = Hep3Vector (0,0,1)			;
-			}
-			
-		else
-			{
-				C = Hep3Vector (	distance * sin(theta) * cos(phi) ,
-									distance * sin(theta) * sin(phi) ,
-									distance * cos(theta)			 );
-					
-				Hep3Vector Y = Hep3Vector( cos(theta) * cos(phi),
-							   cos(theta) * sin(phi),
-							  -sin(theta));
-
-				W = C.unit() ;
-//				U = W.cross( Hep3Vector (0,1,0) ) ;
-				U = W.cross( Y ) ;
-			    V = W.cross(U);
-				
-				U = U.unit();
-				V = V.unit();
-				
-				U.rotate( U , beta_u * Pi/180. ) ;
-				V.rotate( U , beta_u * Pi/180. ) ;
-				
-				U.rotate( V , beta_v * Pi/180. ) ;
-				V.rotate( V , beta_v * Pi/180. ) ;
-				
-				U.rotate( W , beta_w * Pi/180. ) ;
-				V.rotate( W , beta_w * Pi/180. ) ;
-			}
-
-//		double Face = 98 					  	; //mm
-		double Face = 50 					  	; //mm
-		double NumberOfStrip = 128 				;
-		double StripPitch = Face/NumberOfStrip	; //mm
-
-		vector<double> lineX ; vector<double> lineY ; vector<double> lineZ ;
-		double X , Y , Z  ;
-
-		//Moving C to the 1.1 corner:
-		C.setX( C.x() - ( Face/2 - StripPitch/2 ) * ( V.x() + U.x() ) )  ; 
-		C.setY( C.y() - ( Face/2 - StripPitch/2 ) * ( V.y() + U.y() ) )  ; 
-		C.setZ( C.z() - ( Face/2 - StripPitch/2 ) * ( V.z() + U.z() ) )  ; 
-
-		for( int i = 0 ; i < 128 ; i++ )
-			{
-			
-			lineX.clear()	;
-			lineY.clear()	;
-			lineZ.clear()	;
-			
-			for( int j = 0 ; j < 128 ; j++ )
-				{
-				
-				X = C.x() + StripPitch * ( U.x()*i + V.x()*j )	;
-				Y = C.y() + StripPitch * ( U.y()*i + V.y()*j )	;
-				Z = C.z() + StripPitch * ( U.z()*i + V.z()*j )	;
-							
-				lineX.push_back(X)	;
-				lineY.push_back(Y)	;
-				lineZ.push_back(Z)	;			
-				}
-				
-			StripPositionX.push_back(lineX)	;
-			StripPositionY.push_back(lineY)	;
-			StripPositionZ.push_back(lineZ)	;
-			 
-			}
-	}
-
-///////////////////////////////////////////////////////
-	
-must::must(  Hep3Vector C_X1_Y1 	,
-			 Hep3Vector C_X128_Y1 	, 
-			 Hep3Vector C_X1_Y128 	, 
-			 Hep3Vector C_X128_Y128 , 
-			 Hep3Vector TargetPosition = Hep3Vector(0,0,0)	)
-	{
-
-		//	Vector U on Telescope Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
-		Hep3Vector U = C_X128_Y1 - C_X1_Y1 				;	
-		U = U.unit()									;
-		
-		//	Vector V on Telescope Face (parallele to X Strip)
-		Hep3Vector V = C_X1_Y128 - C_X1_Y1 				;
-		V = V.unit()									;
-		
-		//	Position Vector of Strip Center
-		Hep3Vector StripCenter 					;
-		//	Position Vector of X=1 Y=1 Strip 
-		Hep3Vector Strip_1_1 					;		
-		
-		//	Geometry Parameter
-		double Face = 98 					  	; //mm
-		double NumberOfStrip = 128 				;
-		double StripPitch = Face/NumberOfStrip	; //mm
-
-		//	Buffer object to fill Position Array
-		vector<double> lineX ; vector<double> lineY ; vector<double> lineZ ;
-
-		//	Moving StripCenter to 1.1 corner:
-		Strip_1_1 = C_X1_Y1 + (U+V) * StripPitch/2 	;
-		
-		for( int i = 0 ; i < 128 ; i++ )
-			{
-				lineX.clear()	;
-				lineY.clear()	;
-				lineZ.clear()	;
-				
-				for( int j = 0 ; j < 128 ; j++ )
-					{
-						StripCenter  = Strip_1_1 + StripPitch*( i*U + j*V  )	;
-						//StripCenter += -TargetPosition		;
-						
-						lineX.push_back( StripCenter.x() )	;
-						lineY.push_back( StripCenter.y() )	;
-						lineZ.push_back( StripCenter.z() )	;	
-					}
-					
-				StripPositionX.push_back(lineX)	;
-				StripPositionY.push_back(lineY)	;
-				StripPositionZ.push_back(lineZ)	;
-			 	
-			}
-	}
-
-///////////////////////////////////////////////////////
-double must::GetStripPositionX(int X , int Y)
-	{
-		return StripPositionX[X][Y];
-	}
-///////////////////////////////////////////////////////
-double must::GetStripPositionY(int X , int Y)
-	{
-		return StripPositionY[X][Y];
-	}
-///////////////////////////////////////////////////////
-double must::GetStripPositionZ(int X , int Y)
-	{
-		return StripPositionZ[X][Y];
-	}
-///////////////////////////////////////////////////////
-void must::Print()
-	{
-
-		for( int i = 0 ; i < 128 ; i++ )
-			{
-			
-			for( int j = 0 ; j < 128 ; j++ )
-				{
-				cout << i+1 << "  "<< j+1 << "  " 
-				<< StripPositionX[i][j]   << "  " 
-				<< StripPositionY[i][j]   << "  "
-				<< StripPositionZ[i][j]   << "  " 
-				<< endl ;
-				}	
-			}
-	}
-
-///////////////////////////////////////////////////////
-///////////////// Class Array /////////////////////////
-///////////////////////////////////////////////////////
-array::array()
-{NumberOfTelescope=0;}
-///////////////////////////////////////////////////////
-void array::addTelescope( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w)
-	{
-		must myMust(theta , phi , distance , beta_u , beta_v, beta_w)	;
-		NumberOfTelescope++												;
-		myArray.push_back(myMust)										;
-	}
-
-///////////////
-void array::addTelescope(Hep3Vector A , Hep3Vector B , Hep3Vector C , Hep3Vector D )		
-	{
-		must myMust( A , B , C , D)		;
-		NumberOfTelescope++				;
-		myArray.push_back(myMust)		;
-	}
-
-
-///////////////////////////////////////////////////////
-double array::GetStripPositionX( int N , int X , int Y )
-	{
-		return myArray[N-1].GetStripPositionX( X-1 , Y-1 );
-	}
-
-///////////////////////////////////////////////////////
-double array::GetStripPositionY( int N , int X , int Y )
-	{
-		return myArray[N-1].GetStripPositionY( X-1 , Y-1 );
-	}
-
-///////////////////////////////////////////////////////
-double array::GetStripPositionZ( int N , int X , int Y )
-	{
-		return myArray[N-1].GetStripPositionZ( X-1 , Y-1 );
-	}
-
-///////////////////////////////////////////////////////
-void array::Print()
-	{
-		for ( int i = 0 ; i < myArray.size() ; i++ )
-			{ cout << " Telescope : " << i+1 << endl ; myArray.at(i).Print() ; }
-	}
-
diff --git a/NPAnalysis/Gaspard/src/must.hh b/NPAnalysis/Gaspard/src/must.hh
deleted file mode 100644
index d3fa3a733fc029e7ed403f3a944e9dd68fc390c4..0000000000000000000000000000000000000000
--- a/NPAnalysis/Gaspard/src/must.hh
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef must_h
-#define must_h 1
-
-#include <vector>
-#include <TFile.h>
-#include <TH2.h>
-#include <TH2F.h>
-#include "CLHEP/Vector/ThreeVector.h"
-using namespace std 	;
-using namespace CLHEP	;
-
-class must
-{
-public:
-	must( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w)	;
-	must(	Hep3Vector C_X1_Y1 			,
-			Hep3Vector C_X128_Y1 		, 
-			Hep3Vector C_X1_Y128 		, 
-			Hep3Vector C_X128_Y128 		, 
-			Hep3Vector TargetPosition 	);
-	
-	double 	GetStripPositionX( int X , int Y )			;
-	double 	GetStripPositionY( int X , int Y )			;
-	double 	GetStripPositionZ( int X , int Y )			;
-	void 	Print()										;
-
-private:
-
-	vector< vector < double > > StripPositionX			;
-	vector< vector < double > > StripPositionY			;
-	vector< vector < double > > StripPositionZ			;
-
-};
-
-
-class array
-{
-public:
-	array();
-	void addTelescope( double theta , double phi , double distance , double beta_u , double beta_v , double beta_w)	;
-	void addTelescope(	Hep3Vector C_X1_Y1 								,
-			 			Hep3Vector C_X128_Y1 							, 
-			 			Hep3Vector C_X1_Y128 							, 
-			 			Hep3Vector C_X128_Y128 							);
-			 			
-	double GetStripPositionX( int N , int X , int Y )					;
-	double GetStripPositionY( int N , int X , int Y )					;
-	double GetStripPositionZ( int N , int X , int Y )					;
-	double GetNumberOfTelescope() {return NumberOfTelescope;}			;
-	void Print()														;
-	
-private:
-	vector< must > myArray	;
-	int NumberOfTelescope   ;
-
-public:	// Histogram
-
-/*//	Hit Density
-	vector<TH2F*>	HitDensity	;
-	
-	//	Time of Flight Identification
-	vector<TH2F*>	TOF			;
-	
-	//	EDE Identification
-	vector<TH2F*>	EDE			;
-	
-	//	Kinematic Line
-	KinematicLine				;
-	
-	//	Excitation Energy
-	ExcitationEnergy			;*/
-
-};
-
-#endif
diff --git a/NPAnalysis/Gaspard/macros/ControlSimu.C b/NPAnalysis/macros/ControlSimu.C
similarity index 70%
rename from NPAnalysis/Gaspard/macros/ControlSimu.C
rename to NPAnalysis/macros/ControlSimu.C
index 56f2ee46029f7451fcf69349a615f5cd3b5a17bc..bb7b8ddcbe521156b05f6c42264ec1922d0e8456 100644
--- a/NPAnalysis/Gaspard/macros/ControlSimu.C
+++ b/NPAnalysis/macros/ControlSimu.C
@@ -1,3 +1,30 @@
+/*****************************************************************************
+ * Copyright (C) 2009   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: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ *                                                                           *
+ * Creation Date  : 22/07/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *    + This macro displays everything concerning the incident beam and the  *
+ *      emitted particle from NPSimulation                                   *
+ *                                                                           *
+ *    + Use in a ROOT session:                                               *
+ *      .x ControlSimu.C("FileToAnalyse")                                    *
+ *                                                                           *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
 #include <iostream>
 
 #include "TROOT.h"
diff --git a/NPAnalysis/Gaspard/macros/GeometricalEfficiency.C b/NPAnalysis/macros/GeometricalEfficiency.C
similarity index 50%
rename from NPAnalysis/Gaspard/macros/GeometricalEfficiency.C
rename to NPAnalysis/macros/GeometricalEfficiency.C
index 90ca0e83b863b7b45116682d97a9fafb246068af..5bbc6f5864000c292f58a2741c5f69160e0ed90f 100644
--- a/NPAnalysis/Gaspard/macros/GeometricalEfficiency.C
+++ b/NPAnalysis/macros/GeometricalEfficiency.C
@@ -1,3 +1,31 @@
+/*****************************************************************************
+ * Copyright (C) 2009   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: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ *                                                                           *
+ * Creation Date  : 22/07/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *    + This macro calculates the geometrical efficiency for a given geometry*
+ *      NPSimulation should have been run with an isotropic source event     *
+ *      generator.                                                           *
+ *                                                                           *
+ *    + Use in a ROOT session:                                               *
+ *      .x GeometricalEfficiency.C("FileToAnalyse")                          *
+ *                                                                           *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
 #include <iostream>
 
 #include "TROOT.h"
diff --git a/NPAnalysis/macros/README b/NPAnalysis/macros/README
new file mode 100644
index 0000000000000000000000000000000000000000..de21ad1250c784e67d5ae2eadfa26e9c4ec9841f
--- /dev/null
+++ b/NPAnalysis/macros/README
@@ -0,0 +1,24 @@
+/*****************************************************************************
+ * Copyright (C) 2009   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: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ *                                                                           *
+ * Creation Date  : 11/09/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *    + The ROOT macros found in this directory are independent of the       *
+ *      detector set-up and can be run for any detector.                     *
+ *                                                                           *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
diff --git a/NPAnalysis/Gaspard/macros/TestAngleReconstruction.C b/NPAnalysis/macros/TestAngleReconstruction.C
similarity index 68%
rename from NPAnalysis/Gaspard/macros/TestAngleReconstruction.C
rename to NPAnalysis/macros/TestAngleReconstruction.C
index 217efe959dae85053ab602d6efdc92ff9b05df2b..b29fc482f77dca795824ee3e2e2ad710f59d939d 100644
--- a/NPAnalysis/Gaspard/macros/TestAngleReconstruction.C
+++ b/NPAnalysis/macros/TestAngleReconstruction.C
@@ -1,3 +1,31 @@
+/*****************************************************************************
+ * Copyright (C) 2009   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: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ *                                                                           *
+ * Creation Date  : 22/07/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *    + This macro studues the impact of the beam emittance on the angle     *
+ *      determination.                                                       *
+ *                                                                           *
+ *    + Use in a ROOT session:                                               *
+ *      .x TestAngleReconstruction.C("FileToAnalyse")                        *
+ *                                                                           *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *   + This macro has not been fully tested yet. Be careful                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
 #include <iostream>
 
 #include "TROOT.h"
@@ -11,7 +39,6 @@
 #include "TCanvas.h"
 #include "TMath.h"
 
-#include "TGaspardTrackerData.h"
 #include "TInitialConditions.h"
 #include "TInteractionCoordinates.h"
 
@@ -23,13 +50,9 @@ void TestAngleReconstruction(const char * fname = "mySimul")
    TString inFileName = fname;
    if (!inFileName.Contains("root")) inFileName += ".root";
    TFile *inFile = new TFile(path + inFileName);
-   TTree *tree   = (TTree*) inFile->Get("EventTree");
+   TTree *tree   = (TTree*) inFile->Get("SimulatedTree");
 
    // Connect the branches of the TTree and activate then if necessary
-   // TGaspardTrackerData branch
-   TGaspardTrackerData *gpdTrkData = 0;
-   tree->SetBranchAddress("GASPARD", &gpdTrkData);
-   tree->SetBranchStatus("GASPARD", 0);
    // TInitialConditions branch
    TInitialConditions *initCond = 0;
    tree->SetBranchAddress("InitialConditions", &initCond);
diff --git a/NPDocumentation/Gaspard.tex b/NPDocumentation/Gaspard.tex
new file mode 100755
index 0000000000000000000000000000000000000000..38974666e8e0a9650e3095cc10732ed1740ec33b
--- /dev/null
+++ b/NPDocumentation/Gaspard.tex
@@ -0,0 +1,27 @@
+\documentclass[a4paper,12pt]{article}
+\usepackage[T1]{fontenc}
+\usepackage [isolatin]{inputenc} % fontes avec caracteres accentues
+\usepackage{graphicx} % inclusion de figures
+\usepackage{listings}
+
+\begin{document}
+
+\title{\emph{Gaspard Documentation}}
+\author{Nicolas de S\'er\'eville}
+
+\maketitle 
+\pagebreak
+\tableofcontents % la table des matieres
+\pagebreak
+
+
+\section{Introduction}
+\section{NPSimulation}
+\subsection{}
+\subsection{Storing the results of the simulation}
+\subsection{Adding a new detector shape to Gaspard}
+
+\section{NPAnalysis}
+
+\end{document}
+
diff --git a/NPLib/GASPARD/GaspardTracker.cxx b/NPLib/GASPARD/GaspardTracker.cxx
index d9971e51b4cbcb4c8a5b24d90a3be91dc2b0131a..c6afac495de05ac57b9fd2a2dc6e1f795bac21c0 100644
--- a/NPLib/GASPARD/GaspardTracker.cxx
+++ b/NPLib/GASPARD/GaspardTracker.cxx
@@ -244,9 +244,9 @@ void GaspardTracker::ReadConfiguration(string Path)
 
                // with angle method
                else if ( check_Theta && check_Phi && check_R && check_beta ) {
-                  AddModuleSquare(R       ,
-                                  Theta   ,
+                  AddModuleSquare(Theta   ,
                                   Phi     ,
+                                  R       ,
                                   beta_u  ,
                                   beta_v  ,
                                   beta_w  );
@@ -398,12 +398,12 @@ void GaspardTracker::ReadConfiguration(string Path)
 
                // with angle method
                else if ( check_Theta && check_Phi && check_R && check_beta ) {
-                  AddModuleDummyShape(R       ,
-                                      Theta   ,
-                                      Phi     ,
-                                      beta_u  ,
-                                      beta_v  ,
-                                      beta_w  );
+                  AddModuleDummyShape(Theta,
+                                      Phi,
+                                      R,
+                                      beta_u,
+                                      beta_v,
+                                      beta_w);
                }
 
                // reset boolean flag for point positioning
diff --git a/NPLib/GASPARD/GaspardTracker.h b/NPLib/GASPARD/GaspardTracker.h
index 7ffc4f8db5a6098750ffcfe13f7b7d63f9821382..e0d25a08bab1e7316a715f67c2a9dba4fd9df4d3 100644
--- a/NPLib/GASPARD/GaspardTracker.h
+++ b/NPLib/GASPARD/GaspardTracker.h
@@ -106,14 +106,14 @@ public:
                             double beta_w);
 
    // Getters to retrieve the (X,Y,Z) coordinates of a pixel defined by strips (X,Y)
-   double GetStripPositionX(int N ,int X ,int Y)	{ return m_StripPositionX[N-1][X-1][Y-1]; };
-   double GetStripPositionY(int N ,int X ,int Y)	{ return m_StripPositionY[N-1][X-1][Y-1]; };
-   double GetStripPositionZ(int N ,int X ,int Y)	{ return m_StripPositionZ[N-1][X-1][Y-1]; };
-   double GetNumberOfModule()	 			{ return m_NumberOfModule; };
+   double GetStripPositionX(int N ,int X ,int Y)	{ return m_StripPositionX[N-1][X-1][Y-1]; }
+   double GetStripPositionY(int N ,int X ,int Y)	{ return m_StripPositionY[N-1][X-1][Y-1]; }
+   double GetStripPositionZ(int N ,int X ,int Y)	{ return m_StripPositionZ[N-1][X-1][Y-1]; }
+   double GetNumberOfModule()	 			{ return m_NumberOfModule; }
 
    // Get Root input and output objects
-   TGaspardTrackerData* 	GetEventData()		{return m_EventData;};
-   TGaspardTrackerPhysics*	GetEventPhysics()	{return m_EventPhysics;};
+   TGaspardTrackerData* 	GetEventData()		{return m_EventData;}
+   TGaspardTrackerPhysics*	GetEventPhysics()	{return m_EventPhysics;}
 
    // To be called after a build Physical Event 
    double	GetEnergyDeposit();
diff --git a/NPLib/GASPARD/TGaspardTrackerPhysics.cxx b/NPLib/GASPARD/TGaspardTrackerPhysics.cxx
index 6bca92aea82e27c4d075f453a5f9370a91a82093..69340326c2729b8bce3648219ee9ec5a21d2e900 100644
--- a/NPLib/GASPARD/TGaspardTrackerPhysics.cxx
+++ b/NPLib/GASPARD/TGaspardTrackerPhysics.cxx
@@ -50,7 +50,16 @@ void TGaspardTrackerPhysics::BuildSimplePhysicalEvent(TGaspardTrackerData* Data)
 
 
 void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data)
-{ 
+{
+   // indexes for each kind of detector
+   // this should follow the indexes given in NPSimulation
+   //    0: Square
+   //  100: Trapezoid
+   //  200: Annular
+   // 1000: DummyShape
+   const int dim = 4;
+   int index[dim] = {0, 100, 200, 1000};
+
    // Check
    bool Check_FirstStage = false ;bool Check_SecondStage = false ; bool Check_ThirdStage = false ;
 
@@ -79,7 +88,20 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data)
       int detecXT = Data->GetGPDTrkFirstStageFrontTDetectorNbr(0) / det_ref;
       int detecYE = Data->GetGPDTrkFirstStageBackEDetectorNbr(0) / det_ref;
       int detecYT = Data->GetGPDTrkFirstStageBackTDetectorNbr(0) / det_ref;
-      det_ref -= 1000; // only for GaspardDummyShape
+      // convert detector number in order to it begins at 0
+      // this is needed to access the strip position information
+      // WARNING: this method may not work for an heteregneous detector 
+      //          configuration, e.g. Trapezoid + Annular
+      int good_index = -100;
+      int diff_ref = 10000;
+      for (int i = 0; i < dim; i++) {
+         int diff = abs(det_ref - index[i]);
+         if (diff < diff_ref) {
+            diff_ref = diff;
+            good_index = i;
+         }
+      }
+      det_ref -= index[good_index];
 
       // case of same detector
       if (detecXE*detecXT*detecYE*detecYT == 1) {
@@ -102,9 +124,9 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data)
             // get energy from strips and store it
             double EnergyStripFront = Data->GetGPDTrkFirstStageFrontEEnergy(0);
             double EnergyStripBack  = Data->GetGPDTrkFirstStageBackEEnergy(0);
-            double EnergyStrip  = 0.5 * (EnergyStripFront + EnergyStripBack);
-//                  double EnergyStrip  = EnergyStripFront;
-//                  if (EnergyStripBack > EnergyStrip) EnergyStrip = EnergyStripBack;
+//            double EnergyStrip  = 0.5 * (EnergyStripFront + EnergyStripBack);
+            double EnergyStrip  = EnergyStripFront;
+//            if (EnergyStripBack > EnergyStrip) EnergyStrip = EnergyStripBack;
             FirstStage_E.push_back(EnergyStrip);
             double EnergyTot = EnergyStrip;
             // get time from strips and store it
@@ -136,7 +158,7 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data)
                cout << "Warning: multiplicity in third stage greater than in firststage" << endl;
             }
 
-            // Analysis code here.
+            // Fill total energy
             TotalEnergy.push_back(EnergyTot);
          }
          else {
@@ -154,127 +176,10 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data)
       cout << "\tmultYE: " << multYE << endl;
       cout << "\tmultYT: " << multYT << endl;*/
    }
-
-/*	
-		//	Multiplicity 2
-		if( Data->GetMMStripXEMult()==2 && Data->GetMMStripYEMult()==2 && Data->GetMMStripXTMult()==2 && Data->GetMMStripXTMult()==2 )
-			{
-				// Different telescope case
-				if (	Data->GetMMStripXEDetectorNbr(0) != Data->GetMMStripXEDetectorNbr(1)
-					&&	Data->GetMMStripYEDetectorNbr(0) != Data->GetMMStripYEDetectorNbr(1) )
-					{
-					
-						double EY, EX, TX, TY = 0;
-						// loop on both event
-						for (int jj = 0 ; jj < 2 ; jj++)
-							{
-								Check_FirstStage = false ;Check_SecondStage = false ;Check_ThirdStage = false ;
-								
-							
-								ModuleNumber.push_back( Data->GetMMStripXEDetectorNbr(jj) )	;
-								EX = Data->GetMMStripXEEnergy(jj) 				;
-								FirstStage_X.push_back( Data->GetMMStripXEStripNbr(jj))	;
-								
-								// Get Corresponding time
-								for(int i = 0 ; i < 2 ; i++)
-									{ 
-										if(		Data->GetMMStripXTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) 
-											&&	Data->GetMMStripXTStripNbr(i)    == Data->GetMMStripXEStripNbr(jj)   )
-											{ TX = Data->GetMMStripXTTime(jj)	; }
-									}
-								
-								// Get Corresponding Y strip
-								for(int i = 0 ; i < 2 ; i++)
-									{
-										if(	Data->GetMMStripYEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) )
-											{
-												FirstStage_Y.push_back( Data->GetMMStripYEStripNbr(i))	;
-												EY = Data->GetMMStripXEEnergy(i) 				;
-												TY = Data->GetMMStripXTTime(i) 					;
-												
-										//		if (EX>EY)	FirstStage_E.push_back(EX)	;
-										//		else	  	FirstStage_E.push_back(EY)	;
-												FirstStage_E.push_back(EX);
-												
-												
-												if (TX>TY)	FirstStage_T.push_back(TY)	;
-												else	  	FirstStage_T.push_back(TX)	; 
-												Check_FirstStage = true ;
-											}
-									}
-							
-								if (Check_FirstStage)
-									{ 
-										//	Si(Li)
-										for (int i = 0 ; i < Data->GetMMSiLiEMult() ; i++)
-											{ 
-												if (	Data->GetMMSiLiEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj)
-													&&	Data->GetMMSiLiEEnergy(i) > SecondStage_E_Threshold	)
-													{
-													SecondStage_E.push_back(Data->GetMMSiLiEEnergy(i))	;
-													SecondStage_N.push_back(Data->GetMMSiLiEPadNbr(i))	;
-													
-													if (	Data->GetMMSiLiTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj)
-														&&	Data->GetMMSiLiTPadNbr(i)      == Data->GetMMSiLiEPadNbr(i) )
-															{
-															SecondStage_T.push_back(Data->GetMMSiLiTTime(i))	;
-															Check_SecondStage = true ;
-															}
-													}
-													
-												else
-													{
-													SecondStage_E.push_back(-1)	;
-													SecondStage_T.push_back(-1)	;
-													SecondStage_N.push_back(-1)	;
-													}
-											}
-								
-										//	CsI
-										for (int i = 0 ; i < Data->GetMMCsIEMult() ; i++)
-											{
-												if (	Data->GetMMCsIEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj)
-													&&	Data->GetMMCsIEEnergy(i) > ThirdStage_E_Threshold	)
-													{
-													ThirdStage_E.push_back(Data->GetMMCsIEEnergy(i))		;
-													ThirdStage_N.push_back(Data->GetMMCsIECristalNbr(i))	;
-													if (	Data->GetMMCsITDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj)
-														&&	Data->GetMMCsITCristalNbr(i)  == Data->GetMMCsIECristalNbr(i) )
-															{
-															ThirdStage_T.push_back(Data->GetMMCsITTime(i))		;
-															Check_ThirdStage = true ;
-															}
-													}
-													
-												else
-													{
-													ThirdStage_E.push_back(-1)	;
-													ThirdStage_T.push_back(-1)	;
-													ThirdStage_N.push_back(-1)	;
-													}
-											}
-										
-										TotalEnergy.push_back(FirstStage_E.at(jj)) ;
-										if (Check_SecondStage) TotalEnergy.at(jj) += SecondStage_E.at(jj)	;
-										if (Check_ThirdStage)  TotalEnergy.at(jj) += ThirdStage_E.at(jj)	;
-									}	
-							}
-						return;	
-					}
-					
-				//	Same detector case :
-				if(		Data->GetMMStripXEDetectorNbr(0) == Data->GetMMStripXEDetectorNbr(1)
-					&&	Data->GetMMStripYEDetectorNbr(0) == Data->GetMMStripYEDetectorNbr(1))
-					{
-					
-					
-					return;
-					}
-			}
-			*/
 }
 
 
+
 void TGaspardTrackerPhysics::Clear()
 {
    EventMultiplicity= 0;
diff --git a/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx b/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx
index ac06880b847bbc456cc51c60a6d9a7758e33894f..25e71b4f36ec59f741a4089304621bf14fcd12b9 100644
--- a/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx
+++ b/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx
@@ -54,9 +54,9 @@ void TInteractionCoordinates::Clear()
 
 void TInteractionCoordinates::Dump()
 {
-   cout << "XXXXXXXXXXXXX Initial conditions XXXXXXXXXXXXXXXX" << endl;
+   cout << "XXXXXXXXXXXXX Interaction coordinates XXXXXXXXXXXXXXXX" << endl;
 
-   cout << "Vertex position : " << endl;
+   cout << "Interaction position : " << endl;
    cout << "\tX : " << fDetected_Position_X[0] << endl;  
    cout << "\tY : " << fDetected_Position_Y[0] << endl;  
    cout << "\tZ : " << fDetected_Position_Z[0] << endl;  
diff --git a/NPSimulation/include/GaspardTrackerDummyShape.hh b/NPSimulation/include/GaspardTrackerDummyShape.hh
index c81f4c5920a4262865aa2e8c4a58ec7d514bbe32..d567d9c1e65e66762dacc876069b1c2de6c16f0b 100644
--- a/NPSimulation/include/GaspardTrackerDummyShape.hh
+++ b/NPSimulation/include/GaspardTrackerDummyShape.hh
@@ -142,9 +142,10 @@ private:
 namespace GPDDUMMYSHAPE
 {
    // Resolution
-   const G4double ResoFirstStage  = 0              ;// = 52keV of Resolution   //   Unit is MeV/2.35
-//   const G4double ResoFirstStage  = 0.022          ;// = 52keV of Resolution   //   Unit is MeV/2.35
-   const G4double ResoSecondStage = 0.055          ;// = 130 keV of resolution //   Unit is MeV/2.35
+//   const G4double ResoFirstStage  = 0              ;// = 52keV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoFirstStage  = 0.022          ;// = 52keV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoSecondStage = 0          ;// = 130 keV of resolution //   Unit is MeV/2.35
+//   const G4double ResoSecondStage = 0.055          ;// = 130 keV of resolution //   Unit is MeV/2.35
    const G4double ResoThirdStage  = 0              ;// = 100 keV of resolution //   Unit is MeV/2.35
 //   const G4double ResoThirdStage  = 0.043          ;// = 100 kev of resolution //   Unit is MeV/2.35
    const G4double ResoTimeGpd     = 0.212765957    ;// = 500ps                 //   Unit is  ns/2.35
@@ -152,12 +153,19 @@ namespace GPDDUMMYSHAPE
    // Geometry for the mother volume containing the different layers of your dummy shape module
    const G4double FaceFront          = 5.1*cm;
    const G4double FaceBack           = 5.1*cm;
-   const G4double Length             = 1.5*cm;
-   const G4double InterStageDistance = 5*mm;
+//   const G4double Length             = 1.5*cm;
+//   const G4double InterStageDistance = 5*mm;
+   // for testing the excitation energy reconstruction
+   const G4double Length             = 4*cm;
+   const G4double InterStageDistance = 15*mm;
 
    // First stage
    const G4double FirstStageFace       = 5.0*cm;
-   const G4double FirstStageThickness  = 300*micrometer ;
+//   const G4double FirstStageThickness  = 300*micrometer ;
+   // for testing the excitation energy reconstruction
+   const G4double FirstStageThickness  = 1.3*cm;
+//   const G4int NumberOfStrips	       = 128;
+   const G4int NumberOfStrips	       = 20;
 
    // Second stage
    const G4double SecondStageFace      = FirstStageFace;
diff --git a/NPSimulation/include/GaspardTrackerSquare.hh b/NPSimulation/include/GaspardTrackerSquare.hh
index 296e936e4c848bb571dae9e09194bb605814b405..841a605c9aeaddbe94ba5a8a49e9fcc27f7c1c28 100644
--- a/NPSimulation/include/GaspardTrackerSquare.hh
+++ b/NPSimulation/include/GaspardTrackerSquare.hh
@@ -168,6 +168,7 @@ namespace GPDSQUARE
    const G4double SiliconFace       = 98*mm          ;
 //   const G4double VacBoxThickness   = 3*cm           ;
    const G4double VacBoxThickness   = 0.5*cm           ;
+   const G4int    NumberOfStrips    = 128;
 
    // Second stage
    const G4double SiLiThickness     = 5.1*mm                      ;  // Must be checked
diff --git a/NPSimulation/include/GaspardTrackerTrapezoid.hh b/NPSimulation/include/GaspardTrackerTrapezoid.hh
index 034d4e0131add716c828cd81fb432d78ceca7db3..2b86902e39d58c4166cdee2a3f0579fecd79b82d 100644
--- a/NPSimulation/include/GaspardTrackerTrapezoid.hh
+++ b/NPSimulation/include/GaspardTrackerTrapezoid.hh
@@ -170,6 +170,8 @@ namespace GPDTRAP
    const G4double FirstStageBaseSmall = 29*mm;
 //   const G4double VacBoxThickness   = 3*cm           ;
    const G4double VacBoxThickness     = 0.5*cm;
+   const G4int    NumberOfStripsX     = 128;
+   const G4int    NumberOfStripsY     = 128;
 
    // Second stage
    const G4double SiLiThickness     = 5.1*mm                      ;  // Must be checked
diff --git a/NPSimulation/src/EventGeneratorTransfert.cc b/NPSimulation/src/EventGeneratorTransfert.cc
index 569c489fc1633b003b7567abd2375d6f645c4a9a..ac23197ec7b61b62d0c3cb0cb81c66e63c10242f 100644
--- a/NPSimulation/src/EventGeneratorTransfert.cc
+++ b/NPSimulation/src/EventGeneratorTransfert.cc
@@ -360,7 +360,8 @@ void EventGeneratorTransfert::GenerateEvent(G4Event* anEvent , G4ParticleGun* pa
 	
    G4double Beam_theta = acos(Zdir / sqrt(Xdir*Xdir + Ydir*Ydir + Zdir*Zdir)) * rad;
    G4double Beam_phi   = atan2(Ydir, Xdir) * rad;
-   if (Beam_phi < 0) Beam_phi += 2*pi;
+   if (Beam_phi   < 0)    Beam_phi += 2*pi;
+   if (Beam_theta < 1e-6) Beam_phi  = 0;
 
    // write angles to ROOT file
    m_InitConditions->SetICIncidentAngleTheta(Beam_theta / deg);
diff --git a/NPSimulation/src/GaspardTrackerDummyShape.cc b/NPSimulation/src/GaspardTrackerDummyShape.cc
index 952288afb5f54a597ed6667c431366fd0f34f1ef..f8ab37d186e71ba1b3abf02d1239541b962a80a0 100644
--- a/NPSimulation/src/GaspardTrackerDummyShape.cc
+++ b/NPSimulation/src/GaspardTrackerDummyShape.cc
@@ -939,8 +939,8 @@ void GaspardTrackerDummyShape::InitializeScorers()
    G4VPrimitiveScorer* DetNbr                           = new GPDScorerDetectorNumber("DetectorNumber", 0, "FirstStage");
    G4VPrimitiveScorer* Energy                           = new GPDScorerFirstStageEnergy("StripEnergy", 0);
    G4VPrimitiveScorer* TOF                              = new PSTOF("StripTime", 0);
-   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripDummyShape("StripIDFront", 0, 128);
-   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripDummyShape("StripIDBack", 0, 128);
+   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips);
+   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripDummyShape("StripIDBack", 0, NumberOfStrips);
    G4VPrimitiveScorer* InteractionCoordinatesX          = new PSInteractionCoordinatesX("InterCoordX", 0);
    G4VPrimitiveScorer* InteractionCoordinatesY          = new PSInteractionCoordinatesY("InterCoordY", 0);
    G4VPrimitiveScorer* InteractionCoordinatesZ          = new PSInteractionCoordinatesZ("InterCoordZ", 0);
diff --git a/NPSimulation/src/GaspardTrackerSquare.cc b/NPSimulation/src/GaspardTrackerSquare.cc
index 31f481245d2bf11fee67e971ec718337e29f12c4..307c3ce244231f39c30b5e67dd1144d787da51bb 100644
--- a/NPSimulation/src/GaspardTrackerSquare.cc
+++ b/NPSimulation/src/GaspardTrackerSquare.cc
@@ -1135,8 +1135,8 @@ void GaspardTrackerSquare::InitializeScorers()
    G4VPrimitiveScorer* DetNbr                           = new GPDScorerDetectorNumber("DetectorNumber", 0, "Silicon");
    G4VPrimitiveScorer* Energy                           = new GPDScorerFirstStageEnergy("StripEnergy", 0);
    G4VPrimitiveScorer* TOF                              = new PSTOF("StripTime", 0);
-   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripSquare("StripNumberX", 0, 128);
-   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripSquare("StripNumberY", 0, 128);
+   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripSquare("StripNumberX", 0, NumberOfStrips);
+   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripSquare("StripNumberY", 0, NumberOfStrips);
    G4VPrimitiveScorer* InteractionCoordinatesX          = new PSInteractionCoordinatesX("InterCoordX", 0);
    G4VPrimitiveScorer* InteractionCoordinatesY          = new PSInteractionCoordinatesY("InterCoordY", 0);
    G4VPrimitiveScorer* InteractionCoordinatesZ          = new PSInteractionCoordinatesZ("InterCoordZ", 0);
diff --git a/NPSimulation/src/GaspardTrackerTrapezoid.cc b/NPSimulation/src/GaspardTrackerTrapezoid.cc
index dacba3debf888b9ad85d9f51fbf180a2414e6d62..714a28c9d23a8980ab38c04e540f7b11bc0f16ea 100644
--- a/NPSimulation/src/GaspardTrackerTrapezoid.cc
+++ b/NPSimulation/src/GaspardTrackerTrapezoid.cc
@@ -1003,8 +1003,8 @@ void GaspardTrackerTrapezoid::InitializeScorers()
    G4VPrimitiveScorer* DetNbr                           = new GPDScorerDetectorNumber("DetectorNumber", 0, "Silicon");
    G4VPrimitiveScorer* Energy                           = new GPDScorerFirstStageEnergy("StripEnergy", 0);
    G4VPrimitiveScorer* TOF                              = new PSTOF("StripTime", 0);
-   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripTrapezoid("StripNumberX", 0, 128);
-   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripTrapezoid("StripNumberY", 0, 128);
+   G4VPrimitiveScorer* StripPositionX                   = new GPDScorerFirstStageFrontStripTrapezoid("StripNumberX", 0, NumberOfStripsX);
+   G4VPrimitiveScorer* StripPositionY                   = new GPDScorerFirstStageBackStripTrapezoid("StripNumberY",  0, NumberOfStripsY);
    G4VPrimitiveScorer* InteractionCoordinatesX          = new PSInteractionCoordinatesX("InterCoordX", 0);
    G4VPrimitiveScorer* InteractionCoordinatesY          = new PSInteractionCoordinatesY("InterCoordY", 0);
    G4VPrimitiveScorer* InteractionCoordinatesZ          = new PSInteractionCoordinatesZ("InterCoordZ", 0);
diff --git a/TODO b/TODO
new file mode 100644
index 0000000000000000000000000000000000000000..032264a661e8f57f2efaa1b02cf5ffbe536184a4
--- /dev/null
+++ b/TODO
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (C) 2009   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:                  contact address:                        *
+ *                                                                           *
+ * Creation Date  : 11/09/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *     This file describes the features we would like to form part of a next *
+ *     release                                                               *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+TODO for NPTool:
+----------------
+   + Build a dummy detector as a simple example of how NPTool is working
+   + Add documentation
+   + Add a dedicated class to deal with materials (see example from G4 tutorial)
+   + Split physic list and give the possibility to choose which package to use
+   + Add support for messengers
+   + Build NPTool with the Autotool/Automake
+
+
+TODO for AnnularS1 detector:
+----------------------------
+   + Update the way the scorers are dealt to the new way (no more loop in ReadSensitive)
+
+TODO for Gaspard:
+-----------------
+   + Add documentation
+   + Check bug when light and heavy particles are detected in the same event
+   + Improve analysis in order to deal with heterogeneous detector shapes