From 43a9450d968b8e8405e19a559e9e62a34c5be060 Mon Sep 17 00:00:00 2001
From: deserevi <deserevi@nptool>
Date: Tue, 28 Sep 2010 16:01:59 +0000
Subject: [PATCH] * Add work from M. Labiche on the NPTool.Paris branch    +
 NPLib       - Add TParisPhysics.{h,cxx} class       - Add Paris.{h,cxx} class

   + NPSimulation
      - Add Cluster class for Paris
      - Add Shields classes for Paris
      - Add scorers
      - Add reaction chamber class (Chamber.{hh,cc})

   + NPAnalysis
      - Add framework for analysings the results of the G4 simulation

   + Inputs
      - Add a lot of different Paris geometrical files
---
 Inputs/DetectorConfiguration/Paris1.detector  |  153 +++
 .../Paris1moduleChamber.detector              |   53 +
 Inputs/DetectorConfiguration/Paris2.detector  |  195 +++
 .../Paris3by3_CsIshield.detector              |  126 ++
 .../Paris3by3_CsIshield208.detector           |  674 ++++++++++
 .../Paris3by3module.detector                  |   35 +
 .../ParisAll_208.detector                     |  792 ++++++++++++
 .../ParisAll_208pipe1.detector                |  792 ++++++++++++
 .../ParisAll_208pipe1noshield.detector        |  212 ++++
 .../ParisAll_208pipe2.detector                |  792 ++++++++++++
 .../ParisAll_208pipe2noshield.detector        |  211 ++++
 .../ParisAll_208tilt.detector                 |  220 ++++
 .../ParisAll_235.detector                     |  340 ++++++
 .../ParisAll_278.detector                     |  213 ++++
 .../ParisPhShield.detector                    |  112 ++
 .../gaspardParis.detector                     |  557 +++++++++
 .../gaspardParisAll.detector                  |  741 +++++++++++
 .../gaspardV1_r150.detector                   |  672 ++++++++++
 .../gaspardV1_r150_69det.detector             |  711 +++++++++++
 .../gaspardV1_r150asy.detector                |  690 +++++++++++
 .../gaspardV1_r150asy_1.detector              |  670 ++++++++++
 Inputs/EventGenerator/Source.reaction         |   22 +
 Inputs/EventGenerator/gamma.source            |   16 +
 Inputs/EventGenerator/isotropic.source        |    6 +-
 Licence/Contributor                           |    5 +-
 NPAnalysis/Paris/Makefile                     |   10 +
 NPAnalysis/Paris/RunToTreat.txt               |    5 +
 NPAnalysis/Paris/include/ObjectManager.hh     |  130 ++
 NPAnalysis/Paris/src/Analysis.cc              |  199 +++
 NPAnalysis/Paris/src/GNUmakefile              |   42 +
 NPEnvironment.tchrc                           |    6 +-
 NPLib/Makefile                                |   16 +-
 NPLib/Paris/Makefile                          |   15 +-
 NPLib/Paris/Paris.cxx                         |  886 ++++++++++++++
 NPLib/Paris/Paris.h                           |  139 +++
 NPLib/Paris/TParisData.cxx                    |   54 +-
 NPLib/Paris/TParisData.h                      |  177 ++-
 NPLib/Paris/TParisPhysics.cxx                 |  146 +++
 NPLib/Paris/TParisPhysics.h                   |   82 ++
 NPLib/README                                  |   29 +-
 NPLib/Shield/Makefile                         |  313 +++++
 NPLib/Shield/Shield.cxx                       |  871 +++++++++++++
 NPLib/Shield/Shield.h                         |  138 +++
 NPLib/Shield/TShieldData.cxx                  |   84 ++
 NPLib/Shield/TShieldData.h                    |  155 +++
 NPLib/Shield/TShieldPhysics.cxx               |  103 ++
 NPLib/Shield/TShieldPhysics.h                 |   81 ++
 NPLib/VDetector/DetectorManager.cxx           |   39 +
 NPLib/liblist                                 |    3 +-
 NPSimulation/include/Chamber.hh               |  111 ++
 NPSimulation/include/DetectorConstruction.hh  |    9 +-
 .../include/EventGeneratorIsotropic.hh        |    2 +-
 NPSimulation/include/GaspardTrackerSquare.hh  |    8 +-
 NPSimulation/include/Paris.hh                 |    2 +-
 NPSimulation/include/ParisCluster.hh          |  162 +++
 NPSimulation/include/ParisModule.hh           |    2 +-
 .../{ParisPhoswitch.hh => ParisPhoswich.hh}   |   33 +-
 NPSimulation/include/ParisScorers.hh          |  175 +++
 NPSimulation/include/Shield.hh                |   73 ++
 NPSimulation/include/ShieldClParis.hh         |  148 +++
 NPSimulation/include/ShieldModule.hh          |   92 ++
 NPSimulation/include/ShieldPhParis.hh         |  158 +++
 NPSimulation/include/ShieldScorers.hh         |  107 ++
 NPSimulation/src/Chamber.cc                   |  255 ++++
 NPSimulation/src/DetectorConstruction.cc      |   84 +-
 NPSimulation/src/EventGeneratorIsotropic.cc   |    2 +
 NPSimulation/src/GaspardTrackerDummyShape.cc  |    9 +
 NPSimulation/src/GeneralScorers.cc            |    4 +-
 NPSimulation/src/Paris.cc                     |   29 +-
 NPSimulation/src/ParisCluster.cc              | 1084 +++++++++++++++++
 NPSimulation/src/ParisModule.cc               |    5 +-
 NPSimulation/src/ParisPhoswich.cc             |  996 +++++++++++++++
 NPSimulation/src/ParisScorers.cc              |  423 +++++++
 NPSimulation/src/PhysicsList.cc               |   86 +-
 NPSimulation/src/Shield.cc                    |  150 +++
 .../{ParisPhoswitch.cc => ShieldClParis.cc}   |  365 ++++--
 NPSimulation/src/ShieldModule.cc              |   61 +
 NPSimulation/src/ShieldPhParis.cc             |  805 ++++++++++++
 NPSimulation/src/ShieldScorers.cc             |  231 ++++
 NPSimulation/vasigamma.mac                    |   27 +
 NPSimulation/vis.mac                          |   34 +-
 81 files changed, 18292 insertions(+), 173 deletions(-)
 create mode 100644 Inputs/DetectorConfiguration/Paris1.detector
 create mode 100644 Inputs/DetectorConfiguration/Paris1moduleChamber.detector
 create mode 100644 Inputs/DetectorConfiguration/Paris2.detector
 create mode 100644 Inputs/DetectorConfiguration/Paris3by3_CsIshield.detector
 create mode 100644 Inputs/DetectorConfiguration/Paris3by3_CsIshield208.detector
 create mode 100644 Inputs/DetectorConfiguration/Paris3by3module.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208pipe1.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208pipe1noshield.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208pipe2.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208pipe2noshield.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_208tilt.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_235.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisAll_278.detector
 create mode 100644 Inputs/DetectorConfiguration/ParisPhShield.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardParis.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardParisAll.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardV1_r150.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardV1_r150_69det.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardV1_r150asy.detector
 create mode 100644 Inputs/DetectorConfiguration/gaspardV1_r150asy_1.detector
 create mode 100644 Inputs/EventGenerator/Source.reaction
 create mode 100644 Inputs/EventGenerator/gamma.source
 create mode 100644 NPAnalysis/Paris/Makefile
 create mode 100644 NPAnalysis/Paris/RunToTreat.txt
 create mode 100644 NPAnalysis/Paris/include/ObjectManager.hh
 create mode 100644 NPAnalysis/Paris/src/Analysis.cc
 create mode 100644 NPAnalysis/Paris/src/GNUmakefile
 create mode 100644 NPLib/Paris/Paris.cxx
 create mode 100644 NPLib/Paris/Paris.h
 create mode 100644 NPLib/Paris/TParisPhysics.cxx
 create mode 100644 NPLib/Paris/TParisPhysics.h
 create mode 100644 NPLib/Shield/Makefile
 create mode 100644 NPLib/Shield/Shield.cxx
 create mode 100644 NPLib/Shield/Shield.h
 create mode 100644 NPLib/Shield/TShieldData.cxx
 create mode 100644 NPLib/Shield/TShieldData.h
 create mode 100644 NPLib/Shield/TShieldPhysics.cxx
 create mode 100644 NPLib/Shield/TShieldPhysics.h
 create mode 100644 NPSimulation/include/Chamber.hh
 create mode 100644 NPSimulation/include/ParisCluster.hh
 rename NPSimulation/include/{ParisPhoswitch.hh => ParisPhoswich.hh} (89%)
 create mode 100644 NPSimulation/include/ParisScorers.hh
 create mode 100644 NPSimulation/include/Shield.hh
 create mode 100644 NPSimulation/include/ShieldClParis.hh
 create mode 100644 NPSimulation/include/ShieldModule.hh
 create mode 100644 NPSimulation/include/ShieldPhParis.hh
 create mode 100644 NPSimulation/include/ShieldScorers.hh
 create mode 100644 NPSimulation/src/Chamber.cc
 create mode 100644 NPSimulation/src/ParisCluster.cc
 create mode 100644 NPSimulation/src/ParisPhoswich.cc
 create mode 100644 NPSimulation/src/ParisScorers.cc
 create mode 100644 NPSimulation/src/Shield.cc
 rename NPSimulation/src/{ParisPhoswitch.cc => ShieldClParis.cc} (54%)
 create mode 100644 NPSimulation/src/ShieldModule.cc
 create mode 100644 NPSimulation/src/ShieldPhParis.cc
 create mode 100644 NPSimulation/src/ShieldScorers.cc
 create mode 100644 NPSimulation/vasigamma.mac

diff --git a/Inputs/DetectorConfiguration/Paris1.detector b/Inputs/DetectorConfiguration/Paris1.detector
new file mode 100644
index 000000000..b2dd336b3
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris1.detector
@@ -0,0 +1,153 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=		-84.5 	-235	84.5
+	X1_Y128= 	84.5	-235	84.5
+	X128_Y1= 	-84.5	-235	-84.5	
+	X128_Y128= 	84.5	-235	-84.5	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-225.920617	-106.419571	84.5
+	X1_Y128=	-106.419571	-225.920617	84.5
+	X128_Y1=	-225.920617	-106.419571	-84.5
+	X128_Y128=	-106.419571	-225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-235	84.5	84.5
+	X1_Y128=	-235	-84.5	84.5
+	X128_Y1=	-235	84.5	-84.5
+	X128_Y128=	-235	-84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=		-106.419571	225.920617	84.5
+	X1_Y128=	-225.920617	106.419571	84.5
+	X128_Y1=	-106.419571	225.920617	-84.5
+	X128_Y128=	-225.920617	106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		84.5	235	84.5
+	X1_Y128=	-84.5	235	84.5
+	X128_Y1=	84.5	235	-84.5
+	X128_Y128=	-84.5	235	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		225.920617	106.419571	84.5
+	X1_Y128=	106.419571	225.920617	84.5
+	X128_Y1=	225.920617	106.419571	-84.5
+	X128_Y128=	106.419571	225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		235	-84.5	84.5
+	X1_Y128=	235	84.5	84.5
+	X128_Y1=	235	-84.5	-84.5
+	X128_Y128=	235	84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		106.419571	-225.920617	84.5
+	X1_Y128=	225.920617	-106.419571	84.5
+	X128_Y1=	106.419571	-225.920617	-84.5
+	X128_Y128=	225.920617	-106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		84.5	84.5	-235
+	X1_Y128=	-84.5	84.5	-235
+	X128_Y1=	84.5	-84.5	-235
+	X128_Y128=	-84.5	-84.5	-235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		225.920617	84.5	-106.419571
+	X1_Y128=	106.419571	84.5	-225.920617
+	X128_Y1=	225.920617	-84.5	-106.419571
+	X128_Y128=	106.419571	-84.5	-225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		106.419571	84.5	225.920617
+	X1_Y128=	225.920617	84.5	106.419571
+	X128_Y1=	106.419571	-84.5	225.920617
+	X128_Y128=	225.920617	-84.5	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	84.5	235
+	X1_Y128=	84.5	84.5	235
+	X128_Y1=	-84.5	-84.5	235
+	X128_Y128=	84.5	-84.5	235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-225.920617	84.5	106.419571
+	X1_Y128=	-106.419571	84.5	225.920617
+	X128_Y1=	-225.920617	-84.5	106.419571
+	X128_Y128=	-106.419571	-84.5	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-106.419571	84.5	-225.920617
+	X1_Y128=	-225.920617	84.5	-106.419571
+	X128_Y1=	-106.419571	-84.5	-225.920617
+	X128_Y128=	-225.920617	-84.5	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	106.419571	-225.920617
+	X1_Y128=	84.5	106.419571	-225.920617
+	X128_Y1=	-84.5	225.920617	-106.419571
+	X128_Y128=	84.5	225.920617	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	225.920617	106.419571
+	X1_Y128=	84.5	225.920617	106.419571
+	X128_Y1=	-84.5	106.419571	225.920617
+	X128_Y128=	84.5	106.419571	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	-106.419571	225.920617
+	X1_Y128=	84.5	-106.419571	225.920617
+	X128_Y1=	-84.5	-225.920617	106.419571
+	X128_Y128=	84.5	-225.920617	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	-225.920617	-106.419571
+	X1_Y128=	84.5	-225.920617	-106.419571
+	X128_Y1=	-84.5	-106.419571	-225.920617
+	X128_Y128=	84.5	-106.419571	-225.920617
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/Paris1moduleChamber.detector b/Inputs/DetectorConfiguration/Paris1moduleChamber.detector
new file mode 100644
index 000000000..ba031432a
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris1moduleChamber.detector
@@ -0,0 +1,53 @@
+%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= 10.3
+%	ANGLE= 0
+%	RADIUS=	12
+%	MATERIAL= CD2
+%	NBLAYERS= 50
+%	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralChamber
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Chamber
+        Rmin= 200
+        Rmax= 202
+        PhiMin= 0.
+        PhiMax= 6.283185
+        ThetaMin= 0.
+        ThetaMax= 3.14159
+%        MATERIAL= 12C
+        MATERIAL= Alu
+%	 MATERIAL= Cu
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisPhoswich
+	X1_Y1=		-28.5 	-235	28.5
+	X1_Y128= 	28.5	-235	28.5
+	X128_Y1= 	-28.5	-235	-28.5	
+	X128_Y128= 	28.5	-235	-28.5	
+	VIS= 0
diff --git a/Inputs/DetectorConfiguration/Paris2.detector b/Inputs/DetectorConfiguration/Paris2.detector
new file mode 100644
index 000000000..f56a3d768
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris2.detector
@@ -0,0 +1,195 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-175.9824	135.677313	-95.372227
+	X1_Y128=	-199.252552	89.137008	-118.642379
+	X128_Y1=	-135.677313	135.677313	-135.677313
+	X128_Y128=	-158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	-135.677313
+	X1_Y128=	-158.947466	89.137008	-158.947466
+	X128_Y1=	-95.372227	135.677313	-175.9824
+	X128_Y128=	-118.642379	89.137008	-199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-132.559704	182.217618	-92.254617
+	X1_Y128=	-155.829857	135.677313	-115.52477
+	X128_Y1=	-92.254617	182.217618	-132.559704
+	X128_Y128=	-115.52477	135.677313	-155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-95.372227	135.677313	175.9824
+	X1_Y128=	-118.642379	89.137008	199.252552
+	X128_Y1=	-135.677313	135.677313	135.677313
+	X128_Y128=	-158.947466	89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	135.677313
+	X1_Y128=	-158.947466	89.137008	158.947466
+	X128_Y1=	-175.9824	135.677313	95.372227
+	X128_Y128=	-199.252552	89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-92.254617	182.217618	132.559704
+	X1_Y128=	-115.52477	135.677313	155.829857
+	X128_Y1=	-132.559704	182.217618	92.254617
+	X128_Y128=	-155.829857	135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		175.9824	135.677313	95.372227
+	X1_Y128=	199.252552	89.137008	118.642379
+	X128_Y1=	135.677313	135.677313	135.677313
+	X128_Y128=	158.947466	89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	135.677313	135.677313
+	X1_Y128=	158.947466	89.137008	158.947466
+	X128_Y1=	95.372227	135.677313	175.9824
+	X128_Y128=	118.642379	89.137008	199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		132.559704	182.217618	92.254617
+	X1_Y128=	155.829857	135.677313	115.52477
+	X128_Y1=	92.254617	182.217618	132.559704
+	X128_Y128=	115.52477	135.677313	155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		95.372227	135.677313	-175.9824
+	X1_Y128=	118.642379	89.137008	-199.252552
+	X128_Y1=	135.677313	135.677313	-135.677313
+	X128_Y128=	158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	135.677313	-135.677313
+	X1_Y128=	158.947466	89.137008	-158.947466
+	X128_Y1=	175.9824	135.677313	-95.372227
+	X128_Y128=	199.252552	89.137008	-118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		92.254617	182.217618	-132.559704
+	X1_Y128=	115.52477	135.677313	-155.829857
+	X128_Y1=	132.559704	182.217618	-92.254617
+	X128_Y128=	155.829857	135.677313	-115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-95.372227	-135.677313	-175.9824
+	X1_Y128=	-118.642379	-89.137008	-199.252552
+	X128_Y1=	-135.677313	-135.677313	-135.677313
+	X128_Y128=	-158.947466	-89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	-135.677313	-135.677313
+	X1_Y128=	-158.947466	-89.137008	-158.947466
+	X128_Y1=	-175.9824	-135.677313	-95.372227
+	X128_Y128=	-199.252552	-89.137008	-118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-92.254617	-182.217618	-132.559704
+	X1_Y128=	-115.52477	-135.677313	-155.829857
+	X128_Y1=	-132.559704	-182.217618	-92.254617
+	X128_Y128=	-155.829857	-135.677313	-115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		175.9824	-135.677313	-95.372227
+	X1_Y128=	199.252552	-89.137008	-118.642379
+	X128_Y1=	135.677313	-135.677313	-135.677313
+	X128_Y128=	158.947466	-89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	-135.677313	-135.677313
+	X1_Y128=	158.947466	-89.137008	-158.947466
+	X128_Y1=	95.372227	-135.677313	-175.9824
+	X128_Y128=	118.642379	-89.137008	-199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		132.559704	-182.217618	-92.254617
+	X1_Y128=	155.829857	-135.677313	-115.52477
+	X128_Y1=	92.254617	-182.217618	-132.559704
+	X128_Y128=	115.52477	-135.677313	-155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		95.372227	-135.677313	175.9824
+	X1_Y128=	118.642379	-89.137008	199.252552
+	X128_Y1=	135.677313	-135.677313	135.677313
+	X128_Y128=	158.947466	-89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	-135.677313	135.677313
+	X1_Y128=	158.947466	-89.137008	158.947466
+	X128_Y1=	175.9824	-135.677313	95.372227
+	X128_Y128=	199.252552	-89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		92.254617	-182.217618	132.559704
+	X1_Y128=	115.52477	-135.677313	155.829857
+	X128_Y1=	132.559704	-182.217618	92.254617
+	X128_Y128=	155.829857	-135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-175.9824	-135.677313	95.372227
+	X1_Y128=	-199.252552	-89.137008	118.642379
+	X128_Y1=	-135.677313	-135.677313	135.677313
+	X128_Y128=	-158.947466	-89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	-135.677313	135.677313
+	X1_Y128=	-158.947466	-89.137008	158.947466
+	X128_Y1=	-95.372227	-135.677313	175.9824
+	X128_Y128=	-118.642379	-89.137008	199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-132.559704	-182.217618	92.254617
+	X1_Y128=	-155.829857	-135.677313	115.52477
+	X128_Y1=	-92.254617	-182.217618	132.559704
+	X128_Y128=	-115.52477	-135.677313	155.829857
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/Paris3by3_CsIshield.detector b/Inputs/DetectorConfiguration/Paris3by3_CsIshield.detector
new file mode 100644
index 000000000..90998c27d
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris3by3_CsIshield.detector
@@ -0,0 +1,126 @@
+%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= 10.3
+%	ANGLE= 0
+%	RADIUS=	12
+%	MATERIAL= CD2l
+%	NBLAYERS= 50
+%	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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=		-84.5 	84.5	0
+	X1_Y128= 	84.5	84.5	0
+	X128_Y1= 	-84.5	-84.5	0
+	X128_Y128= 	84.5	-84.5	0
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0  
+%ParisCluster
+%	X1_Y1=		-84.5 	-235	84.5
+%	X1_Y128= 	84.5	-235	84.5
+%	X128_Y1= 	-84.5	-235	-84.5	
+%	X128_Y128= 	84.5	-235	-84.5	
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0  
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0  = centre of the volume
+%ParisClShield
+%	X1_Y1=		117.94 	31.125	0.
+%	X1_Y128=	117.94	-31.125	0.
+%	X128_Y1= 	-117.94	31.125	0.
+%	X128_Y128= 	-117.94	-31.125	0.	
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%A one bottom corner  
+%ParisClShield
+%	X1_Y1=		31.125 	62.25	75.
+%	X1_Y128=	31.125	0.	75.
+%	X128_Y1= 	-204.75	62.25	75.
+%	X128_Y128= 	-204.75	0.	75.	
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0A on top corner
+%ParisClShield
+%	X1_Y1=		-31.125. 	62.25	-75.
+%	X1_Y128=	-31.125.	0.	-75.
+%	X128_Y1= 	-267.	62.25	-75.
+%	X128_Y128= 	-267.	0.	-75.	
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from bottom corner
+ParisClShield
+	X1_Y1=		151.375	153.75	156.
+	X128_Y1= 	-84.5	153.75	156.
+	X128_Y128= 	-84.5	91.5	156.	
+	X1_Y128=	151.375	91.5	156.
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from top corner
+%ParisClShield
+%	X1_Y1=		146.375	153.75	77
+%	X128_Y1= 	-89.5	153.75	77.
+%	X128_Y128= 	-89.5	91.5	77.	
+%	X1_Y128=	146.375	91.5	77.
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from bottom corner
+ParisClShield
+	X1_Y1=		153.75	-151.375	156
+	X128_Y1= 	153.75	84.5		156.
+	X128_Y128=	91.5	84.5		156.	
+	X1_Y128=	91.5	-151.375	156.
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from top corner
+%ParisClShield
+%	X1_Y1=		153.75	-146.625	77
+%	X128_Y1= 	153.75	89.25	77.
+%	X128_Y128=	91.5	89.25	77.	
+%	X1_Y128=	91.5	-146.625	77.
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from bottom corner
+ParisClShield
+	X1_Y1=		-151.375	-153.75		156
+	X128_Y1=	84.25		-153.75		156.
+	X128_Y128= 	84.25		-91.5		156.	
+	X1_Y128= 	-151.375	-91.5		156.
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from top corner
+%ParisClShield
+%	X1_Y1=		-146.625	-153.75		77
+%	X128_Y1=	89.25		-153.75		77.
+%	X128_Y128= 	89.25		-91.5		77.	
+%	X1_Y128= 	-146.625	-91.5		77.
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from bottom corner
+ParisClShield
+	X1_Y1=		-153.75	151.375		156
+	X128_Y1=	-153.75	-84.5		156.
+	X128_Y128=	-91.5	-84.5		156.	
+	X1_Y128= 	-91.5	151.375		156.
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% from top corner
+%ParisClShield
+%	X1_Y1=		-153.75	146.375		77
+%	X128_Y1=	-153.75	-89.5		77.
+%	X128_Y128=	-91.5	-89.5		77.	
+%	X1_Y128= 	-91.5	146.375		77.
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0A
+%ParisClShield
+%	THETA=	0.
+%	PHI= 	0.
+%	R=	150.
+%	BETA= 0.	0.	0.	
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/Paris3by3_CsIshield208.detector b/Inputs/DetectorConfiguration/Paris3by3_CsIshield208.detector
new file mode 100644
index 000000000..b551d5d1f
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris3by3_CsIshield208.detector
@@ -0,0 +1,674 @@
+%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= 10.3
+%	ANGLE= 0
+%	RADIUS=	12
+%	MATERIAL= CD2l
+%	NBLAYERS= 50
+%	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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-50.418664	-87.327687	-217.661051
+	X1_Y128=	-188.406586	-87.327687	-120.088856
+	X128_Y1=	18.575297	-206.828733	-120.088856
+	X128_Y128=	-119.412625	-206.828733	-22.51666
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%	1			
+%ShieldClParis			
+%X1_Y1=	-334.9677217	-148.6692001	-211.5267063
+%X1_Y128=	-309.5542658	-192.6865973	-175.586652
+%X128_Y1=	-142.3765903	-148.6692	-347.7092004
+%X128_Y128=	-116.9631343	-192.6865972	-311.7691461
+%VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-212.3401423	-364.4251571	-33.9914984
+X1_Y128=	-161.51323	-364.4251571	-69.93155248
+X128_Y1=	-308.6357072	-197.6363448	-170.1739932
+X128_Y128=	-257.8087949	-197.6363448	-206.1140473
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	37.76296724	-366.1045357	-208.7842915
+X1_Y128=	12.34951131	-322.0871385	-244.7243458
+X128_Y1=	-154.8281642	-366.1045357	-72.60179742
+X128_Y128=	-180.2416202	-322.0871385	-108.5418517
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-84.86461219	-150.3485787	-386.3194994
+X1_Y128=	-135.6915245	-150.3485787	-350.3794453
+X128_Y1=	11.43095278	-317.137391	-250.1370047
+X128_Y128=	-39.3959595	-317.137391	-214.1969506
+VIS=all			
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=	-190.237216	-86.499477	-117.780059
+	X1_Y128=	-239.023313	-1.999477	20.207863
+	X128_Y1=	-121.243255	-206.000523	-20.207863
+	X128_Y128=	-170.029352	-121.500523	117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	2		
+%ShieldClParis			
+%X1_Y1=	-421.6181269	2.264017201	35.81176364
+%X1_Y128=	-396.1220195	-41.89653619	71.51689679
+%X128_Y1=	-353.971956	-114.9025878	-157.4057249
+%X128_Y128=	-328.4758486	-159.0631412	-121.7005917
+%VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-297.3273652	-213.0138971	212.7697599
+X1_Y128=	-279.4747986	-243.9354494	161.7775451
+X128_Y1=	-393.9361094	-45.68264358	77.47741798
+X128_Y128=	-376.0835428	-76.60419594	26.48520322
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-208.848367	-366.2640172	-35.81176364
+X1_Y128=	-234.3444744	-322.1034638	-71.51689679
+X128_Y1=	-276.494538	-249.0974122	157.4057249
+X128_Y128=	-301.9906454	-204.9368588	121.7005917
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+%ShieldClParis			
+%X1_Y1=	-333.1391288	-150.9861029	-212.7697599
+%X1_Y128=	-350.9916954	-120.0645506	-161.7775451
+%X128_Y1=	-236.5303845	-318.3173564	-77.47741806
+%X128_Y128=	-254.3829511	-287.3958041	-26.48520328
+%VIS=all			
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisCluster
+	X1_Y1=	-238.82525	0	22.51666
+	X1_Y128=	-169.831289	119.501046	120.088856
+	X128_Y1=	-169.831289	-119.501046	120.088856
+	X128_Y128=	-100.837328	0	217.661051
+	VIS= 0			
+%%%%%%%%%%%%%%%%%%%%%%%%	3		
+ShieldClParis			
+X1_Y1=	-298.1743452	215.7559566	208.784291
+X1_Y128=	-272.7608891	171.7385595	244.7243453
+X128_Y1=	-394.4699107	48.9671447	72.60179615
+X128_Y128=	-369.0564547	4.949747549	108.5418504
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-172.637996	1.679378555	386.3194988
+X1_Y128=	-198.0514521	-42.33801856	350.3794445
+X128_Y1=	-268.9335614	168.4681906	250.1370041
+X128_Y128=	-294.3470175	124.4507935	214.1969498
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-296.2351659	-215.7559566	211.5267047
+X1_Y128=	-321.6486219	-171.7385595	175.5866504
+X128_Y1=	-199.9396004	-48.9671447	347.7091996
+X128_Y128=	-225.3530564	-4.949747549	311.7691453
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-421.7715151	-1.679378528	33.99149691
+X1_Y128=	-396.358059	42.33801857	69.9315512
+X128_Y1=	-325.4759497	-168.4681907	170.1739916
+X128_Y128=	-300.0624936	-124.4507936	206.1140459
+VIS=all			
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisCluster
+	X1_Y1=	-167.720555	121.500523	121.045191
+	X1_Y128=	-21.362262	206.000523	121.045191
+	X128_Y1=	-98.726594	1.999477	218.617387
+	X128_Y128=	47.631699	86.499477	218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	4		
+ShieldClParis			
+X1_Y1=	-35.85246778	366.2640171	208.8413835
+X1_Y128=	-10.68804787	322.1034637	244.7810551
+X128_Y1=	-240.5683866	249.0974121	208.2129755
+X128_Y128=	-215.4039666	204.9368587	244.1526471
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	89.5548772	150.9861028	385.009836
+X1_Y128=	35.52810055	120.0645505	384.8439923
+X128_Y1=	-5.797051298	318.3173563	248.8287913
+X128_Y128=	-59.82382795	287.395804	248.6629475
+VIS=all					
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-174.3030301	-2.264017362	385.5681276
+X1_Y128=	-199.46745	41.89653603	349.6284561
+X128_Y1=	30.41288869	114.9025876	386.1965356
+X128_Y128=	5.248468782	159.063141	350.256864
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-299.7103751	213.013897	209.399675
+X1_Y128=	-245.6835984	243.9354493	209.5655188
+X128_Y1=	-204.3584466	45.68264341	345.5807198
+X128_Y128=	-150.33167	76.60419575	345.7465636
+VIS=all			
+		
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisCluster
+	X1_Y1=	-18.575297	206.828733	120.088856
+	X1_Y128=	119.412625	206.828733	22.51666
+	X128_Y1=	50.418664	87.327687	217.661051
+	X128_Y128=	188.406586	87.327687	120.088856
+	VIS= 0	
+%%%%%%%%%%%%%%%%%%%%%%%%	5		
+ShieldClParis			
+X1_Y1=	209.4313732	366.1045359	33.99149673
+X1_Y128=	234.8448293	322.0871387	69.93155092
+X128_Y1=	16.84024247	366.104536	170.1739919
+X128_Y128=	42.25369861	322.0871388	206.1140461
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	335.9373126	150.3485792	208.7842904
+X1_Y128=	285.1104005	150.3485792	244.7243447
+X128_Y1=	239.6417468	317.1373913	72.60179588
+X128_Y128=	188.8148347	317.1373913	108.5418502
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	87.77338339	148.6692006	386.3194987
+X1_Y128=	62.35992725	192.6865977	350.3794445
+X128_Y1=	280.3645141	148.6692005	250.1370036
+X128_Y128=	254.951058	192.6865977	214.1969494
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-38.73255596	364.4251573	211.5267051
+X1_Y128=	12.09435614	364.4251573	175.5866507
+X128_Y1=	57.56300972	197.6363452	347.7091996
+X128_Y128=	108.3899218	197.6363452	311.7691452
+VIS=all			
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisCluster
+	X1_Y1=	121.243255	206.000523	20.207863
+	X1_Y128=	170.029352	121.500523	-117.780059
+	X128_Y1=	190.237216	86.499477	117.780059
+	X128_Y128=	239.023313	1.999477	-20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	6		
+ShieldClParis			
+X1_Y1=	295.6735001	215.8784753	-212.1865178
+X1_Y128=	321.1696075	171.717922	-176.4813846
+X128_Y1=	228.0273291	333.0450805	-18.96902942
+X128_Y128=	253.5234365	288.8845271	16.73610377
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	421.3265059	-1.758914768	-39.11949374
+X1_Y128=	403.4739393	29.16263761	11.87272101
+X128_Y1=	324.7177617	165.5723387	-174.4118357
+X128_Y128=	306.8651951	196.493891	-123.419621
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	334.7929938	148.1215246	212.1865178
+X1_Y128=	309.2968865	192.282078	176.4813846
+X128_Y1=	402.4391648	30.95491952	18.96902942
+X128_Y128=	376.9430575	75.11547288	-16.73610377
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	209.1399881	365.7589148	39.11949372
+X1_Y128=	226.9925547	334.8373624	-11.87272102
+X128_Y1=	305.7487323	198.4276614	174.4118358
+X128_Y128=	323.6012989	167.506109	123.419621
+VIS=all			
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisCluster
+	X1_Y1=	169.831289	119.501046	-120.088856
+	X1_Y128=	100.837328	0	-217.661051
+	X128_Y1=	238.82525	0	-22.51666
+	X128_Y128=	169.831289	-119.501046	-120.088856
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	7		
+ShieldClParis			
+X1_Y1=	172.6379967	1.679378615	-386.3194985
+X1_Y128=	198.0514528	-42.3380185	-350.3794441
+X128_Y1=	268.9335619	168.4681907	-250.1370035
+X128_Y128=	294.3470179	124.4507935	-214.1969492
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	296.2351663	-215.7559566	-211.5267042
+X1_Y128=	321.6486223	-171.7385595	-175.5866499
+X128_Y1=	199.9396011	-48.96714461	-347.7091992
+X128_Y128=	225.3530571	-4.949747477	-311.7691448
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	421.7715152	-1.679378615	-33.99149608
+X1_Y128=	396.3580592	42.3380185	-69.93155041
+X128_Y1=	325.47595	-168.4681907	-170.173991
+X128_Y128=	300.062494	-124.4507935	-206.1140454
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	298.1743456	215.7559566	-208.7842904
+X1_Y128=	272.7608897	171.7385595	-244.7243447
+X128_Y1=	394.4699109	48.96714468	-72.60179535
+X128_Y128=	369.0564549	4.949747536	-108.5418497
+VIS=all			
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ParisCluster
+	X1_Y1=	98.726594	-1.999477	-218.617387
+	X1_Y128=	-47.631699	-86.499477	-218.617387
+	X128_Y1=	167.720555	-121.500523	-121.045191
+	X128_Y128=	21.362262	-206.000523	-121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	8		
+ShieldClParis			
+X1_Y1=	-88.45370297	-148.1215245	-386.374701
+X1_Y128=	-63.28928301	-192.2820779	-350.4350294
+X128_Y1=	116.2622157	-30.95491938	-385.7462932
+X128_Y128=	141.4266357	-75.11547275	-349.8066216
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	32.83111694	-365.7589147	-210.2189031
+X1_Y128=	86.85789358	-334.8373623	-210.0530594
+X128_Y1=	-62.52081164	-198.4276612	-346.3999479
+X128_Y128=	-8.494035002	-167.5061088	-346.2341042
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	298.6092008	-215.8784752	-208.0348102
+X1_Y128=	273.4447809	-171.7179219	-243.9744817
+X128_Y1=	93.89328213	-333.0450804	-208.663218
+X128_Y128=	68.72886217	-288.884527	-244.6028895
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	177.3243809	1.758914928	-384.190608
+X1_Y128=	123.2976043	-29.16263747	-384.3564517
+X128_Y1=	272.6763096	-165.5723385	-248.0095632
+X128_Y128=	218.6495329	-196.4938909	-248.175407
+VIS=all			
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ParisCluster
+	X1_Y1=	50.418664	-87.327687	217.661051
+	X1_Y128=	188.406586	-87.327687	120.088856
+	X128_Y1=	-18.575297	-206.828733	120.088856
+	X128_Y128=	119.412625	-206.828733	22.51666
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%		9	
+ShieldClParis			
+X1_Y1=	334.9677226	-148.6692001	211.5267049
+X1_Y128=	309.5542665	-192.6865973	175.5866508
+X128_Y1=	142.3765917	-148.6692	347.7091998
+X128_Y128=	116.9631356	-192.6865972	311.7691457
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	212.3401425	-364.4251571	33.99149755
+X1_Y128=	161.5132303	-364.4251571	69.93155184
+X128_Y1=	308.6357079	-197.6363448	170.173992
+X128_Y128=	257.8087958	-197.6363448	206.1140463
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-37.7629664	-366.1045357	208.7842917
+X1_Y128=	-12.34951033	-322.0871385	244.7243459
+X128_Y1=	154.8281645	-366.1045357	72.6017968
+X128_Y128=	180.2416206	-322.0871385	108.541851
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	84.86461374	-150.3485787	386.3194991
+X1_Y128=	135.6915259	-150.3485787	350.3794448
+X128_Y1=	-11.43095178	-317.137391	250.1370047
+X128_Y128=	39.39596036	-317.137391	214.1969504
+VIS=all		
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ParisCluster
+	X1_Y1=	190.237216	-86.499477	117.780059
+	X1_Y128=	239.023313	-1.999477	-20.207863
+	X128_Y1=	121.243255	-206.000523	20.207863
+	X128_Y128=	170.029352	-121.500523	-117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	10		
+ShieldClParis			
+X1_Y1=	421.6181269	2.264017214	-35.81176364
+X1_Y128=	396.1220195	-41.89653617	-71.51689679
+X128_Y1=	353.971956	-114.9025878	157.4057249
+X128_Y128=	328.4758486	-159.0631412	121.7005917
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	297.3273652	-213.013897	-212.7697599
+X1_Y128=	279.4747986	-243.9354494	-161.7775451
+X128_Y1=	393.9361094	-45.68264357	-77.47741798
+X128_Y128=	376.0835428	-76.60419593	-26.48520322
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	208.8483671	-366.2640172	35.81176364
+X1_Y128=	234.3444744	-322.1034638	71.51689679
+X128_Y1=	276.494538	-249.0974122	-157.4057249
+X128_Y128=	301.9906454	-204.9368588	-121.7005917
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	333.1391288	-150.9861029	212.7697599
+X1_Y128=	350.9916954	-120.0645506	161.7775451
+X128_Y1=	236.5303846	-318.3173564	77.47741806
+X128_Y128=	254.3829511	-287.3958041	26.48520328
+VIS=all				
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ParisCluster
+	X1_Y1=	167.720555	121.500523	-121.045191
+	X1_Y128=	21.362262	206.000523	-121.045191
+	X128_Y1=	98.726594	1.999477	-218.617387
+	X128_Y128=	-47.631699	86.499477	-218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	11		
+ShieldClParis			
+X1_Y1=	35.85246778	366.2640171	-208.8413835
+X1_Y128=	10.68804787	322.1034637	-244.7810551
+X128_Y1=	240.5683866	249.0974121	-208.2129755
+X128_Y128=	215.4039666	204.9368587	-244.1526471
+VIS=all					
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-89.5548772	150.9861028	-385.009836
+X1_Y128=	-35.52810055	120.0645505	-384.8439923
+X128_Y1=	5.797051298	318.3173563	-248.8287913
+X128_Y128=	59.82382795	287.395804	-248.6629475
+VIS=all				
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	174.3030301	-2.264017362	-385.5681276
+X1_Y128=	199.46745	41.89653603	-349.6284561
+X128_Y1=	-30.41288869	114.9025876	-386.1965356
+X128_Y128=	-5.248468782	159.063141	-350.256864
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	299.7103751	213.013897	-209.399675
+X1_Y128=	245.6835984	243.9354493	-209.5655188
+X128_Y1=	204.3584466	45.68264341	-345.5807198
+X128_Y128=	150.33167	76.60419575	-345.7465636
+VIS=all		
+			
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ParisCluster
+	X1_Y1=	18.575297	206.828733	-120.088856
+	X1_Y128=	-119.412625	206.828733	-22.51666
+	X128_Y1=	-50.418664	87.327687	-217.661051
+	X128_Y128=	-188.406586	87.327687	-120.088856
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	12		
+ShieldClParis			
+X1_Y1=	-209.4313732	366.1045359	-33.99149673
+X1_Y128=	-234.8448293	322.0871387	-69.93155092
+X128_Y1=	-16.84024247	366.104536	-170.1739919
+X128_Y128=	-42.25369861	322.0871388	-206.1140461
+VIS=all					
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-335.9373126	150.3485792	-208.7842904
+X1_Y128=	-285.1104005	150.3485792	-244.7243447
+X128_Y1=	-239.6417468	317.1373913	-72.60179588
+X128_Y128=	-188.8148347	317.1373913	-108.5418502
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-87.77338339	148.6692006	-386.3194987
+X1_Y128=	-62.35992725	192.6865977	-350.3794445
+X128_Y1=	-280.3645141	148.6692005	-250.1370036
+X128_Y128=	-254.951058	192.6865977	-214.1969494
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	38.73255596	364.4251573	-211.5267051
+X1_Y128=	-12.09435614	364.4251573	-175.5866507
+X128_Y1=	-57.56300972	197.6363452	-347.7091996
+X128_Y128=	-108.3899218	197.6363452	-311.7691452
+VIS=all			
+		
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ParisCluster
+	X1_Y1=	-121.243255	206.000523	-20.207863
+	X1_Y128=	-170.029352	121.500523	117.780059
+	X128_Y1=	-190.237216	86.499477	-117.780059
+	X128_Y128=	-239.023313	1.999477	20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	13			
+ShieldClParis			
+X1_Y1=	-295.6735001	215.8784753	212.1865178
+X1_Y128=	-321.1696075	171.717922	176.4813846
+X128_Y1=	-228.0273291	333.0450805	18.96902942
+X128_Y128=	-253.5234365	288.8845271	-16.73610377
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-421.3265059	-1.758914768	39.11949374
+X1_Y128=	-403.4739393	29.16263761	-11.87272101
+X128_Y1=	-324.7177617	165.5723387	174.4118357
+X128_Y128=	-306.8651951	196.493891	123.419621
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-334.7929938	148.1215246	-212.1865178
+X1_Y128=	-309.2968865	192.282078	-176.4813846
+X128_Y1=	-402.4391648	30.95491952	-18.96902942
+X128_Y128=	-376.9430575	75.11547288	16.73610377
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-209.1399881	365.7589148	-39.11949372
+X1_Y128=	-226.9925547	334.8373624	11.87272102
+X128_Y1=	-305.7487323	198.4276614	-174.4118358
+X128_Y128=	-323.6012989	167.506109	-123.419621
+VIS=all	
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ParisCluster
+	X1_Y1=	-98.726594	-1.999477	218.617387
+	X1_Y128=	47.631699	-86.499477	218.617387
+	X128_Y1=	-167.720555	-121.500523	121.045191
+	X128_Y128=	-21.362262	-206.000523	121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	14		
+ShieldClParis			
+X1_Y1=	88.45370297	-148.1215245	386.374701
+X1_Y128=	63.28928301	-192.2820779	350.4350294
+X128_Y1=	-116.2622157	-30.95491938	385.7462932
+X128_Y128=	-141.4266357	-75.11547275	349.8066216
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-32.83111694	-365.7589147	210.2189031
+X1_Y128=	-86.85789358	-334.8373623	210.0530594
+X128_Y1=	62.52081164	-198.4276612	346.3999479
+X128_Y128=	8.494035002	-167.5061088	346.2341042
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-298.6092008	-215.8784752	208.0348102
+X1_Y128=	-273.4447809	-171.7179219	243.9744817
+X128_Y1=	-93.89328213	-333.0450804	208.663218
+X128_Y128=	-68.72886217	-288.884527	244.6028895
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-177.3243809	1.758914928	384.190608
+X1_Y128=	-123.2976043	-29.16263747	384.3564517
+X128_Y1=	-272.6763096	-165.5723385	248.0095632
+X128_Y128=	-218.6495329	-196.4938909	248.175407
+VIS=all	
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ParisCluster
+	X1_Y1=	189.082817	-84.5	121.045191
+	X1_Y128=	51.094895	-84.5	218.617387
+	X128_Y1=	189.082817	84.5	121.045191
+	X128_Y128=	51.094895	84.5	218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%	15		
+ShieldClParis			
+X1_Y1=	333.7526679	153.75	209.8083586
+X1_Y128=	333.7526678	91.49999999	209.8083586
+X128_Y1=	141.1615368	153.7500001	345.9908533
+X128_Y128=	141.1615367	91.50000008	345.9908533
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	335.6918472	-151.375	208.4371517
+X1_Y128=	284.864935	-151.375	244.377206
+X128_Y1=	335.6918472	84.49999999	208.4371517
+X128_Y128=	284.8649351	84.5	244.3772059
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	86.55832786	-153.75	384.6011525
+X1_Y128=	86.55832788	-91.49999999	384.6011525
+X128_Y1=	279.1494589	-153.7500001	248.4186578
+X128_Y128=	279.149459	-91.50000008	248.4186578
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	84.61914852	151.375	385.9723594
+X1_Y128=	135.4460607	151.375	350.0323051
+X128_Y1=	84.6191484	-84.49999996	385.9723595
+X128_Y128=	135.4460606	-84.5	350.0323052
+VIS=all	
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ParisCluster
+	X1_Y1=	117.780059	208	20.207863
+	X1_Y128=	-20.207863	208	117.780059
+	X128_Y1=	20.207863	208	-117.780059
+	X128_Y128=	-117.780059	208	-20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%		16	
+ShieldClParis			
+X1_Y1=	35.81176366	364	-212.7697599
+X1_Y128=	71.51689679	364	-161.7775451
+X128_Y1=	-157.4057249	364	-77.47741806
+X128_Y128=	-121.7005917	364	-26.48520328
+VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis			
+X1_Y1=	212.7697599	364	35.81176364
+X1_Y128=	161.7775451	364	71.51689679
+X128_Y1=	77.47741802	364	-157.4057249
+X128_Y128=	26.48520325	364	-121.7005917
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-35.81176363	364	212.7697599
+X1_Y128=	-71.51689678	364	161.7775451
+X128_Y1=	157.4057248	364	77.47741798
+X128_Y128=	121.7005917	364	26.48520322
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-212.7697599	364	-35.81176364
+X1_Y128=	-161.7775451	364	-71.51689679
+X128_Y1=	-77.47741802	364	157.4057249
+X128_Y128=	-26.48520325	364	121.7005917
+VIS=all									
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ParisCluster
+	X1_Y1=	-51.094895	84.5	-218.617387
+	X1_Y128=	-189.082817	84.5	-121.045191
+	X128_Y1=	-51.094895	-84.5	-218.617387
+	X128_Y128=	-189.082817	-84.5	-121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%% 17			
+ShieldClParis			
+X1_Y1=	-333.7526679	153.75	-209.8083586
+X1_Y128=	-333.7526678	91.49999999	-209.8083586
+X128_Y1=	-141.1615368	153.7500001	-345.9908533
+X128_Y128=	-141.1615367	91.50000008	-345.9908533
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-335.6918472	-151.375	-208.4371517
+X1_Y128=	-284.864935	-151.375	-244.377206
+X128_Y1=	-335.6918472	84.49999999	-208.4371517
+X128_Y128=	-284.8649351	84.5	-244.3772059
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-86.55832786	-153.75	-384.6011525
+X1_Y128=	-86.55832788	-91.49999999	-384.6011525
+X128_Y1=	-279.1494589	-153.7500001	-248.4186578
+X128_Y128=	-279.149459	-91.50000008	-248.4186578
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-84.61914852	151.375	-385.9723594
+X1_Y128=	-135.4460607	151.375	-350.0323051
+X128_Y1=	-84.6191484	-84.49999996	-385.9723595
+X128_Y128=	-135.4460606	-84.5	-350.0323052
+VIS=all	
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18
+ParisCluster
+	X1_Y1=	20.207863	-208	-117.780059
+	X1_Y128=	-117.780059	-208	-20.207863
+	X128_Y1=	117.780059	-208	20.207863
+	X128_Y128=	-20.207863	-208	117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%		18	
+ShieldClParis			
+X1_Y1=	212.1865178	-364	39.11949374
+X1_Y128=	176.4813846	-364	-11.87272101
+X128_Y1=	18.96902938	-364	174.4118357
+X128_Y128=	-16.73610379	-364	123.419621
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	39.11949373	-364	-212.1865178
+X1_Y128=	-11.87272101	-364	-176.4813846
+X128_Y1=	174.4118357	-364	-18.96902942
+X128_Y128=	123.419621	-364	16.73610377
+VIS=all						
+%%%%%%%%%%%%%%%%%%%%%%%%			
+ShieldClParis			
+X1_Y1=	-212.1865178	-364	-39.11949372
+X1_Y128=	-176.4813846	-364	11.87272102
+X128_Y1=	-18.96902945	-364	-174.4118358
+X128_Y128=	16.73610374	-364	-123.419621
+VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%		
+ShieldClParis			
+X1_Y1=	-39.11949373	-364	212.1865178
+X1_Y128=	11.87272101	-364	176.4813846
+X128_Y1=	-174.4118357	-364	18.96902942
+X128_Y128=	-123.419621	-364	-16.73610377
+VIS=all			
+%%%%%%%%%%%%%%%%%%%%%%%%			
diff --git a/Inputs/DetectorConfiguration/Paris3by3module.detector b/Inputs/DetectorConfiguration/Paris3by3module.detector
new file mode 100644
index 000000000..59dca7e84
--- /dev/null
+++ b/Inputs/DetectorConfiguration/Paris3by3module.detector
@@ -0,0 +1,35 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=		-84.5 	-235	84.5
+	X1_Y128= 	84.5	-235	84.5
+	X128_Y1= 	-84.5	-235	-84.5	
+	X128_Y128= 	84.5	-235	-84.5	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
diff --git a/Inputs/DetectorConfiguration/ParisAll_208.detector b/Inputs/DetectorConfiguration/ParisAll_208.detector
new file mode 100644
index 000000000..07ea870f2
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208.detector
@@ -0,0 +1,792 @@
+%Fichier de configuration manip E225
+%%%%%%%%%%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
+%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
+%Thickness in micrometer
+%Radius in mm
+%Temperature in K, Pressure in bar
+%Material name according to the target library
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Target
+	THICKNESS= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	X= 0
+	Y= 0
+	Z= 0	
+	NBLAYERS= 50
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-84.5	-208	84.5
+	X1_Y128=	84.5	-208	84.5
+	X128_Y1=	-84.5	-208	-84.5
+	X128_Y128=	84.5	-208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-206.8287414	-87.3276796	84.5
+	X1_Y128=	-87.32769537	-206.8287256	84.5
+	X128_Y1=	-206.8287414	-87.3276796	-84.5
+	X128_Y128=	-87.32769537	-206.8287256	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-208	84.50001115	84.5
+	X1_Y128=	-208	-84.49998885	84.5
+	X128_Y1=	-208	84.50001115	-84.5
+	X128_Y128=	-208	-84.49998885	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.3276796	206.8287414	84.5
+	X1_Y128=	-206.8287256	87.32769537	84.5
+	X128_Y1=	-87.3276796	206.8287414	-84.5
+	X128_Y128=	-206.8287256	87.32769537	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.50000557	208	84.5
+	X1_Y128=	-84.49999443	208	84.5
+	X128_Y1=	84.50000557	208	-84.5
+	X128_Y128=	-84.49999443	208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	87.32768749	84.5
+	X1_Y128=	87.32768749	206.8287335	84.5
+	X128_Y1=	206.8287335	87.32768749	-84.5
+	X128_Y128=	87.32768749	206.8287335	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	208	-84.50002229	84.5
+	X1_Y128=	208	84.49997771	84.5
+	X128_Y1=	208	-84.50002229	-84.5
+	X128_Y128=	208	84.49997771	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32767172	-206.8287493	84.5
+	X1_Y128=	206.8287177	-87.32770325	84.5
+	X128_Y1=	87.32767172	-206.8287493	-84.5
+	X128_Y128=	206.8287177	-87.32770325	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.5	84.5	-208
+	X1_Y128=	-84.5	84.5	-208
+	X128_Y1=	84.5	-84.5	-208
+	X128_Y128=	-84.5	-84.5	-208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	84.49998424	-87.32768749
+	X1_Y128=	87.32768749	84.49998424	-206.8287335
+	X128_Y1=	206.8287335	-84.50001576	-87.32768749
+	X128_Y128=	87.32768749	-84.50001576	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32768749	84.49998424	206.8287335
+	X1_Y128=	206.8287335	84.49998424	87.32768749
+	X128_Y1=	87.32768749	-84.50001576	206.8287335
+	X128_Y128=	206.8287335	-84.50001576	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.5	84.5	208
+	X1_Y128=	84.5	84.5	208
+	X128_Y1=	-84.5	-84.5	208
+	X128_Y128=	84.5	-84.5	208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-206.8287335	84.50000788	87.32768749
+	X1_Y128=	-87.32768749	84.50000788	206.8287335
+	X128_Y1=	-206.8287335	-84.49999212	87.32768749
+	X128_Y128=	-87.32768749	-84.49999212	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.32768749	84.50000788	-206.8287335
+	X1_Y128=	-206.8287335	84.50000788	-87.32768749
+	X128_Y1=	-87.32768749	-84.49999212	-206.8287335
+	X128_Y128=	-206.8287335	-84.49999212	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	87.32768749	-206.8287335
+	X1_Y128=	84.50000394	87.32768749	-206.8287335
+	X128_Y1=	-84.49999606	206.8287335	-87.32768749
+	X128_Y128=	84.50000394	206.8287335	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	206.8287335	87.32768749
+	X1_Y128=	84.50000394	206.8287335	87.32768749
+	X128_Y1=	-84.49999606	87.32768749	206.8287335
+	X128_Y128=	84.50000394	87.32768749	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-87.32768749	206.8287335
+	X1_Y128=	84.49998818	-87.32768749	206.8287335
+	X128_Y1=	-84.50001182	-206.8287335	87.32768749
+	X128_Y128=	84.49998818	-206.8287335	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-206.8287335	-87.32768749
+	X1_Y128=	84.49998818	-206.8287335	-87.32768749
+	X128_Y1=	-84.50001182	-87.32768749	-206.8287335
+	X128_Y128=	84.49998818	-87.32768749	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063166	143.3590149	-88.30123599
+	X1_Y128=	-151.8764696	96.81870993	-111.571389
+	X128_Y1=	-88.30122956	143.3590149	-128.606323
+	X128_Y128=	-111.5713826	96.81870993	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30122956	143.3590149	128.606323
+	X1_Y128=	-111.5713826	96.81870993	151.876476
+	X128_Y1=	-128.6063166	143.3590149	88.30123599
+	X128_Y128=	-151.8764696	96.81870993	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.606323	143.3590085	88.30123599
+	X1_Y128=	151.876476	96.81870349	111.571389
+	X128_Y1=	88.30123599	143.3590085	128.606323
+	X128_Y128=	111.571389	96.81870349	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30123599	143.3590085	-128.606323
+	X1_Y128=	111.571389	96.81870349	-151.876476
+	X128_Y1=	128.606323	143.3590085	-88.30123599
+	X128_Y128=	151.876476	96.81870349	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30124243	-143.3590021	-128.606323
+	X1_Y128=	-111.5713954	-96.81869706	-151.876476
+	X128_Y1=	-128.6063294	-143.3590021	-88.30123599
+	X128_Y128=	-151.8764824	-96.81869706	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.6063101	-143.3590214	-88.30123599
+	X1_Y128=	151.8764631	-96.81871636	-111.571389
+	X128_Y1=	88.30122312	-143.3590214	-128.606323
+	X128_Y128=	111.5713761	-96.81871636	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30122312	-143.3590214	128.606323
+	X1_Y128=	111.5713761	-96.81871636	151.876476
+	X128_Y1=	128.6063101	-143.3590214	88.30123599
+	X128_Y128=	151.8764631	-96.81871636	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063294	-143.3590021	88.30123599
+	X1_Y128=	-151.8764824	-96.81869706	111.571389
+	X128_Y1=	-88.30124243	-143.3590021	128.606323
+	X128_Y128=	-111.5713954	-96.81869706	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Shield
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldClParis
+	X1_Y1=	151.375	153.75	364
+	X1_Y128=	151.375	91.5	364
+	X128_Y1=	-84.5	153.75	364
+	X128_Y128=	-84.5	91.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-151.375	364
+	X1_Y128=	91.49999999	-151.375	364
+	X128_Y1=	153.75	84.49999999	364
+	X128_Y128=	91.50000004	84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-153.75	364
+	X1_Y128=	-151.375	-91.49999999	364
+	X128_Y1=	84.49999997	-153.7500001	364
+	X128_Y128=	84.5	-91.50000008	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	151.375	364
+	X1_Y128=	-91.49999998	151.375	364
+	X128_Y1=	-153.7500001	-84.49999996	364
+	X128_Y128=	-91.50000013	-84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldClParis
+	X1_Y1=	151.375	-148.6692007	366.104536
+	X1_Y128=	151.375	-192.6865979	322.0871388
+	X128_Y1=	-84.5	-148.6692007	366.104536
+	X128_Y128=	-84.5	-192.6865979	322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364.4251574	150.3485793
+	X1_Y128=	91.49999999	-364.4251574	150.3485793
+	X128_Y1=	153.75	-197.6363454	317.1373914
+	X128_Y128=	91.50000004	-197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-366.104536	148.6692008
+	X1_Y128=	-151.375	-322.0871388	192.6865979
+	X128_Y1=	84.49999997	-366.104536	148.6692007
+	X128_Y128=	84.5	-322.0871389	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-150.3485793	364.4251574
+	X1_Y128=	-91.49999998	-150.3485793	364.4251574
+	X128_Y1=	-153.7500001	-317.1373913	197.6363454
+	X128_Y128=	-91.50000013	-317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldClParis
+	X1_Y1=	151.375	-364	153.75
+	X1_Y128=	151.375	-364	91.5
+	X128_Y1=	-84.5	-364	153.75
+	X128_Y128=	-84.5	-364	91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364	-151.375
+	X1_Y128=	91.49999999	-364	-151.375
+	X128_Y1=	153.75	-364	84.49999999
+	X128_Y128=	91.50000004	-364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-364	-153.75
+	X1_Y128=	-151.375	-364	-91.49999999
+	X128_Y1=	84.49999997	-364	-153.7500001
+	X128_Y128=	84.5	-364	-91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364	151.375
+	X1_Y128=	-91.49999998	-364	151.375
+	X128_Y1=	-153.7500001	-364	-84.49999996
+	X128_Y128=	-91.50000013	-364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldClParis
+	X1_Y1=	151.375	-366.104536	-148.6692007
+	X1_Y128=	151.375	-322.0871388	-192.6865979
+	X128_Y1=	-84.5	-366.104536	-148.6692007
+	X128_Y128=	-84.5	-322.0871388	-192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-150.3485793	-364.4251574
+	X1_Y128=	91.49999999	-150.3485793	-364.4251574
+	X128_Y1=	153.75	-317.1373914	-197.6363454
+	X128_Y128=	91.50000004	-317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-148.6692008	-366.104536
+	X1_Y128=	-151.375	-192.6865979	-322.0871388
+	X128_Y1=	84.49999997	-148.6692007	-366.104536
+	X128_Y128=	84.5	-192.6865978	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364.4251574	-150.3485793
+	X1_Y128=	-91.49999998	-364.4251574	-150.3485793
+	X128_Y1=	-153.7500001	-197.6363454	-317.1373913
+	X128_Y128=	-91.50000013	-197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldClParis
+	X1_Y1=	151.375	-153.75	-364
+	X1_Y128=	151.375	-91.5	-364
+	X128_Y1=	-84.5	-153.75	-364
+	X128_Y128=	-84.5	-91.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	151.375	-364
+	X1_Y128=	91.49999999	151.375	-364
+	X128_Y1=	153.75	-84.49999999	-364
+	X128_Y128=	91.50000004	-84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	153.75	-364
+	X1_Y128=	-151.375	91.49999999	-364
+	X128_Y1=	84.49999997	153.7500001	-364
+	X128_Y128=	84.5	91.50000008	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-151.375	-364
+	X1_Y128=	-91.49999998	-151.375	-364
+	X128_Y1=	-153.7500001	84.49999996	-364
+	X128_Y128=	-91.50000013	84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldClParis
+	X1_Y1=	151.375	148.6692007	-366.104536
+	X1_Y128=	151.375	192.6865979	-322.0871388
+	X128_Y1=	-84.5	148.6692007	-366.104536
+	X128_Y128=	-84.5	192.6865979	-322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364.4251574	-150.3485793
+	X1_Y128=	91.49999999	364.4251574	-150.3485793
+	X128_Y1=	153.75	197.6363454	-317.1373914
+	X128_Y128=	91.50000004	197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	366.104536	-148.6692008
+	X1_Y128=	-151.375	322.0871388	-192.6865979
+	X128_Y1=	84.49999997	366.104536	-148.6692007
+	X128_Y128=	84.5	322.0871389	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	150.3485793	-364.4251574
+	X1_Y128=	-91.49999998	150.3485793	-364.4251574
+	X128_Y1=	-153.7500001	317.1373913	-197.6363454
+	X128_Y128=	-91.50000013	317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldClParis
+	X1_Y1=	151.375	364	-153.75
+	X1_Y128=	151.375	364	-91.5
+	X128_Y1=	-84.5	364	-153.75
+	X128_Y128=	-84.5	364	-91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364	151.375
+	X1_Y128=	91.49999999	364	151.375
+	X128_Y1=	153.75	364	-84.49999999
+	X128_Y128=	91.50000004	364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	364	153.75
+	X1_Y128=	-151.375	364	91.49999999
+	X128_Y1=	84.49999997	364	153.7500001
+	X128_Y128=	84.5	364	91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364	-151.375
+	X1_Y128=	-91.49999998	364	-151.375
+	X128_Y1=	-153.7500001	364	84.49999996
+	X128_Y128=	-91.50000013	364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldClParis
+	X1_Y1=	151.375	366.104536	148.6692007
+	X1_Y128=	151.375	322.0871388	192.6865979
+	X128_Y1=	-84.5	366.104536	148.6692007
+	X128_Y128=	-84.5	322.0871388	192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	150.3485793	364.4251574
+	X1_Y128=	91.49999999	150.3485793	364.4251574
+	X128_Y1=	153.75	317.1373914	197.6363454
+	X128_Y128=	91.50000004	317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	148.6692008	366.104536
+	X1_Y128=	-151.375	192.6865979	322.0871388
+	X128_Y1=	84.49999997	148.6692007	366.104536
+	X128_Y128=	84.5	192.6865978	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364.4251574	150.3485793
+	X1_Y128=	-91.49999998	364.4251574	150.3485793
+	X128_Y1=	-153.7500001	197.6363454	317.1373913
+	X128_Y128=	-91.50000013	197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ShieldClParis
+	X1_Y1=	-150.3485793	153.75	364.4251574
+	X1_Y128=	-150.3485793	91.5	364.4251574
+	X128_Y1=	-317.1373914	153.75	197.6363453
+	X128_Y128=	-317.1373914	91.5	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692007	-151.375	366.104536
+	X1_Y128=	-192.6865979	-151.375	322.0871388
+	X128_Y1=	-148.6692007	84.49999999	366.104536
+	X128_Y128=	-192.6865978	84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-153.75	150.3485793
+	X1_Y128=	-364.4251574	-91.49999999	150.3485793
+	X128_Y1=	-197.6363454	-153.7500001	317.1373913
+	X128_Y128=	-197.6363453	-91.50000008	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.1045359	151.375	148.6692008
+	X1_Y128=	-322.0871388	151.375	192.6865979
+	X128_Y1=	-366.104536	-84.49999996	148.6692007
+	X128_Y128=	-322.0871389	-84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ShieldClParis
+	X1_Y1=	-364	153.75	151.375
+	X1_Y128=	-364	91.5	151.375
+	X128_Y1=	-364	153.75	-84.5
+	X128_Y128=	-364	91.5	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-151.375	153.75
+	X1_Y128=	-364	-151.375	91.49999999
+	X128_Y1=	-364	84.49999999	153.75
+	X128_Y128=	-364	84.5	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-153.75	-151.375
+	X1_Y128=	-364	-91.49999999	-151.375
+	X128_Y1=	-364	-153.7500001	84.49999997
+	X128_Y128=	-364	-91.50000008	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	151.375	-153.75
+	X1_Y128=	-364	151.375	-91.49999998
+	X128_Y1=	-364	-84.49999996	-153.7500001
+	X128_Y128=	-364	-84.5	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ShieldClParis
+	X1_Y1=	-364.4251574	153.75	-150.3485793
+	X1_Y128=	-364.4251574	91.5	-150.3485793
+	X128_Y1=	-197.6363453	153.75	-317.1373914
+	X128_Y128=	-197.6363453	91.5	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	-151.375	-148.6692007
+	X1_Y128=	-322.0871388	-151.375	-192.6865979
+	X128_Y1=	-366.104536	84.49999999	-148.6692007
+	X128_Y128=	-322.0871389	84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-153.75	-364.4251574
+	X1_Y128=	-150.3485793	-91.49999999	-364.4251574
+	X128_Y1=	-317.1373913	-153.7500001	-197.6363454
+	X128_Y128=	-317.1373914	-91.50000008	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	151.375	-366.1045359
+	X1_Y128=	-192.6865979	151.375	-322.0871388
+	X128_Y1=	-148.6692007	-84.49999996	-366.104536
+	X128_Y128=	-192.6865978	-84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ShieldClParis
+	X1_Y1=	150.3485793	153.75	-364.4251574
+	X1_Y128=	150.3485793	91.5	-364.4251574
+	X128_Y1=	317.1373914	153.75	-197.6363453
+	X128_Y128=	317.1373914	91.5	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692007	-151.375	-366.104536
+	X1_Y128=	192.6865979	-151.375	-322.0871388
+	X128_Y1=	148.6692007	84.49999999	-366.104536
+	X128_Y128=	192.6865978	84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-153.75	-150.3485793
+	X1_Y128=	364.4251574	-91.49999999	-150.3485793
+	X128_Y1=	197.6363454	-153.7500001	-317.1373913
+	X128_Y128=	197.6363453	-91.50000008	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.1045359	151.375	-148.6692008
+	X1_Y128=	322.0871388	151.375	-192.6865979
+	X128_Y1=	366.104536	-84.49999996	-148.6692007
+	X128_Y128=	322.0871389	-84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ShieldClParis
+	X1_Y1=	364	153.75	-151.375
+	X1_Y128=	364	91.5	-151.375
+	X128_Y1=	364	153.75	84.5
+	X128_Y128=	364	91.5	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-151.375	-153.75
+	X1_Y128=	364	-151.375	-91.49999999
+	X128_Y1=	364	84.49999999	-153.75
+	X128_Y128=	364	84.5	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-153.75	151.375
+	X1_Y128=	364	-91.49999999	151.375
+	X128_Y1=	364	-153.7500001	-84.49999997
+	X128_Y128=	364	-91.50000008	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	151.375	153.75
+	X1_Y128=	364	151.375	91.49999998
+	X128_Y1=	364	-84.49999996	153.7500001
+	X128_Y128=	364	-84.5	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ShieldClParis
+	X1_Y1=	364.4251574	153.75	150.3485793
+	X1_Y128=	364.4251574	91.5	150.3485793
+	X128_Y1=	197.6363453	153.75	317.1373914
+	X128_Y128=	197.6363453	91.5	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	-151.375	148.6692007
+	X1_Y128=	322.0871388	-151.375	192.6865979
+	X128_Y1=	366.104536	84.49999999	148.6692007
+	X128_Y128=	322.0871389	84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-153.75	364.4251574
+	X1_Y128=	150.3485793	-91.49999999	364.4251574
+	X128_Y1=	317.1373913	-153.7500001	197.6363454
+	X128_Y128=	317.1373914	-91.50000008	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	151.375	366.1045359
+	X1_Y128=	192.6865979	151.375	322.0871388
+	X128_Y1=	148.6692007	-84.49999996	366.104536
+	X128_Y128=	192.6865978	-84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ShieldClParis
+	X1_Y1=	-366.104536	-148.6692007	151.375
+	X1_Y128=	-322.0871388	-192.6865979	151.375
+	X128_Y1=	-366.104536	-148.6692007	-84.5
+	X128_Y128=	-322.0871388	-192.6865979	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-364.4251574	153.75
+	X1_Y128=	-150.3485793	-364.4251574	91.49999999
+	X128_Y1=	-317.1373914	-197.6363454	153.75
+	X128_Y128=	-317.1373914	-197.6363453	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	-366.104536	-151.375
+	X1_Y128=	-192.6865979	-322.0871388	-151.375
+	X128_Y1=	-148.6692007	-366.104536	84.49999997
+	X128_Y128=	-192.6865978	-322.0871389	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-150.3485793	-153.75
+	X1_Y128=	-364.4251574	-150.3485793	-91.49999998
+	X128_Y1=	-197.6363454	-317.1373913	-153.7500001
+	X128_Y128=	-197.6363453	-317.1373914	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ShieldClParis
+	X1_Y1=	366.104536	-148.6692007	-151.375
+	X1_Y128=	322.0871388	-192.6865979	-151.375
+	X128_Y1=	366.104536	-148.6692007	84.5
+	X128_Y128=	322.0871388	-192.6865979	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-364.4251574	-153.75
+	X1_Y128=	150.3485793	-364.4251574	-91.49999999
+	X128_Y1=	317.1373914	-197.6363454	-153.75
+	X128_Y128=	317.1373914	-197.6363453	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	-366.104536	151.375
+	X1_Y128=	192.6865979	-322.0871388	151.375
+	X128_Y1=	148.6692007	-366.104536	-84.49999997
+	X128_Y128=	192.6865978	-322.0871389	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-150.3485793	153.75
+	X1_Y128=	364.4251574	-150.3485793	91.49999998
+	X128_Y1=	197.6363454	-317.1373913	153.7500001
+	X128_Y128=	197.6363453	-317.1373914	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ShieldClParis
+	X1_Y1=	-148.6692007	366.104536	151.375
+	X1_Y128=	-192.6865979	322.0871388	151.375
+	X128_Y1=	-148.6692007	366.104536	-84.5
+	X128_Y128=	-192.6865979	322.0871388	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	150.3485793	153.75
+	X1_Y128=	-364.4251574	150.3485793	91.49999999
+	X128_Y1=	-197.6363454	317.1373914	153.75
+	X128_Y128=	-197.6363453	317.1373914	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	148.6692008	-151.375
+	X1_Y128=	-322.0871388	192.6865979	-151.375
+	X128_Y1=	-366.104536	148.6692007	84.49999997
+	X128_Y128=	-322.0871389	192.6865978	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	364.4251574	-153.75
+	X1_Y128=	-150.3485793	364.4251574	-91.49999998
+	X128_Y1=	-317.1373913	197.6363454	-153.7500001
+	X128_Y128=	-317.1373914	197.6363453	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ShieldClParis
+	X1_Y1=	148.6692007	366.104536	-151.375
+	X1_Y128=	192.6865979	322.0871388	-151.375
+	X128_Y1=	148.6692007	366.104536	84.5
+	X128_Y128=	192.6865979	322.0871388	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	150.3485793	-153.75
+	X1_Y128=	364.4251574	150.3485793	-91.49999999
+	X128_Y1=	197.6363454	317.1373914	-153.75
+	X128_Y128=	197.6363453	317.1373914	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	148.6692008	151.375
+	X1_Y128=	322.0871388	192.6865979	151.375
+	X128_Y1=	366.104536	148.6692007	-84.49999997
+	X128_Y128=	322.0871389	192.6865978	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	364.4251574	153.75
+	X1_Y128=	150.3485793	364.4251574	91.49999998
+	X128_Y1=	317.1373913	197.6363454	153.7500001
+	X128_Y128=	317.1373914	197.6363453	91.50000013
+	VIS=all
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldPhParis
+	THETA=	54.73
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldPhParis
+	THETA=	54.73
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldPhParis
+	THETA=	54.73
+	PHI=	225
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldPhParis
+	THETA=	54.73
+	PHI=	315
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldPhParis
+	THETA=	125.26
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldPhParis
+	THETA=	125.26
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldPhParis
+	THETA=	125.26
+	PHI=	225
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldPhParis
+	THETA=	125.26
+	PHI=	315
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/ParisAll_208pipe1.detector b/Inputs/DetectorConfiguration/ParisAll_208pipe1.detector
new file mode 100644
index 000000000..9ffb23e04
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208pipe1.detector
@@ -0,0 +1,792 @@
+%Fichier de configuration manip E225
+%%%%%%%%%%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
+%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
+%Thickness in micrometer
+%Radius in mm
+%Temperature in K, Pressure in bar
+%Material name according to the target library
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Target
+	THICKNESS= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	X= 0
+	Y= 0
+	Z= 0	
+	NBLAYERS= 50
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-84.5	-208	84.5
+	X1_Y128=	84.5	-208	84.5
+	X128_Y1=	-84.5	-208	-84.5
+	X128_Y128=	84.5	-208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-206.8287414	-87.3276796	84.5
+	X1_Y128=	-87.32769537	-206.8287256	84.5
+	X128_Y1=	-206.8287414	-87.3276796	-84.5
+	X128_Y128=	-87.32769537	-206.8287256	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-208	84.50001115	84.5
+	X1_Y128=	-208	-84.49998885	84.5
+	X128_Y1=	-208	84.50001115	-84.5
+	X128_Y128=	-208	-84.49998885	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.3276796	206.8287414	84.5
+	X1_Y128=	-206.8287256	87.32769537	84.5
+	X128_Y1=	-87.3276796	206.8287414	-84.5
+	X128_Y128=	-206.8287256	87.32769537	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.50000557	208	84.5
+	X1_Y128=	-84.49999443	208	84.5
+	X128_Y1=	84.50000557	208	-84.5
+	X128_Y128=	-84.49999443	208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	87.32768749	84.5
+	X1_Y128=	87.32768749	206.8287335	84.5
+	X128_Y1=	206.8287335	87.32768749	-84.5
+	X128_Y128=	87.32768749	206.8287335	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	208	-84.50002229	84.5
+	X1_Y128=	208	84.49997771	84.5
+	X128_Y1=	208	-84.50002229	-84.5
+	X128_Y128=	208	84.49997771	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32767172	-206.8287493	84.5
+	X1_Y128=	206.8287177	-87.32770325	84.5
+	X128_Y1=	87.32767172	-206.8287493	-84.5
+	X128_Y128=	206.8287177	-87.32770325	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisCluster
+%	X1_Y1=	84.5	84.5	-208
+%	X1_Y128=	-84.5	84.5	-208
+%	X128_Y1=	84.5	-84.5	-208
+%	X128_Y128=	-84.5	-84.5	-208
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	84.49998424	-87.32768749
+	X1_Y128=	87.32768749	84.49998424	-206.8287335
+	X128_Y1=	206.8287335	-84.50001576	-87.32768749
+	X128_Y128=	87.32768749	-84.50001576	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32768749	84.49998424	206.8287335
+	X1_Y128=	206.8287335	84.49998424	87.32768749
+	X128_Y1=	87.32768749	-84.50001576	206.8287335
+	X128_Y128=	206.8287335	-84.50001576	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisCluster
+%	X1_Y1=	-84.5	84.5	208
+%	X1_Y128=	84.5	84.5	208
+%	X128_Y1=	-84.5	-84.5	208
+%	X128_Y128=	84.5	-84.5	208
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-206.8287335	84.50000788	87.32768749
+	X1_Y128=	-87.32768749	84.50000788	206.8287335
+	X128_Y1=	-206.8287335	-84.49999212	87.32768749
+	X128_Y128=	-87.32768749	-84.49999212	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.32768749	84.50000788	-206.8287335
+	X1_Y128=	-206.8287335	84.50000788	-87.32768749
+	X128_Y1=	-87.32768749	-84.49999212	-206.8287335
+	X128_Y128=	-206.8287335	-84.49999212	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	87.32768749	-206.8287335
+	X1_Y128=	84.50000394	87.32768749	-206.8287335
+	X128_Y1=	-84.49999606	206.8287335	-87.32768749
+	X128_Y128=	84.50000394	206.8287335	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	206.8287335	87.32768749
+	X1_Y128=	84.50000394	206.8287335	87.32768749
+	X128_Y1=	-84.49999606	87.32768749	206.8287335
+	X128_Y128=	84.50000394	87.32768749	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-87.32768749	206.8287335
+	X1_Y128=	84.49998818	-87.32768749	206.8287335
+	X128_Y1=	-84.50001182	-206.8287335	87.32768749
+	X128_Y128=	84.49998818	-206.8287335	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-206.8287335	-87.32768749
+	X1_Y128=	84.49998818	-206.8287335	-87.32768749
+	X128_Y1=	-84.50001182	-87.32768749	-206.8287335
+	X128_Y128=	84.49998818	-87.32768749	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063166	143.3590149	-88.30123599
+	X1_Y128=	-151.8764696	96.81870993	-111.571389
+	X128_Y1=	-88.30122956	143.3590149	-128.606323
+	X128_Y128=	-111.5713826	96.81870993	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30122956	143.3590149	128.606323
+	X1_Y128=	-111.5713826	96.81870993	151.876476
+	X128_Y1=	-128.6063166	143.3590149	88.30123599
+	X128_Y128=	-151.8764696	96.81870993	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.606323	143.3590085	88.30123599
+	X1_Y128=	151.876476	96.81870349	111.571389
+	X128_Y1=	88.30123599	143.3590085	128.606323
+	X128_Y128=	111.571389	96.81870349	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30123599	143.3590085	-128.606323
+	X1_Y128=	111.571389	96.81870349	-151.876476
+	X128_Y1=	128.606323	143.3590085	-88.30123599
+	X128_Y128=	151.876476	96.81870349	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30124243	-143.3590021	-128.606323
+	X1_Y128=	-111.5713954	-96.81869706	-151.876476
+	X128_Y1=	-128.6063294	-143.3590021	-88.30123599
+	X128_Y128=	-151.8764824	-96.81869706	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.6063101	-143.3590214	-88.30123599
+	X1_Y128=	151.8764631	-96.81871636	-111.571389
+	X128_Y1=	88.30122312	-143.3590214	-128.606323
+	X128_Y128=	111.5713761	-96.81871636	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30122312	-143.3590214	128.606323
+	X1_Y128=	111.5713761	-96.81871636	151.876476
+	X128_Y1=	128.6063101	-143.3590214	88.30123599
+	X128_Y128=	151.8764631	-96.81871636	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063294	-143.3590021	88.30123599
+	X1_Y128=	-151.8764824	-96.81869706	111.571389
+	X128_Y1=	-88.30124243	-143.3590021	128.606323
+	X128_Y128=	-111.5713954	-96.81869706	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Shield
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldClParis
+	X1_Y1=	151.375	153.75	364
+	X1_Y128=	151.375	91.5	364
+	X128_Y1=	-84.5	153.75	364
+	X128_Y128=	-84.5	91.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-151.375	364
+	X1_Y128=	91.49999999	-151.375	364
+	X128_Y1=	153.75	84.49999999	364
+	X128_Y128=	91.50000004	84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-153.75	364
+	X1_Y128=	-151.375	-91.49999999	364
+	X128_Y1=	84.49999997	-153.7500001	364
+	X128_Y128=	84.5	-91.50000008	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	151.375	364
+	X1_Y128=	-91.49999998	151.375	364
+	X128_Y1=	-153.7500001	-84.49999996	364
+	X128_Y128=	-91.50000013	-84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldClParis
+	X1_Y1=	151.375	-148.6692007	366.104536
+	X1_Y128=	151.375	-192.6865979	322.0871388
+	X128_Y1=	-84.5	-148.6692007	366.104536
+	X128_Y128=	-84.5	-192.6865979	322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364.4251574	150.3485793
+	X1_Y128=	91.49999999	-364.4251574	150.3485793
+	X128_Y1=	153.75	-197.6363454	317.1373914
+	X128_Y128=	91.50000004	-197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-366.104536	148.6692008
+	X1_Y128=	-151.375	-322.0871388	192.6865979
+	X128_Y1=	84.49999997	-366.104536	148.6692007
+	X128_Y128=	84.5	-322.0871389	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-150.3485793	364.4251574
+	X1_Y128=	-91.49999998	-150.3485793	364.4251574
+	X128_Y1=	-153.7500001	-317.1373913	197.6363454
+	X128_Y128=	-91.50000013	-317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldClParis
+	X1_Y1=	151.375	-364	153.75
+	X1_Y128=	151.375	-364	91.5
+	X128_Y1=	-84.5	-364	153.75
+	X128_Y128=	-84.5	-364	91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364	-151.375
+	X1_Y128=	91.49999999	-364	-151.375
+	X128_Y1=	153.75	-364	84.49999999
+	X128_Y128=	91.50000004	-364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-364	-153.75
+	X1_Y128=	-151.375	-364	-91.49999999
+	X128_Y1=	84.49999997	-364	-153.7500001
+	X128_Y128=	84.5	-364	-91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364	151.375
+	X1_Y128=	-91.49999998	-364	151.375
+	X128_Y1=	-153.7500001	-364	-84.49999996
+	X128_Y128=	-91.50000013	-364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldClParis
+	X1_Y1=	151.375	-366.104536	-148.6692007
+	X1_Y128=	151.375	-322.0871388	-192.6865979
+	X128_Y1=	-84.5	-366.104536	-148.6692007
+	X128_Y128=	-84.5	-322.0871388	-192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-150.3485793	-364.4251574
+	X1_Y128=	91.49999999	-150.3485793	-364.4251574
+	X128_Y1=	153.75	-317.1373914	-197.6363454
+	X128_Y128=	91.50000004	-317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-148.6692008	-366.104536
+	X1_Y128=	-151.375	-192.6865979	-322.0871388
+	X128_Y1=	84.49999997	-148.6692007	-366.104536
+	X128_Y128=	84.5	-192.6865978	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364.4251574	-150.3485793
+	X1_Y128=	-91.49999998	-364.4251574	-150.3485793
+	X128_Y1=	-153.7500001	-197.6363454	-317.1373913
+	X128_Y128=	-91.50000013	-197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldClParis
+	X1_Y1=	151.375	-153.75	-364
+	X1_Y128=	151.375	-91.5	-364
+	X128_Y1=	-84.5	-153.75	-364
+	X128_Y128=	-84.5	-91.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	151.375	-364
+	X1_Y128=	91.49999999	151.375	-364
+	X128_Y1=	153.75	-84.49999999	-364
+	X128_Y128=	91.50000004	-84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	153.75	-364
+	X1_Y128=	-151.375	91.49999999	-364
+	X128_Y1=	84.49999997	153.7500001	-364
+	X128_Y128=	84.5	91.50000008	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-151.375	-364
+	X1_Y128=	-91.49999998	-151.375	-364
+	X128_Y1=	-153.7500001	84.49999996	-364
+	X128_Y128=	-91.50000013	84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldClParis
+	X1_Y1=	151.375	148.6692007	-366.104536
+	X1_Y128=	151.375	192.6865979	-322.0871388
+	X128_Y1=	-84.5	148.6692007	-366.104536
+	X128_Y128=	-84.5	192.6865979	-322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364.4251574	-150.3485793
+	X1_Y128=	91.49999999	364.4251574	-150.3485793
+	X128_Y1=	153.75	197.6363454	-317.1373914
+	X128_Y128=	91.50000004	197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	366.104536	-148.6692008
+	X1_Y128=	-151.375	322.0871388	-192.6865979
+	X128_Y1=	84.49999997	366.104536	-148.6692007
+	X128_Y128=	84.5	322.0871389	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	150.3485793	-364.4251574
+	X1_Y128=	-91.49999998	150.3485793	-364.4251574
+	X128_Y1=	-153.7500001	317.1373913	-197.6363454
+	X128_Y128=	-91.50000013	317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldClParis
+	X1_Y1=	151.375	364	-153.75
+	X1_Y128=	151.375	364	-91.5
+	X128_Y1=	-84.5	364	-153.75
+	X128_Y128=	-84.5	364	-91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364	151.375
+	X1_Y128=	91.49999999	364	151.375
+	X128_Y1=	153.75	364	-84.49999999
+	X128_Y128=	91.50000004	364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	364	153.75
+	X1_Y128=	-151.375	364	91.49999999
+	X128_Y1=	84.49999997	364	153.7500001
+	X128_Y128=	84.5	364	91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364	-151.375
+	X1_Y128=	-91.49999998	364	-151.375
+	X128_Y1=	-153.7500001	364	84.49999996
+	X128_Y128=	-91.50000013	364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldClParis
+	X1_Y1=	151.375	366.104536	148.6692007
+	X1_Y128=	151.375	322.0871388	192.6865979
+	X128_Y1=	-84.5	366.104536	148.6692007
+	X128_Y128=	-84.5	322.0871388	192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	150.3485793	364.4251574
+	X1_Y128=	91.49999999	150.3485793	364.4251574
+	X128_Y1=	153.75	317.1373914	197.6363454
+	X128_Y128=	91.50000004	317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	148.6692008	366.104536
+	X1_Y128=	-151.375	192.6865979	322.0871388
+	X128_Y1=	84.49999997	148.6692007	366.104536
+	X128_Y128=	84.5	192.6865978	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364.4251574	150.3485793
+	X1_Y128=	-91.49999998	364.4251574	150.3485793
+	X128_Y1=	-153.7500001	197.6363454	317.1373913
+	X128_Y128=	-91.50000013	197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ShieldClParis
+	X1_Y1=	-150.3485793	153.75	364.4251574
+	X1_Y128=	-150.3485793	91.5	364.4251574
+	X128_Y1=	-317.1373914	153.75	197.6363453
+	X128_Y128=	-317.1373914	91.5	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692007	-151.375	366.104536
+	X1_Y128=	-192.6865979	-151.375	322.0871388
+	X128_Y1=	-148.6692007	84.49999999	366.104536
+	X128_Y128=	-192.6865978	84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-153.75	150.3485793
+	X1_Y128=	-364.4251574	-91.49999999	150.3485793
+	X128_Y1=	-197.6363454	-153.7500001	317.1373913
+	X128_Y128=	-197.6363453	-91.50000008	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.1045359	151.375	148.6692008
+	X1_Y128=	-322.0871388	151.375	192.6865979
+	X128_Y1=	-366.104536	-84.49999996	148.6692007
+	X128_Y128=	-322.0871389	-84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ShieldClParis
+	X1_Y1=	-364	153.75	151.375
+	X1_Y128=	-364	91.5	151.375
+	X128_Y1=	-364	153.75	-84.5
+	X128_Y128=	-364	91.5	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-151.375	153.75
+	X1_Y128=	-364	-151.375	91.49999999
+	X128_Y1=	-364	84.49999999	153.75
+	X128_Y128=	-364	84.5	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-153.75	-151.375
+	X1_Y128=	-364	-91.49999999	-151.375
+	X128_Y1=	-364	-153.7500001	84.49999997
+	X128_Y128=	-364	-91.50000008	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	151.375	-153.75
+	X1_Y128=	-364	151.375	-91.49999998
+	X128_Y1=	-364	-84.49999996	-153.7500001
+	X128_Y128=	-364	-84.5	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ShieldClParis
+	X1_Y1=	-364.4251574	153.75	-150.3485793
+	X1_Y128=	-364.4251574	91.5	-150.3485793
+	X128_Y1=	-197.6363453	153.75	-317.1373914
+	X128_Y128=	-197.6363453	91.5	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	-151.375	-148.6692007
+	X1_Y128=	-322.0871388	-151.375	-192.6865979
+	X128_Y1=	-366.104536	84.49999999	-148.6692007
+	X128_Y128=	-322.0871389	84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-153.75	-364.4251574
+	X1_Y128=	-150.3485793	-91.49999999	-364.4251574
+	X128_Y1=	-317.1373913	-153.7500001	-197.6363454
+	X128_Y128=	-317.1373914	-91.50000008	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	151.375	-366.1045359
+	X1_Y128=	-192.6865979	151.375	-322.0871388
+	X128_Y1=	-148.6692007	-84.49999996	-366.104536
+	X128_Y128=	-192.6865978	-84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ShieldClParis
+	X1_Y1=	150.3485793	153.75	-364.4251574
+	X1_Y128=	150.3485793	91.5	-364.4251574
+	X128_Y1=	317.1373914	153.75	-197.6363453
+	X128_Y128=	317.1373914	91.5	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692007	-151.375	-366.104536
+	X1_Y128=	192.6865979	-151.375	-322.0871388
+	X128_Y1=	148.6692007	84.49999999	-366.104536
+	X128_Y128=	192.6865978	84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-153.75	-150.3485793
+	X1_Y128=	364.4251574	-91.49999999	-150.3485793
+	X128_Y1=	197.6363454	-153.7500001	-317.1373913
+	X128_Y128=	197.6363453	-91.50000008	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.1045359	151.375	-148.6692008
+	X1_Y128=	322.0871388	151.375	-192.6865979
+	X128_Y1=	366.104536	-84.49999996	-148.6692007
+	X128_Y128=	322.0871389	-84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ShieldClParis
+	X1_Y1=	364	153.75	-151.375
+	X1_Y128=	364	91.5	-151.375
+	X128_Y1=	364	153.75	84.5
+	X128_Y128=	364	91.5	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-151.375	-153.75
+	X1_Y128=	364	-151.375	-91.49999999
+	X128_Y1=	364	84.49999999	-153.75
+	X128_Y128=	364	84.5	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-153.75	151.375
+	X1_Y128=	364	-91.49999999	151.375
+	X128_Y1=	364	-153.7500001	-84.49999997
+	X128_Y128=	364	-91.50000008	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	151.375	153.75
+	X1_Y128=	364	151.375	91.49999998
+	X128_Y1=	364	-84.49999996	153.7500001
+	X128_Y128=	364	-84.5	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ShieldClParis
+	X1_Y1=	364.4251574	153.75	150.3485793
+	X1_Y128=	364.4251574	91.5	150.3485793
+	X128_Y1=	197.6363453	153.75	317.1373914
+	X128_Y128=	197.6363453	91.5	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	-151.375	148.6692007
+	X1_Y128=	322.0871388	-151.375	192.6865979
+	X128_Y1=	366.104536	84.49999999	148.6692007
+	X128_Y128=	322.0871389	84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-153.75	364.4251574
+	X1_Y128=	150.3485793	-91.49999999	364.4251574
+	X128_Y1=	317.1373913	-153.7500001	197.6363454
+	X128_Y128=	317.1373914	-91.50000008	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	151.375	366.1045359
+	X1_Y128=	192.6865979	151.375	322.0871388
+	X128_Y1=	148.6692007	-84.49999996	366.104536
+	X128_Y128=	192.6865978	-84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ShieldClParis
+	X1_Y1=	-366.104536	-148.6692007	151.375
+	X1_Y128=	-322.0871388	-192.6865979	151.375
+	X128_Y1=	-366.104536	-148.6692007	-84.5
+	X128_Y128=	-322.0871388	-192.6865979	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-364.4251574	153.75
+	X1_Y128=	-150.3485793	-364.4251574	91.49999999
+	X128_Y1=	-317.1373914	-197.6363454	153.75
+	X128_Y128=	-317.1373914	-197.6363453	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	-366.104536	-151.375
+	X1_Y128=	-192.6865979	-322.0871388	-151.375
+	X128_Y1=	-148.6692007	-366.104536	84.49999997
+	X128_Y128=	-192.6865978	-322.0871389	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-150.3485793	-153.75
+	X1_Y128=	-364.4251574	-150.3485793	-91.49999998
+	X128_Y1=	-197.6363454	-317.1373913	-153.7500001
+	X128_Y128=	-197.6363453	-317.1373914	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ShieldClParis
+	X1_Y1=	366.104536	-148.6692007	-151.375
+	X1_Y128=	322.0871388	-192.6865979	-151.375
+	X128_Y1=	366.104536	-148.6692007	84.5
+	X128_Y128=	322.0871388	-192.6865979	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-364.4251574	-153.75
+	X1_Y128=	150.3485793	-364.4251574	-91.49999999
+	X128_Y1=	317.1373914	-197.6363454	-153.75
+	X128_Y128=	317.1373914	-197.6363453	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	-366.104536	151.375
+	X1_Y128=	192.6865979	-322.0871388	151.375
+	X128_Y1=	148.6692007	-366.104536	-84.49999997
+	X128_Y128=	192.6865978	-322.0871389	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-150.3485793	153.75
+	X1_Y128=	364.4251574	-150.3485793	91.49999998
+	X128_Y1=	197.6363454	-317.1373913	153.7500001
+	X128_Y128=	197.6363453	-317.1373914	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ShieldClParis
+	X1_Y1=	-148.6692007	366.104536	151.375
+	X1_Y128=	-192.6865979	322.0871388	151.375
+	X128_Y1=	-148.6692007	366.104536	-84.5
+	X128_Y128=	-192.6865979	322.0871388	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	150.3485793	153.75
+	X1_Y128=	-364.4251574	150.3485793	91.49999999
+	X128_Y1=	-197.6363454	317.1373914	153.75
+	X128_Y128=	-197.6363453	317.1373914	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	148.6692008	-151.375
+	X1_Y128=	-322.0871388	192.6865979	-151.375
+	X128_Y1=	-366.104536	148.6692007	84.49999997
+	X128_Y128=	-322.0871389	192.6865978	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	364.4251574	-153.75
+	X1_Y128=	-150.3485793	364.4251574	-91.49999998
+	X128_Y1=	-317.1373913	197.6363454	-153.7500001
+	X128_Y128=	-317.1373914	197.6363453	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ShieldClParis
+	X1_Y1=	148.6692007	366.104536	-151.375
+	X1_Y128=	192.6865979	322.0871388	-151.375
+	X128_Y1=	148.6692007	366.104536	84.5
+	X128_Y128=	192.6865979	322.0871388	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	150.3485793	-153.75
+	X1_Y128=	364.4251574	150.3485793	-91.49999999
+	X128_Y1=	197.6363454	317.1373914	-153.75
+	X128_Y128=	197.6363453	317.1373914	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	148.6692008	151.375
+	X1_Y128=	322.0871388	192.6865979	151.375
+	X128_Y1=	366.104536	148.6692007	-84.49999997
+	X128_Y128=	322.0871389	192.6865978	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	364.4251574	153.75
+	X1_Y128=	150.3485793	364.4251574	91.49999998
+	X128_Y1=	317.1373913	197.6363454	153.7500001
+	X128_Y128=	317.1373914	197.6363453	91.50000013
+	VIS=all
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldPhParis
+	THETA=	54.73
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldPhParis
+	THETA=	54.73
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldPhParis
+	THETA=	54.73
+	PHI=	225
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldPhParis
+	THETA=	54.73
+	PHI=	315
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldPhParis
+	THETA=	125.26
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldPhParis
+	THETA=	125.26
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldPhParis
+	THETA=	125.26
+	PHI=	225
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldPhParis
+	THETA=	125.26
+	PHI=	315
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/ParisAll_208pipe1noshield.detector b/Inputs/DetectorConfiguration/ParisAll_208pipe1noshield.detector
new file mode 100644
index 000000000..fbbf2f0a8
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208pipe1noshield.detector
@@ -0,0 +1,212 @@
+%Fichier de configuration manip E225
+%%%%%%%%%%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
+%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
+%Thickness in micrometer
+%Radius in mm
+%Temperature in K, Pressure in bar
+%Material name according to the target library
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Target
+	THICKNESS= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	X= 0
+	Y= 0
+	Z= 0	
+	NBLAYERS= 50
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-84.5	-208	84.5
+	X1_Y128=	84.5	-208	84.5
+	X128_Y1=	-84.5	-208	-84.5
+	X128_Y128=	84.5	-208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-206.8287414	-87.3276796	84.5
+	X1_Y128=	-87.32769537	-206.8287256	84.5
+	X128_Y1=	-206.8287414	-87.3276796	-84.5
+	X128_Y128=	-87.32769537	-206.8287256	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-208	84.50001115	84.5
+	X1_Y128=	-208	-84.49998885	84.5
+	X128_Y1=	-208	84.50001115	-84.5
+	X128_Y128=	-208	-84.49998885	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.3276796	206.8287414	84.5
+	X1_Y128=	-206.8287256	87.32769537	84.5
+	X128_Y1=	-87.3276796	206.8287414	-84.5
+	X128_Y128=	-206.8287256	87.32769537	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.50000557	208	84.5
+	X1_Y128=	-84.49999443	208	84.5
+	X128_Y1=	84.50000557	208	-84.5
+	X128_Y128=	-84.49999443	208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	87.32768749	84.5
+	X1_Y128=	87.32768749	206.8287335	84.5
+	X128_Y1=	206.8287335	87.32768749	-84.5
+	X128_Y128=	87.32768749	206.8287335	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	208	-84.50002229	84.5
+	X1_Y128=	208	84.49997771	84.5
+	X128_Y1=	208	-84.50002229	-84.5
+	X128_Y128=	208	84.49997771	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32767172	-206.8287493	84.5
+	X1_Y128=	206.8287177	-87.32770325	84.5
+	X128_Y1=	87.32767172	-206.8287493	-84.5
+	X128_Y128=	206.8287177	-87.32770325	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisCluster
+%	X1_Y1=	84.5	84.5	-208
+%	X1_Y128=	-84.5	84.5	-208
+%	X128_Y1=	84.5	-84.5	-208
+%	X128_Y128=	-84.5	-84.5	-208
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	84.49998424	-87.32768749
+	X1_Y128=	87.32768749	84.49998424	-206.8287335
+	X128_Y1=	206.8287335	-84.50001576	-87.32768749
+	X128_Y128=	87.32768749	-84.50001576	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32768749	84.49998424	206.8287335
+	X1_Y128=	206.8287335	84.49998424	87.32768749
+	X128_Y1=	87.32768749	-84.50001576	206.8287335
+	X128_Y128=	206.8287335	-84.50001576	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisCluster
+%	X1_Y1=	-84.5	84.5	208
+%	X1_Y128=	84.5	84.5	208
+%	X128_Y1=	-84.5	-84.5	208
+%	X128_Y128=	84.5	-84.5	208
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-206.8287335	84.50000788	87.32768749
+	X1_Y128=	-87.32768749	84.50000788	206.8287335
+	X128_Y1=	-206.8287335	-84.49999212	87.32768749
+	X128_Y128=	-87.32768749	-84.49999212	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.32768749	84.50000788	-206.8287335
+	X1_Y128=	-206.8287335	84.50000788	-87.32768749
+	X128_Y1=	-87.32768749	-84.49999212	-206.8287335
+	X128_Y128=	-206.8287335	-84.49999212	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	87.32768749	-206.8287335
+	X1_Y128=	84.50000394	87.32768749	-206.8287335
+	X128_Y1=	-84.49999606	206.8287335	-87.32768749
+	X128_Y128=	84.50000394	206.8287335	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	206.8287335	87.32768749
+	X1_Y128=	84.50000394	206.8287335	87.32768749
+	X128_Y1=	-84.49999606	87.32768749	206.8287335
+	X128_Y128=	84.50000394	87.32768749	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-87.32768749	206.8287335
+	X1_Y128=	84.49998818	-87.32768749	206.8287335
+	X128_Y1=	-84.50001182	-206.8287335	87.32768749
+	X128_Y128=	84.49998818	-206.8287335	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-206.8287335	-87.32768749
+	X1_Y128=	84.49998818	-206.8287335	-87.32768749
+	X128_Y1=	-84.50001182	-87.32768749	-206.8287335
+	X128_Y128=	84.49998818	-87.32768749	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063166	143.3590149	-88.30123599
+	X1_Y128=	-151.8764696	96.81870993	-111.571389
+	X128_Y1=	-88.30122956	143.3590149	-128.606323
+	X128_Y128=	-111.5713826	96.81870993	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30122956	143.3590149	128.606323
+	X1_Y128=	-111.5713826	96.81870993	151.876476
+	X128_Y1=	-128.6063166	143.3590149	88.30123599
+	X128_Y128=	-151.8764696	96.81870993	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.606323	143.3590085	88.30123599
+	X1_Y128=	151.876476	96.81870349	111.571389
+	X128_Y1=	88.30123599	143.3590085	128.606323
+	X128_Y128=	111.571389	96.81870349	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30123599	143.3590085	-128.606323
+	X1_Y128=	111.571389	96.81870349	-151.876476
+	X128_Y1=	128.606323	143.3590085	-88.30123599
+	X128_Y128=	151.876476	96.81870349	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30124243	-143.3590021	-128.606323
+	X1_Y128=	-111.5713954	-96.81869706	-151.876476
+	X128_Y1=	-128.6063294	-143.3590021	-88.30123599
+	X128_Y128=	-151.8764824	-96.81869706	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.6063101	-143.3590214	-88.30123599
+	X1_Y128=	151.8764631	-96.81871636	-111.571389
+	X128_Y1=	88.30122312	-143.3590214	-128.606323
+	X128_Y128=	111.5713761	-96.81871636	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30122312	-143.3590214	128.606323
+	X1_Y128=	111.5713761	-96.81871636	151.876476
+	X128_Y1=	128.6063101	-143.3590214	88.30123599
+	X128_Y128=	151.8764631	-96.81871636	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063294	-143.3590021	88.30123599
+	X1_Y128=	-151.8764824	-96.81869706	111.571389
+	X128_Y1=	-88.30124243	-143.3590021	128.606323
+	X128_Y128=	-111.5713954	-96.81869706	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/ParisAll_208pipe2.detector b/Inputs/DetectorConfiguration/ParisAll_208pipe2.detector
new file mode 100644
index 000000000..c7165ff81
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208pipe2.detector
@@ -0,0 +1,792 @@
+%Fichier de configuration manip E225
+%%%%%%%%%%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
+%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
+%Thickness in micrometer
+%Radius in mm
+%Temperature in K, Pressure in bar
+%Material name according to the target library
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Target
+	THICKNESS= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	X= 0
+	Y= 0
+	Z= 0	
+	NBLAYERS= 50
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-84.5	-208	84.5
+	X1_Y128=	84.5	-208	84.5
+	X128_Y1=	-84.5	-208	-84.5
+	X128_Y128=	84.5	-208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-206.8287414	-87.3276796	84.5
+	X1_Y128=	-87.32769537	-206.8287256	84.5
+	X128_Y1=	-206.8287414	-87.3276796	-84.5
+	X128_Y128=	-87.32769537	-206.8287256	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-208	84.50001115	84.5
+	X1_Y128=	-208	-84.49998885	84.5
+	X128_Y1=	-208	84.50001115	-84.5
+	X128_Y128=	-208	-84.49998885	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.3276796	206.8287414	84.5
+	X1_Y128=	-206.8287256	87.32769537	84.5
+	X128_Y1=	-87.3276796	206.8287414	-84.5
+	X128_Y128=	-206.8287256	87.32769537	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.50000557	208	84.5
+	X1_Y128=	-84.49999443	208	84.5
+	X128_Y1=	84.50000557	208	-84.5
+	X128_Y128=	-84.49999443	208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	87.32768749	84.5
+	X1_Y128=	87.32768749	206.8287335	84.5
+	X128_Y1=	206.8287335	87.32768749	-84.5
+	X128_Y128=	87.32768749	206.8287335	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	208	-84.50002229	84.5
+	X1_Y128=	208	84.49997771	84.5
+	X128_Y1=	208	-84.50002229	-84.5
+	X128_Y128=	208	84.49997771	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32767172	-206.8287493	84.5
+	X1_Y128=	206.8287177	-87.32770325	84.5
+	X128_Y1=	87.32767172	-206.8287493	-84.5
+	X128_Y128=	206.8287177	-87.32770325	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.5	84.5	-208
+	X1_Y128=	-84.5	84.5	-208
+	X128_Y1=	84.5	-84.5	-208
+	X128_Y128=	-84.5	-84.5	-208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	84.49998424	-87.32768749
+	X1_Y128=	87.32768749	84.49998424	-206.8287335
+	X128_Y1=	206.8287335	-84.50001576	-87.32768749
+	X128_Y128=	87.32768749	-84.50001576	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32768749	84.49998424	206.8287335
+	X1_Y128=	206.8287335	84.49998424	87.32768749
+	X128_Y1=	87.32768749	-84.50001576	206.8287335
+	X128_Y128=	206.8287335	-84.50001576	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.5	84.5	208
+	X1_Y128=	84.5	84.5	208
+	X128_Y1=	-84.5	-84.5	208
+	X128_Y128=	84.5	-84.5	208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-206.8287335	84.50000788	87.32768749
+	X1_Y128=	-87.32768749	84.50000788	206.8287335
+	X128_Y1=	-206.8287335	-84.49999212	87.32768749
+	X128_Y128=	-87.32768749	-84.49999212	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.32768749	84.50000788	-206.8287335
+	X1_Y128=	-206.8287335	84.50000788	-87.32768749
+	X128_Y1=	-87.32768749	-84.49999212	-206.8287335
+	X128_Y128=	-206.8287335	-84.49999212	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	87.32768749	-206.8287335
+	X1_Y128=	84.50000394	87.32768749	-206.8287335
+	X128_Y1=	-84.49999606	206.8287335	-87.32768749
+	X128_Y128=	84.50000394	206.8287335	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	206.8287335	87.32768749
+	X1_Y128=	84.50000394	206.8287335	87.32768749
+	X128_Y1=	-84.49999606	87.32768749	206.8287335
+	X128_Y128=	84.50000394	87.32768749	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-87.32768749	206.8287335
+	X1_Y128=	84.49998818	-87.32768749	206.8287335
+	X128_Y1=	-84.50001182	-206.8287335	87.32768749
+	X128_Y128=	84.49998818	-206.8287335	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-206.8287335	-87.32768749
+	X1_Y128=	84.49998818	-206.8287335	-87.32768749
+	X128_Y1=	-84.50001182	-87.32768749	-206.8287335
+	X128_Y128=	84.49998818	-87.32768749	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063166	143.3590149	-88.30123599
+	X1_Y128=	-151.8764696	96.81870993	-111.571389
+	X128_Y1=	-88.30122956	143.3590149	-128.606323
+	X128_Y128=	-111.5713826	96.81870993	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30122956	143.3590149	128.606323
+	X1_Y128=	-111.5713826	96.81870993	151.876476
+	X128_Y1=	-128.6063166	143.3590149	88.30123599
+	X128_Y128=	-151.8764696	96.81870993	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.606323	143.3590085	88.30123599
+	X1_Y128=	151.876476	96.81870349	111.571389
+	X128_Y1=	88.30123599	143.3590085	128.606323
+	X128_Y128=	111.571389	96.81870349	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=	88.30123599	143.3590085	-128.606323
+%	X1_Y128=	111.571389	96.81870349	-151.876476
+%	X128_Y1=	128.606323	143.3590085	-88.30123599
+%	X128_Y128=	151.876476	96.81870349	-111.571389
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30124243	-143.3590021	-128.606323
+	X1_Y128=	-111.5713954	-96.81869706	-151.876476
+	X128_Y1=	-128.6063294	-143.3590021	-88.30123599
+	X128_Y128=	-151.8764824	-96.81869706	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.6063101	-143.3590214	-88.30123599
+	X1_Y128=	151.8764631	-96.81871636	-111.571389
+	X128_Y1=	88.30122312	-143.3590214	-128.606323
+	X128_Y128=	111.5713761	-96.81871636	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30122312	-143.3590214	128.606323
+	X1_Y128=	111.5713761	-96.81871636	151.876476
+	X128_Y1=	128.6063101	-143.3590214	88.30123599
+	X128_Y128=	151.8764631	-96.81871636	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=	-128.6063294	-143.3590021	88.30123599
+%	X1_Y128=	-151.8764824	-96.81869706	111.571389
+%	X128_Y1=	-88.30124243	-143.3590021	128.606323
+%	X128_Y128=	-111.5713954	-96.81869706	151.876476
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Shield
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldClParis
+	X1_Y1=	151.375	153.75	364
+	X1_Y128=	151.375	91.5	364
+	X128_Y1=	-84.5	153.75	364
+	X128_Y128=	-84.5	91.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-151.375	364
+	X1_Y128=	91.49999999	-151.375	364
+	X128_Y1=	153.75	84.49999999	364
+	X128_Y128=	91.50000004	84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-153.75	364
+	X1_Y128=	-151.375	-91.49999999	364
+	X128_Y1=	84.49999997	-153.7500001	364
+	X128_Y128=	84.5	-91.50000008	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	151.375	364
+	X1_Y128=	-91.49999998	151.375	364
+	X128_Y1=	-153.7500001	-84.49999996	364
+	X128_Y128=	-91.50000013	-84.5	364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldClParis
+	X1_Y1=	151.375	-148.6692007	366.104536
+	X1_Y128=	151.375	-192.6865979	322.0871388
+	X128_Y1=	-84.5	-148.6692007	366.104536
+	X128_Y128=	-84.5	-192.6865979	322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364.4251574	150.3485793
+	X1_Y128=	91.49999999	-364.4251574	150.3485793
+	X128_Y1=	153.75	-197.6363454	317.1373914
+	X128_Y128=	91.50000004	-197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-366.104536	148.6692008
+	X1_Y128=	-151.375	-322.0871388	192.6865979
+	X128_Y1=	84.49999997	-366.104536	148.6692007
+	X128_Y128=	84.5	-322.0871389	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-150.3485793	364.4251574
+	X1_Y128=	-91.49999998	-150.3485793	364.4251574
+	X128_Y1=	-153.7500001	-317.1373913	197.6363454
+	X128_Y128=	-91.50000013	-317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldClParis
+	X1_Y1=	151.375	-364	153.75
+	X1_Y128=	151.375	-364	91.5
+	X128_Y1=	-84.5	-364	153.75
+	X128_Y128=	-84.5	-364	91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-364	-151.375
+	X1_Y128=	91.49999999	-364	-151.375
+	X128_Y1=	153.75	-364	84.49999999
+	X128_Y128=	91.50000004	-364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-364	-153.75
+	X1_Y128=	-151.375	-364	-91.49999999
+	X128_Y1=	84.49999997	-364	-153.7500001
+	X128_Y128=	84.5	-364	-91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364	151.375
+	X1_Y128=	-91.49999998	-364	151.375
+	X128_Y1=	-153.7500001	-364	-84.49999996
+	X128_Y128=	-91.50000013	-364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldClParis
+	X1_Y1=	151.375	-366.104536	-148.6692007
+	X1_Y128=	151.375	-322.0871388	-192.6865979
+	X128_Y1=	-84.5	-366.104536	-148.6692007
+	X128_Y128=	-84.5	-322.0871388	-192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	-150.3485793	-364.4251574
+	X1_Y128=	91.49999999	-150.3485793	-364.4251574
+	X128_Y1=	153.75	-317.1373914	-197.6363454
+	X128_Y128=	91.50000004	-317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	-148.6692008	-366.104536
+	X1_Y128=	-151.375	-192.6865979	-322.0871388
+	X128_Y1=	84.49999997	-148.6692007	-366.104536
+	X128_Y128=	84.5	-192.6865978	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-364.4251574	-150.3485793
+	X1_Y128=	-91.49999998	-364.4251574	-150.3485793
+	X128_Y1=	-153.7500001	-197.6363454	-317.1373913
+	X128_Y128=	-91.50000013	-197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldClParis
+	X1_Y1=	151.375	-153.75	-364
+	X1_Y128=	151.375	-91.5	-364
+	X128_Y1=	-84.5	-153.75	-364
+	X128_Y128=	-84.5	-91.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	151.375	-364
+	X1_Y128=	91.49999999	151.375	-364
+	X128_Y1=	153.75	-84.49999999	-364
+	X128_Y128=	91.50000004	-84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	153.75	-364
+	X1_Y128=	-151.375	91.49999999	-364
+	X128_Y1=	84.49999997	153.7500001	-364
+	X128_Y128=	84.5	91.50000008	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	-151.375	-364
+	X1_Y128=	-91.49999998	-151.375	-364
+	X128_Y1=	-153.7500001	84.49999996	-364
+	X128_Y128=	-91.50000013	84.5	-364
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldClParis
+	X1_Y1=	151.375	148.6692007	-366.104536
+	X1_Y128=	151.375	192.6865979	-322.0871388
+	X128_Y1=	-84.5	148.6692007	-366.104536
+	X128_Y128=	-84.5	192.6865979	-322.0871388
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364.4251574	-150.3485793
+	X1_Y128=	91.49999999	364.4251574	-150.3485793
+	X128_Y1=	153.75	197.6363454	-317.1373914
+	X128_Y128=	91.50000004	197.6363453	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	366.104536	-148.6692008
+	X1_Y128=	-151.375	322.0871388	-192.6865979
+	X128_Y1=	84.49999997	366.104536	-148.6692007
+	X128_Y128=	84.5	322.0871389	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	150.3485793	-364.4251574
+	X1_Y128=	-91.49999998	150.3485793	-364.4251574
+	X128_Y1=	-153.7500001	317.1373913	-197.6363454
+	X128_Y128=	-91.50000013	317.1373914	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldClParis
+	X1_Y1=	151.375	364	-153.75
+	X1_Y128=	151.375	364	-91.5
+	X128_Y1=	-84.5	364	-153.75
+	X128_Y128=	-84.5	364	-91.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	364	151.375
+	X1_Y128=	91.49999999	364	151.375
+	X128_Y1=	153.75	364	-84.49999999
+	X128_Y128=	91.50000004	364	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	364	153.75
+	X1_Y128=	-151.375	364	91.49999999
+	X128_Y1=	84.49999997	364	153.7500001
+	X128_Y128=	84.5	364	91.50000008
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364	-151.375
+	X1_Y128=	-91.49999998	364	-151.375
+	X128_Y1=	-153.7500001	364	84.49999996
+	X128_Y128=	-91.50000013	364	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldClParis
+	X1_Y1=	151.375	366.104536	148.6692007
+	X1_Y128=	151.375	322.0871388	192.6865979
+	X128_Y1=	-84.5	366.104536	148.6692007
+	X128_Y128=	-84.5	322.0871388	192.6865979
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	153.75	150.3485793	364.4251574
+	X1_Y128=	91.49999999	150.3485793	364.4251574
+	X128_Y1=	153.75	317.1373914	197.6363454
+	X128_Y128=	91.50000004	317.1373914	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-151.375	148.6692008	366.104536
+	X1_Y128=	-151.375	192.6865979	322.0871388
+	X128_Y1=	84.49999997	148.6692007	366.104536
+	X128_Y128=	84.5	192.6865978	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-153.75	364.4251574	150.3485793
+	X1_Y128=	-91.49999998	364.4251574	150.3485793
+	X128_Y1=	-153.7500001	197.6363454	317.1373913
+	X128_Y128=	-91.50000013	197.6363453	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ShieldClParis
+	X1_Y1=	-150.3485793	153.75	364.4251574
+	X1_Y128=	-150.3485793	91.5	364.4251574
+	X128_Y1=	-317.1373914	153.75	197.6363453
+	X128_Y128=	-317.1373914	91.5	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692007	-151.375	366.104536
+	X1_Y128=	-192.6865979	-151.375	322.0871388
+	X128_Y1=	-148.6692007	84.49999999	366.104536
+	X128_Y128=	-192.6865978	84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-153.75	150.3485793
+	X1_Y128=	-364.4251574	-91.49999999	150.3485793
+	X128_Y1=	-197.6363454	-153.7500001	317.1373913
+	X128_Y128=	-197.6363453	-91.50000008	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.1045359	151.375	148.6692008
+	X1_Y128=	-322.0871388	151.375	192.6865979
+	X128_Y1=	-366.104536	-84.49999996	148.6692007
+	X128_Y128=	-322.0871389	-84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ShieldClParis
+	X1_Y1=	-364	153.75	151.375
+	X1_Y128=	-364	91.5	151.375
+	X128_Y1=	-364	153.75	-84.5
+	X128_Y128=	-364	91.5	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-151.375	153.75
+	X1_Y128=	-364	-151.375	91.49999999
+	X128_Y1=	-364	84.49999999	153.75
+	X128_Y128=	-364	84.5	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-153.75	-151.375
+	X1_Y128=	-364	-91.49999999	-151.375
+	X128_Y1=	-364	-153.7500001	84.49999997
+	X128_Y128=	-364	-91.50000008	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	151.375	-153.75
+	X1_Y128=	-364	151.375	-91.49999998
+	X128_Y1=	-364	-84.49999996	-153.7500001
+	X128_Y128=	-364	-84.5	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ShieldClParis
+	X1_Y1=	-364.4251574	153.75	-150.3485793
+	X1_Y128=	-364.4251574	91.5	-150.3485793
+	X128_Y1=	-197.6363453	153.75	-317.1373914
+	X128_Y128=	-197.6363453	91.5	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	-151.375	-148.6692007
+	X1_Y128=	-322.0871388	-151.375	-192.6865979
+	X128_Y1=	-366.104536	84.49999999	-148.6692007
+	X128_Y128=	-322.0871389	84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-153.75	-364.4251574
+	X1_Y128=	-150.3485793	-91.49999999	-364.4251574
+	X128_Y1=	-317.1373913	-153.7500001	-197.6363454
+	X128_Y128=	-317.1373914	-91.50000008	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	151.375	-366.1045359
+	X1_Y128=	-192.6865979	151.375	-322.0871388
+	X128_Y1=	-148.6692007	-84.49999996	-366.104536
+	X128_Y128=	-192.6865978	-84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ShieldClParis
+	X1_Y1=	150.3485793	153.75	-364.4251574
+	X1_Y128=	150.3485793	91.5	-364.4251574
+	X128_Y1=	317.1373914	153.75	-197.6363453
+	X128_Y128=	317.1373914	91.5	-197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692007	-151.375	-366.104536
+	X1_Y128=	192.6865979	-151.375	-322.0871388
+	X128_Y1=	148.6692007	84.49999999	-366.104536
+	X128_Y128=	192.6865978	84.5	-322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-153.75	-150.3485793
+	X1_Y128=	364.4251574	-91.49999999	-150.3485793
+	X128_Y1=	197.6363454	-153.7500001	-317.1373913
+	X128_Y128=	197.6363453	-91.50000008	-317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.1045359	151.375	-148.6692008
+	X1_Y128=	322.0871388	151.375	-192.6865979
+	X128_Y1=	366.104536	-84.49999996	-148.6692007
+	X128_Y128=	322.0871389	-84.5	-192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ShieldClParis
+	X1_Y1=	364	153.75	-151.375
+	X1_Y128=	364	91.5	-151.375
+	X128_Y1=	364	153.75	84.5
+	X128_Y128=	364	91.5	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-151.375	-153.75
+	X1_Y128=	364	-151.375	-91.49999999
+	X128_Y1=	364	84.49999999	-153.75
+	X128_Y128=	364	84.5	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	-153.75	151.375
+	X1_Y128=	364	-91.49999999	151.375
+	X128_Y1=	364	-153.7500001	-84.49999997
+	X128_Y128=	364	-91.50000008	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364	151.375	153.75
+	X1_Y128=	364	151.375	91.49999998
+	X128_Y1=	364	-84.49999996	153.7500001
+	X128_Y128=	364	-84.5	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ShieldClParis
+	X1_Y1=	364.4251574	153.75	150.3485793
+	X1_Y128=	364.4251574	91.5	150.3485793
+	X128_Y1=	197.6363453	153.75	317.1373914
+	X128_Y128=	197.6363453	91.5	317.1373914
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	-151.375	148.6692007
+	X1_Y128=	322.0871388	-151.375	192.6865979
+	X128_Y1=	366.104536	84.49999999	148.6692007
+	X128_Y128=	322.0871389	84.5	192.6865978
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-153.75	364.4251574
+	X1_Y128=	150.3485793	-91.49999999	364.4251574
+	X128_Y1=	317.1373913	-153.7500001	197.6363454
+	X128_Y128=	317.1373914	-91.50000008	197.6363453
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	151.375	366.1045359
+	X1_Y128=	192.6865979	151.375	322.0871388
+	X128_Y1=	148.6692007	-84.49999996	366.104536
+	X128_Y128=	192.6865978	-84.5	322.0871389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ShieldClParis
+	X1_Y1=	-366.104536	-148.6692007	151.375
+	X1_Y128=	-322.0871388	-192.6865979	151.375
+	X128_Y1=	-366.104536	-148.6692007	-84.5
+	X128_Y128=	-322.0871388	-192.6865979	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	-364.4251574	153.75
+	X1_Y128=	-150.3485793	-364.4251574	91.49999999
+	X128_Y1=	-317.1373914	-197.6363454	153.75
+	X128_Y128=	-317.1373914	-197.6363453	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-148.6692008	-366.104536	-151.375
+	X1_Y128=	-192.6865979	-322.0871388	-151.375
+	X128_Y1=	-148.6692007	-366.104536	84.49999997
+	X128_Y128=	-192.6865978	-322.0871389	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	-150.3485793	-153.75
+	X1_Y128=	-364.4251574	-150.3485793	-91.49999998
+	X128_Y1=	-197.6363454	-317.1373913	-153.7500001
+	X128_Y128=	-197.6363453	-317.1373914	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ShieldClParis
+	X1_Y1=	366.104536	-148.6692007	-151.375
+	X1_Y128=	322.0871388	-192.6865979	-151.375
+	X128_Y1=	366.104536	-148.6692007	84.5
+	X128_Y128=	322.0871388	-192.6865979	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	-364.4251574	-153.75
+	X1_Y128=	150.3485793	-364.4251574	-91.49999999
+	X128_Y1=	317.1373914	-197.6363454	-153.75
+	X128_Y128=	317.1373914	-197.6363453	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	148.6692008	-366.104536	151.375
+	X1_Y128=	192.6865979	-322.0871388	151.375
+	X128_Y1=	148.6692007	-366.104536	-84.49999997
+	X128_Y128=	192.6865978	-322.0871389	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	-150.3485793	153.75
+	X1_Y128=	364.4251574	-150.3485793	91.49999998
+	X128_Y1=	197.6363454	-317.1373913	153.7500001
+	X128_Y128=	197.6363453	-317.1373914	91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ShieldClParis
+	X1_Y1=	-148.6692007	366.104536	151.375
+	X1_Y128=	-192.6865979	322.0871388	151.375
+	X128_Y1=	-148.6692007	366.104536	-84.5
+	X128_Y128=	-192.6865979	322.0871388	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364.4251574	150.3485793	153.75
+	X1_Y128=	-364.4251574	150.3485793	91.49999999
+	X128_Y1=	-197.6363454	317.1373914	153.75
+	X128_Y128=	-197.6363453	317.1373914	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-366.104536	148.6692008	-151.375
+	X1_Y128=	-322.0871388	192.6865979	-151.375
+	X128_Y1=	-366.104536	148.6692007	84.49999997
+	X128_Y128=	-322.0871389	192.6865978	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-150.3485793	364.4251574	-153.75
+	X1_Y128=	-150.3485793	364.4251574	-91.49999998
+	X128_Y1=	-317.1373913	197.6363454	-153.7500001
+	X128_Y128=	-317.1373914	197.6363453	-91.50000013
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ShieldClParis
+	X1_Y1=	148.6692007	366.104536	-151.375
+	X1_Y128=	192.6865979	322.0871388	-151.375
+	X128_Y1=	148.6692007	366.104536	84.5
+	X128_Y128=	192.6865979	322.0871388	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	364.4251574	150.3485793	-153.75
+	X1_Y128=	364.4251574	150.3485793	-91.49999999
+	X128_Y1=	197.6363454	317.1373914	-153.75
+	X128_Y128=	197.6363453	317.1373914	-91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	366.104536	148.6692008	151.375
+	X1_Y128=	322.0871388	192.6865979	151.375
+	X128_Y1=	366.104536	148.6692007	-84.49999997
+	X128_Y128=	322.0871389	192.6865978	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	150.3485793	364.4251574	153.75
+	X1_Y128=	150.3485793	364.4251574	91.49999998
+	X128_Y1=	317.1373913	197.6363454	153.7500001
+	X128_Y128=	317.1373914	197.6363453	91.50000013
+	VIS=all
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldPhParis
+	THETA=	54.73
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldPhParis
+	THETA=	54.73
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+%ShieldPhParis
+%	THETA=	54.73
+%	PHI=	225
+%	R=	248
+%	BETA= 0 0 -30
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldPhParis
+	THETA=	54.73
+	PHI=	315
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+%ShieldPhParis
+%	THETA=	125.26
+%	PHI=	45.02
+%	R=	248
+%	BETA= 0 0 30
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldPhParis
+	THETA=	125.26
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldPhParis
+	THETA=	125.26
+	PHI=	225
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldPhParis
+	THETA=	125.26
+	PHI=	315
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/ParisAll_208pipe2noshield.detector b/Inputs/DetectorConfiguration/ParisAll_208pipe2noshield.detector
new file mode 100644
index 000000000..ea1aeb30b
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208pipe2noshield.detector
@@ -0,0 +1,211 @@
+%Fichier de configuration manip E225
+%%%%%%%%%%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
+%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1
+%Thickness in micrometer
+%Radius in mm
+%Temperature in K, Pressure in bar
+%Material name according to the target library
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralTarget
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Target
+	THICKNESS= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	X= 0
+	Y= 0
+	Z= 0	
+	NBLAYERS= 50
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-84.5	-208	84.5
+	X1_Y128=	84.5	-208	84.5
+	X128_Y1=	-84.5	-208	-84.5
+	X128_Y128=	84.5	-208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-206.8287414	-87.3276796	84.5
+	X1_Y128=	-87.32769537	-206.8287256	84.5
+	X128_Y1=	-206.8287414	-87.3276796	-84.5
+	X128_Y128=	-87.32769537	-206.8287256	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-208	84.50001115	84.5
+	X1_Y128=	-208	-84.49998885	84.5
+	X128_Y1=	-208	84.50001115	-84.5
+	X128_Y128=	-208	-84.49998885	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.3276796	206.8287414	84.5
+	X1_Y128=	-206.8287256	87.32769537	84.5
+	X128_Y1=	-87.3276796	206.8287414	-84.5
+	X128_Y128=	-206.8287256	87.32769537	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.50000557	208	84.5
+	X1_Y128=	-84.49999443	208	84.5
+	X128_Y1=	84.50000557	208	-84.5
+	X128_Y128=	-84.49999443	208	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	87.32768749	84.5
+	X1_Y128=	87.32768749	206.8287335	84.5
+	X128_Y1=	206.8287335	87.32768749	-84.5
+	X128_Y128=	87.32768749	206.8287335	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	208	-84.50002229	84.5
+	X1_Y128=	208	84.49997771	84.5
+	X128_Y1=	208	-84.50002229	-84.5
+	X128_Y128=	208	84.49997771	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32767172	-206.8287493	84.5
+	X1_Y128=	206.8287177	-87.32770325	84.5
+	X128_Y1=	87.32767172	-206.8287493	-84.5
+	X128_Y128=	206.8287177	-87.32770325	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	84.5	84.5	-208
+	X1_Y128=	-84.5	84.5	-208
+	X128_Y1=	84.5	-84.5	-208
+	X128_Y128=	-84.5	-84.5	-208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	206.8287335	84.49998424	-87.32768749
+	X1_Y128=	87.32768749	84.49998424	-206.8287335
+	X128_Y1=	206.8287335	-84.50001576	-87.32768749
+	X128_Y128=	87.32768749	-84.50001576	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	87.32768749	84.49998424	206.8287335
+	X1_Y128=	206.8287335	84.49998424	87.32768749
+	X128_Y1=	87.32768749	-84.50001576	206.8287335
+	X128_Y128=	206.8287335	-84.50001576	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.5	84.5	208
+	X1_Y128=	84.5	84.5	208
+	X128_Y1=	-84.5	-84.5	208
+	X128_Y128=	84.5	-84.5	208
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-206.8287335	84.50000788	87.32768749
+	X1_Y128=	-87.32768749	84.50000788	206.8287335
+	X128_Y1=	-206.8287335	-84.49999212	87.32768749
+	X128_Y128=	-87.32768749	-84.49999212	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-87.32768749	84.50000788	-206.8287335
+	X1_Y128=	-206.8287335	84.50000788	-87.32768749
+	X128_Y1=	-87.32768749	-84.49999212	-206.8287335
+	X128_Y128=	-206.8287335	-84.49999212	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	87.32768749	-206.8287335
+	X1_Y128=	84.50000394	87.32768749	-206.8287335
+	X128_Y1=	-84.49999606	206.8287335	-87.32768749
+	X128_Y128=	84.50000394	206.8287335	-87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.49999606	206.8287335	87.32768749
+	X1_Y128=	84.50000394	206.8287335	87.32768749
+	X128_Y1=	-84.49999606	87.32768749	206.8287335
+	X128_Y128=	84.50000394	87.32768749	206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-87.32768749	206.8287335
+	X1_Y128=	84.49998818	-87.32768749	206.8287335
+	X128_Y1=	-84.50001182	-206.8287335	87.32768749
+	X128_Y128=	84.49998818	-206.8287335	87.32768749
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisCluster
+	X1_Y1=	-84.50001182	-206.8287335	-87.32768749
+	X1_Y128=	84.49998818	-206.8287335	-87.32768749
+	X128_Y1=	-84.50001182	-87.32768749	-206.8287335
+	X128_Y128=	84.49998818	-87.32768749	-206.8287335
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-128.6063166	143.3590149	-88.30123599
+	X1_Y128=	-151.8764696	96.81870993	-111.571389
+	X128_Y1=	-88.30122956	143.3590149	-128.606323
+	X128_Y128=	-111.5713826	96.81870993	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30122956	143.3590149	128.606323
+	X1_Y128=	-111.5713826	96.81870993	151.876476
+	X128_Y1=	-128.6063166	143.3590149	88.30123599
+	X128_Y128=	-151.8764696	96.81870993	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.606323	143.3590085	88.30123599
+	X1_Y128=	151.876476	96.81870349	111.571389
+	X128_Y1=	88.30123599	143.3590085	128.606323
+	X128_Y128=	111.571389	96.81870349	151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=	88.30123599	143.3590085	-128.606323
+%	X1_Y128=	111.571389	96.81870349	-151.876476
+%	X128_Y1=	128.606323	143.3590085	-88.30123599
+%	X128_Y128=	151.876476	96.81870349	-111.571389
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	-88.30124243	-143.3590021	-128.606323
+	X1_Y128=	-111.5713954	-96.81869706	-151.876476
+	X128_Y1=	-128.6063294	-143.3590021	-88.30123599
+	X128_Y128=	-151.8764824	-96.81869706	-111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	128.6063101	-143.3590214	-88.30123599
+	X1_Y128=	151.8764631	-96.81871636	-111.571389
+	X128_Y1=	88.30122312	-143.3590214	-128.606323
+	X128_Y128=	111.5713761	-96.81871636	-151.876476
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=	88.30122312	-143.3590214	128.606323
+	X1_Y128=	111.5713761	-96.81871636	151.876476
+	X128_Y1=	128.6063101	-143.3590214	88.30123599
+	X128_Y128=	151.8764631	-96.81871636	111.571389
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=	-128.6063294	-143.3590021	88.30123599
+%	X1_Y128=	-151.8764824	-96.81869706	111.571389
+%	X128_Y1=	-88.30124243	-143.3590021	128.606323
+%	X128_Y128=	-111.5713954	-96.81869706	151.876476
+%	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/ParisAll_208tilt.detector b/Inputs/DetectorConfiguration/ParisAll_208tilt.detector
new file mode 100644
index 000000000..6ba61696c
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_208tilt.detector
@@ -0,0 +1,220 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	NBLAYERS= 50
+	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
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-50.418664	-87.327687	-217.661051
+	X1_Y128=	-188.406586	-87.327687	-120.088856
+	X128_Y1=	18.575297	-206.828733	-120.088856
+	X128_Y128=	-119.412625	-206.828733	-22.51666
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisClShield
+	X1_Y1=	151.375	153.75	364
+	X1_Y128=	151.375	91.5	364
+	X128_Y1=	-84.5	153.75	364
+	X128_Y128=	-84.5	91.5	364
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-190.237216	-86.499477	-117.780059
+	X1_Y128=	-239.023313	-1.999477	20.207863
+	X128_Y1=	-121.243255	-206.000523	-20.207863
+	X128_Y128=	-170.029352	-121.500523	117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=	-238.82525	0	22.51666
+	X1_Y128=	-169.831289	119.501046	120.088856
+	X128_Y1=	-169.831289	-119.501046	120.088856
+	X128_Y128=	-100.837328	0	217.661051
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisCluster
+	X1_Y1=	-167.720555	121.500523	121.045191
+	X1_Y128=	-21.362262	206.000523	121.045191
+	X128_Y1=	-98.726594	1.999477	218.617387
+	X128_Y128=	47.631699	86.499477	218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisCluster
+	X1_Y1=	-18.575297	206.828733	120.088856
+	X1_Y128=	119.412625	206.828733	22.51666
+	X128_Y1=	50.418664	87.327687	217.661051
+	X128_Y128=	188.406586	87.327687	120.088856
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisCluster
+	X1_Y1=	121.243255	206.000523	20.207863
+	X1_Y128=	170.029352	121.500523	-117.780059
+	X128_Y1=	190.237216	86.499477	117.780059
+	X128_Y128=	239.023313	1.999477	-20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisCluster
+	X1_Y1=	169.831289	119.501046	-120.088856
+	X1_Y128=	100.837328	0	-217.661051
+	X128_Y1=	238.82525	0	-22.51666
+	X128_Y128=	169.831289	-119.501046	-120.088856
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisCluster
+	X1_Y1=	98.726594	-1.999477	-218.617387
+	X1_Y128=	-47.631699	-86.499477	-218.617387
+	X128_Y1=	167.720555	-121.500523	-121.045191
+	X128_Y128=	21.362262	-206.000523	-121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ParisCluster
+	X1_Y1=	50.418664	-87.327687	217.661051
+	X1_Y128=	188.406586	-87.327687	120.088856
+	X128_Y1=	-18.575297	-206.828733	120.088856
+	X128_Y128=	119.412625	-206.828733	22.51666
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ParisCluster
+	X1_Y1=	190.237216	-86.499477	117.780059
+	X1_Y128=	239.023313	-1.999477	-20.207863
+	X128_Y1=	121.243255	-206.000523	20.207863
+	X128_Y128=	170.029352	-121.500523	-117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ParisCluster
+	X1_Y1=	167.720555	121.500523	-121.045191
+	X1_Y128=	21.362262	206.000523	-121.045191
+	X128_Y1=	98.726594	1.999477	-218.617387
+	X128_Y128=	-47.631699	86.499477	-218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ParisCluster
+	X1_Y1=	18.575297	206.828733	-120.088856
+	X1_Y128=	-119.412625	206.828733	-22.51666
+	X128_Y1=	-50.418664	87.327687	-217.661051
+	X128_Y128=	-188.406586	87.327687	-120.088856
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ParisCluster
+	X1_Y1=	-121.243255	206.000523	-20.207863
+	X1_Y128=	-170.029352	121.500523	117.780059
+	X128_Y1=	-190.237216	86.499477	-117.780059
+	X128_Y128=	-239.023313	1.999477	20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ParisCluster
+	X1_Y1=	-98.726594	-1.999477	218.617387
+	X1_Y128=	47.631699	-86.499477	218.617387
+	X128_Y1=	-167.720555	-121.500523	121.045191
+	X128_Y128=	-21.362262	-206.000523	121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ParisCluster
+	X1_Y1=	189.082817	-84.5	121.045191
+	X1_Y128=	51.094895	-84.5	218.617387
+	X128_Y1=	189.082817	84.5	121.045191
+	X128_Y128=	51.094895	84.5	218.617387
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ParisCluster
+	X1_Y1=	117.780059	208	20.207863
+	X1_Y128=	-20.207863	208	117.780059
+	X128_Y1=	20.207863	208	-117.780059
+	X128_Y128=	-117.780059	208	-20.207863
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ParisCluster
+	X1_Y1=	-51.094895	84.5	-218.617387
+	X1_Y128=	-189.082817	84.5	-121.045191
+	X128_Y1=	-51.094895	-84.5	-218.617387
+	X128_Y128=	-189.082817	-84.5	-121.045191
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ParisCluster
+	X1_Y1=	20.207863	-208	-117.780059
+	X1_Y128=	-117.780059	-208	-20.207863
+	X128_Y1=	117.780059	-208	20.207863
+	X128_Y128=	-20.207863	-208	117.780059
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisPhoswich
+	X1_Y1=	-130.029382	-147.354047	79.168457
+	X1_Y128=	-82.529382	-163.80853	106.038515
+	X128_Y1=	-113.574899	-175.854047	32.628152
+	X128_Y128=	-66.074899	-192.30853	59.49821
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisPhoswich
+	X1_Y1=	68.620416	-175.854047	-96.203391
+	X1_Y128=	78.120416	-192.30853	-42.463276
+	X128_Y1=	117.983864	-147.354047	-96.203391
+	X128_Y128=	127.483864	-163.80853	-42.463276
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisPhoswich
+	X1_Y1=	209.081522	10.431724	32.628152
+	X1_Y128=	199.581522	-38.931724	59.49821
+	X128_Y1=	192.627039	38.931724	79.168457
+	X128_Y128=	183.127039	-10.431724	106.038515
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+%ParisPhoswich
+%	X1_Y1=	10.431724	38.931724	208
+%	X1_Y128=	38.931724	-10.431724	208
+%	X128_Y1=	-38.931724	10.431724	208
+%	X128_Y128=	-10.431724	-38.931724	208
+%	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+%ParisPhoswich
+%	X1_Y1=	-38.931724	10.431724	-208.000012
+%	X1_Y128=	-10.431724	-38.931724	-208.000012
+%	X128_Y1=	10.431724	38.931724	-208.000012
+%	X128_Y128=	38.931724	-10.431724	-208.000012
+%	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisPhoswich
+	X1_Y1=	82.529387	163.80854	-106.038519
+	X1_Y128=	130.029387	147.354057	-79.168461
+	X128_Y1=	66.074904	192.30854	-59.498213
+	X128_Y128=	113.574904	175.854057	-32.628156
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisPhoswich
+	X1_Y1=	-78.120422	192.30854	42.46328
+	X1_Y128=	-68.620422	175.854057	96.203395
+	X128_Y1=	-127.48387	163.80854	42.46328
+	X128_Y128=	-117.98387	147.354057	96.203395
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisPhoswich
+	X1_Y1=	-199.581533	38.931724	-59.498213
+	X1_Y128=	-209.081533	-10.431724	-32.628156
+	X128_Y1=	-183.12705	10.431724	-106.038519
+	X128_Y128=	-192.62705	-38.931724	-79.168461	
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/ParisAll_235.detector b/Inputs/DetectorConfiguration/ParisAll_235.detector
new file mode 100644
index 000000000..c4c2e3e5d
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_235.detector
@@ -0,0 +1,340 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	NBLAYERS= 50
+	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
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralChamber
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Chamber
+        Rmin= 200
+        Rmax= 201
+        PhiMin= 0.
+        PhiMax= 6.14318
+        ThetaMin= 0.
+        ThetaMax= 3.14159
+        MATERIAL= Cu
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=		-84.5 	-235	84.5
+	X1_Y128= 	84.5	-235	84.5
+	X128_Y1= 	-84.5	-235	-84.5	
+	X128_Y128= 	84.5	-235	-84.5	
+	VIS= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-225.920617	-106.419571	84.5
+	X1_Y128=	-106.419571	-225.920617	84.5
+	X128_Y1=	-225.920617	-106.419571	-84.5
+	X128_Y128=	-106.419571	-225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=		-235	84.5	84.5
+	X1_Y128=	-235	-84.5	84.5
+	X128_Y1=	-235	84.5	-84.5
+	X128_Y128=	-235	-84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisCluster
+	X1_Y1=		-106.419571	225.920617	84.5
+	X1_Y128=	-225.920617	106.419571	84.5
+	X128_Y1=	-106.419571	225.920617	-84.5
+	X128_Y128=	-225.920617	106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisCluster
+	X1_Y1=		84.5	235	84.5
+	X1_Y128=	-84.5	235	84.5
+	X128_Y1=	84.5	235	-84.5
+	X128_Y128=	-84.5	235	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisCluster
+	X1_Y1=		225.920617	106.419571	84.5
+	X1_Y128=	106.419571	225.920617	84.5
+	X128_Y1=	225.920617	106.419571	-84.5
+	X128_Y128=	106.419571	225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisCluster
+	X1_Y1=		235	-84.5	84.5
+	X1_Y128=	235	84.5	84.5
+	X128_Y1=	235	-84.5	-84.5
+	X128_Y128=	235	84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisCluster
+	X1_Y1=		106.419571	-225.920617	84.5
+	X1_Y128=	225.920617	-106.419571	84.5
+	X128_Y1=	106.419571	-225.920617	-84.5
+	X128_Y128=	225.920617	-106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ParisCluster
+	X1_Y1=		84.5	84.5	-235
+	X1_Y128=	-84.5	84.5	-235
+	X128_Y1=	84.5	-84.5	-235
+	X128_Y128=	-84.5	-84.5	-235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ParisCluster
+	X1_Y1=		225.920617	84.5	-106.419571
+	X1_Y128=	106.419571	84.5	-225.920617
+	X128_Y1=	225.920617	-84.5	-106.419571
+	X128_Y128=	106.419571	-84.5	-225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ParisCluster
+	X1_Y1=		106.419571	84.5	225.920617
+	X1_Y128=	225.920617	84.5	106.419571
+	X128_Y1=	106.419571	-84.5	225.920617
+	X128_Y128=	225.920617	-84.5	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ParisCluster
+	X1_Y1=		-84.5	84.5	235
+	X1_Y128=	84.5	84.5	235
+	X128_Y1=	-84.5	-84.5	235
+	X128_Y128=	84.5	-84.5	235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ParisCluster
+	X1_Y1=		-225.920617	84.5	106.419571
+	X1_Y128=	-106.419571	84.5	225.920617
+	X128_Y1=	-225.920617	-84.5	106.419571
+	X128_Y128=	-106.419571	-84.5	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ParisCluster
+	X1_Y1=		-106.419571	84.5	-225.920617
+	X1_Y128=	-225.920617	84.5	-106.419571
+	X128_Y1=	-106.419571	-84.5	-225.920617
+	X128_Y128=	-225.920617	-84.5	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ParisCluster
+	X1_Y1=		-84.5	106.419571	-225.920617
+	X1_Y128=	84.5	106.419571	-225.920617
+	X128_Y1=	-84.5	225.920617	-106.419571
+	X128_Y128=	84.5	225.920617	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ParisCluster
+	X1_Y1=		-84.5	225.920617	106.419571
+	X1_Y128=	84.5	225.920617	106.419571
+	X128_Y1=	-84.5	106.419571	225.920617
+	X128_Y128=	84.5	106.419571	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ParisCluster
+	X1_Y1=		-84.5	-106.419571	225.920617
+	X1_Y128=	84.5	-106.419571	225.920617
+	X128_Y1=	-84.5	-225.920617	106.419571
+	X128_Y128=	84.5	-225.920617	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ParisCluster
+	X1_Y1=		-84.5	-225.920617	-106.419571
+	X1_Y128=	84.5	-225.920617	-106.419571
+	X128_Y1=	-84.5	-106.419571	-225.920617
+	X128_Y128=	84.5	-106.419571	-225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisPhoswich
+	X1_Y1=		-175.9824	135.677313	-95.372227
+	X1_Y128=	-199.252552	89.137008	-118.642379
+	X128_Y1=	-135.677313	135.677313	-135.677313
+	X128_Y128=	-158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	-135.677313
+	X1_Y128=	-158.947466	89.137008	-158.947466
+	X128_Y1=	-95.372227	135.677313	-175.9824
+	X128_Y128=	-118.642379	89.137008	-199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisPhoswich
+	X1_Y1=		-132.559704	182.217618	-92.254617
+	X1_Y128=	-155.829857	135.677313	-115.52477
+	X128_Y1=	-92.254617	182.217618	-132.559704
+	X128_Y128=	-115.52477	135.677313	-155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisPhoswich
+	X1_Y1=		-95.372227	135.677313	175.9824
+	X1_Y128=	-118.642379	89.137008	199.252552
+	X128_Y1=	-135.677313	135.677313	135.677313
+	X128_Y128=	-158.947466	89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	135.677313
+	X1_Y128=	-158.947466	89.137008	158.947466
+	X128_Y1=	-175.9824	135.677313	95.372227
+	X128_Y128=	-199.252552	89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisPhoswich
+	X1_Y1=		-92.254617	182.217618	132.559704
+	X1_Y128=	-115.52477	135.677313	155.829857
+	X128_Y1=	-132.559704	182.217618	92.254617
+	X128_Y128=	-155.829857	135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+%ParisPhoswich
+%	X1_Y1=		175.9824	135.677313	95.372227
+%	X1_Y128=	199.252552	89.137008	118.642379
+%	X128_Y1=	135.677313	135.677313	135.677313
+%	X128_Y128=	158.947466	89.137008	158.947466
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+%ParisPhoswich
+%	X1_Y1=		135.677313	135.677313	135.677313
+%	X1_Y128=	158.947466	89.137008	158.947466
+%	X128_Y1=	95.372227	135.677313	175.9824
+%	X128_Y128=	118.642379	89.137008	199.252552
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+%ParisPhoswich
+%	X1_Y1=		132.559704	182.217618	92.254617
+%	X1_Y128=	155.829857	135.677313	115.52477
+%	X128_Y1=	92.254617	182.217618	132.559704
+%	X128_Y128=	115.52477	135.677313	155.829857
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ParisPhoswich
+	X1_Y1=		95.372227	135.677313	-175.9824
+	X1_Y128=	118.642379	89.137008	-199.252552
+	X128_Y1=	135.677313	135.677313	-135.677313
+	X128_Y128=	158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ParisPhoswich
+	X1_Y1=		135.677313	135.677313	-135.677313
+	X1_Y128=	158.947466	89.137008	-158.947466
+	X128_Y1=	175.9824	135.677313	-95.372227
+	X128_Y128=	199.252552	89.137008	-118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ParisPhoswich
+	X1_Y1=		92.254617	182.217618	-132.559704
+	X1_Y128=	115.52477	135.677313	-155.829857
+	X128_Y1=	132.559704	182.217618	-92.254617
+	X128_Y128=	155.829857	135.677313	-115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+%ParisPhoswich
+%	X1_Y1=		-95.372227	-135.677313	-175.9824
+%	X1_Y128=	-118.642379	-89.137008	-199.252552
+%	X128_Y1=	-135.677313	-135.677313	-135.677313
+%	X128_Y128=	-158.947466	-89.137008	-158.947466
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+%ParisPhoswich
+%	X1_Y1=		-135.677313	-135.677313	-135.677313
+%	X1_Y128=	-158.947466	-89.137008	-158.947466
+%	X128_Y1=	-175.9824	-135.677313	-95.372227
+%	X128_Y128=	-199.252552	-89.137008	-118.642379
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+%ParisPhoswich
+%	X1_Y1=		-92.254617	-182.217618	-132.559704
+%	X1_Y128=	-115.52477	-135.677313	-155.829857
+%	X128_Y1=	-132.559704	-182.217618	-92.254617
+%	X128_Y128=	-155.829857	-135.677313	-115.52477
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ParisPhoswich
+	X1_Y1=		175.9824	-135.677313	-95.372227
+	X1_Y128=	199.252552	-89.137008	-118.642379
+	X128_Y1=	135.677313	-135.677313	-135.677313
+	X128_Y128=	158.947466	-89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ParisPhoswich
+	X1_Y1=		135.677313	-135.677313	-135.677313
+	X1_Y128=	158.947466	-89.137008	-158.947466
+	X128_Y1=	95.372227	-135.677313	-175.9824
+	X128_Y128=	118.642379	-89.137008	-199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ParisPhoswich
+	X1_Y1=		132.559704	-182.217618	-92.254617
+	X1_Y128=	155.829857	-135.677313	-115.52477
+	X128_Y1=	92.254617	-182.217618	-132.559704
+	X128_Y128=	115.52477	-135.677313	-155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18
+ParisPhoswich
+	X1_Y1=		95.372227	-135.677313	175.9824
+	X1_Y128=	118.642379	-89.137008	199.252552
+	X128_Y1=	135.677313	-135.677313	135.677313
+	X128_Y128=	158.947466	-89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19
+ParisPhoswich
+	X1_Y1=		135.677313	-135.677313	135.677313
+	X1_Y128=	158.947466	-89.137008	158.947466
+	X128_Y1=	175.9824	-135.677313	95.372227
+	X128_Y128=	199.252552	-89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20
+ParisPhoswich
+	X1_Y1=		92.254617	-182.217618	132.559704
+	X1_Y128=	115.52477	-135.677313	155.829857
+	X128_Y1=	132.559704	-182.217618	92.254617
+	X128_Y128=	155.829857	-135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21
+ParisPhoswich
+	X1_Y1=		-175.9824	-135.677313	95.372227
+	X1_Y128=	-199.252552	-89.137008	118.642379
+	X128_Y1=	-135.677313	-135.677313	135.677313
+	X128_Y128=	-158.947466	-89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22
+ParisPhoswich
+	X1_Y1=		-135.677313	-135.677313	135.677313
+	X1_Y128=	-158.947466	-89.137008	158.947466
+	X128_Y1=	-95.372227	-135.677313	175.9824
+	X128_Y128=	-118.642379	-89.137008	199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23
+ParisPhoswich
+	X1_Y1=		-132.559704	-182.217618	92.254617
+	X1_Y128=	-155.829857	-135.677313	115.52477
+	X128_Y1=	-92.254617	-182.217618	132.559704
+	X128_Y128=	-115.52477	-135.677313	155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/ParisAll_278.detector b/Inputs/DetectorConfiguration/ParisAll_278.detector
new file mode 100644
index 000000000..49a8d1f13
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisAll_278.detector
@@ -0,0 +1,213 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2
+	NBLAYERS= 50
+	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
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=	-87.401156	-247.587661	-124.767336
+	X1_Y128=	-224.125028	-149.474941	-109.227808
+	X128_Y1=	-87.401156	-274.025085	42.151993
+	X128_Y128=	-224.125028	-175.912365	57.691522
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=	-225.918041	-147.037454	-108.841748
+	X1_Y128=	-278.141913	11.712262	-83.698263
+	X128_Y1=	-225.918041	-173.474878	58.077582
+	X128_Y128=	-278.141913	-14.725162	83.221067
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=	-278.141913	14.725162	-83.221067
+	X1_Y128=	-225.918041	173.474878	-58.077582
+	X128_Y1=	-278.141913	-11.712262	83.698263
+	X128_Y128=	-225.918041	147.037454	108.841748
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisCluster
+	X1_Y1=	-224.125028	175.912365	-57.691522
+	X1_Y128=	-87.401156	274.025085	-42.151993
+	X128_Y1=	-224.125028	149.474941	109.227808
+	X128_Y128=	-87.401156	247.587661	124.767336
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisCluster
+	X1_Y1=	87.401156	274.025085	-42.151993
+	X1_Y128=	224.125028	175.912365	-57.691522
+	X128_Y1=	87.401156	247.587661	124.767336
+	X128_Y128=	224.125028	149.474941	109.227808
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisCluster
+	X1_Y1=	225.918041	173.474878	-58.077582
+	X1_Y128=	278.141913	14.725162	-83.221067
+	X128_Y1=	225.918041	147.037454	108.841748
+	X128_Y128=	278.141913	-11.712262	83.698263
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisCluster
+	X1_Y1=	278.141913	11.712262	-83.698263
+	X1_Y128=	225.918041	-147.037454	-108.841748
+	X128_Y1=	278.141913	-14.725162	83.221067
+	X128_Y128=	225.918041	-173.474878	58.077582
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisCluster
+	X1_Y1=	224.125028	-149.474941	-109.227808
+	X1_Y128=	87.401156	-247.587661	-124.767336
+	X128_Y1=	224.125028	-175.912365	57.691522
+	X128_Y128=	87.401156	-274.025085	42.151993
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8ok
+ParisCluster
+	X1_Y1=	84.5	87.401156	264.057357
+	X1_Y128=	-84.5	87.401156	264.057357
+	X128_Y1=	84.5	224.125028	164.72165
+	X128_Y128=	-84.5	224.125028	164.72165
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9ok
+ParisCluster
+	X1_Y1=	84.5	225.918041	162.253779
+	X1_Y128=	-84.5	225.918041	162.253779
+	X128_Y1=	84.5	278.141913	1.525228
+	X128_Y128=	-84.5	278.141913	1.525228
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10ok
+ParisCluster
+	X1_Y1=	84.5	278.141913	-1.525228
+	X1_Y128=	-84.5	278.141913	-1.525228
+	X128_Y1=	84.5	225.918041	-162.253779
+	X128_Y128=	-84.5	225.918041	-162.253779
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11ok
+ParisCluster
+	X1_Y1=	84.5	224.125028	-164.72165
+	X1_Y128=	-84.5	224.125028	-164.72165
+	X128_Y1=	84.5	87.401156	-264.057357
+	X128_Y128=	-84.5	87.401156	-264.057357
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12ok
+ParisCluster
+	X1_Y1=		84.5	84.5	-265
+	X1_Y128=	-84.5	84.5	-265
+	X128_Y1=	84.5	-84.5	-265
+	X128_Y128=	-84.5	-84.5	-265
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13ok
+ParisCluster
+	X1_Y1=		84.5	-87.401156	-264.057357
+	X1_Y128=	-84.5	-87.401156	-264.057357
+	X128_Y1=	84.5	-224.125028	-164.72165
+	X128_Y128=	-84.5	-224.125028	-164.72165
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14ok
+ParisCluster
+	X1_Y1=	84.5	-225.918041	-162.253779
+	X1_Y128=	-84.5	-225.918041	-162.253779
+	X128_Y1=	84.5	-278.141913	-1.525228
+	X128_Y128=	-84.5	-278.141913	-1.525228
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15ok
+ParisCluster
+	X1_Y1=	84.5	-278.141913	1.525228
+	X1_Y128=	-84.5	-278.141913	1.525228
+	X128_Y1=	84.5	-225.918041	162.253779
+	X128_Y128=	-84.5	-225.918041	162.253779
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16ok
+ParisCluster
+	X1_Y1=	84.5	-224.125028	164.72165
+	X1_Y128=	-84.5	-224.125028	164.72165
+	X128_Y1=	84.5	-87.401156	264.057357
+	X128_Y128=	-84.5	-87.401156	264.057357
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17OK
+ParisCluster
+	X1_Y1=	84.5	-84.5	265
+	X1_Y128=	-84.5	-84.5	265
+	X128_Y1=	84.5	84.5	265
+	X128_Y128=	-84.5	84.5	265
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18ok
+ParisCluster
+	X1_Y1=	-256.780109	22.871011	-134.651931
+	X1_Y128=	-137.279063	41.565093	-252.681721
+	X128_Y1=	-219.852255	175.843938	-73.035235
+	X128_Y128=	-100.351209	194.53802	-191.065025
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19ok
+ParisCluster
+	X1_Y1=	-99.997656	-125.919004	-242.178392
+	X1_Y128=	-136.92551	38.607501	-253.508118
+	X128_Y1=	-219.498702	-144.613086	-124.148602
+	X128_Y128=	-256.426556	19.913419	-135.478328
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20ok
+ParisCluster
+	X1_Y1=	-136.571956	-38.662809	253.857318
+	X1_Y128=	-256.073002	-19.968727	135.827528
+	X128_Y1=	-99.644102	125.863696	242.527592
+	X128_Y128=	-219.145148	144.557778	124.497802
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21ok
+ParisCluster
+	X1_Y1=	-219.498702	-175.899246	73.384435
+	X1_Y128=	-256.426556	-22.926319	135.001131
+	X128_Y1=	-99.997656	-194.593328	191.414225
+	X128_Y128=	-136.92551	-41.620401	253.030921
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22ok
+ParisCluster
+	X1_Y1=	256.780109	-19.858111	135.129127
+	X1_Y128=	137.279063	-38.552193	253.158917
+	X128_Y1=	219.852255	144.668394	123.799401
+	X128_Y128=	100.351209	125.974312	241.829191
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23ok
+ParisCluster
+	X1_Y1=	99.997656	-194.593328	191.414225
+	X1_Y128=	136.92551	-41.620401	253.030921
+	X128_Y1=	219.498702	-175.899246	73.384435
+	X128_Y128=	256.426556	-22.926319	135.001131
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%24ok
+ParisCluster
+	X1_Y1=	136.571956	41.675709	-253.380122
+	X1_Y128=	256.073002	22.981627	-135.350332
+	X128_Y1=	99.644102	194.648636	-191.763426
+	X128_Y128=	219.145148	175.954554	-73.733636
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%25ok
+ParisCluster
+	X1_Y1=	219.498702	-144.613086	-124.148602
+	X1_Y128=	256.426556	19.913419	-135.478328
+	X128_Y1=	99.997656	-125.919004	-242.178392
+	X128_Y128=	136.92551	38.607501	-253.508118
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/ParisPhShield.detector b/Inputs/DetectorConfiguration/ParisPhShield.detector
new file mode 100644
index 000000000..71a04c201
--- /dev/null
+++ b/Inputs/DetectorConfiguration/ParisPhShield.detector
@@ -0,0 +1,112 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Shield
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ShieldClParis
+	X1_Y1=	-364	153.75	151.375
+	X1_Y128=	-364	91.5	151.375
+	X128_Y1=	-364	153.75	-84.5
+	X128_Y128=	-364	91.5	-84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-151.375	153.75
+	X1_Y128=	-364	-151.375	91.49999999
+	X128_Y1=	-364	84.49999999	153.75
+	X128_Y128=	-364	84.5	91.50000004
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	-153.75	-151.375
+	X1_Y128=	-364	-91.49999999	-151.375
+	X128_Y1=	-364	-153.7500001	84.49999997
+	X128_Y128=	-364	-91.50000008	84.5
+	VIS=all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ShieldClParis
+	X1_Y1=	-364	151.375	-153.75
+	X1_Y128=	-364	151.375	-91.49999998
+	X128_Y1=	-364	-84.49999996	-153.7500001
+	X128_Y128=	-364	-84.5	-91.50000013
+	VIS=all
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ShieldPhParis
+	THETA=	54.73
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ShieldPhParis
+	THETA=	54.73
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ShieldPhParis
+	THETA=	54.73
+	PHI=	225
+	R=	248
+	BETA= 0 0 -30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ShieldPhParis
+	THETA=	54.73
+	PHI=	315
+	R=	248
+	BETA= 0 0 210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ShieldPhParis
+	THETA=	125.26
+	PHI=	45.02
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ShieldPhParis
+	THETA=	125.26
+	PHI=	134.98
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ShieldPhParis
+	THETA=	125.26
+	PHI=	225
+	R=	248
+	BETA= 0 0 30
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ShieldPhParis
+	THETA=	125.26
+	PHI=	315
+	R=	248
+	BETA= 0 0 -210
+	VIS= all
diff --git a/Inputs/DetectorConfiguration/gaspardParis.detector b/Inputs/DetectorConfiguration/gaspardParis.detector
new file mode 100644
index 000000000..fe52e1f96
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardParis.detector
@@ -0,0 +1,557 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-63.142		-111.96		235.7938 
+	X1_Y128= 	5.6268		-230.775	137.2298 	
+	X128_Y1= 	-201.3545	-111.28		138.5418	
+	X128_Y128= 	-132.58		-230.095	39.9778	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=		-218.111	-103.574	117.561
+	X1_Y128= 	-149.342	-222.389	18.997	
+	X128_Y1= 	-267.215	-18.112		-19.72	
+	X128_Y128= 	-198.446	-136.927	-118.284		
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+ParisCluster
+	X1_Y1=		-265.456	0.2844		-40.6687 
+	X1_Y128= 	-196.6865	-118.53		-139.233 	
+	X128_Y1= 	-196.6865	120.4659	-137.5614	
+	X128_Y128= 	-127.9173	1.6512		-236.1254
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+ParisCluster
+	X1_Y1=		-177.4417	138.7763	-146.2065
+	X1_Y128= 	-108.6725	19.9616		-244.7704
+	X128_Y1= 	-31.0838	233.2766	-145.9525
+	X128_Y128= 	 37.6854	104.4618	-244.5164		
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+ParisCluster
+	X1_Y1=		-5.6268		230.7749	-137.2298		
+	X1_Y128= 	63.1424		111.9602	-235.7938 	
+	X128_Y1= 	132.5853	230.0949	-39.9678
+	X128_Y128= 	201.3545	111.2801	-138.5418
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+ParisCluster
+	X1_Y1=		149.3422	222.3888	-18.9970	
+	X1_Y128= 	218.1114	103.5741	-117.5610
+	X128_Y1= 	198.4457	136.9268	118.2839
+	X128_Y128= 	267.2149	18.1120		19.7200	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+ParisCluster
+	X1_Y1=		196.6865	118.5303	139.2326
+	X1_Y128=  	265.4567	-0.2839		40.6887
+	X128_Y1= 	127.9173	-1.6512		236.1254	
+	X128_Y128= 	196.6865	-120.463	137.5614
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+ParisCluster
+	X1_Y1=		108.6725	-19.9616	244.7705
+	X1_Y128= 	177.4417	-138.776	146.2065
+	X128_Y1= 	-37.6854	-104.462	244.6154
+	X128_Y128= 	31.0838		-223.277	145.9525		
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+ParisCluster
+	X1_Y1=		63.1424		-108.652	-237.3365 
+	X1_Y128=  	-5.6268		-228.833	-140.4337
+	X128_Y1= 	201.3545	-109.332	-140.0845	
+	X128_Y128= 	132.5853	-229.513	-43.1918
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+ParisCluster
+	X1_Y1=		218.1114	-101.92		-118.7980	
+	X1_Y128= 	149.3422	-222.101	-22.10526
+	X128_Y1= 	267.2149	-18.386		19.4647
+	X128_Y128= 	198.4457	-138.568	116.3575	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+ParisCluster
+	X1_Y1=		177.4417	136.718		148.1329
+	X1_Y128=  	108.6725	16.5365		245.0257
+	X128_Y1= 	31.08380	221.2136	149.0607		
+	X128_Y128= 	-37.6854	101.0321	245.9534
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+ParisCluster
+	X1_Y1=		5.6268		228.8332	140.4337	
+	X1_Y128= 	-63.1424	108.6517	237.3365
+	X128_Y1= 	-132.5853	229.5133	43.1918
+	X128_Y128= 	-201.3545	109.3318	140.0845		
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+ParisCluster
+	X1_Y1=		-149.3422	222.1014	22.1053
+	X1_Y128=  	-218.1114	101.9199	118.9980
+	X128_Y1= 	-198.4457	138.5676	-116.3575	
+	X128_Y128= 	-267.21494	18.38604	-19.4647	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+ParisCluster
+	X1_Y1=		-108.6725	-16.5365	-245.025
+	X1_Y128=  	-177.44171	-136.718	-148.1329
+	X128_Y1= 	37.6854		-101.032	-245.9534
+	X128_Y128= 	-31.0838	-221.214	-149.0607	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+ParisCluster
+	X1_Y1=		207.506468	-83.4626	-148.646587
+	X1_Y128=  	207.506468	85.53326	-147.464835	
+	X128_Y1= 	69.2943359	-82.7826	-245.898545	
+	X128_Y128= 	69.2943359	86.21332	-244.716793	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+ParisCluster
+	X1_Y1=		117.733235	240.6373	-18.7966735
+	X1_Y128=  	20.4788977	239.6709	119.4120787
+	X128_Y1= 	-20.478898	241.3174	-116.048635
+	X128_Y128= 	-117.73323	240.3509	22.16012052	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+ParisCluster
+	X1_Y1=		-69.294336	82.78255	245.8985453	
+	X1_Y128=  	-69.294336	-86.2133	244.7167929	
+	X128_Y1= 	-207.50647	83.46261	148.6465871		
+	X128_Y128= 	-207.50647	-85.5333	147.4648347	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18
+ParisCluster
+	X1_Y1=		20.4788977	-241.317	116.0486339
+	X1_Y128=  	117.733235	-240.351	-22.1601217
+	X128_Y1= 	-117.73323	-240.637	18.79667235
+	X128_Y128= 	-20.478898	-239.671	-119.41208
+	VIS= all
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GaspardTracker
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0 Central Barrel
+GPDDummyShape
+	THETA= 90
+	PHI= 90 
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDDummyShape
+	THETA= 90
+	PHI= 120
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDDummyShape
+	THETA= 90
+	PHI= 150
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GPDDummyShape
+	THETA= 90
+	PHI= 180
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GPDDummyShape
+	THETA= 90
+	PHI= 210
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GPDDummyShape
+	THETA= 90
+	PHI= 240
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GPDDummyShape
+	THETA= 90
+	PHI= 270
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GPDDummyShape
+	THETA= 90
+	PHI= 300
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GPDDummyShape
+	THETA= 90
+	PHI= 330
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+GPDDummyShape
+        THETA= 90
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+GPDDummyShape
+        THETA= 90
+        PHI= 30
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+GPDDummyShape
+        THETA= 90
+        PHI= 60
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12 First Cone (forward)
+GPDDummyShape
+        THETA= 60
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+GPDDummyShape
+        THETA= 60
+        PHI= 130
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+GPDDummyShape
+        THETA= 60
+        PHI= 170
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+GPDDummyShape
+        THETA= 60
+        PHI= 210
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+GPDDummyShape
+        THETA= 60
+        PHI= 250
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+GPDDummyShape
+        THETA= 60
+        PHI= 290
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18
+GPDDummyShape
+        THETA= 60
+        PHI= 330
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19
+GPDDummyShape
+        THETA= 60
+        PHI= 10
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20
+GPDDummyShape
+        THETA= 60
+        PHI= 50
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21 Second Cone (forward)
+GPDDummyShape
+        THETA= 30
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22
+GPDDummyShape
+        THETA= 30
+        PHI= 180
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23
+GPDDummyShape
+        THETA= 30
+        PHI= 270
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%24
+GPDDummyShape
+        THETA= 30
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%25 First Cone (backward)
+GPDDummyShape
+        THETA= 120
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%26
+GPDDummyShape
+        THETA= 120
+        PHI= 130
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27
+GPDDummyShape
+        THETA= 120
+        PHI= 170
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28
+GPDDummyShape
+        THETA= 120
+        PHI= 210
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%29
+GPDDummyShape
+        THETA= 120
+        PHI= 250
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%30
+GPDDummyShape
+        THETA= 120
+        PHI= 290
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%31
+GPDDummyShape
+        THETA= 120
+        PHI= 330
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32
+GPDDummyShape
+        THETA= 120
+        PHI= 10
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33
+GPDDummyShape
+        THETA= 120
+        PHI= 50
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34 Second Cone (backward)
+GPDDummyShape
+        THETA= 150
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%35
+GPDDummyShape
+        THETA= 150
+        PHI= 180
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%36
+GPDDummyShape
+        THETA= 150
+        PHI= 270
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%37
+GPDDummyShape
+        THETA= 150
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%38 End Cap (forward)
+GPDDummyShape
+        THETA= 0
+        PHI= 0
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39 End Cap (backward)
+GPDDummyShape
+        THETA= 180
+        PHI= 0
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
diff --git a/Inputs/DetectorConfiguration/gaspardParisAll.detector b/Inputs/DetectorConfiguration/gaspardParisAll.detector
new file mode 100644
index 000000000..36483d56f
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardParisAll.detector
@@ -0,0 +1,741 @@
+%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= 10.3
+	ANGLE= 0
+	RADIUS=	12
+	MATERIAL= CD2l
+	NBLAYERS= 50
+	X= 0
+	Y= 0
+	Z= 0	
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GeneralChamber
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Chamber
+        Rmin= 200
+        Rmax= 202
+        PhiMin= 0.
+        PhiMax= 6.14318
+        ThetaMin= 0.
+        ThetaMax= 3.14159
+        MATERIAL= Alu
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Paris
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0
+ParisCluster
+	X1_Y1=		-84.5 	-235	84.5
+	X1_Y128= 	84.5	-235	84.5
+	X128_Y1= 	-84.5	-235	-84.5	
+	X128_Y128= 	84.5	-235	-84.5	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-225.920617	-106.419571	84.5
+	X1_Y128=	-106.419571	-225.920617	84.5
+	X128_Y1=	-225.920617	-106.419571	-84.5
+	X128_Y128=	-106.419571	-225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-235	84.5	84.5
+	X1_Y128=	-235	-84.5	84.5
+	X128_Y1=	-235	84.5	-84.5
+	X128_Y128=	-235	-84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+ParisCluster
+	X1_Y1=		-106.419571	225.920617	84.5
+	X1_Y128=	-225.920617	106.419571	84.5
+	X128_Y1=	-106.419571	225.920617	-84.5
+	X128_Y128=	-225.920617	106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		84.5	235	84.5
+	X1_Y128=	-84.5	235	84.5
+	X128_Y1=	84.5	235	-84.5
+	X128_Y128=	-84.5	235	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		225.920617	106.419571	84.5
+	X1_Y128=	106.419571	225.920617	84.5
+	X128_Y1=	225.920617	106.419571	-84.5
+	X128_Y128=	106.419571	225.920617	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		235	-84.5	84.5
+	X1_Y128=	235	84.5	84.5
+	X128_Y1=	235	-84.5	-84.5
+	X128_Y128=	235	84.5	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		106.419571	-225.920617	84.5
+	X1_Y128=	225.920617	-106.419571	84.5
+	X128_Y1=	106.419571	-225.920617	-84.5
+	X128_Y128=	225.920617	-106.419571	-84.5
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		84.5	84.5	-235
+	X1_Y128=	-84.5	84.5	-235
+	X128_Y1=	84.5	-84.5	-235
+	X128_Y128=	-84.5	-84.5	-235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		225.920617	84.5	-106.419571
+	X1_Y128=	106.419571	84.5	-225.920617
+	X128_Y1=	225.920617	-84.5	-106.419571
+	X128_Y128=	106.419571	-84.5	-225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		106.419571	84.5	225.920617
+	X1_Y128=	225.920617	84.5	106.419571
+	X128_Y1=	106.419571	-84.5	225.920617
+	X128_Y128=	225.920617	-84.5	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	84.5	235
+	X1_Y128=	84.5	84.5	235
+	X128_Y1=	-84.5	-84.5	235
+	X128_Y128=	84.5	-84.5	235
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-225.920617	84.5	106.419571
+	X1_Y128=	-106.419571	84.5	225.920617
+	X128_Y1=	-225.920617	-84.5	106.419571
+	X128_Y128=	-106.419571	-84.5	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-106.419571	84.5	-225.920617
+	X1_Y128=	-225.920617	84.5	-106.419571
+	X128_Y1=	-106.419571	-84.5	-225.920617
+	X128_Y128=	-225.920617	-84.5	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	106.419571	-225.920617
+	X1_Y128=	84.5	106.419571	-225.920617
+	X128_Y1=	-84.5	225.920617	-106.419571
+	X128_Y128=	84.5	225.920617	-106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	225.920617	106.419571
+	X1_Y128=	84.5	225.920617	106.419571
+	X128_Y1=	-84.5	106.419571	225.920617
+	X128_Y128=	84.5	106.419571	225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	-106.419571	225.920617
+	X1_Y128=	84.5	-106.419571	225.920617
+	X128_Y1=	-84.5	-225.920617	106.419571
+	X128_Y128=	84.5	-225.920617	106.419571
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+ParisCluster
+	X1_Y1=		-84.5	-225.920617	-106.419571
+	X1_Y128=	84.5	-225.920617	-106.419571
+	X128_Y1=	-84.5	-106.419571	-225.920617
+	X128_Y128=	84.5	-106.419571	-225.920617
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-175.9824	135.677313	-95.372227
+	X1_Y128=	-199.252552	89.137008	-118.642379
+	X128_Y1=	-135.677313	135.677313	-135.677313
+	X128_Y128=	-158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	-135.677313
+	X1_Y128=	-158.947466	89.137008	-158.947466
+	X128_Y1=	-95.372227	135.677313	-175.9824
+	X128_Y128=	-118.642379	89.137008	-199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-132.559704	182.217618	-92.254617
+	X1_Y128=	-155.829857	135.677313	-115.52477
+	X128_Y1=	-92.254617	182.217618	-132.559704
+	X128_Y128=	-115.52477	135.677313	-155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-95.372227	135.677313	175.9824
+	X1_Y128=	-118.642379	89.137008	199.252552
+	X128_Y1=	-135.677313	135.677313	135.677313
+	X128_Y128=	-158.947466	89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	135.677313	135.677313
+	X1_Y128=	-158.947466	89.137008	158.947466
+	X128_Y1=	-175.9824	135.677313	95.372227
+	X128_Y128=	-199.252552	89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-92.254617	182.217618	132.559704
+	X1_Y128=	-115.52477	135.677313	155.829857
+	X128_Y1=	-132.559704	182.217618	92.254617
+	X128_Y128=	-155.829857	135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		175.9824	135.677313	95.372227
+	X1_Y128=	199.252552	89.137008	118.642379
+	X128_Y1=	135.677313	135.677313	135.677313
+	X128_Y128=	158.947466	89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	135.677313	135.677313
+	X1_Y128=	158.947466	89.137008	158.947466
+	X128_Y1=	95.372227	135.677313	175.9824
+	X128_Y128=	118.642379	89.137008	199.252552
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		132.559704	182.217618	92.254617
+	X1_Y128=	155.829857	135.677313	115.52477
+	X128_Y1=	92.254617	182.217618	132.559704
+	X128_Y128=	115.52477	135.677313	155.829857
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		95.372227	135.677313	-175.9824
+	X1_Y128=	118.642379	89.137008	-199.252552
+	X128_Y1=	135.677313	135.677313	-135.677313
+	X128_Y128=	158.947466	89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	135.677313	-135.677313
+	X1_Y128=	158.947466	89.137008	-158.947466
+	X128_Y1=	175.9824	135.677313	-95.372227
+	X128_Y128=	199.252552	89.137008	-118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		92.254617	182.217618	-132.559704
+	X1_Y128=	115.52477	135.677313	-155.829857
+	X128_Y1=	132.559704	182.217618	-92.254617
+	X128_Y128=	155.829857	135.677313	-115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-95.372227	-135.677313	-175.9824
+	X1_Y128=	-118.642379	-89.137008	-199.252552
+	X128_Y1=	-135.677313	-135.677313	-135.677313
+	X128_Y128=	-158.947466	-89.137008	-158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-135.677313	-135.677313	-135.677313
+	X1_Y128=	-158.947466	-89.137008	-158.947466
+	X128_Y1=	-175.9824	-135.677313	-95.372227
+	X128_Y128=	-199.252552	-89.137008	-118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		-92.254617	-182.217618	-132.559704
+	X1_Y128=	-115.52477	-135.677313	-155.829857
+	X128_Y1=	-132.559704	-182.217618	-92.254617
+	X128_Y128=	-155.829857	-135.677313	-115.52477
+
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		175.9824	-135.677313	-95.372227
+%	X1_Y128=	199.252552	-89.137008	-118.642379
+%	X128_Y1=	135.677313	-135.677313	-135.677313
+%	X128_Y128=	158.947466	-89.137008	-158.947466
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		135.677313	-135.677313	-135.677313
+%	X1_Y128=	158.947466	-89.137008	-158.947466
+%	X128_Y1=	95.372227	-135.677313	-175.9824
+%	X128_Y128=	118.642379	-89.137008	-199.252552
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		132.559704	-182.217618	-92.254617
+%	X1_Y128=	155.829857	-135.677313	-115.52477
+%	X128_Y1=	92.254617	-182.217618	-132.559704
+%	X128_Y128=	115.52477	-135.677313	-155.829857
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		95.372227	-135.677313	175.9824
+	X1_Y128=	118.642379	-89.137008	199.252552
+	X128_Y1=	135.677313	-135.677313	135.677313
+	X128_Y128=	158.947466	-89.137008	158.947466
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		135.677313	-135.677313	135.677313
+	X1_Y128=	158.947466	-89.137008	158.947466
+	X128_Y1=	175.9824	-135.677313	95.372227
+	X128_Y128=	199.252552	-89.137008	118.642379
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ParisPhoswich
+	X1_Y1=		92.254617	-182.217618	132.559704
+	X1_Y128=	115.52477	-135.677313	155.829857
+	X128_Y1=	132.559704	-182.217618	92.254617
+	X128_Y128=	155.829857	-135.677313	115.52477
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		-175.9824	-135.677313	95.372227
+%	X1_Y128=	-199.252552	-89.137008	118.642379
+%	X128_Y1=	-135.677313	-135.677313	135.677313
+%	X128_Y128=	-158.947466	-89.137008	158.947466
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		-135.677313	-135.677313	135.677313
+%	X1_Y128=	-158.947466	-89.137008	158.947466
+%	X128_Y1=	-95.372227	-135.677313	175.9824
+%	X128_Y128=	-118.642379	-89.137008	199.252552
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ParisPhoswich
+%	X1_Y1=		-132.559704	-182.217618	92.254617
+%	X1_Y128=	-155.829857	-135.677313	115.52477
+%	X128_Y1=	-92.254617	-182.217618	132.559704
+%	X128_Y128=	-115.52477	-135.677313	155.829857
+%	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+GaspardTracker
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0 Central Barrel
+GPDDummyShape
+	THETA= 90
+	PHI= 90 
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDDummyShape
+	THETA= 90
+	PHI= 120
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDDummyShape
+	THETA= 90
+	PHI= 150
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GPDDummyShape
+	THETA= 90
+	PHI= 180
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GPDDummyShape
+	THETA= 90
+	PHI= 210
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GPDDummyShape
+	THETA= 90
+	PHI= 240
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GPDDummyShape
+	THETA= 90
+	PHI= 270
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GPDDummyShape
+	THETA= 90
+	PHI= 300
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GPDDummyShape
+	THETA= 90
+	PHI= 330
+	R= 100
+	BETA= 0 0 0
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 1
+	THIRDSTAGE= 1	
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+GPDDummyShape
+        THETA= 90
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+GPDDummyShape
+        THETA= 90
+        PHI= 30
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+GPDDummyShape
+        THETA= 90
+        PHI= 60
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12 First Cone (forward)
+GPDDummyShape
+        THETA= 60
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+GPDDummyShape
+        THETA= 60
+        PHI= 130
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+GPDDummyShape
+        THETA= 60
+        PHI= 170
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+GPDDummyShape
+        THETA= 60
+        PHI= 210
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16
+GPDDummyShape
+        THETA= 60
+        PHI= 250
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17
+GPDDummyShape
+        THETA= 60
+        PHI= 290
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18
+GPDDummyShape
+        THETA= 60
+        PHI= 330
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19
+GPDDummyShape
+        THETA= 60
+        PHI= 10
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20
+GPDDummyShape
+        THETA= 60
+        PHI= 50
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21 Second Cone (forward)
+GPDDummyShape
+        THETA= 30
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22
+GPDDummyShape
+        THETA= 30
+        PHI= 180
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23
+GPDDummyShape
+        THETA= 30
+        PHI= 270
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%24
+GPDDummyShape
+        THETA= 30
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%25 First Cone (backward)
+GPDDummyShape
+        THETA= 120
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%26
+GPDDummyShape
+        THETA= 120
+        PHI= 130
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27
+GPDDummyShape
+        THETA= 120
+        PHI= 170
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28
+GPDDummyShape
+        THETA= 120
+        PHI= 210
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%29
+GPDDummyShape
+        THETA= 120
+        PHI= 250
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%30
+GPDDummyShape
+        THETA= 120
+        PHI= 290
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%31
+GPDDummyShape
+        THETA= 120
+        PHI= 330
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32
+GPDDummyShape
+        THETA= 120
+        PHI= 10
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33
+GPDDummyShape
+        THETA= 120
+        PHI= 50
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34 Second Cone (backward)
+GPDDummyShape
+        THETA= 150
+        PHI= 90
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%35
+GPDDummyShape
+        THETA= 150
+        PHI= 180
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%36
+GPDDummyShape
+        THETA= 150
+        PHI= 270
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%37
+GPDDummyShape
+        THETA= 150
+        PHI= 360
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%38 End Cap (forward)
+GPDDummyShape
+        THETA= 0
+        PHI= 0
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39 End Cap (backward)
+GPDDummyShape
+        THETA= 180
+        PHI= 0
+        R= 100
+        BETA= 0 0 0
+        FIRSTSTAGE= 1
+        SECONDSTAGE= 1
+        THIRDSTAGE= 1
+        VIS= all
diff --git a/Inputs/DetectorConfiguration/gaspardV1_r150.detector b/Inputs/DetectorConfiguration/gaspardV1_r150.detector
new file mode 100644
index 000000000..4af429957
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardV1_r150.detector
@@ -0,0 +1,672 @@
+%%%%%%%%%%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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0   // central ring
+GPDSquare  
+	X1_Y1=	 	25	150	25
+	X128_Y1=	-25	150	25
+	X1_Y128=	25	150	-25
+	X128_Y128=	-25	150	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare 
+	X1_Y1=	 	-34.3055 	148.149 	25
+	X128_Y1= 	-80.4995	129.0149	25
+	X1_Y128= 	-34.3055	148.149		-25
+	X128_Y128=	-80.4995	129.0149	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare 
+	X1_Y1=	 	-88.3883	123.7437	25
+	X128_Y1=	-123.744	88.388		25
+	X1_Y128=	-88.3883	123.7437	-25
+	X128_Y128=	-123.744	88.388		-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GPDSquare 
+	X1_Y1=	 	-129.015	80.49963	25
+	X128_Y1=	-148.149	34.30567	25
+	X1_Y128=	-129.015	80.49963	-25
+	X128_Y128=	-148.149	34.30567	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GPDSquare 
+	X1_Y1=	 	-150.	25	25
+	X128_Y1=	-150.	-25	25
+	X1_Y128=	-150.	25	-25
+	X128_Y128=	-150.	-25	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GPDSquare  
+	X1_Y1=	-148.1490726	-34.30528084	25
+	X128_Y1=	-129.0149776	-80.4992892	25
+	X1_Y128=	-148.1490726	-34.30528084	-25
+	X128_Y128=	-129.0149776	-80.4992892	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GPDSquare  				
+	X1_Y1=	-123.7438626	-88.38810137	25
+	X128_Y1=	-88.38859392	-123.7435108	25
+	X1_Y128=	-123.7438626	-88.38810137	-25
+	X128_Y128=	-88.38859392	-123.7435108	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GPDSquare  				
+	X1_Y1=	-80.49980273	-129.0146572	25
+	X128_Y1=	-34.30587053	-148.148936	25
+	X1_Y128=	-80.49980273	-129.0146572	-25
+	X128_Y128=	-34.30587053	-148.148936	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GPDSquare  		
+	X1_Y1=	-25.00039804	-149.9999337	25
+	X128_Y1=	24.99960196	-150.0000663	25
+	X1_Y128=	-25.00039804	-149.9999337	-25
+	X128_Y128=	24.99960196	-150.0000663	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+GPDSquare  				
+	X1_Y1=	34.30508427	-148.1491181	25
+	X128_Y1=	80.49911802	-129.0150844	25
+	X1_Y128=	34.30508427	-148.1491181	-25
+	X128_Y128=	80.49911802	-129.0150844	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+GPDSquare  		
+	X1_Y1=	88.38793719	-123.7439799	25
+	X128_Y1=	123.7433935	-88.3887581	25
+	X1_Y128=	88.38793719	-123.7439799	-25
+	X128_Y128=	123.7433935	-88.3887581	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+GPDSquare  		
+	X1_Y1=	129.0145503	-80.4999739	25
+	X128_Y1=	148.1488905	-34.30606709	25
+	X1_Y128=	129.0145503	-80.4999739	-25
+	X128_Y128=	148.1488905	-34.30606709	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+GPDSquare 
+	X1_Y1=	149.9999005	-25.00059706	25
+	X128_Y1=	150.0000995	24.99940294	25
+	X1_Y128=	149.9999005	-25.00059706	-25
+	X128_Y128=	150.0000995	24.99940294	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+GPDSquare  				
+	X1_Y1=	148.1491636	34.30488771	25
+	X128_Y1=	129.0151912	80.49894684	25
+	X1_Y128=	148.1491636	34.30488771	-25
+	X128_Y128=	129.0151912	80.49894684	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+GPDSquare  				
+	X1_Y1=	123.7440972	88.38777301	25
+	X128_Y1=	88.38892229	123.7432763	25
+	X1_Y128=	123.7440972	88.38777301	-25
+	X128_Y128=	88.38892229	123.7432763	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+GPDSquare  				
+	X1_Y1=	80.50014508	129.0144435	25
+	X128_Y1=	34.30626365	148.148845	25
+	X1_Y128=	80.50014508	129.0144435	-25
+	X128_Y128=	34.30626365	148.148845	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16   // Forward 1
+GPDSquare  
+	X1_Y1=	 	25	129.0149	80.49946
+	X128_Y1=	-25	129.0149	80.49946
+	X1_Y128=	25	148.149		34.30548
+	X128_Y128=	-25	148.149		34.30548
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17   // Forward 1
+GPDSquare  
+	X1_Y1=	-42.85674535	124.2301745	80.49946037
+	X128_Y1=	-86.15802659	99.23019366	80.49946037
+	X1_Y128=	-52.42381617	140.8008442	34.3054774
+	X128_Y128=	-95.72509741	115.8008633	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18   // Forward 1
+GPDSquare  		
+	X1_Y1=	-99.23007934	86.15815825	80.49946037
+	X128_Y1=	-124.2301176	42.85691018	80.49946037
+	X1_Y128=	-115.8007363	95.72525106	34.3054774
+	X128_Y128=	-140.8007746	52.42400298	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19   // Forward 1
+GPDSquare  		
+	X1_Y1=	-129.0148376	25.00017118	80.49946037
+	X128_Y1=	-129.0149039	-24.99982882	80.49946037
+	X1_Y128=	-148.1489939	25.00019656	34.3054774
+	X128_Y128=	-148.1490602	-24.99980344	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20   // Forward 1
+GPDSquare  		
+	X1_Y1=	-124.2302314	-42.85658052	80.49946037
+	X128_Y1=	-99.23030797	-86.15789493	80.49946037
+	X1_Y128=	-140.8009137	-52.42362935	34.3054774
+	X128_Y128=	-115.8009903	-95.72494377	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21   // Forward 1
+GPDSquare  		
+	X1_Y1=	-86.15828991	-99.22996503	80.49946037
+	X128_Y1=	-42.857075	-124.2300608	80.49946037
+	X1_Y128=	-95.7254047	-115.8006093	34.3054774
+	X128_Y128=	-52.42418979	-140.8007051	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22   // Forward 1
+GPDSquare  		
+	X1_Y1=	-25.00034235	-129.0148044	80.49946037
+	X128_Y1=	24.99965765	-129.0149371	80.49946037
+	X1_Y128=	-25.00039313	-148.1489607	34.3054774
+	X128_Y128=	24.99960687	-148.1490934	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23   // Forward 1
+GPDSquare  		
+	X1_Y1=	42.85641569	-124.2302882	80.49946037
+	X128_Y1=	86.15776328	-99.23042228	80.49946037
+	X1_Y128=	52.42344254	-140.8009833	34.3054774
+	X128_Y128=	95.72479012	-115.8011173	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%24   // Forward 1
+GPDSquare  		
+	X1_Y1=	99.22985071	-86.15842157	80.49946037
+	X128_Y1=	124.2300039	-42.85723983	80.49946037
+	X1_Y128=	115.8004823	-95.72555834	34.3054774
+	X128_Y128=	140.8006355	-52.42437661	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%25   // Forward 1
+GPDSquare  		
+	X1_Y1=	129.0147713	-25.00051353	80.49946037
+	X128_Y1=	129.0149703	24.99948647	80.49946037
+	X1_Y128=	148.1489276	-25.00058969	34.3054774
+	X128_Y128=	148.1491266	24.99941031	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%26   // Forward 1
+GPDSquare  		
+	X1_Y1=	124.2303451	42.85625086	80.49946037
+	X128_Y1=	99.2305366	86.15763162	80.49946037
+	X1_Y128=	140.8010528	52.42325572	34.3054774
+	X128_Y128=	115.8012443	95.72463648	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27   // Forward 1
+GPDSquare  				
+	X1_Y1=	86.15855322	99.2297364	80.49946037
+	X128_Y1=	42.85740466	124.2299471	80.49946037
+	X1_Y128=	95.72571199	115.8003553	34.3054774
+	X128_Y128=	52.42456342	140.8005659	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28    // Forward 2
+GPDSquare  
+	X1_Y1=	 	25	88.38843	123.7436
+	X128_Y1=	-25	88.38843	123.7436
+	X1_Y128=	25	123.7436	88.38843
+	X128_Y128=	-25	123.7436	88.38843
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%29    // Forward 2
+GPDSquare 
+	X1_Y1=	-44.82233533	80.17775731	123.7436281
+	X128_Y1=	-80.17769784	44.82244171	123.7436281
+	X1_Y128=	-69.82230216	105.1777573	88.38826556
+	X128_Y128=	-105.1776647	69.82244171	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%30    // Forward 2
+GPDSquare 				
+	X1_Y1=	-88.38839657	25.00011727	123.7436281
+	X128_Y1=	-88.38846291	-24.99988273	123.7436281
+	X1_Y128=	-123.7437122	25.00016418	88.38826556
+	X128_Y128=	-123.7437785	-24.99983582	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%31    // Forward 2
+GPDSquare 
+		
+	X1_Y1=	-80.17781678	-44.82222895	123.7436281
+	X128_Y1=	-44.82254809	-80.17763837	123.7436281
+	X1_Y128=	-105.17785	-69.82216261	88.38826556
+	X128_Y128=	-69.82258126	-105.177572	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32    // Forward 2
+GPDSquare 				
+	X1_Y1=	-25.00023455	-88.3883634	123.7436281
+	X128_Y1=	24.99976545	-88.38849608	123.7436281
+	X1_Y128=	-25.00032837	-123.743679	88.38826556
+	X128_Y128=	24.99967163	-123.7438117	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33    // Forward 2
+GPDSquare 
+	X1_Y1=	44.82212257	-80.17787625	123.7436281
+	X128_Y1=	80.1775789	-44.82265447	123.7436281
+	X1_Y128=	69.82202306	-105.1779426	88.38826556
+	X128_Y128=	105.1774794	-69.82272081	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34    // Forward 2
+GPDSquare 
+	X1_Y1=	88.38833023	-25.00035182	123.7436281
+	X128_Y1=	88.38852925	24.99964818	123.7436281
+	X1_Y128=	123.7436458	-25.00049255	88.38826556
+	X128_Y128=	123.7438449	24.99950745	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%35   // Forward 2
+GPDSquare 		
+	X1_Y1=	80.17793572	44.82201619	123.7436281
+	X128_Y1=	44.82276085	80.17751943	123.7436281
+	X1_Y128=	105.1780352	69.82188351	88.38826556
+	X128_Y128=	69.82286035	105.1773868	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%36    // Forward 3
+GPDSquare  
+	X1_Y1=	 	25	34.30548	148.149
+	X128_Y1=	-25	34.30548	148.149
+	X1_Y128=	25	80.49946	129.0149
+	X128_Y128=	-25	80.49946	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%37
+GPDSquare  
+	X1_Y1=	 	-34.30548	25	148.149
+	X128_Y1=	-34.30548	-25	148.149
+	X1_Y128=	-80.49946	25	129.0149
+	X128_Y128=	-80.49946	-25	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%38
+GPDSquare  
+	X1_Y1=	 	-25	-34.30548	148.149
+	X128_Y1=	25	-34.30548	148.149
+	X1_Y128=	-25	-80.49946	129.0149
+	X128_Y128=	25	-80.49946	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39
+GPDSquare  
+	X1_Y1=	 	34.30548	-25	148.149
+	X128_Y1=	34.30548	25	148.149
+	X1_Y128=	80.49946	-25	129.0149
+	X128_Y128=	80.49946	25	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%40 // Backward 1
+GPDSquare
+	X1_Y1=	25	148.1490271	-34.3054774
+	X128_Y1=	-25	148.1490271	-34.3054774
+	X1_Y128=	25	129.0148708	-80.49946037
+	X128_Y128=	-25	129.0148708	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%41 // Backward 1
+GPDSquare
+	X1_Y1=	95.72509741	115.8008633	-34.3054774
+	X128_Y1=	52.42381617	140.8008442	-34.3054774
+	X1_Y128=	86.15802659	99.23019366	-80.49946037
+	X128_Y128=	42.85674535	124.2301745	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%42 // Backward 1
+GPDSquare		
+	X1_Y1=	140.8007746	52.42400298	-34.3054774
+	X128_Y1=	115.8007363	95.72525106	-34.3054774
+	X1_Y128=	124.2301176	42.85691018	-80.49946037
+	X128_Y128=	99.23007934	86.15815825	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%43 // Backward 1
+GPDSquare		
+	X1_Y1=	148.1490602	-24.99980344	-34.3054774
+	X128_Y1=	148.1489939	25.00019656	-34.3054774
+	X1_Y128=	129.0149039	-24.99982882	-80.49946037
+	X128_Y128=	129.0148376	25.00017118	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%44 // Backward 1
+GPDSquare		
+	X1_Y1=	115.8009903	-95.72494377	-34.3054774
+	X128_Y1=	140.8009137	-52.42362935	-34.3054774
+	X1_Y128=	99.23030797	-86.15789493	-80.49946037
+	X128_Y128=	124.2302314	-42.85658052	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%45 // Backward 1
+GPDSquare		
+	X1_Y1=	52.42418979	-140.8007051	-34.3054774
+	X128_Y1=	95.7254047	-115.8006093	-34.3054774
+	X1_Y128=	42.857075	-124.2300608	-80.49946037
+	X128_Y128=	86.15828991	-99.22996503	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46 // Backward 1
+GPDSquare		
+	X1_Y1=	-24.99960687	-148.1490934	-34.3054774
+	X128_Y1=	25.00039313	-148.1489607	-34.3054774
+	X1_Y128=	-24.99965765	-129.0149371	-80.49946037
+	X128_Y128=	25.00034235	-129.0148044	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%47 // Backward 1
+GPDSquare		
+	X1_Y1=	-95.72479012	-115.8011173	-34.3054774
+	X128_Y1=	-52.42344254	-140.8009833	-34.3054774
+	X1_Y128=	-86.15776328	-99.23042228	-80.49946037
+	X128_Y128=	-42.85641569	-124.2302882	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%48 // Backward 1
+GPDSquare		
+	X1_Y1=	-140.8006355	-52.42437661	-34.3054774
+	X128_Y1=	-115.8004823	-95.72555834	-34.3054774
+	X1_Y128=	-124.2300039	-42.85723983	-80.49946037
+	X128_Y128=	-99.22985071	-86.15842157	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%49 // Backward 1
+GPDSquare		
+	X1_Y1=	-148.1491266	24.99941031	-34.3054774
+	X128_Y1=	-148.1489276	-25.00058969	-34.3054774
+	X1_Y128=	-129.0149703	24.99948647	-80.49946037
+	X128_Y128=	-129.0147713	-25.00051353	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%50 // Backward 1
+GPDSquare		
+	X1_Y1=	-115.8012443	95.72463648	-34.3054774
+	X128_Y1=	-140.8010528	52.42325572	-34.3054774
+	X1_Y128=	-99.2305366	86.15763162	-80.49946037
+	X128_Y128=	-124.2303451	42.85625086	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%51 // Backward 1
+GPDSquare				
+	X1_Y1=	-52.42456342	140.8005659	-34.3054774
+	X128_Y1=	-95.72571199	115.8003553	-34.3054774
+	X1_Y128=	-42.85740466	124.2299471	-80.49946037
+	X128_Y128=	-86.15855322	99.2297364	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%52 // Backward 2
+GPDSquare
+	X1_Y1=	25	123.7437453	-88.38826556
+	X128_Y1=	-25	123.7437453	-88.38826556
+	X1_Y128=	25	88.38842974	-123.7436281
+	X128_Y128=	-25	88.38842974	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%53 // Backward 2
+GPDSquare				
+	X1_Y1=	105.1776647	69.82244171	-88.38826556
+	X128_Y1=	69.82230216	105.1777573	-88.38826556
+	X1_Y128=	80.17769784	44.82244171	-123.7436281
+	X128_Y128=	44.82233533	80.17775731	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%54 // Backward 2
+GPDSquare				
+	X1_Y1=	123.7437785	-24.99983582	-88.38826556
+	X128_Y1=	123.7437122	25.00016418	-88.38826556
+	X1_Y128=	88.38846291	-24.99988273	-123.7436281
+	X128_Y128=	88.38839657	25.00011727	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 // Backward 2
+GPDSquare				
+	X1_Y1=	69.82258126	-105.177572	-88.38826556
+	X128_Y1=	105.17785	-69.82216261	-88.38826556
+	X1_Y128=	44.82254809	-80.17763837	-123.7436281
+	X128_Y128=	80.17781678	-44.82222895	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%56 // Backward 2
+GPDSquare				
+	X1_Y1=	-24.99967163	-123.7438117	-88.38826556
+	X128_Y1=	25.00032837	-123.743679	-88.38826556
+	X1_Y128=	-24.99976545	-88.38849608	-123.7436281
+	X128_Y128=	25.00023455	-88.3883634	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%57 // Backward 2
+GPDSquare				
+	X1_Y1=	-105.1774794	-69.82272081	-88.38826556
+	X128_Y1=	-69.82202306	-105.1779426	-88.38826556
+	X1_Y128=	-80.1775789	-44.82265447	-123.7436281
+	X128_Y128=	-44.82212257	-80.17787625	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%58 // Backward 2
+GPDSquare				
+	X1_Y1=	-123.7438449	24.99950745	-88.38826556
+	X128_Y1=	-123.7436458	-25.00049255	-88.38826556
+	X1_Y128=	-88.38852925	24.99964818	-123.7436281
+	X128_Y128=	-88.38833023	-25.00035182	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%59 // Backward 2
+GPDSquare				
+	X1_Y1=	-69.82286035	105.1773868	-88.38826556
+	X128_Y1=	-105.1780352	69.82188351	-88.38826556
+	X1_Y128=	-44.82276085	80.17751943	-123.7436281
+	X128_Y128=	-80.17793572	44.82201619	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%60 // Backward 3
+GPDSquare		
+	X1_Y1=		25.	80.49963	-129.014764
+	X128_Y1=	-25.	80.49963	-129.014764
+	X1_Y128=	25.	34.30567	-148.1489815
+	X128_Y128=	-25.	34.30567	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%61 // Backward 3
+GPDSquare		
+	X1_Y1=	-80.49959838	25.00010681	-129.014764
+	X128_Y1=	-80.49966472	-24.99989319	-129.014764
+	X1_Y128=	-34.30564079	25.00004552	-148.1489815
+	X128_Y128=	-34.30570713	-24.99995448	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%62 // Backward 3
+GPDSquare		
+	X1_Y1=	-25.00021361	-80.49956521	-129.014764
+	X128_Y1=	24.99978639	-80.49969789	-129.014764
+	X1_Y128=	-25.00009103	-34.30560762	-148.1489815
+	X128_Y128=	24.99990897	-34.3057403	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%63 // Backward 3
+GPDSquare		
+	X1_Y1=	80.49953204	-25.00032042	-129.014764
+	X128_Y1=	80.49973106	24.99967958	-129.014764
+	X1_Y128=	34.30557445	-25.00013655	-148.1489815
+	X128_Y128=	34.30577347	24.99986345	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+
+
diff --git a/Inputs/DetectorConfiguration/gaspardV1_r150_69det.detector b/Inputs/DetectorConfiguration/gaspardV1_r150_69det.detector
new file mode 100644
index 000000000..40cd678b7
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardV1_r150_69det.detector
@@ -0,0 +1,711 @@
+%%%%%%%%%%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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0   // central ring
+GPDSquare  
+	X1_Y1=	 	25	150	25
+	X128_Y1=	-25	150	25
+	X1_Y128=	25	150	-25
+	X128_Y128=	-25	150	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare 
+	X1_Y1=	 	-34.3055 	148.149 	25
+	X128_Y1= 	-80.4995	129.0149	25
+	X1_Y128= 	-34.3055	148.148		-25
+	X128_Y128=	-80.4995	129.0149	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare 
+	X1_Y1=	 	-88.3883	123.7437	25
+	X128_Y1=	-123.744	88.388		25
+	X1_Y128=	-88.3883	123.7437	-25
+	X128_Y128=	-123.744	88.388		-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3
+GPDSquare 
+	X1_Y1=	 	-129.015	80.49963	25
+	X128_Y1=	-148.149	34.30567	25
+	X1_Y128=	-129.015	80.49963	-25
+	X128_Y128=	-148.149	34.30567	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4
+GPDSquare 
+	X1_Y1=	 	-150.	25	25
+	X128_Y1=	-150.	-25	25
+	X1_Y128=	-150.	25	-25
+	X128_Y128=	-150.	-25	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
+GPDSquare  
+	X1_Y1=	-148.1490726	-34.30528084	25
+	X128_Y1=	-129.0149776	-80.4992892	25
+	X1_Y128=	-148.1490726	-34.30528084	-25
+	X128_Y128=	-129.0149776	-80.4992892	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6
+GPDSquare  				
+	X1_Y1=	-123.7438626	-88.38810137	25
+	X128_Y1=	-88.38859392	-123.7435108	25
+	X1_Y128=	-123.7438626	-88.38810137	-25
+	X128_Y128=	-88.38859392	-123.7435108	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7
+GPDSquare  				
+	X1_Y1=	-80.49980273	-129.0146572	25
+	X128_Y1=	-34.30587053	-148.148936	25
+	X1_Y128=	-80.49980273	-129.0146572	-25
+	X128_Y128=	-34.30587053	-148.148936	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8
+GPDSquare  		
+	X1_Y1=	-25.00039804	-149.9999337	25
+	X128_Y1=	24.99960196	-150.0000663	25
+	X1_Y128=	-25.00039804	-149.9999337	-25
+	X128_Y128=	24.99960196	-150.0000663	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9
+GPDSquare  				
+	X1_Y1=	34.30508427	-148.1491181	25
+	X128_Y1=	80.49911802	-129.0150844	25
+	X1_Y128=	34.30508427	-148.1491181	-25
+	X128_Y128=	80.49911802	-129.0150844	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10
+GPDSquare  		
+	X1_Y1=	88.38793719	-123.7439799	25
+	X128_Y1=	123.7433935	-88.3887581	25
+	X1_Y128=	88.38793719	-123.7439799	-25
+	X128_Y128=	123.7433935	-88.3887581	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11
+GPDSquare  		
+	X1_Y1=	129.0145503	-80.4999739	25
+	X128_Y1=	148.1488905	-34.30606709	25
+	X1_Y128=	129.0145503	-80.4999739	-25
+	X128_Y128=	148.1488905	-34.30606709	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12
+GPDSquare 
+	X1_Y1=	149.9999005	-25.00059706	25
+	X128_Y1=	150.0000995	24.99940294	25
+	X1_Y128=	149.9999005	-25.00059706	-25
+	X128_Y128=	150.0000995	24.99940294	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%13
+GPDSquare  				
+	X1_Y1=	148.1491636	34.30488771	25
+	X128_Y1=	129.0151912	80.49894684	25
+	X1_Y128=	148.1491636	34.30488771	-25
+	X128_Y128=	129.0151912	80.49894684	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14
+GPDSquare  				
+	X1_Y1=	123.7440972	88.38777301	25
+	X128_Y1=	88.38892229	123.7432763	25
+	X1_Y128=	123.7440972	88.38777301	-25
+	X128_Y128=	88.38892229	123.7432763	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%15
+GPDSquare  				
+	X1_Y1=	80.50014508	129.0144435	25
+	X128_Y1=	34.30626365	148.148845	25
+	X1_Y128=	80.50014508	129.0144435	-25
+	X128_Y128=	34.30626365	148.148845	-25
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16   // Forward 1
+GPDSquare  
+	X1_Y1=	 	25	129.0149	80.49946
+	X128_Y1=	-25	129.0149	80.49946
+	X1_Y128=	25	148.149		34.30548
+	X128_Y128=	-25	148.149		34.30548
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17   // Forward 1
+GPDSquare  
+	X1_Y1=	-37.81974796	125.8550895	80.49946037
+	X128_Y1=	-82.09255873	102.6189489	80.49946037
+	X1_Y128=	-46.71182686	142.7975471	34.3054774
+	X128_Y128=	-90.98463762	119.5614066	34.305477
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18   // Forward 1
+GPDSquare  
+	X1_Y1=	-91.9754618	93.86347163	80.49946037
+	X128_Y1=	-120.3787327	52.71430153	80.49946037
+	X1_Y128=	-107.7225548	104.7329241	34.3054774
+	X128_Y128=	-136.1258258	63.58375404	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%19   // Forward 1
+GPDSquare  
+	X1_Y1=	-125.0607407	40.36889924	80.49946037
+	X128_Y1=	-131.0876355	-9.266537079	80.49946037
+	X1_Y128=	-144.0553846	42.67529019	34.3054774
+	X128_Y128=	-150.0822794	-6.960146136	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%20   // Forward 1
+GPDSquare  
+	X1_Y1=	-129.4961584	-22.37368614	80.49946037
+	X128_Y1=	-111.7659904	-69.12452723	80.49946037
+	X1_Y128=	-147.3869164	-29.15872226	34.3054774
+	X128_Y128=	-129.6567484	-75.90956335	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21   // Forward 1
+GPDSquare  
+	X1_Y1=	-104.265616	-79.99073816	80.49946037
+	X128_Y1=	-66.84014631	-113.1469475	80.49946037
+	X1_Y128=	-116.9539379	-94.3128339	34.3054774
+	X128_Y128=	-79.52846813	-127.4690432	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22   // Forward 1
+GPDSquare  
+	X1_Y1=	-55.14911712	-119.2829064	80.49946037
+	X128_Y1=	-6.602055555	-131.2488085	80.49946037
+	X1_Y128=	-59.72826595	-137.8610477	34.3054774
+	X128_Y128=	-11.18120439	-149.8269498	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23   // Forward 1
+GPDSquare  
+	X1_Y1=	6.601358994	-131.2488436	80.49946037
+	X128_Y1=	55.14848406	-119.2831991	80.49946037
+	X1_Y128=	11.18040923	-149.8270091	34.3054774
+	X128_Y128=	59.72753429	-137.8613647	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%24   // Forward 1
+GPDSquare  
+	X1_Y1=	66.83954582	-113.1473022	80.49946037
+	X128_Y1=	104.2651915	-79.99129151	80.49946037
+	X1_Y128=	79.52779163	-127.4694653	34.3054774
+	X128_Y128=	116.9534373	-94.3134546	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%25   // Forward 1
+GPDSquare  
+	X1_Y1=	111.7656236	-69.12512039	80.49946037
+	X128_Y1=	129.4960397	-22.3743734	80.49946037
+	X1_Y128=	129.6563456	-75.91025146	34.3054774
+	X128_Y128=	147.3867617	-29.15950447	34.3054774	
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%26   // Forward 1
+GPDSquare  
+	X1_Y1=	131.0875863	-9.267232784	80.49946037
+	X128_Y1=	125.0609549	40.36823552	80.49946037
+	X1_Y128=	150.0822424	-6.96094265	34.3054774
+	X128_Y128=	144.0556111	42.67452566	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27   // Forward 1
+GPDSquare  
+	X1_Y1=	120.3790125	52.71366266	80.49946037
+	X128_Y1=	91.97595995	93.8629835	80.49946037
+	X1_Y128=	136.1261632	63.58303159	34.3054774
+	X128_Y128=	107.7231107	104.7323524	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28   // Forward 1
+GPDSquare  
+	X1_Y1=	82.09310335	102.6185133	80.49946037
+	X128_Y1=	37.8204159	125.8548887	80.49946037
+	X1_Y128=	90.98527216	119.5609237	34.3054774
+	X128_Y128=	46.71258471	142.7972992	34.3054774
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%29    // Forward 2
+GPDSquare  
+	X1_Y1=	 	25	88.38843	123.7436
+	X128_Y1=	-25	88.38843	123.7436
+	X1_Y128=	25	123.7436	88.38843
+	X128_Y128=	-25	123.7436	88.38843
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%30
+GPDSquare  		
+	X1_Y1=	-37.66382699	83.77917789	123.7436281
+	X128_Y1=	-75.9660681	51.63981999	123.7436281
+	X1_Y128=	-60.38976983	110.8629343	88.38826556
+	X128_Y128=	-98.69201094	78.72357645	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%31
+GPDSquare  				
+	X1_Y1=	-82.7043593	39.96878112	123.7436281
+	X128_Y1=	-91.38682626	-9.271596295	123.7436281
+	X1_Y128=	-117.522541	46.1082083	88.38826556
+	X128_Y128=	-126.2050079	-3.132169106	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32
+GPDSquare  				
+	X1_Y1=	-89.04666544	-22.54342225	123.7436281
+	X128_Y1=	-64.04674204	-65.84473666	123.7436281
+	X1_Y128=	-119.6652982	-40.22102588	88.38826556
+	X128_Y128=	-94.66537478	-83.5223403	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33		
+GPDSquare  		
+	X1_Y1=	-53.72311467	-74.50732489	123.7436281
+	X128_Y1=	-6.738523969	-91.60844288	123.7436281
+	X1_Y128=	-65.81542315	-107.7304255	88.38826556
+	X128_Y128=	-18.83083244	-124.8315435	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%34
+GPDSquare  				
+	X1_Y1=	6.738037787	-91.60847864	123.7436281
+	X128_Y1=	53.72271925	-74.50761	123.7436281
+	X1_Y128=	18.83016994	-124.8316435	88.38826556
+	X128_Y128=	65.8148514	-107.7307748	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%35
+GPDSquare  
+	X1_Y1=	64.04639259	-65.84507657	123.7436281
+	X128_Y1=	89.04654579	-22.54389483	123.7436281
+	X1_Y128=	94.66493151	-83.5228427	88.38826556
+	X128_Y128=	119.6650847	-40.22166097	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%36
+GPDSquare  				
+	X1_Y1=	91.38677705	-9.272081301	123.7436281
+	X128_Y1=	82.70457142	39.96834219	123.7436281
+	X1_Y128=	126.2049913	-3.132838898	88.38826556
+	X128_Y128=	117.5227857	46.10758459	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%37
+GPDSquare  
+	X1_Y1=	75.96634216	51.63941683	123.7436281
+	X128_Y1=	37.66427163	83.778978	123.7436281
+	X1_Y128=	98.69242874	78.72305267	88.38826556
+	X128_Y128=	60.3903582	110.8626138	88.38826556
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%38    // Forward 3
+GPDSquare  
+	X1_Y1=	 	25	34.30548	148.149
+	X128_Y1=	-25	34.30548	148.149
+	X1_Y128=	25	80.49946	129.0149
+	X128_Y128=	-25	80.49946	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39
+GPDSquare  
+	X1_Y1=	 	-34.30548	25	148.149
+	X128_Y1=	-34.30548	-25	148.149
+	X1_Y128=	-80.49946	25	129.0149
+	X128_Y128=	-80.49946	-25	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%40
+GPDSquare  
+	X1_Y1=	 	-25	-34.30548	148.149
+	X128_Y1=	25	-34.30548	148.149
+	X1_Y128=	-25	-80.49946	129.0149
+	X128_Y128=	25	-80.49946	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%41
+GPDSquare  
+	X1_Y1=	 	34.30548	-25	148.149
+	X128_Y1=	34.30548	25	148.149
+	X1_Y128=	80.49946	-25	129.0149
+	X128_Y128=	80.49946	25	129.0149
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%42 // Backward 1
+GPDSquare
+	X1_Y1=	25	148.1490271	-34.3054774
+	X128_Y1=	-25	148.1490271	-34.3054774
+	X1_Y128=	25	129.0148708	-80.49946037
+	X128_Y128=	-25	129.0148708	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%43 // Backward 1
+GPDSquare  
+	X1_Y1=	90.98463762	119.5614066	-34.3054774
+	X128_Y1=	46.71182686	142.7975471	-34.3054774
+	X1_Y128=	82.09255873	102.6189489	-80.49946037
+	X128_Y128=	37.81974796	125.8550895	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%44 // Backward 1
+GPDSquare  				
+	X1_Y1=	136.1258258	63.58375404	-34.3054774
+	X128_Y1=	107.7225548	104.7329241	-34.3054774
+	X1_Y128=	120.3787327	52.71430153	-80.49946037
+	X128_Y128=	91.9754618	93.86347163	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%45 // Backward 1
+GPDSquare  		
+	X1_Y1=	150.0822794	-6.960146136	-34.3054774
+	X128_Y1=	144.0553846	42.67529019	-34.3054774
+	X1_Y128=	131.0876355	-9.266537079	-80.49946037
+	X128_Y128=	125.0607407	40.36889924	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46 // Backward 1
+GPDSquare  		
+	X1_Y1=	129.6567484	-75.90956335	-34.3054774
+	X128_Y1=	147.3869164	-29.15872226	-34.3054774
+	X1_Y128=	111.7659904	-69.12452723	-80.49946037
+	X128_Y128=	129.4961584	-22.37368614	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%47 // Backward 1
+GPDSquare  		
+	X1_Y1=	79.52846813	-127.4690432	-34.3054774
+	X128_Y1=	116.9539379	-94.3128339	-34.3054774
+	X1_Y128=	66.84014631	-113.1469475	-80.49946037
+	X128_Y128=	104.265616	-79.99073816	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%48 // Backward 1
+GPDSquare  		
+	X1_Y1=	11.18120439	-149.8269498	-34.3054774
+	X128_Y1=	59.72826595	-137.8610477	-34.3054774
+	X1_Y128=	6.602055555	-131.2488085	-80.49946037
+	X128_Y128=	55.14911712	-119.2829064	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%49 // Backward 1
+GPDSquare  		
+	X1_Y1=	-59.72753429	-137.8613647	-34.3054774
+	X128_Y1=	-11.18040923	-149.8270091	-34.3054774
+	X1_Y128=	-55.14848406	-119.2831991	-80.49946037
+	X128_Y128=	-6.601358994	-131.2488436	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%50 // Backward 1
+GPDSquare  		
+	X1_Y1=	-116.9534373	-94.3134546	-34.3054774
+	X128_Y1=	-79.52779163	-127.4694653	-34.3054774
+	X1_Y128=	-104.2651915	-79.99129151	-80.49946037
+	X128_Y128=	-66.83954582	-113.1473022	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%51 // Backward 1
+GPDSquare  		
+	X1_Y1=	-147.3867617	-29.15950447	-34.3054774
+	X128_Y1=	-129.6563456	-75.91025146	-34.3054774
+	X1_Y128=	-129.4960397	-22.3743734	-80.49946037
+	X128_Y128=	-111.7656236	-69.12512039	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%52 // Backward 1
+GPDSquare  		
+	X1_Y1=	-144.0556111	42.67452566	-34.3054774
+	X128_Y1=	-150.0822424	-6.96094265	-34.3054774
+	X1_Y128=	-125.0609549	40.36823552	-80.49946037
+	X128_Y128=	-131.0875863	-9.267232784	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%53 // Backward 1
+GPDSquare  		
+	X1_Y1=	-107.7231107	104.7323524	-34.3054774
+	X128_Y1=	-136.1261632	63.58303159	-34.3054774
+	X1_Y128=	-91.97595995	93.8629835	-80.49946037
+	X128_Y128=	-120.3790125	52.71366266	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%54 // Backward 1
+GPDSquare  
+	X1_Y1=	-46.71258471	142.7972992	-34.3054774
+	X128_Y1=	-90.98527216	119.5609237	-34.3054774
+	X1_Y128=	-37.8204159	125.8548887	-80.49946037
+	X128_Y128=	-82.09310335	102.6185133	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 // Backward 2
+GPDSquare
+	X1_Y1=	25	123.7437453	-88.38826556
+	X128_Y1=	-25	123.7437453	-88.38826556
+	X1_Y128=	25	88.38842974	-123.7436281
+	X128_Y128=	-25	88.38842974	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%56 // Backward 2
+GPDSquare				
+	X1_Y1=	98.69201094	78.72357645	-88.38826556
+	X128_Y1=	60.38976983	110.8629343	-88.38826556
+	X1_Y128=	75.9660681	51.63981999	-123.7436281
+	X128_Y128=	37.66382699	83.77917789	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%57 // Backward 2
+GPDSquare		
+	X1_Y1=	126.2050079	-3.132169106	-88.38826556
+	X128_Y1=	117.522541	46.1082083	-88.38826556
+	X1_Y128=	91.38682626	-9.271596295	-123.7436281
+	X128_Y128=	82.7043593	39.96878112	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%58 // Backward 2
+GPDSquare		
+	X1_Y1=	94.66537478	-83.5223403	-88.38826556
+	X128_Y1=	119.6652982	-40.22102588	-88.38826556
+	X1_Y128=	64.04674204	-65.84473666	-123.7436281
+	X128_Y128=	89.04666544	-22.54342225	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%59 // Backward 2
+GPDSquare				
+	X1_Y1=	18.83083244	-124.8315435	-88.38826556
+	X128_Y1=	65.81542315	-107.7304255	-88.38826556
+	X1_Y128=	6.738523969	-91.60844288	-123.7436281
+	X128_Y128=	53.72311467	-74.50732489	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%60 // Backward 2
+GPDSquare		
+	X1_Y1=	-65.8148514	-107.7307748	-88.38826556
+	X128_Y1=	-18.83016994	-124.8316435	-88.38826556
+	X1_Y128=	-53.72271925	-74.50761	-123.7436281
+	X128_Y128=	-6.738037787	-91.60847864	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%61 // Backward 2
+GPDSquare		
+	X1_Y1=	-119.6650847	-40.22166097	-88.38826556
+	X128_Y1=	-94.66493151	-83.5228427	-88.38826556
+	X1_Y128=	-89.04654579	-22.54389483	-123.7436281
+	X128_Y128=	-64.04639259	-65.84507657	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%62 // Backward 2
+GPDSquare		
+	X1_Y1=	-117.5227857	46.10758459	-88.38826556
+	X128_Y1=	-126.2049913	-3.132838898	-88.38826556
+	X1_Y128=	-82.70457142	39.96834219	-123.7436281
+	X128_Y128=	-91.38677705	-9.272081301	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%63 // Backward 2
+GPDSquare		
+	X1_Y1=	-60.3903582	110.8626138	-88.38826556
+	X128_Y1=	-98.69242874	78.72305267	-88.38826556
+	X1_Y128=	-37.66427163	83.778978	-123.7436281
+	X128_Y128=	-75.96634216	51.63941683	-123.7436281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%64 // Backward 2
+GPDSquare
+	X1_Y1=	25	80.49963155	-129.014764
+	X128_Y1=	-25	80.49963155	-129.014764
+	X1_Y128=	25	34.30567396	-148.1489815
+	X128_Y128=	-25	34.30567396	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%65 // Backward 3
+GPDSquare		
+	X1_Y1=	-80.49959838	25.00010681	-129.014764
+	X128_Y1=	-80.49966472	-24.99989319	-129.014764
+	X1_Y128=	-34.30564079	25.00004552	-148.1489815
+	X128_Y128=	-34.30570713	-24.99995448	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%66 // Backward 3
+GPDSquare		
+	X1_Y1=	-25.00021361	-80.49956521	-129.014764
+	X128_Y1=	24.99978639	-80.49969789	-129.014764
+	X1_Y128=	-25.00009103	-34.30560762	-148.1489815
+	X128_Y128=	24.99990897	-34.3057403	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%67 // Backward 3
+GPDSquare		
+	X1_Y1=	80.49953204	-25.00032042	-129.014764
+	X128_Y1=	80.49973106	24.99967958	-129.014764
+	X1_Y128=	34.30557445	-25.00013655	-148.1489815
+	X128_Y128=	34.30577347	24.99986345	-148.1489815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%68 // Backward 3
+
diff --git a/Inputs/DetectorConfiguration/gaspardV1_r150asy.detector b/Inputs/DetectorConfiguration/gaspardV1_r150asy.detector
new file mode 100644
index 000000000..053d0315a
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardV1_r150asy.detector
@@ -0,0 +1,690 @@
+%%%%%%%%%%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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0   // central ring
+GPDSquare
+	X1_Y1=	-88.38826556	100.2608923	76.71550028
+	X128_Y1=	-123.7436281	68.48373921	61.21676222
+	X1_Y128=	-88.38826556	122.1794324	31.77578957
+	X128_Y128=	-123.7436281	90.40227932	16.2770515
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare
+	X1_Y1=	-129.014764	61.39333304	57.75854342
+	X128_Y1=	-148.1489815	19.87447122	37.50846118
+	X1_Y128=	-129.014764	83.31187315	12.81883271
+	X128_Y128=	-148.1489815	41.79301133	-7.431249539
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-149.9999668	11.51076418	33.42921266
+	X128_Y1=	-150.0000332	-33.42894654	11.51067255
+	X1_Y128=	-149.9999668	33.42930429	-11.51049806
+	X128_Y128=	-150.0000332	-11.51040642	-33.42903817
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-148.1490726	-41.79265799	7.431421875
+	X128_Y1=	-129.0149776	-83.31156544	-12.81868263
+	X1_Y128=	-148.1490726	-19.87411788	-37.50828884
+	X128_Y128=	-129.0149776	-61.39302533	-57.75839335
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-123.7438626	-90.40198419	-16.27690755
+	X128_Y1=	-88.38859392	-122.1792216	-31.77568675
+	X1_Y128=	-123.7438626	-68.48344407	-61.21661827
+	X128_Y128=	-88.38859392	-100.2606815	-76.71539746
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-80.49980273	-126.9168975	-34.08640341
+	X128_Y1=	-34.30587053	-144.1146766	-42.47431259
+	X1_Y128=	-80.49980273	-104.9983574	-79.02611412
+	X128_Y128=	-34.30587053	-122.1961365	-87.4140233
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-25.00039804	-145.7783426	-43.2857359
+	X128_Y1=	24.99960196	-145.7784618	-43.28579407
+	X1_Y128=	-25.00039804	-123.8598025	-88.22544662
+	X128_Y128=	24.99960196	-123.8599217	-88.22550478
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	34.30508427	-144.1148403	-42.4743924
+	X128_Y1=	80.49911802	-126.9172815	-34.08659069
+	X1_Y128=	34.30508427	-122.1963001	-87.41410312
+	X128_Y128=	80.49911802	-104.9987413	-79.02630141
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	88.38793719	-122.1796432	-31.77589238
+	X128_Y1=	123.7433935	-90.40257445	-16.27719544
+	X1_Y128=	88.38793719	-100.2611031	-76.7156031
+	X128_Y128=	123.7433935	-68.48403434	-61.21690616
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	129.0145503	-83.31218085	-12.81898279
+	X128_Y1=	148.1488905	-41.79336467	7.431077204
+	X1_Y128=	129.0145503	-61.39364074	-57.7586935
+	X128_Y128=	148.1488905	-19.87482456	-37.50863351
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	149.9999005	-33.42966205	11.51032357
+	X128_Y1=	150.0000995	11.51004867	33.42886368
+	X1_Y128=	149.9999005	-11.51112193	-33.42938715
+	X128_Y128=	150.0000995	33.42858878	-11.51084703
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	148.1491636	19.87376454	37.50811651
+	X128_Y1=	129.0151912	61.39271763	57.75824327
+	X1_Y128=	148.1491636	41.79230465	-7.43159421
+	X128_Y128=	129.0151912	83.31125774	12.81853255
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	123.7440972	68.48314894	61.21647432
+	X128_Y1=	88.38892229	100.2604707	76.71529465
+	X1_Y128=	123.7440972	90.40168905	16.27676361
+	X128_Y128=	88.38892229	122.1790108	31.77558393
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	80.50014508	104.9981654	79.02602048
+	X128_Y1=	34.30626365	122.1960547	87.4139834
+	X1_Y128=	80.50014508	126.9167055	34.08630976
+	X128_Y128=	34.30626365	144.1145948	42.47427268
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	25.00079608	123.8597428	88.22541754
+	X128_Y1=	-24.99920392	123.8599813	88.22553386
+	X1_Y128=	25.00079608	145.778283	43.28570682
+	X128_Y128=	-24.99920392	145.7785215	43.28582315
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare						
+	X1_Y1=	-34.30469115	122.196382	87.41414302
+	X128_Y1=	-80.49877567	104.9989333	79.02639505
+	X1_Y128=	-34.30469115	144.1149221	42.47443231
+	X128_Y128=	-80.49877567	126.9174735	34.08668433
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-73.54954822	62.59457836	120.0932251
+	X128_Y1=	-108.9049107	30.81742525	104.594487
+	X1_Y128=	-87.07943091	95.00526816	84.50545388
+	X128_Y128=	-122.4347934	63.22811504	69.00671581
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-118.1482559	16.42781008	97.57620961
+	X128_Y1=	-131.0892616	-26.98060427	76.40453192
+	X1_Y128=	-136.6304262	41.12900608	58.22827068
+	X128_Y128=	-149.5714318	-2.279408262	37.05659298
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-131.0892861	-43.59630914	68.30051905
+	X128_Y1=	-118.1484086	-87.00475435	47.1288263
+	X1_Y128=	-149.5714695	-27.79727431	24.61071023
+	X128_Y128=	-136.630592	-71.20571952	3.439017474
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare						
+	X1_Y1=	-108.9051059	-101.3943916	40.11053812
+	X128_Y1=	-73.54983721	-133.171629	24.61175893
+	X1_Y128=	-122.4350245	-93.30486234	-7.339444172
+	X128_Y128=	-87.0797558	-125.0820998	-22.83822337
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-57.5399387	-141.4795132	20.55973698
+	X128_Y1=	-9.243678868	-153.1108719	14.88674986
+	X1_Y128=	-62.49226772	-137.8410817	-29.06118858
+	X128_Y128=	-14.19600789	-149.4724403	-34.7341757
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	9.242983154	-153.1109159	14.88672835
+	X128_Y1=	57.53931167	-141.4797877	20.55960311
+	X1_Y128=	14.19521408	-149.472508	-34.73420872
+	X128_Y128=	62.4915426	-137.8413798	-29.06133396
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	73.54925923	-133.1719798	24.61158781
+	X128_Y1=	108.9047156	-101.394911	40.11028475
+	X1_Y128=	87.07910602	-125.0825151	-22.83842596
+	X128_Y128=	122.4345624	-93.30544636	-7.339729018
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	118.1481032	-87.00531792	47.12855143
+	X128_Y1=	131.089237	-43.59693444	68.30021407
+	X1_Y128=	136.6302603	-71.20637125	3.438699602
+	X128_Y128=	149.5713941	-27.79798777	24.61036225
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	131.0893106	-26.98122957	76.40422694
+	X128_Y1=	118.1485613	16.4272465	97.57593474
+	X1_Y128=	149.5715072	-2.280121727	37.056245
+	X128_Y128=	136.6307578	41.12835435	58.22795281
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	108.9053011	30.81690576	104.5942337
+	X128_Y1=	73.5501262	62.59422752	120.093054
+	X1_Y128=	122.4352556	63.22753102	69.00643096
+	X128_Y128=	87.08008069	95.00485278	84.50525128
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	57.54025222	70.90214996	124.1450946
+	X128_Y1=	9.244026725	82.53362375	129.8181379
+	X1_Y128=	62.49263028	107.7638933	90.7282451
+	X128_Y128=	14.19640479	119.3953671	96.4012884
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare			
+	X1_Y1=	-9.242635297	82.53371193	129.8181809
+	X128_Y1=	-57.53899815	70.90269889	124.1453623
+	X1_Y128=	-14.19481718	119.3955025	96.40135445
+	X128_Y128=	-62.49118004	107.7644895	90.72853587
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-44.82233533	17.81771087	146.3676448
+	X128_Y1=	-80.17769784	-13.95944224	130.8689067
+	X1_Y128=	-69.82230216	55.78632486	125.5497196
+	X128_Y128=	-105.1776647	24.00917175	110.0509815
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-88.38839657	-31.77563275	122.1793784
+	X128_Y1=	-88.38846291	-76.71534347	100.2608383
+	X1_Y128=	-123.7437122	-16.27683196	90.40220373
+	X128_Y128=	-123.7437785	-61.21654268	68.48366361
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-80.17781678	-94.53155357	91.57130051
+	X128_Y1=	-44.82254809	-126.308791	76.07252131
+	X1_Y128=	-105.17785	-101.5025907	48.83486426
+	X128_Y128=	-69.82258126	-133.2798281	33.33608506
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-25.00023455	-133.6885432	72.47317919
+	X128_Y1=	24.99976545	-133.6886624	72.47312103
+	X1_Y128=	-25.00032837	-149.9669376	25.19724585
+	X128_Y128=	24.99967163	-149.9670569	25.19718769
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	44.82212257	-126.3090048	76.07241703
+	X128_Y1=	80.1775789	-94.53193602	91.57111397
+	X1_Y128=	69.82202306	-133.2801612	33.33592262
+	X128_Y128=	105.1774794	-101.5030924	48.83461956
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	88.38833023	-76.71576509	100.2606327
+	X128_Y1=	88.38852925	-31.77605437	122.1791728
+	X1_Y128=	123.7436458	-61.21713294	68.48337572
+	X128_Y128=	123.7438449	-16.27742223	90.40191584
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	80.17793572	-13.95982469	130.8687202
+	X128_Y1=	44.82276085	17.81749707	146.3675405
+	X1_Y128=	105.1780352	24.00867005	110.0507368
+	X128_Y128=	69.82286035	55.7859918	125.5495571
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare
+	X1_Y1=	25.00046909	25.1972965	149.9669057
+	X128_Y1=	-24.99953091	25.197535	149.967022
+	X1_Y128=	25.00065673	72.47320824	133.6884485
+	X128_Y128=	-24.99934327	72.47344674	133.6885648
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare
+	X1_Y1=	-6.580077344	-27.25284933	151.5387237
+	X128_Y1=	-41.93543986	-59.03000244	136.0399856
+	X1_Y128=	-39.24411633	10.49332119	148.6599796
+	X128_Y128=	-74.59947885	-21.28383192	133.1612416
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	-41.93545732	-70.85827334	130.2709581
+	X128_Y1=	-6.580188623	-102.6355108	114.7721789
+	X1_Y128=	-74.59958298	-91.82860133	98.75429204
+	X128_Y128=	-39.24431429	-123.6058388	83.25551285
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare		
+	X1_Y1=	6.579966064	-102.6355422	114.7721636
+	X128_Y1=	41.9354224	-70.85847337	130.2708605
+	X1_Y128=	39.24391838	-123.606026	83.25542154
+	X128_Y128=	74.59937471	-91.82895717	98.75411848
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare				
+	X1_Y1=	41.93547478	-59.03020248	136.0398881
+	X128_Y1=	6.580299903	-27.25288072	151.5387084
+	X1_Y128=	74.59968712	-21.28418776	133.161068
+	X128_Y128=	39.24451225	10.493134	148.6598883
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Forward 4
+GPDSquare				
+	X1_Y1=	35.35533906	-65.75564142	134.8191219
+	X128_Y1=	-2.34546E-05	-97.53279453	119.3203838
+	X1_Y128=	2.34546E-05	-33.97844615	150.3178805
+	X128_Y128=	-35.35533906	-65.75559926	134.8191424
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare
+	X1_Y1=	-87.07943091	125.0823075	22.83832466
+	X128_Y1=	-122.4347934	93.30515435	7.339586595
+	X1_Y128=	-73.54954822	133.1718044	-24.61167337
+	X128_Y128=	-108.9049107	101.3946513	-40.11041144
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	-14.19561099	149.4724741	34.73419221
+	X128_Y1=	-62.49190516	137.8412307	29.06126127
+	X1_Y128=	-9.243331011	153.1108939	-14.8867391
+	X128_Y128=	-57.53962519	141.4796505	-20.55967004
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	62.49190516	137.8412307	29.06126127
+	X128_Y1=	14.19561099	149.4724741	34.73419221
+	X1_Y128=	57.53962519	141.4796505	-20.55967004
+	X128_Y128=	9.243331011	153.1108939	-14.8867391
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	122.4347934	93.30515435	7.339586595
+	X128_Y1=	87.07943091	125.0823075	22.83832466
+	X1_Y128=	108.9049107	101.3946513	-40.11041144
+	X128_Y128=	73.54954822	133.1718044	-24.61167337
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	149.5714318	27.79763104	-24.61053624
+	X128_Y1=	136.6304262	71.20604539	-3.438858538
+	X1_Y128=	131.0892616	43.59662179	-68.30036656
+	X128_Y128=	118.1482559	87.00503613	-47.12868887
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	136.630592	-41.12868022	-58.22811174
+	X128_Y1=	149.5714695	2.279764995	-37.05641899
+	X1_Y128=	118.1484086	-16.42752829	-97.57607218
+	X128_Y128=	131.0892861	26.98091692	-76.40437943
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	87.0797558	-95.00506047	-84.50535258
+	X128_Y1=	122.4350245	-63.22782303	-69.00657339
+	X1_Y128=	73.54983721	-62.59440294	-120.0931396
+	X128_Y128=	108.9051059	-30.81716551	-104.5943604
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare
+	X1_Y1=	14.19600789	-119.395401	-96.40130491
+	X128_Y1=	62.49226772	-107.7640424	-90.72831779
+	X1_Y128=	9.243678868	-82.5336458	-129.8181486
+	X128_Y128=	57.5399387	-70.90228719	-124.1451615
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare
+	X1_Y1=	-62.4915426	-107.7643404	-90.72846318
+	X128_Y1=	-14.19521408	-119.3954687	-96.40133794
+	X1_Y128=	-57.53931167	-70.90256166	-124.1452954
+	X128_Y128=	-9.242983154	-82.53368989	-129.8181701
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	-122.4345624	-63.22840705	-69.00685823
+	X128_Y1=	-87.07910602	-95.00547584	-84.50555517
+	X1_Y128=	-108.9047156	-30.81768499	-104.5946137
+	X128_Y128=	-73.54925923	-62.59475378	-120.0933107
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	-149.5713941	2.27905153	-37.05676697
+	X128_Y1=	-136.6302603	-41.12933195	-58.22842961
+	X1_Y128=	-131.089237	26.98029162	-76.40468441
+	X128_Y128=	-118.1481032	-16.42809187	-97.57634705
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 1
+GPDSquare		
+	X1_Y1=	-136.6307578	71.20539365	-3.43917641
+	X128_Y1=	-149.5715072	27.79691757	-24.61088422
+	X1_Y128=	-118.1485613	87.00447256	-47.12896374
+	X128_Y128=	-131.0893106	43.59599648	-68.30067154
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare
+	X1_Y1=	-69.82230216	133.2799946	-33.33600384
+	X128_Y1=	-105.1776647	101.5028415	-48.83474191
+	X1_Y128=	-44.82233533	126.3088979	-76.07246917
+	X128_Y128=	-80.17769784	94.53174479	-91.57120724
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	25	149.9669973	-25.19721677
+	X128_Y1=	-25	149.9669973	-25.19721677
+	X1_Y128=	25	133.6886028	-72.47315011
+	X128_Y128=	-25	133.6886028	-72.47315011
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	105.1776647	101.5028415	-48.83474191
+	X128_Y1=	69.82230216	133.2799946	-33.33600384
+	X1_Y128=	80.17769784	94.53174479	-91.57120724
+	X128_Y128=	44.82233533	126.3088979	-76.07246917
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	123.7437785	16.27712709	-90.40205978
+	X128_Y1=	123.7437122	61.21683781	-68.48351967
+	X1_Y128=	88.38846291	31.77584356	-122.1792756
+	X128_Y128=	88.38839657	76.71555428	-100.2607355
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	69.82258126	-55.78615833	-125.5496383
+	X128_Y1=	105.17785	-24.0089209	-110.0508591
+	X1_Y128=	44.82254809	-17.81760397	-146.3675926
+	X128_Y128=	80.17781678	13.95963346	-130.8688134
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	-24.99967163	-72.47338711	-133.6885357
+	X128_Y1=	25.00032837	-72.47326786	-133.6884775
+	X1_Y128=	-24.99976545	-25.19747537	-149.9669929
+	X128_Y128=	25.00023455	-25.19735612	-149.9669347
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	-105.1774794	-24.0094226	-110.0511038
+	X128_Y1=	-69.82202306	-55.78649139	-125.5498008
+	X1_Y128=	-80.1775789	13.95925101	-130.869
+	X128_Y128=	-44.82212257	-17.81781778	-146.3676969
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 2
+GPDSquare		
+	X1_Y1=	-123.7438449	61.21624754	-68.48380756
+	X128_Y1=	-123.7436458	16.27653683	-90.40234767
+	X1_Y128=	-88.38852925	76.71513266	-100.2609411
+	X128_Y128=	-88.38833023	31.77542194	-122.1794813
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 3
+GPDSquare
+	X1_Y1=	-39.24411633	123.6059324	-83.25546719
+	X128_Y1=	-74.59947885	91.82877925	-98.75420526
+	X1_Y128=	-6.580077344	102.6355265	-114.7721712
+	X128_Y128=	-41.93543986	70.85837335	-130.2709093
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 3
+GPDSquare		
+	X1_Y1=	-74.59958298	21.28400984	-133.1611548
+	X128_Y1=	-39.24431429	-10.4932276	-148.659934
+	X1_Y128=	-41.93545732	59.03010246	-136.0399369
+	X128_Y128=	-6.580188623	27.25286503	-151.5387161
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 3
+GPDSquare		
+	X1_Y1=	39.24391838	-10.49341479	-148.6600253
+	X128_Y1=	74.59937471	21.283654	-133.1613283
+	X1_Y128=	6.579966064	27.25283364	-151.5387314
+	X128_Y128=	41.9354224	59.02990243	-136.0400344
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 // Backward 3
+GPDSquare
+	X1_Y1=	74.59968712	91.82842341	-98.75437882
+	X128_Y1=	39.24451225	123.6057452	-83.2555585
+	X1_Y128=	41.93547478	70.85817332	-130.2710069
+	X128_Y128=	6.580299903	102.6354951	-114.7721865
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  / Backward 4
+GPDSquare				
+	X1_Y1=	2.34546E-05	97.53279453	-119.3203838
+	X128_Y1=	-35.35533906	65.75564142	-134.8191219
+	X1_Y128=	35.35533906	65.75559926	-134.8191424
+	X128_Y128=	-2.34546E-05	33.97844615	-150.3178805
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/DetectorConfiguration/gaspardV1_r150asy_1.detector b/Inputs/DetectorConfiguration/gaspardV1_r150asy_1.detector
new file mode 100644
index 000000000..5e8f85de5
--- /dev/null
+++ b/Inputs/DetectorConfiguration/gaspardV1_r150asy_1.detector
@@ -0,0 +1,670 @@
+%%%%%%%%%%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
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0   // central ring
+GPDSquare
+	X1_Y1=	-88.38826556	104.7572512	70.45163477
+	X128_Y1=	-123.7436281	72.09319422	56.92175207
+	X1_Y128=	-88.38826556	123.8914075	24.25765179
+	X128_Y128=	-123.7436281	91.22735051	10.7277691  
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
+GPDSquare
+	X1_Y1=	-129.014764	64.80489403	53.90284212
+	X128_Y1=	-148.1489815	22.12723623	36.22519404
+	X1_Y128=	-129.014764	83.93905033	7.70885915
+	X128_Y128=	-148.1489815	41.26139253	-9.968788937
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	-149.9999668	13.53009721	32.6641458
+	X128_Y1=	-150.0000332	-32.66388576	13.5299895
+	X1_Y128=	-149.9999668	32.6642535	-13.52983718
+	X128_Y128=	-150.0000332	-13.52972947	-32.66399347
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-148.1490726	-41.26102933	9.96893938
+	X128_Y1=	-129.0149776	-83.93873404	-7.708728138
+	X1_Y128=	-148.1490726	-22.12687303	-36.22504359
+	X128_Y128=	-129.0149776	-64.80457774	-53.90271111
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-123.7438626	-91.22704714	-10.72764344
+	X128_Y1=	-88.38859392	-123.8911908	-24.25756204
+	X1_Y128=	-123.7438626	-72.09289085	-56.92162641
+	X128_Y128=	-88.38859392	-104.7570345	-70.45154501
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-80.49980273	-128.7610957	-26.2747408
+	X128_Y1=	-34.30587053	-146.4388667	-33.59710646
+	X1_Y128=	-80.49980273	-109.6269394	-72.46872378
+	X128_Y128=	-34.30587053	-127.3047104	-79.79108943
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-25.00039804	-148.1489658	-34.30545201
+	X128_Y1=	24.99960196	-148.1490884	-34.30550279
+	X1_Y128=	-25.00039804	-129.0148095	-80.49943499
+	X128_Y128=	24.99960196	-129.0149321	-80.49948576
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	34.30508427	-146.4390349	-33.59717613
+	X128_Y1=	80.49911802	-128.7614904	-26.2749043
+	X1_Y128=	34.30508427	-127.3048786	-79.7911591
+	X128_Y128=	80.49911802	-109.6273341	-72.46888727
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	88.38793719	-123.8916241	-24.25774155
+	X128_Y1=	123.7433935	-91.22765388	-10.72789476
+	X1_Y128=	88.38793719	-104.7574679	-70.45172452
+	X128_Y128=	123.7433935	-72.09349759	-56.92187773
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	129.0145503	-83.93936662	-7.708990163
+	X128_Y1=	148.1488905	-41.26175573	9.968638494
+	X1_Y128=	129.0145503	-64.80521033	-53.90297313
+	X128_Y128=	148.1488905	-22.12759943	-36.22534448
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	149.9999005	-32.66462124	13.52968485
+	X128_Y1=	150.0000995	13.52936173	32.66384115
+	X1_Y128=	149.9999005	-13.53046495	-32.66429812
+	X128_Y128=	150.0000995	32.66351802	-13.53014182
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	148.1491636	22.12650983	36.22489315
+	X128_Y1=	129.0151912	64.80426145	53.9025801
+	X1_Y128=	148.1491636	41.26066612	-9.969089823
+	X128_Y128=	129.0151912	83.93841774	7.708597125
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	123.7440972	72.09258748	56.92150075
+	X128_Y1=	88.38892229	104.7568178	70.45145525
+	X1_Y128=	123.7440972	91.22674377	10.72751778
+	X128_Y128=	88.38892229	123.8909741	24.25747228
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	80.50014508	109.626742	72.46864203
+	X128_Y1=	34.30626365	127.3046263	79.79105459
+	X1_Y128=	80.50014508	128.7608983	26.27465906
+	X128_Y128=	34.30626365	146.4387826	33.59707162
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	25.00079608	129.0147482	80.4994096
+	X128_Y1=	-24.99920392	129.0149933	80.49951115
+	X1_Y128=	25.00079608	148.1489045	34.30542663
+	X128_Y128=	-24.99920392	148.1491496	34.30552817
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-34.30469115	127.3049627	79.79119394
+	X128_Y1=	-80.49877567	109.6275314	72.46896901
+	X1_Y128=	-34.30469115	146.439119	33.59721096
+	X128_Y128=	-80.49877567	128.7616877	26.27498604
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	-73.54954822	69.80933687	116.047923
+	X128_Y1=	-108.9049107	37.14527993	102.5180404
+	X1_Y128=	-87.07943091	99.98699467	78.54790646
+	X128_Y128=	-122.4347934	67.32293773	65.01802377
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-118.1482559	22.35404902	96.39131766
+	X128_Y1=	-131.0892616	-22.26589893	77.9091474
+	X1_Y128=	-136.6304262	44.60704021	55.60879976
+	X128_Y128=	-149.5714318	-0.01290774	37.12662951
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-131.0892861	-39.34534995	70.83461379
+	X128_Y1=	-118.1484086	-83.96532963	52.35243039
+	X1_Y128=	-149.5714695	-26.24298023	26.26178794
+	X128_Y128=	-136.630592	-70.86295991	7.77960454
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-108.9051059	-98.75658319	46.22569831
+	X128_Y1=	-73.54983721	-131.4207268	32.69577971
+	X1_Y128=	-122.4350245	-93.57889222	-1.62963388
+	X128_Y128=	-87.0797558	-126.2430358	-15.15955248
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-57.5399387	-139.960485	29.15849936
+	X128_Y1=	-9.243678868	-151.9164761	24.20617034
+	X1_Y128=	-62.49226772	-139.3581223	-20.59199407
+	X128_Y128=	-14.19600789	-151.3141134	-25.54432309
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	9.242983154	-151.9165214	24.20615157
+	X128_Y1=	57.53931167	-139.9607672	29.1583825
+	X1_Y128=	14.19521408	-151.314183	-25.54435192
+	X128_Y128=	62.4915426	-139.3584287	-20.59212099
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	73.54925923	-131.4210874	32.69563034
+	X128_Y1=	108.9047156	-98.75711718	46.22547713
+	X1_Y128=	87.07910602	-126.2434628	-15.15972933
+	X128_Y128=	122.4345624	-93.57949254	-1.629882541
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	118.1481032	-83.96590893	52.35219044
+	X128_Y1=	131.089237	-39.3459927	70.83434755
+	X1_Y128=	136.6302603	-70.86362983	7.779327048
+	X128_Y128=	149.5713941	-26.2437136	26.26148416
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	131.0893106	-22.26654169	77.90888116
+	X128_Y1=	118.1485613	22.35346971	96.3910777
+	X1_Y128=	149.5715072	-0.013641119	37.12632573
+	X128_Y128=	136.6307578	44.60637029	55.60852227
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	108.9053011	37.14474594	102.5178192
+	X128_Y1=	73.5501262	69.80897624	116.0477737
+	X1_Y128=	122.4352556	67.3223374	65.01777511
+	X128_Y128=	87.08008069	99.9865677	78.5477296
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	57.54025222	78.3487737	119.5850703
+	X128_Y1=	9.244026725	90.3048832	124.5374483
+	X1_Y128=	62.49263028	113.1017145	83.98019617
+	X128_Y128=	14.19640479	125.057824	88.93257423
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-9.242635297	90.30497385	124.5374859
+	X128_Y1=	-57.53899815	78.34933796	119.585304
+	X1_Y128=	-14.19481718	125.0579632	88.93263189
+	X128_Y128=	-62.49118004	113.1023273	83.98045
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	-44.82233533	26.72000072	145.0068958
+	X128_Y1=	-80.17769784	-5.944056222	131.4770131
+	X1_Y128=	-69.82230216	63.34689285	121.9098736
+	X128_Y128=	-105.1776647	30.68283591	108.3799909
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-88.38839657	-24.25749857	123.891344
+	X128_Y1=	-88.38846291	-70.45148154	104.7571877
+	X1_Y128=	-123.7437122	-10.72755459	91.22726166
+	X128_Y128=	-123.7437785	-56.92153756	72.09310536
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-80.17781678	-88.76494402	97.17151028
+	X128_Y1=	-44.82254809	-121.4290876	83.64159168
+	X1_Y128=	-105.17785	-98.33197357	54.94035724
+	X128_Y128=	-69.82258126	-130.9961172	41.41043864
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-25.00023455	-129.0148095	80.49948576
+	X128_Y1=	24.99976545	-129.0149321	80.49943499
+	X1_Y128=	-25.00032837	-148.1489658	34.30550279
+	X128_Y128=	24.99967163	-148.1490884	34.30545201
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	44.82212257	-121.4293074	83.64150065
+	X128_Y1=	80.1775789	-88.76533715	97.17134744
+	X1_Y128=	69.82202306	-130.9964595	41.41029683
+	X128_Y128=	105.1774794	-98.33248928	54.94014362
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	88.38833023	-70.45191493	104.7570082
+	X128_Y1=	88.38852925	-24.25793196	123.8911645
+	X1_Y128=	123.7436458	-56.9221443	72.09285404
+	X128_Y128=	123.7438449	-10.72816133	91.22701034
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	80.17793572	-5.94444935	131.4768502
+	X128_Y1=	44.82276085	26.71978094	145.0068047
+	X1_Y128=	105.1780352	30.6823202	108.3797773
+	X128_Y128=	69.82286035	63.3465505	121.9097318
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	25.00046909	34.30555138	148.1489308
+	X128_Y1=	-24.99953091	34.30579654	148.1490323
+	X1_Y128=	25.00065673	80.49950897	129.0147132
+	X128_Y128=	-24.99934327	80.49975413	129.0148147
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare
+	X1_Y1=	-6.580077344	-17.9508074	152.9198192
+	X128_Y1=	-41.93543986	-50.61486434	139.3899365
+	X1_Y128=	-39.24411633	19.54921605	147.7420979
+	X128_Y128=	-74.59947885	-13.11484089	134.2122152
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	-41.93545732	-62.77326357	134.3537673
+	X128_Y1=	-6.580188623	-95.43740719	120.8238487
+	X1_Y128=	-74.59958298	-85.62852255	104.176093
+	X128_Y128=	-39.24431429	-118.2926662	90.64617436
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare		
+	X1_Y1=	6.579966064	-95.43743945	120.8238354
+	X128_Y1=	41.9354224	-62.77346919	134.3536822
+	X1_Y128=	39.24391838	-118.2928586	90.64609466
+	X128_Y128=	74.59937471	-85.62888833	104.1759414
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	41.93547478	-50.61506996	139.3898513
+	X128_Y1=	6.580299903	-17.95083966	152.9198058
+	X1_Y128=	74.59968712	-13.11520666	134.2120637
+	X128_Y128=	39.24451225	19.54902363	147.7420182
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare								
+	X1_Y1=	-87.07943091	126.2432493	15.1596409
+	X128_Y1=	-122.4347934	93.57919238	1.629758211
+	X1_Y128=	-73.54954822	131.4209071	-32.69570502
+	X128_Y128=	-108.9049107	98.75685019	-46.22558772
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-14.19561099	151.3141482	25.5443375
+	X128_Y1=	-62.49190516	139.3582755	20.59205753
+	X1_Y128=	-9.243331011	151.9164988	-24.20616096
+	X128_Y128=	-57.53962519	139.9606261	-29.15844093
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	62.49190516	139.3582755	20.59205753
+	X128_Y1=	14.19561099	151.3141482	25.5443375
+	X1_Y128=	57.53962519	139.9606261	-29.15844093
+	X128_Y128=	9.243331011	151.9164988	-24.20616096
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	122.4347934	93.57919238	1.629758211
+	X128_Y1=	87.07943091	126.2432493	15.1596409
+	X1_Y128=	108.9049107	98.75685019	-46.22558772
+	X128_Y128=	73.54954822	131.4209071	-32.69570502
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	149.5714318	26.24334692	-26.26163605
+	X128_Y1=	136.6304262	70.86329487	-7.779465794
+	X1_Y128=	131.0892616	39.34567133	-70.83448067
+	X128_Y128=	118.1482559	83.96561928	-52.35231042
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	136.630592	-44.60670525	-55.60866102
+	X128_Y1=	149.5714695	0.01327443	-37.12647762
+	X1_Y128=	118.1484086	-22.35375937	-96.39119768
+	X128_Y128=	131.0892861	22.26622031	-77.90901428
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	87.0797558	-99.98678118	-78.54781803
+	X128_Y1=	122.4350245	-67.32263757	-65.01789944
+	X1_Y128=	73.54983721	-69.80915655	-116.0478484
+	X128_Y128=	108.9051059	-37.14501293	-102.5179298
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	14.19600789	-125.0578588	-88.93258864
+	X128_Y1=	62.49226772	-113.1018677	-83.98025963
+	X1_Y128=	9.243678868	-90.30490586	-124.5374577
+	X128_Y128=	57.5399387	-78.34891477	-119.5851287
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-62.4915426	-113.1021741	-83.98038655
+	X128_Y1=	-14.19521408	-125.0579284	-88.93261748
+	X1_Y128=	-57.53931167	-78.34919689	-119.5852456
+	X128_Y128=	-9.242983154	-90.30495119	-124.5374765
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-122.4345624	-67.32323789	-65.0181481
+	X128_Y1=	-87.07910602	-99.98720815	-78.54799489
+	X1_Y128=	-108.9047156	-37.14554692	-102.5181509
+	X128_Y128=	-73.54925923	-69.80951718	-116.0479977
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-149.5713941	0.012541052	-37.1267814
+	X128_Y1=	-136.6302603	-44.60737518	-55.60893851
+	X1_Y128=	-131.089237	22.26557756	-77.90928052
+	X128_Y128=	-118.1481032	-22.35433867	-96.39143763
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-136.6307578	70.86262494	-7.779743286
+	X128_Y1=	-149.5715072	26.24261354	-26.26193982
+	X1_Y128=	-118.1485613	83.96503997	-52.35255037
+	X128_Y128=	-131.0893106	39.34502857	-70.83474691
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-69.82230216	130.9962884	-41.41036774
+	X128_Y1=	-105.1776647	98.33223142	-54.94025043
+	X1_Y128=	-44.82233533	121.4291975	-83.64154616
+	X128_Y128=	-80.17769784	88.76514058	-97.17142886
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	25	148.1490271	-34.3054774
+	X128_Y1=	-25	148.1490271	-34.3054774
+	X1_Y128=	25	129.0148708	-80.49946037
+	X128_Y128=	-25	129.0148708	-80.49946037
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	105.1776647	98.33223142	-54.94025043
+	X128_Y1=	69.82230216	130.9962884	-41.41036774
+	X1_Y128=	80.17769784	88.76514058	-97.17142886
+	X128_Y128=	44.82233533	121.4291975	-83.64154616
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	123.7437785	10.72785796	-91.227136
+	X128_Y1=	123.7437122	56.92184093	-72.0929797
+	X1_Y128=	88.38846291	24.25771526	-123.8912542
+	X128_Y128=	88.38839657	70.45169823	-104.7570979
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	69.82258126	-63.34672167	-121.9098027
+	X128_Y1=	105.17785	-30.68257806	-108.3798841
+	X1_Y128=	44.82254809	-26.71989083	-145.0068502
+	X128_Y128=	80.17781678	5.944252786	-131.4769316
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-24.99967163	-80.49969284	-129.0147893
+	X128_Y1=	25.00032837	-80.49957026	-129.0147386
+	X1_Y128=	-24.99976545	-34.30573525	-148.1490069
+	X128_Y128=	25.00023455	-34.30561267	-148.1489562
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare						
+	X1_Y1=	-105.1774794	-30.68309376	-108.3800977
+	X128_Y1=	-69.82202306	-63.34706402	-121.9099445
+	X1_Y128=	-80.1775789	5.943859659	-131.4770945
+	X128_Y128=	-44.82212257	-26.7201106	-145.0069413
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-123.7438449	56.92123419	-72.09323102
+	X128_Y1=	-123.7436458	10.72725122	-91.22738732
+	X1_Y128=	-88.38852925	70.45126485	-104.7572774
+	X128_Y128=	-88.38833023	24.25728188	-123.8914337
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-39.24411633	118.2927624	-90.64613451
+	X128_Y1=	-74.59947885	85.62870544	-104.1760172
+	X1_Y128=	-6.580077344	95.43742332	-120.8238421
+	X128_Y128=	-41.93543986	62.77336638	-134.3537248
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	-74.59958298	13.11502377	-134.2121394
+	X128_Y1=	-39.24431429	-19.54911984	-147.742058
+	X1_Y128=	-41.93545732	50.61496715	-139.3898939
+	X128_Y128=	-6.580188623	17.95082353	-152.9198125
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	39.24391838	-19.54931227	-147.7421377
+	X128_Y1=	74.59937471	13.114658	-134.2122909
+	X1_Y128=	6.579966064	17.95079127	-152.9198259
+	X128_Y128=	41.9354224	50.61476153	-139.3899791
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
+GPDSquare				
+	X1_Y1=	74.59968712	85.62833966	-104.1761687
+	X128_Y1=	39.24451225	118.29257	-90.64621421
+	X1_Y128=	41.93547478	62.77316076	-134.3538099
+	X128_Y128=	6.580299903	95.43739106	-120.8238554
+	FIRSTSTAGE= 1
+	SECONDSTAGE= 0
+	THIRDSTAGE= 1
+	VIS= all
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2
diff --git a/Inputs/EventGenerator/Source.reaction b/Inputs/EventGenerator/Source.reaction
new file mode 100644
index 000000000..d430437c7
--- /dev/null
+++ b/Inputs/EventGenerator/Source.reaction
@@ -0,0 +1,22 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%  File used for PARIS analysis when a gamma source %%%%
+%%% The reaction is irrelevent and just kept for the format %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Beam energy given in MeV ; Excitation in MeV ; SigmaXY in mm
+%  SigmaThetaX/PhiY in deg
+Transfert
+	Beam= 11Li
+	Target= 2H
+	Light= 1H
+	Heavy= 12Li
+	ExcitationEnergy= 1.0
+	BeamEnergy= 550
+	BeamEnergySpread= 0
+	SigmaThetaX= 0.6921330164
+	SigmaPhiY= 0.963142053
+	SigmaX= 6.232
+	SigmaY= 9.069
+	CrossSectionPath= flat.txt
+	ShootLight= 1
+	ShootHeavy= 0
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Inputs/EventGenerator/gamma.source b/Inputs/EventGenerator/gamma.source
new file mode 100644
index 000000000..7ec9ce537
--- /dev/null
+++ b/Inputs/EventGenerator/gamma.source
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% A "collimated" Source to be used as EventGenerator %%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%			   Energy are given in MeV , Position in mm				  %	
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Isotropic
+	EnergyLow=  .1
+	EnergyHigh= .1
+	HalfOpenAngleMin= 90
+	HalfOpenAngleMax= 90
+	x0= 0	
+	y0= 0	
+	z0= 0	
+	particle= gamma
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Supported particle type: proton, neutron, deuton, triton, He3 , alpha 
diff --git a/Inputs/EventGenerator/isotropic.source b/Inputs/EventGenerator/isotropic.source
index 58a272bd6..95f408b63 100644
--- a/Inputs/EventGenerator/isotropic.source
+++ b/Inputs/EventGenerator/isotropic.source
@@ -4,10 +4,10 @@
 %			   Energy are given in MeV , Position in mm				  %	
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Isotropic
-	EnergyLow=  1
-	EnergyHigh= 1
+	EnergyLow=  0.1
+	EnergyHigh= 5.
 	HalfOpenAngleMin= 0
-	HalfOpenAngleMax= 1
+	HalfOpenAngleMax= 180
 	x0= 0	
 	y0= 0	
 	z0= 0	
diff --git a/Licence/Contributor b/Licence/Contributor
index 54c4dd9a0..c645303a5 100644
--- a/Licence/Contributor
+++ b/Licence/Contributor
@@ -1,10 +1,11 @@
 May 2009
 
-Main Contributor:
+Main Contributors for NPTool structure:
 Adrien MATTA 
 Nicolas de SEREVILLE
 
-Side Contributor
+Other contributors
 Sandra GIRON
+Marc LABICHE
 
 Inspired by previous work by Alexis RAMUS and Marc LABICHE.
diff --git a/NPAnalysis/Paris/Makefile b/NPAnalysis/Paris/Makefile
new file mode 100644
index 000000000..215794b28
--- /dev/null
+++ b/NPAnalysis/Paris/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/Paris/RunToTreat.txt b/NPAnalysis/Paris/RunToTreat.txt
new file mode 100644
index 000000000..20a18102f
--- /dev/null
+++ b/NPAnalysis/Paris/RunToTreat.txt
@@ -0,0 +1,5 @@
+TTreeName 
+	SimulatedTree
+RootFileName 
+	../../Outputs/Simulation/mySimul.root
+%	/mnt/hgfs/Echanges/ParisSimROOT/Raw/mySimul0-50pipe1noshield.root
diff --git a/NPAnalysis/Paris/include/ObjectManager.hh b/NPAnalysis/Paris/include/ObjectManager.hh
new file mode 100644
index 000000000..bb19ac44e
--- /dev/null
+++ b/NPAnalysis/Paris/include/ObjectManager.hh
@@ -0,0 +1,130 @@
+// 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 organizing we use Name Space.
+
+/////////////////////////////////////////////////////////////////////////////////////////////////
+// -------------------------------------- VARIOUS INCLUDE ---------------------------------------
+
+// NPA
+#include "DetectorManager.h"
+#include "Paris.h"
+#include "Shield.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 "TParisData.h"
+#include "TShieldData.h"
+#include "TInitialConditions.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 ThetaCalculation (TVector3 A , TVector3 B) ;
+/////////////////////////////////////////////////////////////////////////////////////////////////
+// ----------------------------------- DOUBLE, INT, BOOL AND MORE -------------------------------
+namespace VARIABLE
+	{
+		//	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>
+#include <TH1F.h>
+#include <TH2.h>
+#include <TH2F.h>
+#include <TGraph2D.h>
+
+namespace GRAPH
+	{
+		//	Declare your Spectra here:
+	
+			TH1F *myHist1D = new TH1F("Hist1D","Histogramm 1D ; x ; count", 1000 , -5 , 5 )		       	;
+
+			TH1F *Ein = new TH1F("Eincident","Incident energy", 1000 , 0 , 50 )	       		;
+			TH1F *PhPeakEff = new TH1F("PhPeak","Full absorption efficiency", 1000 , 0 , 50 )	       		;
+			TH1F *PhPeakEffNoAB = new TH1F("PhPeakNoAB","Full absorption efficiency - No addback PARIS & SHIELD", 1000 , 0 , 50 )	       		;
+
+			TH1F *PhPeakEffParis = new TH1F("PhPeakParis","Full absorption efficiency", 1000 , 0 , 50 )	       	;
+			TH1F *PhPeakEffParisLaBr = new TH1F("PhPeakParisLaBr","Full absorption efficiency in Inner layer", 1000 , 0 , 50 )	       	;
+			TH1F *PhPeakEffParisCsI = new TH1F("PhPeakParisCsI","Full absorption efficiency in Outer layer", 1000 , 0 , 50 )	       	;
+
+			TH1F *PhPeakEffShield = new TH1F("PhPeakShield","Full absorption efficiency", 1000 , 0 , 50 ) 	      	;
+	
+			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 CUT ;
+// --------------------------------------------------------------------------------------------
+
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////
+// -----------------------------------ENERGY LOSS----------------------------------------------
+#include "NPEnergyLoss.h"
+using namespace NPL ;
+namespace ENERGYLOSS
+{
+   // Declare your Energy loss here
+//   EnergyLoss LightTargetCD2 = EnergyLoss("proton_cd2.txt", 100, 1, 1); // LISE++
+   EnergyLoss LightTarget = EnergyLoss("proton_CD2.G4table", "G4Table", 1000);          // G4
+  //EnergyLoss BeamTarget  = EnergyLoss("Sn132[0.0]_CD2.G4table", "G4Table", 1000);      // G4
+}
+
+using namespace ENERGYLOSS ;
+// ----------------------------------------------------------------------------------------------
+/////////////////////////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/NPAnalysis/Paris/src/Analysis.cc b/NPAnalysis/Paris/src/Analysis.cc
new file mode 100644
index 000000000..a3347d282
--- /dev/null
+++ b/NPAnalysis/Paris/src/Analysis.cc
@@ -0,0 +1,199 @@
+#include "ObjectManager.hh"
+
+
+using namespace std;
+
+
+int main(int argc,char** argv)
+{	
+   // test if number of arguments is correct
+   if (argc != 4) {
+      cout << 
+         "you need to specify both a Reaction file and a Detector file such as : Analysis myReaction.reaction myDetector.detector runToRead.run" 
+           << endl;
+      return 0;
+   }
+
+   // 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/Paris_AnalyzedData", "AnalyzedTree");
+
+   // Initialize the reaction
+   NPL::Reaction* myReaction = new Reaction();
+   myReaction->ReadConfigurationFile(reactionfileName);
+
+   // Initialize the detector
+   NPA::DetectorManager* myDetector = new DetectorManager;
+   myDetector->ReadConfigurationFile(detectorfileName);
+
+   // nominal beam energy
+   Double_t BeamEnergyNominal = myReaction->GetBeamEnergy() * MeV;
+   cout << BeamEnergyNominal << endl;
+   // slow beam at target middle
+   //Double_t BeamEnergy = BeamEnergyNominal - BeamTarget.Slow(BeamEnergyNominal, myDetector->GetTargetThickness()/2 * micrometer, 0);
+   //cout << BeamEnergy << endl;
+   // set energy beam at target middle
+   //myReaction->SetBeamEnergy(BeamEnergy);
+
+   // Attach more branch to the output
+   double Etot = 0 ; double ExNoStrips = 0 ; double EE = 0 ; double TT = 0 ; double X = 0 ; double Y = 0 ; int det ;
+   RootOutput::getInstance()->GetTree()->Branch("TotalE",&Etot,"Etot/D") ;
+   //RootOutput::getInstance()->GetTree()->Branch("ExcitationEnergyNoStrips",&ExNoStrips,"ExNoStrips/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 Paris pointer
+   Paris* ParisTrack = (Paris*) myDetector->m_Detector["PARIS"];
+   // Get Shield pointer
+   Shield* ShieldTrack = (Shield*) myDetector->m_Detector["SHIELD"];
+
+   // 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);
+   // Connect TInitialConditions branch
+   TInitialConditions *initCond = 0;
+   chain->SetBranchAddress("InitialConditions", &initCond);
+   chain->SetBranchStatus("InitialConditions", 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 << "\r" << i << " analyzed events" << flush;
+
+     chain -> GetEntry(i);
+
+      // Treat event
+      myDetector->ClearEventPhysics();
+      myDetector->BuildPhysicalEvent();
+
+
+     
+      double Einit= initCond->GetICEmittedEnergy(0);
+
+      Ein->Fill(Einit);
+
+      // Get total energy
+      double E_Paris = ParisTrack->GetEnergyDeposit();   // Include LaBr & CsIback 
+      double E_ParisLaBr = ParisTrack->GetEnergyInDeposit();   // Paris LaBr layer 
+      double E_ParisCsI = ParisTrack->GetEnergyOutDeposit();   // Paris Csi layer 
+      double E_Shield = ShieldTrack->GetEnergyDeposit(); 
+      
+
+
+       if (E_ParisLaBr >-1000 && E_ParisCsI<0) {
+ 
+	 if(E_ParisLaBr>=(Einit-0.1) && E_ParisLaBr<=(Einit+0.1))     // +- 1% of initial energy
+	   {
+	     PhPeakEffParisLaBr->Fill(Einit);
+	   }
+      }
+
+       if (E_ParisCsI >-1000 && E_ParisLaBr<0) {
+ 
+	 if(E_ParisCsI>=(Einit-0.14) && E_ParisCsI<=(Einit+0.14)) 
+	   {
+	     PhPeakEffParisCsI->Fill(Einit);
+	   }
+      }
+
+
+       if (E_Paris > -1000 && E_Shield<0) {
+	 Etot=E_Paris;
+	 //cout << "Energy Paris=" << Etot << endl;
+ 
+	 // Fill output tree
+	 RootOutput::getInstance()->GetTree()->Fill();
+
+	 if(Etot>=(Einit-0.1) && Etot<=(Einit+0.1))
+	   {
+	     PhPeakEff->Fill(Einit);
+	     PhPeakEffNoAB->Fill(Einit); // = No addback between PARIS & Shield
+	     PhPeakEffParis->Fill(Einit);
+	   }
+     }
+
+       
+       if (E_Shield > -1000 && E_Paris<0) {
+	 Etot=E_Shield;
+	 //cout << "Energy Shield =" << Etot << endl;
+ 
+	 // Fill output tree
+	 RootOutput::getInstance()->GetTree()->Fill();
+
+
+	 if(Etot>=(Einit-0.14) && Etot<=(Einit+.14))
+	   {
+	     PhPeakEff->Fill(Einit);
+	     PhPeakEffNoAB->Fill(Einit); // = No addback between PARIS and Shield
+	     PhPeakEffShield->Fill(Einit);
+	   }
+	 }
+       
+       if (E_Shield > -1000 && E_Paris>-1000) {
+	 Etot=E_Shield+E_Paris;  // addback
+	 //cout << "Energy Shield+PARIS =" << Etot << endl;
+ 
+	 // Fill output tree
+	 RootOutput::getInstance()->GetTree()->Fill();
+
+	 if(Etot>(Einit-0.14) && Etot<(Einit+0.14))PhPeakEff->Fill(Einit);
+	 //if(Etot>=(Einit*0.99) && Etot<=(Einit*1.01))PhPeakEff->Fill(Einit);
+
+	 }
+
+
+
+    }
+
+
+   Ein->Write();
+
+
+   PhPeakEff->Divide(PhPeakEff,Ein,1,0.01);
+   PhPeakEff->Write();
+
+   PhPeakEffNoAB->Divide(PhPeakEffNoAB,Ein,1,0.01);
+   PhPeakEffNoAB->Write();
+
+   PhPeakEffParis->Divide(PhPeakEffParis,Ein,1,0.01);
+   PhPeakEffParis->Write();
+   PhPeakEffParisLaBr->Divide(PhPeakEffParisLaBr,Ein,1,0.01);
+   PhPeakEffParisLaBr->Write();
+   PhPeakEffParisCsI->Divide(PhPeakEffParisCsI,Ein,1,0.01);
+   PhPeakEffParisCsI->Write();
+
+   PhPeakEffShield->Divide(PhPeakEffShield,Ein,1,0.01);
+   PhPeakEffShield->Write();
+
+   // delete singleton classes
+   RootOutput::getInstance()->Destroy();
+   RootInput::getInstance()->Destroy();
+
+
+
+   return 0;
+}
+
+
+double ThetaCalculation (TVector3 A , TVector3 B)
+{
+   double Theta = acos( (A.Dot(B)) / (A.Mag()*B.Mag()) );
+   return Theta ;
+}
+
diff --git a/NPAnalysis/Paris/src/GNUmakefile b/NPAnalysis/Paris/src/GNUmakefile
new file mode 100644
index 000000000..28c404622
--- /dev/null
+++ b/NPAnalysis/Paris/src/GNUmakefile
@@ -0,0 +1,42 @@
+###Make file made by Adrien MATTA/ Institut de Physique Nucleaire d'Orsay IPNO###
+#			Made to compile the ROOT Analyser for MUST2 experiment
+
+CPP=g++
+EXEC=Analysis
+
+# local includes
+NPAINCLUDES = ../include
+
+# ROOT includes
+CXXFLAGS += `root-config --cflags`
+
+# CLHEP includes
+CXXFLAGS += -I$(CLHEP_INCLUDE_DIR)
+CXXFLAGS += -I$(NPAINCLUDES)
+CXXFLAGS += -I$(NPLIB)/include
+
+LDFLAGS  = `root-config --libs` -lMathMore
+LDFLAGS+= `$(NPLIB)/liblist`
+LDFLAGS+= -L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) 
+
+SRC= $(wildcard *.cc)
+INC= $(wildcard $(NPAINCLUDES)/*.hh)
+OBJ=$(SRC:.cc=.o)
+
+#all:$(EXEC)
+#	@$(CPP) -o $@ -c $< $(CXXFLAGS)
+
+Analysis:$(OBJ) $(INC)
+	@$(CPP) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+	mv Analysis  ../Analysis
+
+%.o: %.cc
+	@$(CPP) $(CXXFLAGS) -o $@ -c $<
+	
+.PHONY: clean mrproper
+
+clean:
+	rm -rf *.o
+
+mrproper: clean
+	rm -rf $(EXEC)
diff --git a/NPEnvironment.tchrc b/NPEnvironment.tchrc
index 61ebdb79c..8832102bf 100644
--- a/NPEnvironment.tchrc
+++ b/NPEnvironment.tchrc
@@ -2,12 +2,12 @@
 # On linux system, include it in your bashrc or tcshrc file.
 
 # NPTool Needs
-setenv NPTOOL /YourPathToNPTool/NPTool
+setenv NPTOOL /home/local1/geant4/NPTool.Paris
 setenv NPLIB $NPTOOL/NPLib
 setenv NPSIM $NPTOOL/NPSimulation
 setenv NPANA $NPTOOL/NPAnalysis
-setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:$NPLIB/lib
-source $NPLIB/lib/liblist
+setenv LD_LIBRARY_PATH $NPLIB/lib:$LD_LIBRARY_PATH
+source $NPLIB/liblist
 
 # alias
 alias Simulation '$NPSIM/bin/$G4SYSTEM/Simulation'
diff --git a/NPLib/Makefile b/NPLib/Makefile
index 22e59ff06..7542417d5 100644
--- a/NPLib/Makefile
+++ b/NPLib/Makefile
@@ -270,7 +270,7 @@ INCLUDE		= -I$(CLHEP_BASE_DIR)/include
 #------------------------------------------------------------------------------
 SHARELIB      =	CalibManager Vdetec InputOutputRoot InitCond	InterCoord \
 		Must2All	GaspardData	AnnularS1Data PlasticData DummyDetectorData SSSDData\
-		Reaction	EnergyLoss	ParisData
+		Reaction	EnergyLoss	ParisData	ShieldData
 
 all:         $(SHARELIB)
 	rm -f ./include/*Dict.h
@@ -354,7 +354,19 @@ ParisData:
 		cp ./Paris/*.so ./lib ; cp ./Paris/*.h ./include
 ifeq ($(ARCH),macosx)
 		cd lib; ln -sf libParisData.so libParisData.dylib
+		cd lib; ln -sf libParisPhysics.so libParisPhysics.dylib
 endif
+
+
+## Paris Shield Detector ##
+ShieldData:
+		make -C ./Shield
+		cp ./Shield/*.so ./lib ; cp ./Shield/*.h ./include
+ifeq ($(ARCH),macosx)
+		cd lib; ln -sf libShieldData.so libShieldData.dylib
+		cd lib; ln -sf libShieldPhysics.so libShieldPhysics.dylib
+endif
+
 ############# Simulation ##############
 
 ## InitialConditions ##
@@ -417,6 +429,7 @@ clean:
 	make clean -C ./DummyDetector
 	make clean -C ./Plastic
 	make clean -C ./Paris
+	make clean -C ./Shield
 	
 distclean:
 	rm -f ./lib/*.so
@@ -437,6 +450,7 @@ endif
 	make distclean -C ./DummyDetector
 	make distclean -C ./Plastic
 	make distclean -C ./Paris
+	make distclean -C ./Shield
 .SUFFIXES: .$(SrcSuf)
 
 ###
diff --git a/NPLib/Paris/Makefile b/NPLib/Paris/Makefile
index d79d24036..02e00de1e 100644
--- a/NPLib/Paris/Makefile
+++ b/NPLib/Paris/Makefile
@@ -265,11 +265,10 @@ LDFLAGS      += $(ROOTLDFLAGS)
 LIBS          = $(ROOTLIBS) $(SYSLIBS)
 GLIBS         = $(ROOTGLIBS) $(SYSLIBS)
 
-INCLUDE		= -I$(CLHEP_BASE_DIR)/include
+INCLUDE		= -I$(CLHEP_BASE_DIR)/include -I$(NPLIB)/include
  
 #------------------------------------------------------------------------------
-SHARELIB      =  libParisData.so 
-
+SHARELIB      =  libParisData.so	libParisPhysics.so 
 all:            $(SHARELIB)
 #------------------------------------------------------------------------------
 ############### Detector ##############
@@ -281,8 +280,18 @@ libParisData.so:	TParisData.o	TParisDataDict.o
 TParisDataDict.cxx:	TParisData.h
 			rootcint -f $@ -c $^
 
+libParisPhysics.so:	Paris.o TParisPhysics.o TParisPhysicsDict.o
+			$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
+
+TParisPhysicsDict.cxx:	TParisPhysics.h
+			rootcint -f $@ -c $^
+
+
 # dependances
+Paris.o:	Paris.cxx	Paris.h
 TParisData.o:	TParisData.cxx	TParisData.h
+TParisPhysics.o:	TParisPhysics.cxx	TParisPhysics.h
+
 #######################################
 
 ############# Clean and More ##########
diff --git a/NPLib/Paris/Paris.cxx b/NPLib/Paris/Paris.cxx
new file mode 100644
index 000000000..8e0ab3914
--- /dev/null
+++ b/NPLib/Paris/Paris.cxx
@@ -0,0 +1,886 @@
+/*****************************************************************************
+ * 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: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is mainly an interface to the                      *
+ *             TParisPhysics class                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "Paris.h"
+
+// C++ headers
+#include <iostream>	
+#include <fstream>
+#include <string>
+#include <cmath>
+#include <stdlib.h>
+
+// NPL headers
+#include "RootInput.h"
+#include "RootOutput.h"
+
+// ROOT headers
+#include "TChain.h"
+
+using namespace std ;	
+	
+//	Default Constructor
+
+Paris::Paris()
+{
+   m_NumberOfModule = 0;
+   m_EventData    = new TParisData();
+   m_EventPhysics = new TParisPhysics();
+}	
+
+
+
+Paris::~Paris()
+{
+   m_NumberOfModule = 0;
+   delete m_EventData;
+   delete m_EventPhysics;
+}	
+
+
+
+// Read stream at ConfigFile to pick-up parameters of detector (Position,...) using Token
+void Paris::ReadConfiguration(string Path) 	
+{
+   ifstream ConfigFile           	;
+   ConfigFile.open(Path.c_str()) 	;
+   string LineBuffer          		;
+   string DataBuffer          		;	
+
+   // A:X1_Y1     --> X:1    Y:1
+   // B:X128_Y1   --> X:128  Y:1
+   // C:X1_Y128   --> X:1    Y:128
+   // D:X128_Y128 --> X:128  Y:128
+
+   double   Ax, Bx, Cx, Dx, Ay, By, Cy, Dy, Az, Bz, Cz, Dz;
+   TVector3 A, B, C, D; 
+   double   Theta = 0, Phi = 0, R = 0, beta_u = 0 , beta_v = 0 , beta_w = 0;
+
+   bool check_A = false;
+   bool check_C = false;
+   bool check_B = false;
+   bool check_D = false;
+
+   bool check_Theta = false;
+   bool check_Phi   = false;
+   bool check_R     = false;
+   bool check_beta  = false;
+   
+   bool ReadingStatus = false;
+
+   bool isCluster     = false;
+   bool isPhoswich = false;
+
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+
+      // If line is a Paris bloc, reading toggle to true
+      // and toggle to true flags indicating which shape is treated.
+      if (LineBuffer.compare(0, 12, "ParisCluster")     == 0  ||
+          LineBuffer.compare(0, 13, "ParisPhoswish")  == 0  ) {
+         cout << "///////////////////////" << endl;
+         cout << "Module found:" << endl;        
+
+         if (LineBuffer.compare(0, 12, "ParisCluster")     == 0) isCluster     = true;
+         if (LineBuffer.compare(0, 13, "ParisPhoswich") == 0) isPhoswich = true;
+         ReadingStatus = true;
+      }
+      // Else don't toggle to Reading Block Status
+      else ReadingStatus = false;
+
+      // Reading Block
+      while (ReadingStatus) {	 
+         if (isCluster) { 	// square shape
+            ConfigFile >> DataBuffer ;
+            // Comment Line 
+            if (DataBuffer.compare(0, 1, "%") == 0) {
+               ConfigFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
+            }
+            // Finding another telescope (safety), toggle out
+            else if (DataBuffer.compare(0, 12, "ParisCluster") == 0) {
+               cout << "WARNING: Another Module is find before standard sequence of Token, Error may occured in Telecope definition" << endl;
+               ReadingStatus = false;
+            }
+
+            // Position method
+            else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+               check_A = true;
+               ConfigFile >> DataBuffer ;
+               Ax = atof(DataBuffer.c_str()) ;
+               Ax = Ax  ;
+               ConfigFile >> DataBuffer ;
+               Ay = atof(DataBuffer.c_str()) ;
+               Ay = Ay  ;
+               ConfigFile >> DataBuffer ;
+               Az = atof(DataBuffer.c_str()) ;
+               Az = Az  ;
+
+               A = TVector3(Ax, Ay, Az);
+               cout << "X1 Y1 corner position : (" << A.X() << ";" << A.Y() << ";" << A.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+               check_B = true;
+               ConfigFile >> DataBuffer ;
+               Bx = atof(DataBuffer.c_str()) ;
+               Bx = Bx  ;
+               ConfigFile >> DataBuffer ;
+               By = atof(DataBuffer.c_str()) ;
+               By = By  ;
+               ConfigFile >> DataBuffer ;
+               Bz = atof(DataBuffer.c_str()) ;
+               Bz = Bz  ;
+
+               B = TVector3(Bx, By, Bz);
+               cout << "X128 Y1 corner position : (" << B.X() << ";" << B.Y() << ";" << B.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+               check_C = true;
+               ConfigFile >> DataBuffer ;
+               Cx = atof(DataBuffer.c_str()) ;
+               Cx = Cx  ;
+               ConfigFile >> DataBuffer ;
+               Cy = atof(DataBuffer.c_str()) ;
+               Cy = Cy  ;
+               ConfigFile >> DataBuffer ;
+               Cz = atof(DataBuffer.c_str()) ;
+               Cz = Cz  ;
+
+               C = TVector3(Cx, Cy, Cz);
+               cout << "X1 Y128 corner position : (" << C.X() << ";" << C.Y() << ";" << C.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+               check_D = true;
+               ConfigFile >> DataBuffer ;
+               Dx = atof(DataBuffer.c_str()) ;
+               Dx = Dx  ;
+               ConfigFile >> DataBuffer ;
+               Dy = atof(DataBuffer.c_str()) ;
+               Dy = Dy  ;
+               ConfigFile >> DataBuffer ;
+               Dz = atof(DataBuffer.c_str()) ;
+               Dz = Dz  ;
+
+               D = TVector3(Dx, Dy, Dz);
+               cout << "X128 Y128 corner position : (" << D.X() << ";" << D.Y() << ";" << D.Z() << ")" << endl;
+            } // End Position Method
+
+            // Angle method
+            else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+               check_Theta = true;
+               ConfigFile >> DataBuffer ;
+               Theta = atof(DataBuffer.c_str()) ;
+               Theta = Theta ;
+               cout << "Theta:  " << Theta << endl;
+            }
+            else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+               check_Phi = true;
+               ConfigFile >> DataBuffer ;
+               Phi = atof(DataBuffer.c_str()) ;
+               Phi = Phi ;
+               cout << "Phi:  " << Phi << endl;
+            }
+            else if (DataBuffer.compare(0, 2, "R=") == 0) {
+               check_R = true;
+               ConfigFile >> DataBuffer ;
+               R = atof(DataBuffer.c_str()) ;
+               R = R ;
+               cout << "R:  " << R << endl;
+            }
+            else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+               check_beta = true;
+               ConfigFile >> DataBuffer ;
+               beta_u = atof(DataBuffer.c_str()) ;
+               beta_u = beta_u    ;
+               ConfigFile >> DataBuffer ;
+               beta_v = atof(DataBuffer.c_str()) ;
+               beta_v = beta_v    ;
+               ConfigFile >> DataBuffer ;
+               beta_w = atof(DataBuffer.c_str()) ;
+               beta_w = beta_w    ;
+               cout << "Beta:  " << beta_u << " " << beta_v << " " << beta_w << endl  ;
+            }
+
+            /////////////////////////////////////////////////
+            // If All necessary information there, toggle out
+            if ( (check_A && check_B && check_C && check_D) || (check_Theta && check_Phi && check_R && check_beta)  ) {
+               ReadingStatus = false; 
+
+               // Add The previously define telescope
+               // With position method
+               if ( check_A && check_B && check_C && check_D ) {
+                  AddModuleSquare(A   ,
+                                  B   ,
+                                  C   ,
+                                  D   ) ;
+               }
+
+               // with angle method
+               else if ( check_Theta && check_Phi && check_R && check_beta ) {
+                  AddModuleSquare(Theta   ,
+                                  Phi     ,
+                                  R       ,
+                                  beta_u  ,
+                                  beta_v  ,
+                                  beta_w  );
+               }
+
+               // reset boolean flag for point positioning
+               check_A = false;
+               check_B = false;
+               check_C = false;
+               check_D = false;
+
+               // reset boolean flag for angle positioning
+               check_Theta = false;
+               check_Phi   = false;
+               check_R     = false;
+               check_beta  = false;
+
+               // reset boolean flag for shape determination
+               isCluster     = false;
+               isPhoswich = false;
+            } // end test for adding a module
+         } // end test for ParisCluster shape
+
+        else if (isPhoswich) { 	// ParisPhoswich shape
+            ConfigFile >> DataBuffer ;
+            // Comment Line 
+            if (DataBuffer.compare(0, 1, "%") == 0) {
+               ConfigFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
+            }
+            // Finding another telescope (safety), toggle out
+            else if (DataBuffer.compare(0, 13, "ParisPhoswich") == 0) {
+               cout << "WARNING: Another Module is find before standard sequence of Token, Error may occured in Telecope definition" << endl;
+               ReadingStatus = false;
+            }
+
+            // Position method
+            else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+               check_A = true;
+               ConfigFile >> DataBuffer ;
+               Ax = atof(DataBuffer.c_str()) ;
+               Ax = Ax  ;
+               ConfigFile >> DataBuffer ;
+               Ay = atof(DataBuffer.c_str()) ;
+               Ay = Ay  ;
+               ConfigFile >> DataBuffer ;
+               Az = atof(DataBuffer.c_str()) ;
+               Az = Az  ;
+
+               A = TVector3(Ax, Ay, Az);
+               cout << "X1 Y1 corner position : (" << A.X() << ";" << A.Y() << ";" << A.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+               check_B = true;
+               ConfigFile >> DataBuffer ;
+               Bx = atof(DataBuffer.c_str()) ;
+               Bx = Bx  ;
+               ConfigFile >> DataBuffer ;
+               By = atof(DataBuffer.c_str()) ;
+               By = By  ;
+               ConfigFile >> DataBuffer ;
+               Bz = atof(DataBuffer.c_str()) ;
+               Bz = Bz  ;
+
+               B = TVector3(Bx, By, Bz);
+               cout << "X128 Y1 corner position : (" << B.X() << ";" << B.Y() << ";" << B.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+               check_C = true;
+               ConfigFile >> DataBuffer ;
+               Cx = atof(DataBuffer.c_str()) ;
+               Cx = Cx  ;
+               ConfigFile >> DataBuffer ;
+               Cy = atof(DataBuffer.c_str()) ;
+               Cy = Cy  ;
+               ConfigFile >> DataBuffer ;
+               Cz = atof(DataBuffer.c_str()) ;
+               Cz = Cz  ;
+
+               C = TVector3(Cx, Cy, Cz);
+               cout << "X1 Y128 corner position : (" << C.X() << ";" << C.Y() << ";" << C.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+               check_D = true;
+               ConfigFile >> DataBuffer ;
+               Dx = atof(DataBuffer.c_str()) ;
+               Dx = Dx  ;
+               ConfigFile >> DataBuffer ;
+               Dy = atof(DataBuffer.c_str()) ;
+               Dy = Dy  ;
+               ConfigFile >> DataBuffer ;
+               Dz = atof(DataBuffer.c_str()) ;
+               Dz = Dz  ;
+
+               D = TVector3(Dx, Dy, Dz);
+               cout << "X128 Y128 corner position : (" << D.X() << ";" << D.Y() << ";" << D.Z() << ")" << endl;
+            } // End Position Method
+
+            // Angle method
+            else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+               check_Theta = true;
+               ConfigFile >> DataBuffer ;
+               Theta = atof(DataBuffer.c_str()) ;
+               Theta = Theta ;
+               cout << "Theta:  " << Theta << endl;
+            }
+            else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+               check_Phi = true;
+               ConfigFile >> DataBuffer ;
+               Phi = atof(DataBuffer.c_str()) ;
+               Phi = Phi ;
+               cout << "Phi:  " << Phi << endl;
+            }
+            else if (DataBuffer.compare(0, 2, "R=") == 0) {
+               check_R = true;
+               ConfigFile >> DataBuffer ;
+               R = atof(DataBuffer.c_str()) ;
+               R = R ;
+               cout << "R:  " << R << endl;
+            }
+            else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+               check_beta = true;
+               ConfigFile >> DataBuffer ;
+               beta_u = atof(DataBuffer.c_str()) ;
+               beta_u = beta_u    ;
+               ConfigFile >> DataBuffer ;
+               beta_v = atof(DataBuffer.c_str()) ;
+               beta_v = beta_v    ;
+               ConfigFile >> DataBuffer ;
+               beta_w = atof(DataBuffer.c_str()) ;
+               beta_w = beta_w    ;
+               cout << "Beta:  " << beta_u << " " << beta_v << " " << beta_w << endl  ;
+            }
+
+            /////////////////////////////////////////////////
+            // If All necessary information there, toggle out
+            if ( (check_A && check_B && check_C && check_D) || (check_Theta && check_Phi && check_R && check_beta)  ) {
+               ReadingStatus = false; 
+
+               // Add The previously define telescope
+               // With position method
+               if ( check_A && check_B && check_C && check_D ) {
+                  AddModuleDummyShape(A   ,
+                                      B   ,
+                                      C   ,
+                                      D   ) ;
+               }
+
+               // with angle method
+               else if ( check_Theta && check_Phi && check_R && check_beta ) {
+                  AddModuleDummyShape(Theta,
+                                      Phi,
+                                      R,
+                                      beta_u,
+                                      beta_v,
+                                      beta_w);
+               }
+
+               // reset boolean flag for point positioning
+               check_A = false;
+               check_B = false;
+               check_C = false;
+               check_D = false;
+
+               // reset boolean flag for angle positioning
+               check_Theta = false;
+               check_Phi   = false;
+               check_R     = false;
+               check_beta  = false;
+
+               // reset boolean flag for shape determination
+               isPhoswich     = false;
+               isCluster = false;
+            } // end test for adding a module
+         } // end test for ParisPhoswich shape
+
+ 
+      } // end while for reading block
+   } // end while for reading file
+
+   cout << endl << "/////////////////////////////" << endl<<endl;
+}
+
+
+// Read stream at Path and pick-up calibration parameter using Token
+// If argument is "Simulation" no change calibration is loaded
+void Paris::ReadCalibrationFile(string Path)	
+{
+   // Order of Polynom function used for calibration
+   int Calibration_Si_E_Order;
+   int Calibration_Si_T_Order;
+   int Calibration_SiLi_E_Order;
+   int Calibration_CsI_E_Order;
+
+   // Calibration_Si_X_E[DetectorNumber][StripNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_Si_X_E	;
+   vector< vector< vector< double > > >	Calibration_Si_X_T	;
+   vector< vector< vector< double > > >	Calibration_Si_Y_E	;
+   vector< vector< vector< double > > >	Calibration_Si_Y_T	;
+
+   // Calibration_SiLi_E[DetectorNumber][PadNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_SiLi_E	;
+
+   // Calibration_SiLi_E[DetectorNumber][CrystalNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_CsI_E	;
+
+   if (Path == "Simulation") {   // Simulation case: data already calibrated
+      Calibration_Si_E_Order   = 1;
+      Calibration_Si_T_Order   = 1;
+      Calibration_SiLi_E_Order = 1;
+      Calibration_CsI_E_Order  = 1;
+
+      vector<double> Coef;
+      // Order 0				Order 1
+      Coef.push_back(0) ; Coef.push_back(1) 	;
+
+      vector< vector<double> > StripLine 		;
+      StripLine.resize( 128 , Coef)			;
+
+      Calibration_Si_X_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_X_T.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_Y_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_Y_T.resize( m_NumberOfModule , StripLine)	;
+				
+      Calibration_SiLi_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_CsI_E .resize( m_NumberOfModule , StripLine)	;
+   }
+   else {
+   }
+}		
+
+	
+
+// Activated associated Branches and link it to the private member DetectorData address
+// In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated
+void Paris::InitializeRootInput() 		
+{
+   TChain* inputChain = RootInput::getInstance()->GetChain();
+   inputChain->SetBranchStatus("PARIS", true);
+   inputChain->SetBranchStatus("fPARIS*", true);
+   inputChain->SetBranchAddress("PARIS", &m_EventData);
+}
+
+
+
+// Create associated branches and associated private member DetectorPhysics address
+void Paris::InitializeRootOutput() 	
+{
+   TTree* outputTree = RootOutput::getInstance()->GetTree();
+   outputTree->Branch("PARIS", "TParisPhysics", &m_EventPhysics);
+}
+
+
+
+// This method is called at each event read from the Input Tree. Aime is to build treat Raw dat in order to extract physical parameter. 
+void Paris::BuildPhysicalEvent()		
+{
+   m_EventPhysics -> BuildPhysicalEvent(m_EventData);
+}
+
+
+
+// Same as above, but only the simplest event and/or simple method are used (low multiplicity, faster algorythm but less efficient ...).
+// This method aimed to be used for analysis performed during experiment, when speed is requiered.
+// NB: This method can eventually be the same as BuildPhysicalEvent.
+void Paris::BuildSimplePhysicalEvent()	
+{
+   m_EventPhysics -> BuildSimplePhysicalEvent(m_EventData);
+}
+
+
+
+void Paris::AddModuleSquare(TVector3 C_X1_Y1,
+                                     TVector3 C_X128_Y1,
+                                     TVector3 C_X1_Y128,
+                                     TVector3 C_X128_Y128)
+{
+   m_NumberOfModule++;
+
+   // remove warning using C_X128_Y128
+   C_X128_Y128.Unit();
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U = C_X128_Y1 - C_X1_Y1;
+   U = U.Unit();
+
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V = C_X1_Y128 - C_X1_Y1;
+   V = V.Unit();
+
+   // Position Vector of Strip Center
+   TVector3 StripCenter = TVector3(0,0,0);
+   // Position Vector of X=1 Y=1 Strip 
+   TVector3 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;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+
+   // Moving StripCenter to 1.1 corner:
+   Strip_1_1 = C_X1_Y1 + (U+V) * (StripPitch/2.);
+
+   for (int i = 0; i < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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() );	
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Paris::AddModuleSquare(double theta,
+                                     double phi,
+                                     double distance,
+                                     double beta_u,
+                                     double beta_v,
+                                     double beta_w)
+{
+   m_NumberOfModule++;
+
+   // convert from degree to radian:
+   double Pi = 3.141592654;
+   theta = theta * Pi/180. ; 
+   phi   = phi   * Pi/180. ;
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U ;	
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V ;
+   // Vector W normal to Module Face (pointing CsI)
+   TVector3 W ;
+   // Vector position of Module Face center
+   TVector3 C ;
+
+   C = TVector3(distance * sin(theta) * cos(phi),
+                distance * sin(theta) * sin(phi),
+                distance * cos(theta));
+
+  TVector3 YperpC = TVector3( cos(theta) * cos(phi),
+                              cos(theta) * sin(phi),
+                             -sin(theta));
+
+   W = C.Unit();
+   U = W.Cross(YperpC);
+   V = W.Cross(U);
+
+   U = U.Unit();
+   V = V.Unit();
+
+   U.Rotate( beta_u * Pi/180. , U ) ;
+   V.Rotate( beta_u * Pi/180. , U ) ;
+
+   U.Rotate( beta_v * Pi/180. , V ) ;
+   V.Rotate( beta_v * Pi/180. , V ) ;
+
+   U.Rotate( beta_w * Pi/180. , W ) ;
+   V.Rotate( beta_w * Pi/180. , W ) ;
+
+   double Face = 98; // mm
+   double NumberOfStrip = 128;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   vector<double> lineX;
+   vector<double> lineY;
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+		
+   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 < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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);
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Paris::AddModuleDummyShape(TVector3 C_X1_Y1,
+                                         TVector3 C_X128_Y1,
+                                         TVector3 C_X1_Y128,
+                                         TVector3 C_X128_Y128)
+{
+   m_NumberOfModule++;
+
+   // remove warning using C_X128_Y128
+   C_X128_Y128.Unit();
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U = C_X128_Y1 - C_X1_Y1;
+   U = U.Unit();
+
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V = C_X1_Y128 - C_X1_Y1;
+   V = V.Unit();
+
+   // Position Vector of Strip Center
+   TVector3 StripCenter = TVector3(0,0,0);
+   // Position Vector of X=1 Y=1 Strip 
+   TVector3 Strip_1_1;
+
+   // Geometry Parameter
+   double Face = 50;		// mm
+   double NumberOfStrip = 128;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   // Buffer object to fill Position Array
+   vector<double> lineX; 
+   vector<double> lineY; 
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+
+   // Moving StripCenter to 1.1 corner:
+   Strip_1_1 = C_X1_Y1 + (U+V) * (StripPitch/2.);
+
+   for (int i = 0; i < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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() );	
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Paris::AddModuleDummyShape(double theta,
+                                         double phi,
+                                         double distance,
+                                         double beta_u,
+                                         double beta_v,
+                                         double beta_w)
+{
+   m_NumberOfModule++;
+
+   // convert from degree to radian:
+   double Pi = 3.141592654;
+   theta = theta * Pi/180. ; 
+   phi   = phi   * Pi/180. ;
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U ;	
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V ;
+   // Vector W normal to Module Face (pointing CsI)
+   TVector3 W ;
+   // Vector position of Module Face center
+   TVector3 C ;
+
+   C = TVector3(distance * sin(theta) * cos(phi),
+                distance * sin(theta) * sin(phi),
+                distance * cos(theta));
+
+  TVector3 YperpW = TVector3( cos(theta) * cos(phi),
+                              cos(theta) * sin(phi),
+                             -sin(theta));
+
+   W = C.Unit();
+   U = W.Cross(YperpW);
+   V = W.Cross(U);
+
+   U = U.Unit();
+   V = V.Unit();
+
+   U.Rotate( beta_u * Pi/180. , U ) ;
+   V.Rotate( beta_u * Pi/180. , U ) ;
+
+   U.Rotate( beta_v * Pi/180. , V ) ;
+   V.Rotate( beta_v * Pi/180. , V ) ;
+
+   U.Rotate( beta_w * Pi/180. , W ) ;
+   V.Rotate( beta_w * Pi/180. , W ) ;
+
+   double Face = 50; // mm
+   double NumberOfStrip = 25;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   vector<double> lineX;
+   vector<double> lineY;
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+		
+   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 < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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);
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+double Paris::GetEnergyDeposit()		
+{ 
+   if (m_EventPhysics->ParisTotalEnergy.size() > 0)
+      return m_EventPhysics->ParisTotalEnergy[0]; 
+   else 
+      return -1000;
+}
+
+double Paris::GetEnergyInDeposit()	// inner Layer	
+{ 
+   if (m_EventPhysics->ParisInTotalEnergy.size() > 0)
+      return m_EventPhysics->ParisInTotalEnergy[0]; 
+   else 
+      return -1000;
+}
+
+double Paris::GetEnergyOutDeposit()	// Outer Layer	
+{ 
+   if (m_EventPhysics->ParisOutTotalEnergy.size() > 0)
+      return m_EventPhysics->ParisOutTotalEnergy[0]; 
+   else 
+      return -1000;
+}
+
+
+TVector3 Paris::GetPositionOfInteraction()
+{
+   TVector3 Position = TVector3(-1000,-1000,-1000);
+
+   /*  if (m_EventPhysics->ModuleNumber.size() == 1) {
+           Position = TVector3(GetStripPositionX(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0]),
+                               GetStripPositionY(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0]),
+                               GetStripPositionZ(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0])); 
+     }*/
+
+   return(Position);
+}
+
+
+
+void Paris::Print()
+{
+   cout << "Number of Modules: " << m_NumberOfModule << endl;
+
+   for (int f = 0; f < m_NumberOfModule; f++) {
+      cout << "Module " << f+1 << endl;
+
+      for (int i = 0; i < 128; i++) {
+         for (int j = 0; j < 128; j++) {
+            cout << i+1 << "  "<< j+1 << "  " 
+                 << m_StripPositionX[f][i][j]   << "  " 
+                 << m_StripPositionY[f][i][j]   << "  "
+                 << m_StripPositionZ[f][i][j]   << "  " 
+                 << endl ;
+         }
+      }
+   }
+}
diff --git a/NPLib/Paris/Paris.h b/NPLib/Paris/Paris.h
new file mode 100644
index 000000000..cae59358b
--- /dev/null
+++ b/NPLib/Paris/Paris.h
@@ -0,0 +1,139 @@
+/*****************************************************************************
+ * 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: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is mainly an interface to the                      *
+ *             TParisPhysics class                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef Paris_H
+
+// NPL
+#include "../include/VDetector.h"
+#include "TParisData.h"
+#include "TParisPhysics.h"
+
+// Root
+#include "TVector3.h"
+
+class Paris : public NPA::VDetector
+{
+public:
+   Paris();
+   virtual ~Paris();
+
+public:
+   /////////////////////////////////////
+   // Innherited from VDetector Class //
+   /////////////////////////////////////
+   // Read stream at ConfigFile to pick-up parameters of detector (Position,...) using Token
+   void ReadConfiguration(string);
+
+   // Read stream at CalibFile and pick-up calibration parameter using Token
+   // If argument is "Simulation" no change calibration is loaded
+   void ReadCalibrationFile(string);
+
+   // Activated associated Branches and link it to the private member DetectorData address
+   // In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated
+   void InitializeRootInput();
+
+   // Create associated branches and associated private member DetectorPhysics address
+   void InitializeRootOutput();
+
+   // This method is called at each event read from the Input Tree. 
+   // The aim is to build treat Raw dat in order to extract physical parameter. 
+   void BuildPhysicalEvent();
+	
+   // Same as above, but only the simplest event and/or simple method are used (low multiplicity, faster algorythm but less efficient ...).
+   // This method aimed to be used for analysis performed during experiment, when speed is requiered.
+   // NB: This method can eventually be the same as BuildPhysicalEvent.
+   void BuildSimplePhysicalEvent();
+
+   // Those two method all to clear the Event Physics or Data
+   void ClearEventPhysics()	{m_EventPhysics->Clear();}
+   void ClearEventData()	{m_EventData->Clear();}
+
+
+public:
+   ////////////////////////////////
+   // Specific to Paris //
+   ////////////////////////////////
+   // Case of a Square module
+   // Add a Module using Corner Coordinate information
+   void AddModuleSquare(TVector3 C_X1_Y1,
+                        TVector3 C_X128_Y1,
+                        TVector3 C_X1_Y128,
+                        TVector3 C_X128_Y128);
+
+   // Add a Module using R Theta Phi of Si center information
+   void AddModuleSquare(double theta,
+                        double phi,
+                        double distance, 
+                        double beta_u,
+                        double beta_v,
+                        double beta_w);
+
+   // Case of a DummyShape module
+   // Add a Module using Corner Coordinate information
+   void AddModuleDummyShape(TVector3 C_X1_Y1,
+                            TVector3 C_X128_Y1,
+                            TVector3 C_X1_Y128,
+                            TVector3 C_X128_Y128);
+
+   // Add a Module using R Theta Phi of Si center information
+   void AddModuleDummyShape(double theta,
+                            double phi,
+                            double distance, 
+                            double beta_u,
+                            double beta_v,
+                            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; }
+
+   // Get Root input and output objects
+   TParisData* 	GetEventData()		{return m_EventData;}
+   TParisPhysics*	GetEventPhysics()	{return m_EventPhysics;}
+
+   // To be called after a build Physical Event 
+   double	GetEnergyDeposit();
+   double	GetEnergyInDeposit();
+   double	GetEnergyOutDeposit();
+   TVector3	GetPositionOfInteraction();
+
+   void		Print();
+
+
+private:
+   ////////////////////////////////////////
+   // Root Input and Output tree classes //
+   ////////////////////////////////////////
+   TParisData*		m_EventData;
+   TParisPhysics*	m_EventPhysics;
+
+
+private:
+   // Spatial Position of Strip Calculated on basis of detector position
+   int m_NumberOfModule;
+   vector< vector < vector < double > > >	m_StripPositionX;
+   vector< vector < vector < double > > >	m_StripPositionY;
+   vector< vector < vector < double > > >	m_StripPositionZ;
+};
+
+#endif
diff --git a/NPLib/Paris/TParisData.cxx b/NPLib/Paris/TParisData.cxx
index 62e4b2f3a..3e9bf9c03 100644
--- a/NPLib/Paris/TParisData.cxx
+++ b/NPLib/Paris/TParisData.cxx
@@ -8,7 +8,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
  *                                                                           *
  * Creation Date  : 04/12/2009                                               *
  * Last update    :                                                          *
@@ -26,6 +26,8 @@ ClassImp(TParisData)
 
 TParisData::TParisData()
 {
+  // Default constructor
+  Clear();
 }
 
 
@@ -38,9 +40,36 @@ TParisData::~TParisData()
 
 void TParisData::Clear()
 {
+
+  /*
     fParis_Energy.clear();
     fParis_Number.clear();
     fParis_Time.clear();
+  */
+
+
+   fPARIS_LaBr3Stage_E_DetectorNbr.clear();
+   fPARIS_LaBr3Stage_E_CrystalNbr.clear();
+   fPARIS_LaBr3Stage_E_Energy.clear();
+   fPARIS_LaBr3Stage_Eff_phpeak.clear();
+   // Time
+   fPARIS_LaBr3Stage_T_DetectorNbr.clear();
+   fPARIS_LaBr3Stage_T_CrystalNbr.clear();
+   fPARIS_LaBr3Stage_T_Time.clear();
+
+
+   // Second Stage CsI
+   // CsI
+   // Energy
+   fPARIS_CsIStage_E_DetectorNbr.clear();
+   fPARIS_CsIStage_E_CrystalNbr.clear();
+   fPARIS_CsIStage_E_Energy.clear();
+   fPARIS_CsIStage_Eff_phpeak.clear();
+   // Time
+   fPARIS_CsIStage_T_DetectorNbr.clear();
+   fPARIS_CsIStage_T_CrystalNbr.clear();
+   fPARIS_CsIStage_T_Time.clear();
+
 }
 
 
@@ -48,8 +77,29 @@ void TParisData::Clear()
 void TParisData::Dump() const
 {
    cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event XXXXXXXXXXXXXXXXX" << endl;
-
+   /*
    for (unsigned short i = 0; i<fParis_Energy.size(); i ++) {
       cout << "Paris Number " << fParis_Number[i] << " Energy: " << fParis_Energy[i]  << " Time: "<< fParis_Time[i] << endl;
    }
+   */
+
+   for (UShort_t i = 0; i < fPARIS_LaBr3Stage_E_DetectorNbr.size(); i++)
+      cout << "DetNbr: " << fPARIS_LaBr3Stage_E_DetectorNbr[i] << " Crystal: " << fPARIS_LaBr3Stage_E_CrystalNbr[i] << " Energy: " << fPARIS_LaBr3Stage_E_Energy[i] << endl;
+   // (X,T)
+   cout << "PARIS_LaBr3Stage_T_Mult = " << fPARIS_LaBr3Stage_T_DetectorNbr.size() << endl;
+   for (UShort_t i = 0; i < fPARIS_LaBr3Stage_T_DetectorNbr.size(); i++)
+      cout << "DetNbr: " << fPARIS_LaBr3Stage_T_DetectorNbr[i] << " Crystal: " << fPARIS_LaBr3Stage_T_CrystalNbr[i] << " Time: " << fPARIS_LaBr3Stage_T_Time[i] << endl;
+
+   // Second Stage
+   // Energy
+   cout << "PARIS_CsIStage_E_Mult = " << fPARIS_CsIStage_E_DetectorNbr.size() << endl;
+   for (UShort_t i = 0; i < fPARIS_CsIStage_E_DetectorNbr.size(); i++)
+      cout << "Det: " << fPARIS_CsIStage_E_DetectorNbr[i] << " Crystal: " << fPARIS_CsIStage_E_CrystalNbr[i] << " Energy: " << fPARIS_CsIStage_E_Energy[i] << endl;
+   // Time
+   cout << "PARIS_CsIStage_T_Mult = " << fPARIS_CsIStage_T_DetectorNbr.size() << endl;
+   for (UShort_t i = 0; i < fPARIS_CsIStage_T_DetectorNbr.size(); i++)
+      cout << "Det: " << fPARIS_CsIStage_T_DetectorNbr[i] << " Crystal: " << fPARIS_CsIStage_T_CrystalNbr[i] << " Time: " << fPARIS_CsIStage_T_Time[i] << endl;
+
+
+
 }
diff --git a/NPLib/Paris/TParisData.h b/NPLib/Paris/TParisData.h
index 068eda2b9..4d43088ec 100644
--- a/NPLib/Paris/TParisData.h
+++ b/NPLib/Paris/TParisData.h
@@ -8,7 +8,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
  *                                                                           *
  * Creation Date  : 04/12/2009                                               *
  * Last update    :                                                          *
@@ -28,11 +28,40 @@ using namespace std ;
 
 
 class TParisData : public TObject {
+
+ protected:
+   // First Stage LaBr
+   // LaBr3
+   // Energy
+   vector<UShort_t>  fPARIS_LaBr3Stage_E_DetectorNbr;
+   vector<UShort_t>  fPARIS_LaBr3Stage_E_CrystalNbr;
+   vector<Double_t>  fPARIS_LaBr3Stage_E_Energy;
+   vector<Double_t>  fPARIS_LaBr3Stage_Eff_phpeak;
+   // Time
+   vector<UShort_t>  fPARIS_LaBr3Stage_T_DetectorNbr;
+   vector<UShort_t>  fPARIS_LaBr3Stage_T_CrystalNbr;
+   vector<Double_t>  fPARIS_LaBr3Stage_T_Time;
+
+
+   // Second Stage CsI
+   // CsI
+   // Energy
+   vector<UShort_t>  fPARIS_CsIStage_E_DetectorNbr;
+   vector<UShort_t>  fPARIS_CsIStage_E_CrystalNbr;
+   vector<Double_t>  fPARIS_CsIStage_E_Energy;
+   vector<Double_t>  fPARIS_CsIStage_Eff_phpeak;
+   // Time
+   vector<UShort_t>  fPARIS_CsIStage_T_DetectorNbr;
+   vector<UShort_t>  fPARIS_CsIStage_T_CrystalNbr;
+   vector<Double_t>  fPARIS_CsIStage_T_Time;
+
+   /*
  private:
    vector<double>	fParis_Energy;
    vector<double>	fParis_Time;
    vector<short>	fParis_Number;
-   
+   */
+
  public:
    TParisData();
    virtual ~TParisData();
@@ -42,27 +71,157 @@ class TParisData : public TObject {
    void	Dump() const;
 
    /////////////////////           GETTERS           ////////////////////////
+
+   //
+   // First stage 
+   //
    // (E)
-   double	GetEnergy(int i)		{return fParis_Energy[i];}
-   // (T)
-   double	GetTime(int i)			{return fParis_Time[i];}
-   // (N)
-   int		GetParisNumber(int i)		{return fParis_Number[i];}
+   UShort_t GetPARISLaBr3StageEMult()               {
+     return fPARIS_LaBr3Stage_E_DetectorNbr.size();  // TODO: Maybe change to CrystalNbr for multiplicity
+   }
+   UShort_t GetPARISLaBr3StageEDetectorNbr(Int_t i) {
+      return fPARIS_LaBr3Stage_E_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISLaBr3StageECrystalNbr(Int_t i)    {
+      return fPARIS_LaBr3Stage_E_CrystalNbr.at(i);
+   }
+   Double_t GetPARISLaBr3StageEEnergy(Int_t i)      {
+      return fPARIS_LaBr3Stage_E_Energy.at(i);
+   }
+   Double_t GetPARISLaBr3StageEffphpeak(Int_t i)      {
+      return fPARIS_LaBr3Stage_Eff_phpeak.at(i);
+   }
    
+
+   // (T)
+   UShort_t GetPARISLaBr3StageTMult()               {
+      return fPARIS_LaBr3Stage_E_DetectorNbr.size();
+   }
+   UShort_t GetPARISLaBr3StageTDetectorNbr(Int_t i) {
+      return fPARIS_LaBr3Stage_T_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISLaBr3StageTCrystalNbr(Int_t i)    {
+      return fPARIS_LaBr3Stage_T_CrystalNbr.at(i);
+   }
+   Double_t GetPARISLaBr3StageTTime(Int_t i)      {
+      return fPARIS_LaBr3Stage_T_Time.at(i);
+   }
+
+   //
+   // Second stage (CsI
+   //
+   // (E)
+   UShort_t GetPARISCsIStageEMult()               {
+      return fPARIS_CsIStage_E_DetectorNbr.size();
+   }
+   UShort_t GetPARISCsIStageEDetectorNbr(Int_t i) {
+      return fPARIS_CsIStage_E_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISCsIStageECrystalNbr(Int_t i)    {
+      return fPARIS_CsIStage_E_CrystalNbr.at(i);
+   }
+   Double_t GetPARISCsIStageEEnergy(Int_t i)      {
+      return fPARIS_CsIStage_E_Energy.at(i);
+   }
+   Double_t GetPARISCsIStageEffphpeak(Int_t i)      {
+      return fPARIS_CsIStage_Eff_phpeak.at(i);
+   }
    
+   // (T)
+   UShort_t GetPARISCsIStageTMult()               {
+      return fPARIS_CsIStage_E_DetectorNbr.size();
+   }
+   UShort_t GetPARISCsIStageTDetectorNbr(Int_t i) {
+      return fPARIS_CsIStage_T_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISCsIStageTCrystalNbr(Int_t i)    {
+      return fPARIS_CsIStage_T_CrystalNbr.at(i);
+   }
+   Double_t GetPARISCsIStageTTime(Int_t i)      {
+      return fPARIS_CsIStage_T_Time.at(i);
+   }
+
+   /*
+   // (E)
+   //double	GetEnergy(int i)		{return fParis_Energy[i];}
+   // (T)
+   //double	GetTime(int i)			{return fParis_Time[i];}
+   // (N)
+   int		GetParisNumber(int i)		{return fParis_Number[i];}   
    double	GetEnergySize()			{return fParis_Energy.size();}
    // (T)
    double	GetTimeSize()			{return fParis_Time.size();}
    // (N)
    int      	GetParisNumberSize()		{return fParis_Number.size();}
-   
+   */
    
    /////////////////////           SETTERS           ////////////////////////
+
+   //
+   // First stage 
+   //
+   // (E)
+
+   void SetPARISLaBr3StageEDetectorNbr(UShort_t DetNbr) {
+      fPARIS_LaBr3Stage_E_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISLaBr3StageECrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_LaBr3Stage_E_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISLaBr3StageEEnergy(Double_t Energy)      {
+      fPARIS_LaBr3Stage_E_Energy.push_back(Energy);
+   }
+   void SetPARISLaBr3StageEffphpeak(Double_t Energy)      {
+      fPARIS_LaBr3Stage_Eff_phpeak.push_back(Energy);
+   }
+   
+
+   // (T)
+   void SetPARISLaBr3StageTDetectorNbr(UShort_t DetNbr) {
+      fPARIS_LaBr3Stage_T_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISLaBr3StageTCrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_LaBr3Stage_T_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISLaBr3StageTTime(Double_t Time)      {
+      fPARIS_LaBr3Stage_T_Time.push_back(Time);
+   }
+
+   //
+   // Second stage (CsI
+   //
+   // (E)
+   void SetPARISCsIStageEDetectorNbr(UShort_t DetNbr) {
+      fPARIS_CsIStage_E_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISCsIStageECrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_CsIStage_E_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISCsIStageEEnergy(Double_t Energy)      {
+      fPARIS_CsIStage_E_Energy.push_back(Energy);
+   }
+   void SetPARISCsIStageEffphpeak(Double_t Energy)      {
+      fPARIS_CsIStage_Eff_phpeak.push_back(Energy);
+   }
+   
+   // (T)
+   void SetPARISCsIStageTDetectorNbr(UShort_t DetNbr) {
+      fPARIS_CsIStage_T_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISCsIStageTCrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_CsIStage_T_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISCsIStageTTime(Double_t Time)  {
+      fPARIS_CsIStage_T_Time.push_back(Time);
+   }
+
+
+   /*
    // (E)
    void	SetEnergy(double E)			{fParis_Energy.push_back(E);}
    void	SetTime(double T)			{fParis_Time.push_back(T);}
    void	SetParisNumber(int N)			{fParis_Number.push_back(N);}
-   
+   */
    ClassDef(TParisData,1)  // ParisData structure
 };
 
diff --git a/NPLib/Paris/TParisPhysics.cxx b/NPLib/Paris/TParisPhysics.cxx
new file mode 100644
index 000000000..6b744557c
--- /dev/null
+++ b/NPLib/Paris/TParisPhysics.cxx
@@ -0,0 +1,146 @@
+/*****************************************************************************
+ * 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:  M. Labiche    contact address: marc.labiche@stfc.ac.uk  *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class stores the physical results after NPAnalysis is run*
+ *             for the PARIS detector.                                       *
+ *             This class derives from TObject (ROOT) and its aim is to be   *
+ *             stored in the output TTree of NPAnalysis.                     *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "TParisPhysics.h"
+#include <vector>
+#include <iostream>
+#include <cstdlib>
+
+
+ClassImp(TParisPhysics)
+
+
+TParisPhysics::TParisPhysics() 
+{
+  //EventMultiplicity = 0;
+}
+
+
+
+TParisPhysics::~TParisPhysics()
+{
+   Clear();
+}
+
+
+
+void TParisPhysics::BuildSimplePhysicalEvent(TParisData* Data)
+{
+   BuildPhysicalEvent(Data);
+}
+
+
+
+void TParisPhysics::BuildPhysicalEvent(TParisData* Data)
+{
+
+  int multLaBrE = Data->GetPARISLaBr3StageEMult();
+  int multCsIE = Data->GetPARISCsIStageEMult();
+
+  //cout << "multLaBr= " << multLaBrE << endl;
+  //cout << "multCsI= " << multCsIE << endl;
+
+  ParisEventMult=multLaBrE+multCsIE;
+            // get energy from strips and store it
+  if(ParisEventMult>=1)
+    {
+
+      double EnergyTot=0.;
+
+      if(multLaBrE>=1){
+	//cout << "cava1b" <<endl;
+	//cout <<  Data->GetPARISLaBr3StageEEnergy(0) <<endl;
+	//cout << "cava1b" <<endl;
+
+            double EnergyStripFront;
+	    double EnergyStrip;
+
+	    for(int j=0;j<multLaBrE;j++)
+	    {
+	     EnergyStripFront= Data->GetPARISLaBr3StageEEnergy(j);
+  
+             EnergyStrip  = EnergyStripFront;
+             ParisLaBr_E.push_back(EnergyStrip);
+  
+             EnergyTot += EnergyStrip;
+	     //cout << "Energytot LaBr=" << EnergyTot << endl;
+	    }
+
+      // Fill total energy in inner shell
+      ParisInTotalEnergy.push_back(EnergyTot);
+      }
+
+      if(multCsIE>=1){
+	double EnergySecond;
+	double EnergyTotSecond;
+	    for(int j=0;j<multCsIE;j++)
+	    {
+	      EnergySecond = Data->GetPARISCsIStageEEnergy(j);
+	      ParisCsI_E.push_back(EnergySecond);
+	      EnergyTotSecond +=EnergySecond;
+
+	      EnergyTot += EnergySecond;
+	      //cout << "Energy CsI=" << EnergySecond << endl;
+	      //cout << "Energytot CsI=" << EnergyTot << endl;
+	    }
+
+      // Fill total energy in outter shell
+      ParisOutTotalEnergy.push_back(EnergyTotSecond);
+
+      }
+
+      // Fill total energy
+      ParisTotalEnergy.push_back(EnergyTot);
+    }
+}
+
+
+
+void TParisPhysics::Clear()
+{
+   //EventMultiplicity= 0;
+   ParisEventMult= 0;
+   //ModuleNumber.clear();
+   //EventType.clear();
+   ParisInTotalEnergy.clear();   // inner shell
+   ParisOutTotalEnergy.clear();  // outter shell
+   ParisTotalEnergy.clear();
+
+   // LaBr
+   ParisLaBr_E.clear();
+   //FirstStage_T.clear();
+   //FirstStage_X.clear();
+   //FirstStage_Y.clear();
+
+   // CsI
+   ParisCsI_E.clear();
+   //SecondStage_T.clear();
+   //SecondStage_N.clear();
+
+   /*
+   // CsI	
+   ThirdStage_E.clear();
+   ThirdStage_T.clear();
+   ThirdStage_N.clear();
+   */
+}
diff --git a/NPLib/Paris/TParisPhysics.h b/NPLib/Paris/TParisPhysics.h
new file mode 100644
index 000000000..9a7159949
--- /dev/null
+++ b/NPLib/Paris/TParisPhysics.h
@@ -0,0 +1,82 @@
+/*****************************************************************************
+ * 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:  M. Labiche    contact address: marc.labiche@stfc.ac.uk  *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class stores the physical results after NPAnalysis is run*
+ *             for the PARIS detector.                                       *
+ *             This class derives from TObject (ROOT) and its aim is to be   *
+ *             stored in the output TTree of NPAnalysis.                     *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef TPARISPHYSICS_H
+#define TPARISPHYSICS_H
+
+#include <vector>
+#include "TObject.h"
+#include "TParisData.h"
+#include <cstdlib>
+
+using namespace std ;
+
+class TParisPhysics : public TObject
+{
+public:
+   TParisPhysics();
+   ~TParisPhysics();
+
+public: 
+   void Clear();	
+   void Clear(const Option_t*) {};	
+   void BuildPhysicalEvent(TParisData* Data);
+   void BuildSimplePhysicalEvent(TParisData* Data);
+
+public:
+   // Provide Physical Multiplicity
+   Int_t		ParisEventMult;
+
+   // Provide a Classification of Event
+   //vector<int>		EventType;
+
+   // Telescope
+   //vector<int>		ModuleNumber;
+
+   //	FirstStage
+   vector<double>	ParisLaBr_E;
+   //vector<double>	FirstStage_T;
+   //vector<int>		FirstStage_X;
+   //vector<int>		FirstStage_Y;
+
+   //	SecondStage
+   vector<double>	ParisCsI_E;
+   //vector<double>	SecondStage_T;
+   //vector<int>		SecondStage_N;
+
+   /*
+   //	ThirdStage
+   vector<double>	ThirdStage_E;
+   vector<double>	ThirdStage_T;
+   vector<int>		ThirdStage_N;
+   */
+
+   // Physical Value  
+   vector<double>	ParisTotalEnergy;
+   vector<double>	ParisInTotalEnergy;
+   vector<double>	ParisOutTotalEnergy;
+
+   ClassDef(TParisPhysics,1)  // GaspardTrackerPHysics structure
+};
+
+#endif
diff --git a/NPLib/README b/NPLib/README
index d4f5febb9..cca2d1981 100644
--- a/NPLib/README
+++ b/NPLib/README
@@ -9,14 +9,14 @@
  * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
  *                                                                           *
  * Creation Date  : 01/09/09                                                 *
- * Last update    :                                                          *
+ * Last update    : 17/09/10                                                 *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *      This file describes the content of the NPLib directory               *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *                                                                           *
- *                                                                           *
+ *     01/09/10: added Shield of PARIS                                       *
+ *     04/12/09: added PARIS array                                           *
  *****************************************************************************/
 
 This directory contains a set of libraries which are used both in the 
@@ -33,6 +33,7 @@ NPLib / include
       / AnnularS1
       / GASPARD
       / Paris
+      / Shield
       / VDetector
 
 A description of each directory follows.
@@ -119,11 +120,27 @@ XI) GASPARD
 		obtained from NPSimulation. This library is *only* used by NPAnalysis.
 
 XII) Paris
-	This directory includes one library:
+	This directory includes tow library:
 		libParisData.so
-	This library stores the results of the G4 simulation for the Paris detector.
+		libParisPhysics.so
+	libParisData.so
+		This library stores the results of the G4 simulation for the Paris detector.
+	libParisPhysics.so
+		This library deals with the treatment applied to the ROOT output file 
+		obtained from NPSimulation. This library is *only* used by NPAnalysis.
+
+
+XIII) Shield
+	This directory includes two library:
+		libShieldData.so
+		libShieldPhysics.so
+	libShieldData.so
+		This library stores the results of the G4 simulation for the Shield of PARIS.
+	libShieldPhysics.so
+		This library deals with the treatment applied to the ROOT output file 
+		obtained from NPSimulation. This library is *only* used by NPAnalysis.
 
-XIII) VDetector
+XIV) VDetector
 	This directory includes two libraries:
 		libVDetector.so
 		libDetectorManager.so
diff --git a/NPLib/Shield/Makefile b/NPLib/Shield/Makefile
new file mode 100644
index 000000000..d89a5d789
--- /dev/null
+++ b/NPLib/Shield/Makefile
@@ -0,0 +1,313 @@
+# Makefile for the ROOT test programs.
+# This Makefile shows nicely how to compile and link applications
+# using the ROOT libraries on all supported platforms.
+#
+# Copyright (c) 2000 Rene Brun and Fons Rademakers
+#
+# Author: Fons Rademakers, 29/2/2000
+
+ROOTCONFIG   := root-config
+
+ARCH         := $(shell $(ROOTCONFIG) --arch)
+PLATFORM     := $(shell $(ROOTCONFIG) --platform)
+ALTCC        := $(shell $(ROOTCONFIG) --cc)
+ALTCXX       := $(shell $(ROOTCONFIG) --cxx)
+ALTF77       := $(shell $(ROOTCONFIG) --f77)
+ALTLD        := $(shell $(ROOTCONFIG) --ld)
+
+#CXX           =
+ObjSuf        = o
+SrcSuf        = cxx
+ExeSuf        =
+DllSuf        = so
+OutPutOpt     = -o # keep whitespace after "-o"
+
+ifeq (debug,$(findstring debug,$(ROOTBUILD)))
+OPT           = -g
+OPT2          = -g
+else
+ifneq ($(findstring debug, $(strip $(shell $(ROOTCONFIG) --config))),)
+OPT           = -g
+OPT2          = -g
+else
+OPT           = -O
+OPT2          = -O2
+endif
+endif
+
+ROOTCFLAGS   := $(shell $(ROOTCONFIG) --cflags)
+ROOTLDFLAGS  := $(shell $(ROOTCONFIG) --ldflags)
+ROOTLIBS     := $(shell $(ROOTCONFIG) --libs)
+ROOTGLIBS    := $(shell $(ROOTCONFIG) --glibs)
+HASTHREAD    := $(shell $(ROOTCONFIG) --has-thread)
+ROOTDICTTYPE := $(shell $(ROOTCONFIG) --dicttype)
+NOSTUBS      := $(shell $(ROOTCONFIG) --nostubs)
+ROOTCINT     := rootcint
+
+ifeq ($(ARCH),linux)
+# Linux with egcs, gcc 2.9x, gcc 3.x
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxkcc)
+# Linux with the KAI compiler
+CXX           = KCC --one_instantiation_per_object
+CXXFLAGS      = $(OPT) -fPIC +K0
+LD            = KCC
+LDFLAGS       = $(OPT) $(shell $(ROOTCONFIG) --cflags)
+SOFLAGS       =
+endif
+
+ifeq ($(ARCH),linuxicc)
+# Linux with Intel icc compiler
+ICC_MAJOR    := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
+                cut -d'.' -f1)
+ICC_MINOR    := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
+                cut -d'.' -f2)
+CXX           = icc
+CXXFLAGS      = $(OPT) -fPIC -wd1476
+LD            = icpc
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxppcgcc)
+# PPC Linux with gcc and glibc
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxia64gcc)
+# Itanium Linux with gcc 2.9x
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxia64sgi)
+# Itanium Linux with sgiCC
+CXX           = sgiCC
+CXXFLAGS      = $(OPT) -Wall -fPIC
+LD            = gsgiCC
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxia64ecc)
+# Itanium Linux with Intel icc (was ecc)
+ICC_MAJOR    := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
+                cut -d'.' -f1)
+ICC_MINOR    := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
+                cut -d'.' -f2)
+CXX           = icc
+CXXFLAGS      = $(OPT) -fPIC -wd1476 -ftz
+LD            = icpc
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxx8664gcc)
+# AMD Opteron and Intel EM64T (64 bit mode) Linux with gcc 3.x
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxppc64gcc)
+# PPC64 Linux with gcc 3.x
+CXX           = g++
+CXXFLAGS      = $(OPT) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxx8664icc)
+# AMD Opteron and Intel EM64T (64 bit mode) Linux with Intel icc compiler
+CXX           = icc
+CXXFLAGS      = $(OPT) -fPIC -wd1476 -wd1572
+LD            = icpc
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxalphagcc)
+# Alpha Linux with gcc
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxmips)
+# GNU/Linux on mips (BE/LE, O32/N32/N64) with gcc
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxhppa)
+# GNU/Linux on hppa with gcc
+CXX           = g++
+CXXFLAGS      = $(OPT2) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT2)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),linuxarm)
+# ARM Linux with egcs
+CXX           = g++
+CXXFLAGS      = $(OPT) -Wall -fPIC
+LD            = g++
+LDFLAGS       = $(OPT)
+SOFLAGS       = -shared
+endif
+
+ifeq ($(ARCH),macosx)
+# MacOS X with cc (GNU cc 2.95.2 and gcc 3.3)
+MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
+MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
+CXX           = g++
+CXXFLAGS      = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
+LD            = $(MACOSXTARGET) g++
+LDFLAGS       = $(OPT2) -bind_at_load
+# The SOFLAGS will be used to create the .dylib,
+# the .so will be created separately
+ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
+DllSuf        = so
+else
+DllSuf        = dylib
+endif
+UNDEFOPT      = dynamic_lookup
+ifneq ($(subst $(MACOSX_MINOR),,12),12)
+UNDEFOPT      = suppress
+LD            = g++
+endif
+SOFLAGS       = -dynamiclib -single_module -undefined $(UNDEFOPT)
+endif
+
+ifeq ($(ARCH),macosxicc)
+# MacOS X with Intel icc compiler
+MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
+MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
+ifeq ($(MACOSX_MINOR),5)
+MACOSX_MINOR := 4
+endif
+CXX           = icc
+CXXFLAGS      = $(OPT) -fPIC -wd1476
+LD            = $(MACOSXTARGET) icpc
+LDFLAGS       = $(OPT)
+# The SOFLAGS will be used to create the .dylib,
+# the .so will be created separately
+ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
+DllSuf        = so
+else
+DllSuf        = dylib
+endif
+SOFLAGS       = -dynamiclib -single_module -undefined dynamic_lookup
+endif
+
+ifeq ($(ARCH),macosx64)
+# MacOS X >= 10.4 with gcc 64 bit mode (GNU gcc 4.*)
+# Only specific option (-m64) comes from root-config
+MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
+MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
+CXX           = g++
+CXXFLAGS      = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
+LD            = $(MACOSXTARGET) g++ -m64
+LDFLAGS       = $(OPT2) -bind_at_load
+# The SOFLAGS will be used to create the .dylib,
+# the .so will be created separately
+ifeq ($(subst $(MACOSX_MINOR),,1234),1234)
+DllSuf        = so
+else
+DllSuf        = dylib
+endif
+SOFLAGS       = -m64 -dynamiclib -single_module -undefined dynamic_lookup
+endif
+
+ifeq ($(ARCH),macosxxlc)
+# MacOS X with IBM xlC compiler
+MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
+MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
+CXX           = xlC
+CXXFLAGS      = $(OPT)
+LD            = $(MACOSXTARGET) xlC
+LDFLAGS       = $(OPT) -Wl,-bind_at_load
+# The SOFLAGS will be used to create the .dylib,
+# the .so will be created separately
+DllSuf        = dylib
+UNDEFOPT      = dynamic_lookup
+ifneq ($(subst $(MACOSX_MINOR),,12),12)
+UNDEFOPT      = suppress
+LD            = xlC
+endif
+SOFLAGS       = -qmkshrobj -single_module -undefined $(UNDEFOPT)
+endif
+
+CXXFLAGS     += $(ROOTCFLAGS)
+LDFLAGS      += $(ROOTLDFLAGS)
+LIBS          = $(ROOTLIBS) $(SYSLIBS)
+GLIBS         = $(ROOTGLIBS) $(SYSLIBS)
+
+INCLUDE		= -I$(CLHEP_BASE_DIR)/include -I$(NPLIB)/include
+ 
+#------------------------------------------------------------------------------
+SHARELIB      =  libShieldData.so 	libShieldPhysics.so
+
+all:            $(SHARELIB)
+#------------------------------------------------------------------------------
+############### Detector ##############
+
+## Shield ##
+libShieldData.so:	TShieldData.o	TShieldDataDict.o
+			$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
+
+TShieldDataDict.cxx:	TShieldData.h
+			rootcint -f $@ -c $^
+
+libShieldPhysics.so:	Shield.o TShieldPhysics.o TShieldPhysicsDict.o
+			$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
+
+TShieldPhysicsDict.cxx:	TShieldPhysics.h
+			rootcint -f $@ -c $^
+
+
+
+# dependances
+Shield.o:	Shield.cxx	Shield.h
+TShieldData.o:	TShieldData.cxx	TShieldData.h
+TShieldPhysics.o:	TShieldPhysics.cxx	TShieldPhysics.h
+
+#######################################
+
+############# Clean and More ##########
+clean:
+	@rm -f core *~ *.o *Dict*
+
+distclean:
+	  make clean; rm -f *.so
+
+.SUFFIXES: .$(SrcSuf)
+
+###
+
+.$(SrcSuf).$(ObjSuf):
+	$(CXX) $(CXXFLAGS) $(INCLUDE) -c $<
+
+
diff --git a/NPLib/Shield/Shield.cxx b/NPLib/Shield/Shield.cxx
new file mode 100644
index 000000000..56c9a8ef1
--- /dev/null
+++ b/NPLib/Shield/Shield.cxx
@@ -0,0 +1,871 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 01/09/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is mainly an interface to the                      *
+ *             TShieldPhysics class                                          *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "Shield.h"
+
+// C++ headers
+#include <iostream>	
+#include <fstream>
+#include <string>
+#include <cmath>
+#include <stdlib.h>
+
+// NPL headers
+#include "RootInput.h"
+#include "RootOutput.h"
+
+// ROOT headers
+#include "TChain.h"
+
+using namespace std ;	
+	
+//	Default Constructor
+
+Shield::Shield()
+{
+   m_NumberOfModule = 0;
+   m_EventData    = new TShieldData();
+   m_EventPhysics = new TShieldPhysics();
+}	
+
+
+
+Shield::~Shield()
+{
+   m_NumberOfModule = 0;
+   delete m_EventData;
+   delete m_EventPhysics;
+}	
+
+
+
+// Read stream at ConfigFile to pick-up parameters of detector (Position,...) using Token
+void Shield::ReadConfiguration(string Path) 	
+{
+   ifstream ConfigFile           	;
+   ConfigFile.open(Path.c_str()) 	;
+   string LineBuffer          		;
+   string DataBuffer          		;	
+
+   // A:X1_Y1     --> X:1    Y:1
+   // B:X128_Y1   --> X:128  Y:1
+   // C:X1_Y128   --> X:1    Y:128
+   // D:X128_Y128 --> X:128  Y:128
+
+   double   Ax, Bx, Cx, Dx, Ay, By, Cy, Dy, Az, Bz, Cz, Dz;
+   TVector3 A, B, C, D; 
+   double   Theta = 0, Phi = 0, R = 0, beta_u = 0 , beta_v = 0 , beta_w = 0;
+
+   bool check_A = false;
+   bool check_C = false;
+   bool check_B = false;
+   bool check_D = false;
+
+   bool check_Theta = false;
+   bool check_Phi   = false;
+   bool check_R     = false;
+   bool check_beta  = false;
+   
+   bool ReadingStatus = false;
+
+   bool isCluster     = false;
+   bool isPhoswich = false;
+
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+
+      // If line is a Shield bloc, reading toggle to true
+      // and toggle to true flags indicating which shape is treated.
+      if (LineBuffer.compare(0, 13, "ShieldClParis")     == 0  ||
+          LineBuffer.compare(0, 13, "ShieldPhParis")  == 0  ) {
+         cout << "///////////////////////" << endl;
+         cout << "Module found:" << endl;        
+
+         if (LineBuffer.compare(0, 13, "ShieldClParis")     == 0) isCluster     = true;
+         if (LineBuffer.compare(0, 13, "ShieldPhParis") == 0) isPhoswich = true;
+         ReadingStatus = true;
+      }
+      // Else don't toggle to Reading Block Status
+      else ReadingStatus = false;
+
+      // Reading Block
+      while (ReadingStatus) {	 
+         if (isCluster) { 	// square shape
+            ConfigFile >> DataBuffer ;
+            // Comment Line 
+            if (DataBuffer.compare(0, 1, "%") == 0) {
+               ConfigFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
+            }
+            // Finding another telescope (safety), toggle out
+            else if (DataBuffer.compare(0, 13, "ShieldClParis") == 0) {
+               cout << "WARNING: Another Module is find before standard sequence of Token, Error may occured in Telecope definition" << endl;
+               ReadingStatus = false;
+            }
+
+            // Position method
+            else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+               check_A = true;
+               ConfigFile >> DataBuffer ;
+               Ax = atof(DataBuffer.c_str()) ;
+               Ax = Ax  ;
+               ConfigFile >> DataBuffer ;
+               Ay = atof(DataBuffer.c_str()) ;
+               Ay = Ay  ;
+               ConfigFile >> DataBuffer ;
+               Az = atof(DataBuffer.c_str()) ;
+               Az = Az  ;
+
+               A = TVector3(Ax, Ay, Az);
+               cout << "X1 Y1 corner position : (" << A.X() << ";" << A.Y() << ";" << A.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+               check_B = true;
+               ConfigFile >> DataBuffer ;
+               Bx = atof(DataBuffer.c_str()) ;
+               Bx = Bx  ;
+               ConfigFile >> DataBuffer ;
+               By = atof(DataBuffer.c_str()) ;
+               By = By  ;
+               ConfigFile >> DataBuffer ;
+               Bz = atof(DataBuffer.c_str()) ;
+               Bz = Bz  ;
+
+               B = TVector3(Bx, By, Bz);
+               cout << "X128 Y1 corner position : (" << B.X() << ";" << B.Y() << ";" << B.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+               check_C = true;
+               ConfigFile >> DataBuffer ;
+               Cx = atof(DataBuffer.c_str()) ;
+               Cx = Cx  ;
+               ConfigFile >> DataBuffer ;
+               Cy = atof(DataBuffer.c_str()) ;
+               Cy = Cy  ;
+               ConfigFile >> DataBuffer ;
+               Cz = atof(DataBuffer.c_str()) ;
+               Cz = Cz  ;
+
+               C = TVector3(Cx, Cy, Cz);
+               cout << "X1 Y128 corner position : (" << C.X() << ";" << C.Y() << ";" << C.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+               check_D = true;
+               ConfigFile >> DataBuffer ;
+               Dx = atof(DataBuffer.c_str()) ;
+               Dx = Dx  ;
+               ConfigFile >> DataBuffer ;
+               Dy = atof(DataBuffer.c_str()) ;
+               Dy = Dy  ;
+               ConfigFile >> DataBuffer ;
+               Dz = atof(DataBuffer.c_str()) ;
+               Dz = Dz  ;
+
+               D = TVector3(Dx, Dy, Dz);
+               cout << "X128 Y128 corner position : (" << D.X() << ";" << D.Y() << ";" << D.Z() << ")" << endl;
+            } // End Position Method
+
+            // Angle method
+            else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+               check_Theta = true;
+               ConfigFile >> DataBuffer ;
+               Theta = atof(DataBuffer.c_str()) ;
+               Theta = Theta ;
+               cout << "Theta:  " << Theta << endl;
+            }
+            else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+               check_Phi = true;
+               ConfigFile >> DataBuffer ;
+               Phi = atof(DataBuffer.c_str()) ;
+               Phi = Phi ;
+               cout << "Phi:  " << Phi << endl;
+            }
+            else if (DataBuffer.compare(0, 2, "R=") == 0) {
+               check_R = true;
+               ConfigFile >> DataBuffer ;
+               R = atof(DataBuffer.c_str()) ;
+               R = R ;
+               cout << "R:  " << R << endl;
+            }
+            else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+               check_beta = true;
+               ConfigFile >> DataBuffer ;
+               beta_u = atof(DataBuffer.c_str()) ;
+               beta_u = beta_u    ;
+               ConfigFile >> DataBuffer ;
+               beta_v = atof(DataBuffer.c_str()) ;
+               beta_v = beta_v    ;
+               ConfigFile >> DataBuffer ;
+               beta_w = atof(DataBuffer.c_str()) ;
+               beta_w = beta_w    ;
+               cout << "Beta:  " << beta_u << " " << beta_v << " " << beta_w << endl  ;
+            }
+
+            /////////////////////////////////////////////////
+            // If All necessary information there, toggle out
+            if ( (check_A && check_B && check_C && check_D) || (check_Theta && check_Phi && check_R && check_beta)  ) {
+               ReadingStatus = false; 
+
+               // Add The previously define telescope
+               // With position method
+               if ( check_A && check_B && check_C && check_D ) {
+                  AddModuleSquare(A   ,
+                                  B   ,
+                                  C   ,
+                                  D   ) ;
+               }
+
+               // with angle method
+               else if ( check_Theta && check_Phi && check_R && check_beta ) {
+                  AddModuleSquare(Theta   ,
+                                  Phi     ,
+                                  R       ,
+                                  beta_u  ,
+                                  beta_v  ,
+                                  beta_w  );
+               }
+
+               // reset boolean flag for point positioning
+               check_A = false;
+               check_B = false;
+               check_C = false;
+               check_D = false;
+
+               // reset boolean flag for angle positioning
+               check_Theta = false;
+               check_Phi   = false;
+               check_R     = false;
+               check_beta  = false;
+
+               // reset boolean flag for shape determination
+               isCluster     = false;
+               isPhoswich = false;
+            } // end test for adding a module
+         } // end test for ShieldCluster shape
+
+        else if (isPhoswich) { 	// ShieldPhoswich shape
+            ConfigFile >> DataBuffer ;
+            // Comment Line 
+            if (DataBuffer.compare(0, 1, "%") == 0) {
+               ConfigFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n' );
+            }
+            // Finding another telescope (safety), toggle out
+            else if (DataBuffer.compare(0, 13, "ShieldPhParis") == 0) {
+               cout << "WARNING: Another Module is find before standard sequence of Token, Error may occured in Telecope definition" << endl;
+               ReadingStatus = false;
+            }
+
+            // Position method
+            else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+               check_A = true;
+               ConfigFile >> DataBuffer ;
+               Ax = atof(DataBuffer.c_str()) ;
+               Ax = Ax  ;
+               ConfigFile >> DataBuffer ;
+               Ay = atof(DataBuffer.c_str()) ;
+               Ay = Ay  ;
+               ConfigFile >> DataBuffer ;
+               Az = atof(DataBuffer.c_str()) ;
+               Az = Az  ;
+
+               A = TVector3(Ax, Ay, Az);
+               cout << "X1 Y1 corner position : (" << A.X() << ";" << A.Y() << ";" << A.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+               check_B = true;
+               ConfigFile >> DataBuffer ;
+               Bx = atof(DataBuffer.c_str()) ;
+               Bx = Bx  ;
+               ConfigFile >> DataBuffer ;
+               By = atof(DataBuffer.c_str()) ;
+               By = By  ;
+               ConfigFile >> DataBuffer ;
+               Bz = atof(DataBuffer.c_str()) ;
+               Bz = Bz  ;
+
+               B = TVector3(Bx, By, Bz);
+               cout << "X128 Y1 corner position : (" << B.X() << ";" << B.Y() << ";" << B.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+               check_C = true;
+               ConfigFile >> DataBuffer ;
+               Cx = atof(DataBuffer.c_str()) ;
+               Cx = Cx  ;
+               ConfigFile >> DataBuffer ;
+               Cy = atof(DataBuffer.c_str()) ;
+               Cy = Cy  ;
+               ConfigFile >> DataBuffer ;
+               Cz = atof(DataBuffer.c_str()) ;
+               Cz = Cz  ;
+
+               C = TVector3(Cx, Cy, Cz);
+               cout << "X1 Y128 corner position : (" << C.X() << ";" << C.Y() << ";" << C.Z() << ")" << endl;
+            }
+            else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+               check_D = true;
+               ConfigFile >> DataBuffer ;
+               Dx = atof(DataBuffer.c_str()) ;
+               Dx = Dx  ;
+               ConfigFile >> DataBuffer ;
+               Dy = atof(DataBuffer.c_str()) ;
+               Dy = Dy  ;
+               ConfigFile >> DataBuffer ;
+               Dz = atof(DataBuffer.c_str()) ;
+               Dz = Dz  ;
+
+               D = TVector3(Dx, Dy, Dz);
+               cout << "X128 Y128 corner position : (" << D.X() << ";" << D.Y() << ";" << D.Z() << ")" << endl;
+            } // End Position Method
+
+            // Angle method
+            else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+               check_Theta = true;
+               ConfigFile >> DataBuffer ;
+               Theta = atof(DataBuffer.c_str()) ;
+               Theta = Theta ;
+               cout << "Theta:  " << Theta << endl;
+            }
+            else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+               check_Phi = true;
+               ConfigFile >> DataBuffer ;
+               Phi = atof(DataBuffer.c_str()) ;
+               Phi = Phi ;
+               cout << "Phi:  " << Phi << endl;
+            }
+            else if (DataBuffer.compare(0, 2, "R=") == 0) {
+               check_R = true;
+               ConfigFile >> DataBuffer ;
+               R = atof(DataBuffer.c_str()) ;
+               R = R ;
+               cout << "R:  " << R << endl;
+            }
+            else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+               check_beta = true;
+               ConfigFile >> DataBuffer ;
+               beta_u = atof(DataBuffer.c_str()) ;
+               beta_u = beta_u    ;
+               ConfigFile >> DataBuffer ;
+               beta_v = atof(DataBuffer.c_str()) ;
+               beta_v = beta_v    ;
+               ConfigFile >> DataBuffer ;
+               beta_w = atof(DataBuffer.c_str()) ;
+               beta_w = beta_w    ;
+               cout << "Beta:  " << beta_u << " " << beta_v << " " << beta_w << endl  ;
+            }
+
+            /////////////////////////////////////////////////
+            // If All necessary information there, toggle out
+            if ( (check_A && check_B && check_C && check_D) || (check_Theta && check_Phi && check_R && check_beta)  ) {
+               ReadingStatus = false; 
+
+               // Add The previously define telescope
+               // With position method
+               if ( check_A && check_B && check_C && check_D ) {
+                  AddModuleDummyShape(A   ,
+                                      B   ,
+                                      C   ,
+                                      D   ) ;
+               }
+
+               // with angle method
+               else if ( check_Theta && check_Phi && check_R && check_beta ) {
+                  AddModuleDummyShape(Theta,
+                                      Phi,
+                                      R,
+                                      beta_u,
+                                      beta_v,
+                                      beta_w);
+               }
+
+               // reset boolean flag for point positioning
+               check_A = false;
+               check_B = false;
+               check_C = false;
+               check_D = false;
+
+               // reset boolean flag for angle positioning
+               check_Theta = false;
+               check_Phi   = false;
+               check_R     = false;
+               check_beta  = false;
+
+               // reset boolean flag for shape determination
+               isPhoswich     = false;
+               isCluster = false;
+            } // end test for adding a module
+         } // end test for ShieldPhoswich shape
+
+ 
+      } // end while for reading block
+   } // end while for reading file
+
+   cout << endl << "/////////////////////////////" << endl<<endl;
+}
+
+
+// Read stream at Path and pick-up calibration parameter using Token
+// If argument is "Simulation" no change calibration is loaded
+void Shield::ReadCalibrationFile(string Path)	
+{
+   // Order of Polynom function used for calibration
+   int Calibration_Si_E_Order;
+   int Calibration_Si_T_Order;
+   int Calibration_SiLi_E_Order;
+   int Calibration_CsI_E_Order;
+
+   // Calibration_Si_X_E[DetectorNumber][StripNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_Si_X_E	;
+   vector< vector< vector< double > > >	Calibration_Si_X_T	;
+   vector< vector< vector< double > > >	Calibration_Si_Y_E	;
+   vector< vector< vector< double > > >	Calibration_Si_Y_T	;
+
+   // Calibration_SiLi_E[DetectorNumber][PadNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_SiLi_E	;
+
+   // Calibration_SiLi_E[DetectorNumber][CrystalNumber][Order of Coeff]
+   vector< vector< vector< double > > >	Calibration_CsI_E	;
+
+   if (Path == "Simulation") {   // Simulation case: data already calibrated
+      Calibration_Si_E_Order   = 1;
+      Calibration_Si_T_Order   = 1;
+      Calibration_SiLi_E_Order = 1;
+      Calibration_CsI_E_Order  = 1;
+
+      vector<double> Coef;
+      // Order 0				Order 1
+      Coef.push_back(0) ; Coef.push_back(1) 	;
+
+      vector< vector<double> > StripLine 		;
+      StripLine.resize( 128 , Coef)			;
+
+      Calibration_Si_X_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_X_T.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_Y_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_Si_Y_T.resize( m_NumberOfModule , StripLine)	;
+				
+      Calibration_SiLi_E.resize( m_NumberOfModule , StripLine)	;
+      Calibration_CsI_E .resize( m_NumberOfModule , StripLine)	;
+   }
+   else {
+   }
+}		
+
+	
+
+// Activated associated Branches and link it to the private member DetectorData address
+// In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated
+void Shield::InitializeRootInput() 		
+{
+   TChain* inputChain = RootInput::getInstance()->GetChain();
+   inputChain->SetBranchStatus("SHIELD", true);
+   //inputChain->SetBranchStatus("fSHIELD*", true);
+   inputChain->SetBranchAddress("SHIELD", &m_EventData);
+}
+
+
+
+// Create associated branches and associated private member DetectorPhysics address
+void Shield::InitializeRootOutput() 	
+{
+   TTree* outputTree = RootOutput::getInstance()->GetTree();
+   outputTree->Branch("SHIELD", "TShieldPhysics", &m_EventPhysics);
+}
+
+
+
+// This method is called at each event read from the Input Tree. Aime is to build treat Raw dat in order to extract physical parameter. 
+void Shield::BuildPhysicalEvent()		
+{
+   m_EventPhysics -> BuildPhysicalEvent(m_EventData);
+}
+
+
+
+// Same as above, but only the simplest event and/or simple method are used (low multiplicity, faster algorythm but less efficient ...).
+// This method aimed to be used for analysis performed during experiment, when speed is requiered.
+// NB: This method can eventually be the same as BuildPhysicalEvent.
+void Shield::BuildSimplePhysicalEvent()	
+{
+   m_EventPhysics -> BuildSimplePhysicalEvent(m_EventData);
+}
+
+
+
+void Shield::AddModuleSquare(TVector3 C_X1_Y1,
+                                     TVector3 C_X128_Y1,
+                                     TVector3 C_X1_Y128,
+                                     TVector3 C_X128_Y128)
+{
+   m_NumberOfModule++;
+
+   // remove warning using C_X128_Y128
+   C_X128_Y128.Unit();
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U = C_X128_Y1 - C_X1_Y1;
+   U = U.Unit();
+
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V = C_X1_Y128 - C_X1_Y1;
+   V = V.Unit();
+
+   // Position Vector of Strip Center
+   TVector3 StripCenter = TVector3(0,0,0);
+   // Position Vector of X=1 Y=1 Strip 
+   TVector3 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;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+
+   // Moving StripCenter to 1.1 corner:
+   Strip_1_1 = C_X1_Y1 + (U+V) * (StripPitch/2.);
+
+   for (int i = 0; i < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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() );	
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Shield::AddModuleSquare(double theta,
+                                     double phi,
+                                     double distance,
+                                     double beta_u,
+                                     double beta_v,
+                                     double beta_w)
+{
+   m_NumberOfModule++;
+
+   // convert from degree to radian:
+   double Pi = 3.141592654;
+   theta = theta * Pi/180. ; 
+   phi   = phi   * Pi/180. ;
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U ;	
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V ;
+   // Vector W normal to Module Face (pointing CsI)
+   TVector3 W ;
+   // Vector position of Module Face center
+   TVector3 C ;
+
+   C = TVector3(distance * sin(theta) * cos(phi),
+                distance * sin(theta) * sin(phi),
+                distance * cos(theta));
+
+  TVector3 YperpC = TVector3( cos(theta) * cos(phi),
+                              cos(theta) * sin(phi),
+                             -sin(theta));
+
+   W = C.Unit();
+   U = W.Cross(YperpC);
+   V = W.Cross(U);
+
+   U = U.Unit();
+   V = V.Unit();
+
+   U.Rotate( beta_u * Pi/180. , U ) ;
+   V.Rotate( beta_u * Pi/180. , U ) ;
+
+   U.Rotate( beta_v * Pi/180. , V ) ;
+   V.Rotate( beta_v * Pi/180. , V ) ;
+
+   U.Rotate( beta_w * Pi/180. , W ) ;
+   V.Rotate( beta_w * Pi/180. , W ) ;
+
+   double Face = 98; // mm
+   double NumberOfStrip = 128;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   vector<double> lineX;
+   vector<double> lineY;
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+		
+   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 < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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);
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Shield::AddModuleDummyShape(TVector3 C_X1_Y1,
+                                         TVector3 C_X128_Y1,
+                                         TVector3 C_X1_Y128,
+                                         TVector3 C_X128_Y128)
+{
+   m_NumberOfModule++;
+
+   // remove warning using C_X128_Y128
+   C_X128_Y128.Unit();
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U = C_X128_Y1 - C_X1_Y1;
+   U = U.Unit();
+
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V = C_X1_Y128 - C_X1_Y1;
+   V = V.Unit();
+
+   // Position Vector of Strip Center
+   TVector3 StripCenter = TVector3(0,0,0);
+   // Position Vector of X=1 Y=1 Strip 
+   TVector3 Strip_1_1;
+
+   // Geometry Parameter
+   double Face = 50;		// mm
+   double NumberOfStrip = 128;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   // Buffer object to fill Position Array
+   vector<double> lineX; 
+   vector<double> lineY; 
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+
+   // Moving StripCenter to 1.1 corner:
+   Strip_1_1 = C_X1_Y1 + (U+V) * (StripPitch/2.);
+
+   for (int i = 0; i < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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() );	
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+void Shield::AddModuleDummyShape(double theta,
+                                         double phi,
+                                         double distance,
+                                         double beta_u,
+                                         double beta_v,
+                                         double beta_w)
+{
+   m_NumberOfModule++;
+
+   // convert from degree to radian:
+   double Pi = 3.141592654;
+   theta = theta * Pi/180. ; 
+   phi   = phi   * Pi/180. ;
+
+   // Vector U on Module Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis)
+   TVector3 U ;	
+   // Vector V on Module Face (parallele to X Strip)
+   TVector3 V ;
+   // Vector W normal to Module Face (pointing CsI)
+   TVector3 W ;
+   // Vector position of Module Face center
+   TVector3 C ;
+
+   C = TVector3(distance * sin(theta) * cos(phi),
+                distance * sin(theta) * sin(phi),
+                distance * cos(theta));
+
+  TVector3 YperpW = TVector3( cos(theta) * cos(phi),
+                              cos(theta) * sin(phi),
+                             -sin(theta));
+
+   W = C.Unit();
+   U = W.Cross(YperpW);
+   V = W.Cross(U);
+
+   U = U.Unit();
+   V = V.Unit();
+
+   U.Rotate( beta_u * Pi/180. , U ) ;
+   V.Rotate( beta_u * Pi/180. , U ) ;
+
+   U.Rotate( beta_v * Pi/180. , V ) ;
+   V.Rotate( beta_v * Pi/180. , V ) ;
+
+   U.Rotate( beta_w * Pi/180. , W ) ;
+   V.Rotate( beta_w * Pi/180. , W ) ;
+
+   double Face = 50; // mm
+   double NumberOfStrip = 25;
+   double StripPitch = Face/NumberOfStrip; // mm
+
+   vector<double> lineX;
+   vector<double> lineY;
+   vector<double> lineZ;
+
+   vector< vector< double > >	OneModuleStripPositionX;
+   vector< vector< double > >	OneModuleStripPositionY;
+   vector< vector< double > >	OneModuleStripPositionZ;
+		
+   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 < NumberOfStrip; i++) {
+      lineX.clear();
+      lineY.clear();
+      lineZ.clear();
+
+      for (int j = 0; j < NumberOfStrip; 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);
+      }
+
+      OneModuleStripPositionX.push_back(lineX);
+      OneModuleStripPositionY.push_back(lineY);
+      OneModuleStripPositionZ.push_back(lineZ);
+   }
+
+   m_StripPositionX.push_back( OneModuleStripPositionX );
+   m_StripPositionY.push_back( OneModuleStripPositionY );
+   m_StripPositionZ.push_back( OneModuleStripPositionZ );
+}
+
+
+
+double Shield::GetEnergyDeposit()		
+{ 
+   if (m_EventPhysics->ShieldTotalEnergy.size() > 0)
+      return m_EventPhysics->ShieldTotalEnergy[0]; 
+   else 
+      return -1000;
+}
+
+
+
+TVector3 Shield::GetPositionOfInteraction()
+{
+   TVector3 Position = TVector3(-1000,-1000,-1000);
+
+   /*  if (m_EventPhysics->ModuleNumber.size() == 1) {
+           Position = TVector3(GetStripPositionX(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0]),
+                               GetStripPositionY(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0]),
+                               GetStripPositionZ(m_EventPhysics->ModuleNumber[0], m_EventPhysics->FirstStage_X[0], m_EventPhysics->FirstStage_Y[0])); 
+     }*/
+
+   return(Position);
+}
+
+
+
+void Shield::Print()
+{
+   cout << "Number of Modules: " << m_NumberOfModule << endl;
+
+   for (int f = 0; f < m_NumberOfModule; f++) {
+      cout << "Module " << f+1 << endl;
+
+      for (int i = 0; i < 128; i++) {
+         for (int j = 0; j < 128; j++) {
+            cout << i+1 << "  "<< j+1 << "  " 
+                 << m_StripPositionX[f][i][j]   << "  " 
+                 << m_StripPositionY[f][i][j]   << "  "
+                 << m_StripPositionZ[f][i][j]   << "  " 
+                 << endl ;
+         }
+      }
+   }
+}
diff --git a/NPLib/Shield/Shield.h b/NPLib/Shield/Shield.h
new file mode 100644
index 000000000..cea85f802
--- /dev/null
+++ b/NPLib/Shield/Shield.h
@@ -0,0 +1,138 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 01/09/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is mainly an interface to the                      *
+ *             TShieldPhysics class                                          *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef Shield_H
+
+// NPL
+#include "../include/VDetector.h"
+#include "TShieldData.h"
+#include "TShieldPhysics.h"
+
+// Root
+#include "TVector3.h"
+
+class Shield : public NPA::VDetector
+{
+public:
+   Shield();
+   virtual ~Shield();
+
+public:
+   /////////////////////////////////////
+   // Innherited from VDetector Class //
+   /////////////////////////////////////
+   // Read stream at ConfigFile to pick-up parameters of detector (Position,...) using Token
+   void ReadConfiguration(string);
+
+   // Read stream at CalibFile and pick-up calibration parameter using Token
+   // If argument is "Simulation" no change calibration is loaded
+   void ReadCalibrationFile(string);
+
+   // Activated associated Branches and link it to the private member DetectorData address
+   // In this method mother Branches (Detector) AND daughter leaf (fDetector_parameter) have to be activated
+   void InitializeRootInput();
+
+   // Create associated branches and associated private member DetectorPhysics address
+   void InitializeRootOutput();
+
+   // This method is called at each event read from the Input Tree. 
+   // The aim is to build treat Raw dat in order to extract physical parameter. 
+   void BuildPhysicalEvent();
+	
+   // Same as above, but only the simplest event and/or simple method are used (low multiplicity, faster algorythm but less efficient ...).
+   // This method aimed to be used for analysis performed during experiment, when speed is requiered.
+   // NB: This method can eventually be the same as BuildPhysicalEvent.
+   void BuildSimplePhysicalEvent();
+
+   // Those two method all to clear the Event Physics or Data
+   void ClearEventPhysics()	{m_EventPhysics->Clear();}
+   void ClearEventData()	{m_EventData->Clear();}
+
+
+public:
+   ////////////////////////////////
+   // Specific to Shield //
+   ////////////////////////////////
+   // Case of a Square module
+   // Add a Module using Corner Coordinate information
+   void AddModuleSquare(TVector3 C_X1_Y1,
+                        TVector3 C_X128_Y1,
+                        TVector3 C_X1_Y128,
+                        TVector3 C_X128_Y128);
+
+   // Add a Module using R Theta Phi of Si center information
+   void AddModuleSquare(double theta,
+                        double phi,
+                        double distance, 
+                        double beta_u,
+                        double beta_v,
+                        double beta_w);
+
+   // Case of a DummyShape module
+   // Add a Module using Corner Coordinate information
+   void AddModuleDummyShape(TVector3 C_X1_Y1,
+                            TVector3 C_X128_Y1,
+                            TVector3 C_X1_Y128,
+                            TVector3 C_X128_Y128);
+
+   // Add a Module using R Theta Phi of Si center information
+   void AddModuleDummyShape(double theta,
+                            double phi,
+                            double distance, 
+                            double beta_u,
+                            double beta_v,
+                            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; }
+
+   // Get Root input and output objects
+   TShieldData* 	GetEventData()		{return m_EventData;}
+   TShieldPhysics*	GetEventPhysics()	{return m_EventPhysics;}
+
+   // To be called after a build Physical Event 
+   double	GetEnergyDeposit();
+   TVector3	GetPositionOfInteraction();
+
+   void		Print();
+
+
+private:
+   ////////////////////////////////////////
+   // Root Input and Output tree classes //
+   ////////////////////////////////////////
+   TShieldData*		m_EventData;
+   TShieldPhysics*	m_EventPhysics;
+
+
+private:
+   // Spatial Position of Strip Calculated on basis of detector position
+   int m_NumberOfModule;
+   vector< vector < vector < double > > >	m_StripPositionX;
+   vector< vector < vector < double > > >	m_StripPositionY;
+   vector< vector < vector < double > > >	m_StripPositionZ;
+};
+
+#endif
diff --git a/NPLib/Shield/TShieldData.cxx b/NPLib/Shield/TShieldData.cxx
new file mode 100644
index 000000000..f3e95a6ef
--- /dev/null
+++ b/NPLib/Shield/TShieldData.cxx
@@ -0,0 +1,84 @@
+#include <iostream>
+#include "TShieldData.h"
+/*****************************************************************************
+ * 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: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : 04/12/2009                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class described the raw data of the Shield of PARIS detector        *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+ClassImp(TShieldData)
+
+TShieldData::TShieldData()
+{
+  // Default constructor
+  Clear();
+}
+
+
+
+TShieldData::~TShieldData()
+{
+}
+
+
+
+void TShieldData::Clear()
+{
+
+  /*
+    fShield_Energy.clear();
+    fShield_Number.clear();
+    fShield_Time.clear();
+  */
+
+
+   fPARIS_CsIShield_E_DetectorNbr.clear();
+   fPARIS_CsIShield_E_CrystalNbr.clear();
+   fPARIS_CsIShield_E_Energy.clear();
+   fPARIS_CsIShield_Eff_phpeak.clear();
+   // Time
+   fPARIS_CsIShield_T_DetectorNbr.clear();
+   fPARIS_CsIShield_T_CrystalNbr.clear();
+   fPARIS_CsIShield_T_Time.clear();
+
+
+}
+
+
+
+void TShieldData::Dump() const
+{
+   cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event XXXXXXXXXXXXXXXXX" << endl;
+   /*
+   for (unsigned short i = 0; i<fShield_Energy.size(); i ++) {
+      cout << "Shield Number " << fShield_Number[i] << " Energy: " << fShield_Energy[i]  << " Time: "<< fShield Time[i] << endl;
+   }
+   */
+
+   for (UShort_t i = 0; i < fPARIS_CsIShield_E_DetectorNbr.size(); i++)
+      cout << "DetNbr: " << fPARIS_CsIShield_E_DetectorNbr[i] << " Crystal: " << fPARIS_CsIShield_E_CrystalNbr[i] << " Energy: " << fPARIS_CsIShield_E_Energy[i] << endl;
+   // (X,T)
+   cout << "PARIS_CsIShield_T_Mult = " << fPARIS_CsIShield_T_DetectorNbr.size() << endl;
+   for (UShort_t i = 0; i < fPARIS_CsIShield_T_DetectorNbr.size(); i++)
+      cout << "DetNbr: " << fPARIS_CsIShield_T_DetectorNbr[i] << " Crystal: " << fPARIS_CsIShield_T_CrystalNbr[i] << " Time: " << fPARIS_CsIShield_T_Time[i] << endl;
+
+
+
+
+}
diff --git a/NPLib/Shield/TShieldData.h b/NPLib/Shield/TShieldData.h
new file mode 100644
index 000000000..7ad37cfb6
--- /dev/null
+++ b/NPLib/Shield/TShieldData.h
@@ -0,0 +1,155 @@
+#ifndef __ShieldDATA__
+#define __ShieldDATA__
+/*****************************************************************************
+ * 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: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : 04/12/2009                                               *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class described the raw data of the shield of PARIS detector        *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include <vector>
+
+#include "TObject.h"
+using namespace std ;
+
+
+class TShieldData : public TObject {
+
+ protected:
+ 
+   // Energy
+   vector<UShort_t>  fPARIS_CsIShield_E_DetectorNbr;
+   vector<UShort_t>  fPARIS_CsIShield_E_CrystalNbr;
+   vector<Double_t>  fPARIS_CsIShield_E_Energy;
+   vector<Double_t>  fPARIS_CsIShield_Eff_phpeak;
+   // Time
+   vector<UShort_t>  fPARIS_CsIShield_T_DetectorNbr;
+   vector<UShort_t>  fPARIS_CsIShield_T_CrystalNbr;
+   vector<Double_t>  fPARIS_CsIShield_T_Time;
+
+
+   /*
+ private:
+   vector<double>	fParis_Energy;
+   vector<double>	fParis_Time;
+   vector<short>	fParis_Number;
+   */
+
+ public:
+   TShieldData();
+   virtual ~TShieldData();
+
+   void	Clear();
+   void	Clear(const Option_t*) {};
+   void	Dump() const;
+
+   /////////////////////           GETTERS           ////////////////////////
+
+   //
+   // First stage 
+   //
+   // (E)
+   UShort_t GetPARISCsIShieldEMult()               {
+     return fPARIS_CsIShield_E_DetectorNbr.size();  // TODO: Maybe change to CrystalNbr for multiplicity
+   }
+   UShort_t GetPARISCsIShieldEDetectorNbr(Int_t i) {
+      return fPARIS_CsIShield_E_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISCsIShieldECrystalNbr(Int_t i)    {
+      return fPARIS_CsIShield_E_CrystalNbr.at(i);
+   }
+   Double_t GetPARISCsIShieldEEnergy(Int_t i)      {
+      return fPARIS_CsIShield_E_Energy.at(i);
+   }
+   Double_t GetPARISCsIShieldEffphpeak(Int_t i)      {
+      return fPARIS_CsIShield_Eff_phpeak.at(i);
+   }
+   
+
+   // (T)
+   UShort_t GetPARISCsIShieldTMult()               {
+      return fPARIS_CsIShield_E_DetectorNbr.size();
+   }
+   UShort_t GetPARISCsIShieldTDetectorNbr(Int_t i) {
+      return fPARIS_CsIShield_T_DetectorNbr.at(i);
+   }
+   UShort_t GetPARISCsIShieldTCrystalNbr(Int_t i)    {
+      return fPARIS_CsIShield_T_CrystalNbr.at(i);
+   }
+   Double_t GetPARISCsIShieldTTime(Int_t i)      {
+      return fPARIS_CsIShield_T_Time.at(i);
+   }
+
+
+   /*
+   // (E)
+   //double	GetEnergy(int i)		{return fParis_Energy[i];}
+   // (T)
+   //double	GetTime(int i)			{return fParis_Time[i];}
+   // (N)
+   int		GetParisNumber(int i)		{return fParis_Number[i];}   
+   double	GetEnergySize()			{return fParis_Energy.size();}
+   // (T)
+   double	GetTimeSize()			{return fParis_Time.size();}
+   // (N)
+   int      	GetParisNumberSize()		{return fParis_Number.size();}
+   */
+   
+   /////////////////////           SETTERS           ////////////////////////
+
+   //
+   // First stage 
+   //
+   // (E)
+
+   void SetPARISCsIShieldEDetectorNbr(UShort_t DetNbr) {
+      fPARIS_CsIShield_E_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISCsIShieldECrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_CsIShield_E_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISCsIShieldEEnergy(Double_t Energy)      {
+      fPARIS_CsIShield_E_Energy.push_back(Energy);
+   }
+   void SetPARISCsIShieldEffphpeak(Double_t Energy)      {
+      fPARIS_CsIShield_Eff_phpeak.push_back(Energy);
+   }
+   
+
+   // (T)
+   void SetPARISCsIShieldTDetectorNbr(UShort_t DetNbr) {
+      fPARIS_CsIShield_T_DetectorNbr.push_back(DetNbr);
+   }
+   void SetPARISCsIShieldTCrystalNbr(UShort_t CrystalNbr)    {
+      fPARIS_CsIShield_T_CrystalNbr.push_back(CrystalNbr);
+   }
+   void SetPARISCsIShieldTTime(Double_t Time)      {
+      fPARIS_CsIShield_T_Time.push_back(Time);
+   }
+
+
+   /*
+   // (E)
+   void	SetEnergy(double E)			{fParis_Energy.push_back(E);}
+   void	SetTime(double T)			{fParis_Time.push_back(T);}
+   void	SetParisNumber(int N)			{fParis_Number.push_back(N);}
+   */
+   ClassDef(TShieldData,1)  // ParisData structure
+};
+
+#endif
diff --git a/NPLib/Shield/TShieldPhysics.cxx b/NPLib/Shield/TShieldPhysics.cxx
new file mode 100644
index 000000000..dae505443
--- /dev/null
+++ b/NPLib/Shield/TShieldPhysics.cxx
@@ -0,0 +1,103 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 01/09/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class stores the physical results after NPAnalysis is run*
+ *             for the Shield part of the Paris detector.                    *
+ *             This class derives from TObject (ROOT) and its aim is to be   *
+ *             stored in the output TTree of NPAnalysis.                     *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "TShieldPhysics.h"
+#include <vector>
+#include <iostream>
+#include <cstdlib>
+
+
+ClassImp(TShieldPhysics)
+
+
+TShieldPhysics::TShieldPhysics() 
+{
+  //EventMultiplicity = 0;
+}
+
+
+
+TShieldPhysics::~TShieldPhysics()
+{
+   Clear();
+}
+
+
+
+void TShieldPhysics::BuildSimplePhysicalEvent(TShieldData* Data)
+{
+   BuildPhysicalEvent(Data);
+}
+
+
+
+void TShieldPhysics::BuildPhysicalEvent(TShieldData* Data)
+{
+
+  int multE = Data->GetPARISCsIShieldEMult();
+  // cout << "multShield = " << multE << endl;
+
+  ShieldEventMult=multE;
+
+
+            // get energy from strips and store it
+  if(multE>=1){
+    //cout << "cava1b" <<endl;
+    //cout <<  Data->GetPARISCsIShieldEEnergy(0) <<endl;
+    //cout << "cava1b" <<endl;
+
+    double EnergyTot=0.;
+    double EnergyStripFront;
+    double EnergyStrip;
+
+    for(int j=0;j<multE;j++)
+      {
+	EnergyStripFront= Data->GetPARISCsIShieldEEnergy(j);
+	
+	EnergyStrip  = EnergyStripFront;
+	ShieldCsI_E.push_back(EnergyStrip);
+
+	EnergyTot += EnergyStrip; // addback between CsIShield 
+      }
+
+    // Fill total energy
+    ShieldTotalEnergy.push_back(EnergyTot);
+  }
+}
+
+
+
+void TShieldPhysics::Clear()
+{
+   ShieldEventMult=0;
+   //ModuleNumber.clear();
+   //EventType.clear();
+   ShieldTotalEnergy.clear();
+
+   // CsI
+   ShieldCsI_E.clear();
+   //FirstStage_T.clear();
+   //FirstStage_X.clear();
+   //FirstStage_Y.clear();
+
+}
diff --git a/NPLib/Shield/TShieldPhysics.h b/NPLib/Shield/TShieldPhysics.h
new file mode 100644
index 000000000..d820214f3
--- /dev/null
+++ b/NPLib/Shield/TShieldPhysics.h
@@ -0,0 +1,81 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 01/09/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class stores the physical results after NPAnalysis is run*
+ *             for the tracker part of the Gaspard detector.                 *
+ *             This class derives from TObject (ROOT) and its aim is to be   *
+ *             stored in the output TTree of NPAnalysis.                     *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef TSHIELDPHYSICS_H
+#define TSHIELDPHYSICS_H
+
+#include <vector>
+#include "TObject.h"
+#include "TShieldData.h"
+#include <cstdlib>
+
+using namespace std ;
+
+class TShieldPhysics : public TObject
+{
+public:
+   TShieldPhysics();
+   ~TShieldPhysics();
+
+public: 
+   void Clear();	
+   void Clear(const Option_t*) {};	
+   void BuildPhysicalEvent(TShieldData* Data);
+   void BuildSimplePhysicalEvent(TShieldData* Data);
+
+public:
+   // Provide Physical Multiplicity
+   Int_t		ShieldEventMult;
+
+   // Provide a Classification of Event
+   //vector<int>		EventType;
+
+   // Telescope
+   //vector<int>		ModuleNumber;
+
+   //	FirstStage
+   vector<double>	ShieldCsI_E;
+   //vector<double>	FirstStage_T;
+   //vector<int>		FirstStage_X;
+   //vector<int>		FirstStage_Y;
+
+   /*
+   //	SecondStage
+   vector<double>	SecondStage_E;
+   //vector<double>	SecondStage_T;
+   //vector<int>		SecondStage_N;
+
+   
+   //	ThirdStage
+   vector<double>	ThirdStage_E;
+   vector<double>	ThirdStage_T;
+   vector<int>		ThirdStage_N;
+   */
+
+   // Physical Value  
+   vector<double>	ShieldTotalEnergy;
+
+   ClassDef(TShieldPhysics,1)  // ShieldPhysics structure
+};
+
+#endif
diff --git a/NPLib/VDetector/DetectorManager.cxx b/NPLib/VDetector/DetectorManager.cxx
index 398198c95..fab8655d8 100644
--- a/NPLib/VDetector/DetectorManager.cxx
+++ b/NPLib/VDetector/DetectorManager.cxx
@@ -10,6 +10,8 @@
 #include "../SSSD/TSSSDPhysics.h"
 #include "../Plastic/TPlasticPhysics.h"
 #include "../GASPARD/GaspardTracker.h"
+#include "../Paris/Paris.h"
+#include "../Shield/Shield.h"
 
 
 /////////////////////////////////////////////////////////////////////////////////////////////////
@@ -42,6 +44,8 @@ void DetectorManager::ReadConfigurationFile(string Path)
    bool ScintillatorPlastic = false;
    bool GeneralTarget       = false;
    bool GPDTracker          = false;
+   bool ParisDet            = false;
+   bool ShieldDet           = false;
 
    //////////////////////////////////////////////////////////////////////////////////////////
    string GlobalPath = getenv("NPTOOL");
@@ -83,6 +87,40 @@ void DetectorManager::ReadConfigurationFile(string Path)
          // Add array to the VDetector Vector
          AddDetector("GASPARD", myDetector);
       }
+      ////////////////////////////////////////////
+      ///////////// Search for Paris /////////////
+      ////////////////////////////////////////////
+      else if (LineBuffer.compare(0, 5, "Paris") == 0 && ParisDet == false) {
+         ParisDet = true;
+         cout << "//////// Paris ////////" << endl << endl;
+
+         // Instantiate the new array as a VDetector Object
+         VDetector* myDetector = new Paris();
+         // Read Position of Telescope
+         ConfigFile.close();
+         myDetector->ReadConfiguration(Path);
+         ConfigFile.open(Path.c_str());
+
+         // Add array to the VDetector Vector
+         AddDetector("PARIS", myDetector);
+      }
+      ////////////////////////////////////////////
+      ///////////// Search for Paris' Shield /////
+      ////////////////////////////////////////////
+      else if (LineBuffer.compare(0, 6, "Shield") == 0 && ShieldDet == false) {
+         ShieldDet = true;
+         cout << "//////// Shield ////////" << endl << endl;
+
+         // Instantiate the new array as a VDetector Object
+         VDetector* myDetector = new Shield();
+         // Read Position of Telescope
+         ConfigFile.close();
+         myDetector->ReadConfiguration(Path);
+         ConfigFile.open(Path.c_str());
+
+         // Add array to the VDetector Vector
+         AddDetector("SHIELD", myDetector);
+      }
 
       ////////////////////////////////////////////
       //////// Search for MUST2 Array  ////////
@@ -140,6 +178,7 @@ void DetectorManager::ReadConfigurationFile(string Path)
          AddDetector("Plastic", myDetector);
       }
 
+
       ////////////////////////////////////////////
       //////////// Search for Target /////////////
       ////////////////////////////////////////////
diff --git a/NPLib/liblist b/NPLib/liblist
index ef0756a63..a09875ac0 100755
--- a/NPLib/liblist
+++ b/NPLib/liblist
@@ -5,5 +5,6 @@ echo  -L$NPLIB/lib -lVDetector -lDetectorManager -lCalibrationManager -lIORoot -
 			-lAnnularS1Data \
 			-lGaspardData -lGaspardPhysics \
 			-lDUMMYDetectorData \
-			-lParisData \
+			-lParisData -lParisPhysics\
+			-lShieldData -lShieldPhysics\
 			-lInitialConditions -lInteractionCoordinates
diff --git a/NPSimulation/include/Chamber.hh b/NPSimulation/include/Chamber.hh
new file mode 100644
index 000000000..1da4e750f
--- /dev/null
+++ b/NPSimulation/include/Chamber.hh
@@ -0,0 +1,111 @@
+#ifndef Chamber2Array_h
+#define Chamber2Array_h 1
+/*****************************************************************************
+ * 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: M. Labiche    contact address: marc.labiche@atfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : January 2010                                             *
+ * Last update    : 11/03/2010                                               *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class describe Cryogenic and standard Chamber.                      *
+ *  Derived from VDetector                                                   *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *
+ *                                                                           *
+ *****************************************************************************/
+// C++ headers
+#include <string>
+#include <cmath>
+
+// G4 header defining G4 types
+#include "globals.hh"
+
+// G4 headers
+#include "G4Event.hh"
+#include "G4Material.hh"
+#include "G4LogicalVolume.hh"
+
+// NPTool headers
+#include "VDetector.hh"
+
+using namespace std;
+
+class Chamber : public VDetector
+{
+	public:
+	   Chamber();
+	   ~Chamber(){};
+
+
+	public:
+		//	Read stream at Configfile to pick-up parameters of detector (Position,...)
+		//	Called in DetecorConstruction::ReadDetextorConfiguration Method
+		void ReadConfiguration(string Path);
+
+		//	Construct detector and inialise sensitive part.
+		//	Called After DetecorConstruction::AddDetector Method
+		void ConstructDetector(G4LogicalVolume* world);
+
+		//	Add Detector branch to the EventTree.
+		//	Called After DetecorConstruction::AddDetector Method
+		void InitializeRootOutput();
+
+		//	Read sensitive part and fill the Root tree.
+		//	Called at in the EventAction::EndOfEventAvtion
+		void ReadSensitive(const G4Event* event);
+
+
+	public:
+		//	Return Material from the Chamber Material Library
+		G4Material* GetMaterialFromLibrary(G4String MaterialName, G4double Temperature = 0, G4double Pressure = 0);
+		
+		//	Generate a DEDX file table using the material used in the target
+		void 				WriteDEDXTable(G4ParticleDefinition* Particle,G4double Emin,G4double Emax);
+
+	public:
+		G4double    GetChamberRmin()	{return m_ChamberRmin;}
+		G4double    GetChamberRmax()			{return m_ChamberRmax;}
+		G4double    GetChamberPhiMin()			{return m_ChamberPhiMin;}
+		G4double    GetChamberPhiMax()			{return m_ChamberPhiMax;}
+		G4double    GetChamberThetaMin()		{return m_ChamberThetaMin;}
+		G4double    GetChamberThetaMax()		{return m_ChamberThetaMax;}
+		G4Material* GetChamberMaterial()		{return m_ChamberMaterial;}
+  //G4int       GetChamberNbLayers()		{return m_ChamberNbLayers;}
+
+
+	private:
+		// Chamber type : true = normal ; false = cryo
+		bool     m_ChamberType;
+
+		// Standard parameter
+		G4double    m_ChamberRmin;
+		G4double    m_ChamberRmax;
+		G4double    m_ChamberPhiMin;
+		G4double    m_ChamberPhiMax;
+		G4double    m_ChamberThetaMin;
+		G4double    m_ChamberThetaMax;
+		G4Material* m_ChamberMaterial;
+		G4int       m_ChamberNbLayers;
+  /*
+		// For Cryo Chamber
+		G4double    m_ChamberTemperature;
+		G4double    m_ChamberPressure;
+		G4double    m_WindowsThickness;
+		G4Material* m_WindowsMaterial;
+
+		// Positioning
+		G4double    m_ChamberX;
+		G4double    m_ChamberY;
+		G4double    m_ChamberZ;
+  */
+};
+
+#endif
diff --git a/NPSimulation/include/DetectorConstruction.hh b/NPSimulation/include/DetectorConstruction.hh
index 8a65ee3ab..1fa245f23 100644
--- a/NPSimulation/include/DetectorConstruction.hh
+++ b/NPSimulation/include/DetectorConstruction.hh
@@ -11,7 +11,7 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : January 2010                                                         *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This Class manage the virtual detector and call their method.            *
@@ -20,7 +20,7 @@
  *  token.                                                                   *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *                                                                           *
+ *   January 2010: added chamber (marc.labiche@stfc.ac.uk)                   *
  *                                                                           *
  *****************************************************************************/
 class G4LogicalVolume;
@@ -37,6 +37,7 @@ class G4VPhysicalVolume;
 // NPTool headers
 #include "VDetector.hh"
 #include "Target.hh"
+#include "Chamber.hh"
 
 // ROOT headers
 #include "TTree.h"
@@ -60,9 +61,11 @@ public:
 private:
    // Logical volumes
    G4LogicalVolume* world_log;
+  //G4LogicalVolume* Chamber_log;
 
    // Physical volumes
    G4VPhysicalVolume* world_phys;
+  //G4VPhysicalVolume* Chamber_phys;
 
    // Virtual Detector Vector
    vector<VDetector*> m_Detectors;
@@ -70,9 +73,11 @@ private:
 
 private: // Data about the target
    Target*  m_Target;
+   Chamber*  m_Chamber;
 
 public:  // Getter and Setter
    Target*  GetTarget()		{return m_Target;}
+   Chamber*  GetChamber()		{return m_Chamber;}
 };
 
 #endif
diff --git a/NPSimulation/include/EventGeneratorIsotropic.hh b/NPSimulation/include/EventGeneratorIsotropic.hh
index 03210f62d..79afda20a 100644
--- a/NPSimulation/include/EventGeneratorIsotropic.hh
+++ b/NPSimulation/include/EventGeneratorIsotropic.hh
@@ -56,7 +56,7 @@ private:    // Source parameter from input file
    G4double               m_z0               ;  // Vertex Position Z
    G4ParticleDefinition*  m_particle         ;  // Kind of particle to shoot isotropically
 
-private:    // Output ROOT class storing characteristics of source
+  private:    // Output ROOT class storing characteristics of source
    TInitialConditions* m_InitConditions;
 };
 #endif
diff --git a/NPSimulation/include/GaspardTrackerSquare.hh b/NPSimulation/include/GaspardTrackerSquare.hh
index 180b0d1b1..672ba89cf 100644
--- a/NPSimulation/include/GaspardTrackerSquare.hh
+++ b/NPSimulation/include/GaspardTrackerSquare.hh
@@ -155,8 +155,8 @@ namespace GPDSQUARE
    const G4double ResoTimePPAC    = 0.106382979    ;// = 250ps                 //   Unit is  ns/2.35
 
    // Geometry
-   const G4double FaceFront = 11.*cm   ;
-   const G4double FaceBack = 16.5*cm   ;
+  const G4double FaceFront = 5*cm; // = for 5x5cm det //11.*cm for 10x10 cm det.   ;
+  const G4double FaceBack = 5*cm; //16.5*cm   ;
 //   const G4double Length  = 7.2*cm     ;
    const G4double Length  = 2.0*cm     ;
 
@@ -164,7 +164,7 @@ namespace GPDSQUARE
 //   const G4double AluStripThickness = 0.00000001*micrometer;
    const G4double AluStripThickness = 0.4*micrometer ;
    const G4double SiliconThickness  = 300*micrometer ;
-   const G4double SiliconFace       = 98*mm          ;
+  const G4double SiliconFace       = 48.25*mm; //98*mm          ;
 //   const G4double VacBoxThickness   = 3*cm           ;
    const G4double VacBoxThickness   = 0.5*cm           ;
    const G4int    NumberOfStrips    = 128;
@@ -172,7 +172,7 @@ namespace GPDSQUARE
    // Second stage
    const G4double SiLiThickness     = 5.1*mm                      ;  // Must be checked
    const G4double SiLiFaceX         = 48.25*mm                    ;
-   const G4double SiLiFaceY         = 92*mm                       ;
+   const G4double SiLiFaceY         = 48.25*mm ; // 92*mm                       ;
 
    // Third stage
    const G4double MylarCsIThickness   = 3*micrometer;
diff --git a/NPSimulation/include/Paris.hh b/NPSimulation/include/Paris.hh
index 739fc6fa8..a4aa371ac 100644
--- a/NPSimulation/include/Paris.hh
+++ b/NPSimulation/include/Paris.hh
@@ -6,7 +6,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
  *                                                                           *
  * Creation Date  : 04/12/09                                                 *
  * Last update    :                                                          *
diff --git a/NPSimulation/include/ParisCluster.hh b/NPSimulation/include/ParisCluster.hh
new file mode 100644
index 000000000..466506e67
--- /dev/null
+++ b/NPSimulation/include/ParisCluster.hh
@@ -0,0 +1,162 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define a cluster of 9 phoswich modules for the Paris detector *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef ParisCluster_h
+#define ParisCluster_h 1
+
+// C++ headers
+#include <vector>
+
+// NPTool header
+#include "ParisModule.hh"
+#include "TInteractionCoordinates.h"
+
+using namespace std;
+
+
+
+class ParisCluster : public ParisModule
+{
+   ////////////////////////////////////////////////////
+   /////// Default Constructor and Destructor /////////
+   ////////////////////////////////////////////////////
+public:
+   ParisCluster();
+   virtual ~ParisCluster();
+
+   ////////////////////////////////////////////////////
+   //////// Specific Function of this Class ///////////
+   ////////////////////////////////////////////////////
+public:
+   // By Position Method
+   void AddModule(G4ThreeVector TL,
+                  G4ThreeVector BL,
+                  G4ThreeVector BR,
+                  G4ThreeVector CT);
+
+   // By Angle Method
+   void AddModule(G4double R,
+                  G4double Theta,
+                  G4double Phi,
+                  G4double beta_u,
+                  G4double beta_v,
+                  G4double beta_w); 
+
+   // Effectively construct Volume
+   // Avoid to have two time same code for Angle and Point definition
+   void VolumeMaker(G4int             DetecNumber,
+                    G4ThreeVector     MMpos,
+                    G4RotationMatrix* MMrot,
+                    G4LogicalVolume*  world);
+
+
+   ///////////////////////////////////////////
+   ////  Inherite from ParisModule class /////
+   ///////////////////////////////////////////
+public:
+   // Read stream at Configfile to pick-up parameters of detector (Position,...)
+   // Called in DetecorConstruction::ReadDetextorConfiguration Method
+   void ReadConfiguration(string Path);
+
+   // Construct detector and inialise sensitive part.
+   // Called After DetecorConstruction::AddDetector Method
+   void ConstructDetector(G4LogicalVolume* world);
+
+   // Add Detector branch to the EventTree.
+   // Called After DetecorConstruction::AddDetector Method
+   void InitializeRootOutput();
+
+   // Initialize all scorers necessary for the detector
+   void InitializeScorers();
+
+   // Read sensitive part and fill the Root tree.
+   // Called at in the EventAction::EndOfEventAvtion
+   void ReadSensitive(const G4Event* event);
+
+   // Give the static TInteractionCoordinates from VDetector to the classes
+   // deriving from ParisModule
+   // This is mandatory since the Paris*** does not derive from VDetector
+   void SetInterCoordPointer(TInteractionCoordinates* interCoord);
+   TInteractionCoordinates* GetInterCoordPointer()	{return ms_InterCoord;};
+
+
+   ////////////////////////////////////////////////////
+   ///////////////Private intern Data//////////////////
+   ////////////////////////////////////////////////////
+private:
+   // Interaction Coordinates coming from VDetector through the 
+   // SetInteractionCoordinatesPointer method
+   TInteractionCoordinates* ms_InterCoord;
+
+   // True if Define by Position, False is Define by angle
+   vector<bool>   m_DefinitionType  ;
+
+   // Used for "By Point Definition"
+   vector<G4ThreeVector>   m_X1_Y1     ; // Top Left Corner Position Vector
+   vector<G4ThreeVector>   m_X1_Y128   ; // Bottom Left Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y1   ; // Bottom Right Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y128 ; // Center Corner Position Vector
+
+   // Used for "By Angle Definition"
+   vector<G4double>  m_R      ; //  |
+   vector<G4double>  m_Theta  ; //  > Spherical coordinate of Strips Silicium Plate
+   vector<G4double>  m_Phi    ; //  |
+
+   vector<G4double>  m_beta_u ; //  |
+   vector<G4double>  m_beta_v ; //  > Tilt angle of the Telescope
+   vector<G4double>  m_beta_w ; //  |
+
+  G4ThreeVector momentum;
+
+};
+
+
+
+namespace PARISCLUSTER
+{
+   // Resolution
+//   const G4double ResoFirstStage  = 0;	// = 50 keV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoFirstStage  = 0.0085;	// = 3% at .662 MeV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoSecondStage = 0.0366;	// = 13% at .662 MeV of resolution //   Unit is MeV/2.35
+   const G4double ResoThirdStage  = 0.0;	// = 50 keV of resolution //   Unit is MeV/2.35
+   const G4double ResoTimeGpd     = 0.212765957;// = 500ps                 //   Unit is  ns/2.35
+
+   // Geometry for the mother volume containing the different layers of your dummy shape module
+   const G4double FaceFront          = 16.9*cm;
+   const G4double FaceBack           = 16.9*cm;
+   const G4double Length             = 21*cm;
+
+   // Geometry for the phoswitch
+   // LaBr3
+   const G4double LaBr3Face       = 5.08*cm;
+   const G4double LaBr3Thickness  = 5.08*cm;
+   const G4double InterSpace  = 0.3*cm;
+
+   // CsI
+   const G4double CsIFace      = LaBr3Face;
+   const G4double CsIThickness = 15.24*cm;
+
+   // Starting form the LaBr3 and going to the CsI
+   const G4double LaBr3Stage_PosZ  = Length* -0.5 + 0.5*LaBr3Thickness;
+   const G4double CsIStage_PosZ    = Length* -0.5 + LaBr3Thickness + 0.5*CsIThickness;
+}
+
+#endif
diff --git a/NPSimulation/include/ParisModule.hh b/NPSimulation/include/ParisModule.hh
index 736b988e0..d63fdc58a 100644
--- a/NPSimulation/include/ParisModule.hh
+++ b/NPSimulation/include/ParisModule.hh
@@ -6,7 +6,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
  *                                                                           *
  * Creation Date  : 04/12/09                                                 *
  * Last update    :                                                          *
diff --git a/NPSimulation/include/ParisPhoswitch.hh b/NPSimulation/include/ParisPhoswich.hh
similarity index 89%
rename from NPSimulation/include/ParisPhoswitch.hh
rename to NPSimulation/include/ParisPhoswich.hh
index c725043f4..a7f7669be 100644
--- a/NPSimulation/include/ParisPhoswitch.hh
+++ b/NPSimulation/include/ParisPhoswich.hh
@@ -6,12 +6,12 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
  *                                                                           *
  * Creation Date  : 04/12/09                                                 *
  * Last update    :                                                          *
  *---------------------------------------------------------------------------*
- * Decription: Define a phoswitch module for the Paris detector.             *
+ * Decription: Define a phoswich module for the Paris detector.              *
  *                                                                           *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
@@ -19,8 +19,8 @@
  *                                                                           *
  *****************************************************************************/
 
-#ifndef ParisPhoswitch_h
-#define ParisPhoswitch_h 1
+#ifndef ParisPhoswich_h
+#define ParisPhoswich_h 1
 
 // C++ headers
 #include <vector>
@@ -33,14 +33,14 @@ using namespace std;
 
 
 
-class ParisPhoswitch : public ParisModule
+class ParisPhoswich : public ParisModule
 {
    ////////////////////////////////////////////////////
    /////// Default Constructor and Destructor /////////
    ////////////////////////////////////////////////////
 public:
-   ParisPhoswitch();
-   virtual ~ParisPhoswitch();
+   ParisPhoswich();
+   virtual ~ParisPhoswich();
 
    ////////////////////////////////////////////////////
    //////// Specific Function of this Class ///////////
@@ -106,6 +106,8 @@ private:
    // SetInteractionCoordinatesPointer method
    TInteractionCoordinates* ms_InterCoord;
 
+
+
    // True if Define by Position, False is Define by angle
    vector<bool>   m_DefinitionType  ;
 
@@ -123,22 +125,28 @@ private:
    vector<G4double>  m_beta_u ; //  |
    vector<G4double>  m_beta_v ; //  > Tilt angle of the Telescope
    vector<G4double>  m_beta_w ; //  |
+
+   G4ThreeVector momentum;
+
 };
 
 
 
-namespace PARISPHOSWITCH
+namespace PARISPHOSWICH
 {
+
+
+
    // Resolution
 //   const G4double ResoFirstStage  = 0;	// = 50 keV of Resolution   //   Unit is MeV/2.35
-   const G4double ResoFirstStage  = 0.0213;	// = 50 keV of Resolution   //   Unit is MeV/2.35
-   const G4double ResoSecondStage = 0.0213;	// = 50 keV of resolution //   Unit is MeV/2.35
+     const G4double ResoFirstStage  = 0.0099;	// = 3.5% at .662MeV of Resolution   //   Unit is MeV/2.35
+     const G4double ResoSecondStage = 0.0366;	// = 13% at .662 MeV of resolution //   Unit is MeV/2.35
    const G4double ResoThirdStage  = 0.0213;	// = 50 keV of resolution //   Unit is MeV/2.35
    const G4double ResoTimeGpd     = 0.212765957;// = 500ps                 //   Unit is  ns/2.35
 
    // Geometry for the mother volume containing the different layers of your dummy shape module
-   const G4double FaceFront          = 6.3*cm;
-   const G4double FaceBack           = 6.3*cm;
+  const G4double FaceFront          = 5.7*cm; //6.3*cm;
+  const G4double FaceBack           = 5.7*cm; //6.3*cm;
    const G4double Length             = 21*cm;
 
    // Geometry for the phoswitch
@@ -153,6 +161,7 @@ namespace PARISPHOSWITCH
    // Starting form the LaBr3 and going to the CsI
    const G4double LaBr3Stage_PosZ  = Length* -0.5 + 0.5*LaBr3Thickness;
    const G4double CsIStage_PosZ    = Length* -0.5 + LaBr3Thickness + 0.5*CsIThickness;
+
 }
 
 #endif
diff --git a/NPSimulation/include/ParisScorers.hh b/NPSimulation/include/ParisScorers.hh
new file mode 100644
index 000000000..3fdd99c7e
--- /dev/null
+++ b/NPSimulation/include/ParisScorers.hh
@@ -0,0 +1,175 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 30/02/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class holds all the scorers needed by the                *
+ *             GaspardTracker*** objects.                                    *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef PARISScorer_h
+#define PARISScorer_h 1
+
+#include "G4VPrimitiveScorer.hh"
+#include "G4THitsMap.hh"
+
+namespace PARISSCORERS
+{
+
+
+class PARISScorerLaBr3StageDetectorNumber : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerLaBr3StageDetectorNumber(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerLaBr3StageDetectorNumber();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4int>* EvtMap;
+};
+
+
+
+class PARISScorerLaBr3StageEnergy : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerLaBr3StageEnergy(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerLaBr3StageEnergy();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4double>* EvtMap;
+};
+
+
+
+class PARISScorerLaBr3StageCrystal : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerLaBr3StageCrystal(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerLaBr3StageCrystal();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4int>* EvtMap;
+};
+
+
+class PARISScorerLaBr3StageTOF : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerLaBr3StageTOF(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerLaBr3StageTOF();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4double>* EvtMap;
+};
+
+
+
+class PARISScorerCsIStageDetectorNumber : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerCsIStageDetectorNumber(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerCsIStageDetectorNumber();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4int>* EvtMap;
+};
+
+
+class PARISScorerCsIStageEnergy : public G4VPrimitiveScorer
+{
+public: // with description
+   PARISScorerCsIStageEnergy(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~PARISScorerCsIStageEnergy();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4double>* EvtMap;
+};
+
+}
+
+using namespace PARISSCORERS;
+#endif
diff --git a/NPSimulation/include/Shield.hh b/NPSimulation/include/Shield.hh
new file mode 100644
index 000000000..fd6996676
--- /dev/null
+++ b/NPSimulation/include/Shield.hh
@@ -0,0 +1,73 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class manages different shapes of module for the Paris   *
+ *             Shield detector. It allows to have Paris geometries with an   *
+ *             heterogeneous set of modules                                  *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef Shield_h
+#define Shield_h 1
+
+// C++ headers
+#include <vector>
+
+// NPTool header
+#include "VDetector.hh"
+#include "ShieldModule.hh"
+
+using namespace std;
+
+
+
+class Shield : public VDetector
+{
+   ////////////////////////////////////////////////////
+   /////// Default Constructor and Destructor /////////
+   ////////////////////////////////////////////////////
+public:
+   Shield();
+   virtual ~Shield();
+
+   ////////////////////////////////////////////////////
+   /////////  Inherite from VDetector class ///////////
+   ////////////////////////////////////////////////////
+public:
+   // Read stream at Configfile to pick-up parameters of detector (Position,...)
+   // Called in DetecorConstruction::ReadDetextorConfiguration Method
+   void ReadConfiguration(string Path);
+
+   // Construct detector and inialise sensitive part.
+   // Called After DetecorConstruction::AddDetector Method
+   void ConstructDetector(G4LogicalVolume* world);
+
+   // Add Detector branch to the EventTree.
+   // Called After DetecorConstruction::AddDetector Method
+   void InitializeRootOutput();
+
+   // Read sensitive part and fill the Root tree.
+   // Called at in the EventAction::EndOfEventAvtion
+   void ReadSensitive(const G4Event* event);
+
+public:
+   // Initialize all scorers necessary for each detector
+   void InitializeScorers();
+
+private:
+   vector<ShieldModule*> m_Modules;
+};
+#endif
diff --git a/NPSimulation/include/ShieldClParis.hh b/NPSimulation/include/ShieldClParis.hh
new file mode 100644
index 000000000..cc106b521
--- /dev/null
+++ b/NPSimulation/include/ShieldClParis.hh
@@ -0,0 +1,148 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define the shiled around a cluster of 9 phoswich modules for  *
+ * the Paris detector                                                        *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef ShieldClParis_h
+#define ShieldClParis_h 1
+
+// C++ headers
+#include <vector>
+
+// NPTool header
+//#include "ParisModule.hh"
+#include "ShieldModule.hh"
+#include "TInteractionCoordinates.h"
+
+using namespace std;
+
+
+
+class ShieldClParis : public ShieldModule
+{
+   ////////////////////////////////////////////////////
+   /////// Default Constructor and Destructor /////////
+   ////////////////////////////////////////////////////
+public:
+   ShieldClParis();
+   virtual ~ShieldClParis();
+
+   ////////////////////////////////////////////////////
+   //////// Specific Function of this Class ///////////
+   ////////////////////////////////////////////////////
+public:
+   // By Position Method
+   void AddModule(G4ThreeVector TL,
+                  G4ThreeVector BL,
+                  G4ThreeVector BR,
+                  G4ThreeVector CT);
+
+   // By Angle Method
+   void AddModule(G4double R,
+                  G4double Theta,
+                  G4double Phi,
+                  G4double beta_u,
+                  G4double beta_v,
+                  G4double beta_w); 
+
+   // Effectively construct Volume
+   // Avoid to have two time same code for Angle and Point definition
+   void VolumeMaker(G4int             DetecNumber,
+                    G4ThreeVector     MMpos,
+                    G4RotationMatrix* MMrot,
+                    G4LogicalVolume*  world);
+
+
+   ///////////////////////////////////////////
+   ////  Inherite from ParisModule class /////
+   ///////////////////////////////////////////
+public:
+   // Read stream at Configfile to pick-up parameters of detector (Position,...)
+   // Called in DetecorConstruction::ReadDetextorConfiguration Method
+   void ReadConfiguration(string Path);
+
+   // Construct detector and inialise sensitive part.
+   // Called After DetecorConstruction::AddDetector Method
+   void ConstructDetector(G4LogicalVolume* world);
+
+   // Add Detector branch to the EventTree.
+   // Called After DetecorConstruction::AddDetector Method
+   void InitializeRootOutput();
+
+   // Initialize all scorers necessary for the detector
+   void InitializeScorers();
+
+   // Read sensitive part and fill the Root tree.
+   // Called at in the EventAction::EndOfEventAvtion
+   void ReadSensitive(const G4Event* event);
+
+   // Give the static TInteractionCoordinates from VDetector to the classes
+   // deriving from ParisModule
+   // This is mandatory since the Paris*** does not derive from VDetector
+   void SetInterCoordPointer(TInteractionCoordinates* interCoord);
+   TInteractionCoordinates* GetInterCoordPointer()	{return ms_InterCoord;};
+
+
+   ////////////////////////////////////////////////////
+   ///////////////Private intern Data//////////////////
+   ////////////////////////////////////////////////////
+private:
+   // Interaction Coordinates coming from VDetector through the 
+   // SetInteractionCoordinatesPointer method
+   TInteractionCoordinates* ms_InterCoord;
+
+   // True if Define by Position, False is Define by angle
+   vector<bool>   m_DefinitionType  ;
+
+   // Used for "By Point Definition"
+   vector<G4ThreeVector>   m_X1_Y1     ; // Top Left Corner Position Vector
+   vector<G4ThreeVector>   m_X1_Y128   ; // Bottom Left Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y1   ; // Bottom Right Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y128 ; // Center Corner Position Vector
+
+   // Used for "By Angle Definition"
+   vector<G4double>  m_R      ; //  |
+   vector<G4double>  m_Theta  ; //  > Spherical coordinate of Strips Silicium Plate
+   vector<G4double>  m_Phi    ; //  |
+
+   vector<G4double>  m_beta_u ; //  |
+   vector<G4double>  m_beta_v ; //  > Tilt angle of the Telescope
+   vector<G4double>  m_beta_w ; //  |
+
+  G4ThreeVector momentum;
+
+};
+
+
+
+namespace PARISCLSHIELD
+{
+   // Resolution
+//   const G4double ResoFirstStage  = 0;	// = 50 keV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoFirstStage  = 0.0366;	// = 13% at .662 MeV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoTimeGpd     = 0.212765957;// = 500ps                 //   Unit is  ns/2.35
+
+   // Geometry for the mother volume containing the different layers of your dummy shape module
+   const G4double Length             = 15.*cm;
+
+
+}
+
+#endif
diff --git a/NPSimulation/include/ShieldModule.hh b/NPSimulation/include/ShieldModule.hh
new file mode 100644
index 000000000..6027baca2
--- /dev/null
+++ b/NPSimulation/include/ShieldModule.hh
@@ -0,0 +1,92 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is an Abstract Base Class (ABC) from which should  *
+ *             derive all different modules from the Paris detector.         *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef ShieldModule_h
+#define ShieldModule_h 1
+
+// C++ headers
+#include <string>
+#include <vector>
+
+// G4 headers
+#include "G4LogicalVolume.hh"
+#include "G4Event.hh"
+#include "G4MultiFunctionalDetector.hh"
+
+// NPTool - ROOT headers
+#include "TInteractionCoordinates.h"
+#include "TShieldData.h"
+
+using namespace std;
+
+
+
+class ShieldModule
+{
+public:
+   ShieldModule();
+    virtual ~ShieldModule();
+
+public:
+   // Read stream at Configfile to pick-up parameters of detector (Position,...)
+   virtual void ReadConfiguration(string Path) = 0;
+
+   // Construct detector and inialise sensitive part.
+   virtual void ConstructDetector(G4LogicalVolume* world) = 0;
+
+   // Read sensitive part of a the ParisModule detector and fill the Root tree.
+   virtual void ReadSensitive(const G4Event* event) = 0;
+
+   // Add Detector branch to the ROOT output tree
+   virtual void InitializeRootOutput();
+
+   // Initialize all scorers necessary for each detector
+   virtual void InitializeScorers() = 0;
+
+   // Give the static TInteractionCoordinates from VDetector to the classes
+   // deriving from ParisModule
+   // This is mandatory since the Paris*** does not derive from VDetector
+   virtual void SetInterCoordPointer(TInteractionCoordinates* interCoord) = 0;
+   virtual TInteractionCoordinates* GetInterCoordPointer() = 0;
+
+   // Initialize the Index map for the different modules of Paris
+   void InitializeIndex();
+
+public:
+   TShieldData*		GetEventPointer() 	{return ms_Event;};
+
+protected:
+   // Class to store the result of simulation
+   static TShieldData*		ms_Event;
+
+   // Set to true if you want to see Telescope Frame in your visualisation
+   bool              m_non_sensitive_part_visiualisation;
+
+protected:
+   // First stage Associate Scorer
+   G4MultiFunctionalDetector* m_CsIShieldScorer;
+
+
+protected:
+   map<string, int> m_index;
+};
+
+#endif
diff --git a/NPSimulation/include/ShieldPhParis.hh b/NPSimulation/include/ShieldPhParis.hh
new file mode 100644
index 000000000..36ba8e5a2
--- /dev/null
+++ b/NPSimulation/include/ShieldPhParis.hh
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * 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:  M. Labiche  contact address: marc.labiche@atfc.ac.uk    *
+ *                                                                           *
+ * Creation Date  : 15/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define the shield around a PARIS phoswich module              *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef ShieldPhParis_h
+#define ShieldPhParis_h 1
+
+// C++ headers
+#include <vector>
+
+// NPTool header
+//#include "ParisModule.hh"
+#include "ShieldModule.hh"
+#include "TInteractionCoordinates.h"
+
+using namespace std;
+
+
+
+class ShieldPhParis : public ShieldModule
+{
+   ////////////////////////////////////////////////////
+   /////// Default Constructor and Destructor /////////
+   ////////////////////////////////////////////////////
+public:
+   ShieldPhParis();
+   virtual ~ShieldPhParis();
+
+   ////////////////////////////////////////////////////
+   //////// Specific Function of this Class ///////////
+   ////////////////////////////////////////////////////
+public:
+   // By Position Method
+   void AddModule(G4ThreeVector TL,
+                  G4ThreeVector BL,
+                  G4ThreeVector BR,
+                  G4ThreeVector CT);
+
+   // By Angle Method
+   void AddModule(G4double R,
+                  G4double Theta,
+                  G4double Phi,
+                  G4double beta_u,
+                  G4double beta_v,
+                  G4double beta_w); 
+
+   // Effectively construct Volume
+   // Avoid to have two time same code for Angle and Point definition
+   void VolumeMaker(G4int             DetecNumber,
+                    G4ThreeVector     MMpos,
+                    G4RotationMatrix* MMrot,
+                    G4LogicalVolume*  world);
+
+
+   ///////////////////////////////////////////
+   ////  Inherite from ParisModule class /////
+   ///////////////////////////////////////////
+public:
+   // Read stream at Configfile to pick-up parameters of detector (Position,...)
+   // Called in DetecorConstruction::ReadDetextorConfiguration Method
+   void ReadConfiguration(string Path);
+
+   // Construct detector and inialise sensitive part.
+   // Called After DetecorConstruction::AddDetector Method
+   void ConstructDetector(G4LogicalVolume* world);
+
+   // Add Detector branch to the EventTree.
+   // Called After DetecorConstruction::AddDetector Method
+   void InitializeRootOutput();
+
+   // Initialize all scorers necessary for the detector
+   void InitializeScorers();
+
+   // Read sensitive part and fill the Root tree.
+   // Called at in the EventAction::EndOfEventAvtion
+   void ReadSensitive(const G4Event* event);
+
+   // Give the static TInteractionCoordinates from VDetector to the classes
+   // deriving from ParisModule
+   // This is mandatory since the Paris*** does not derive from VDetector
+   void SetInterCoordPointer(TInteractionCoordinates* interCoord);
+   TInteractionCoordinates* GetInterCoordPointer()	{return ms_InterCoord;};
+
+
+   ////////////////////////////////////////////////////
+   ///////////////Private intern Data//////////////////
+   ////////////////////////////////////////////////////
+private:
+   // Interaction Coordinates coming from VDetector through the 
+   // SetInteractionCoordinatesPointer method
+   TInteractionCoordinates* ms_InterCoord;
+
+   // True if Define by Position, False is Define by angle
+   vector<bool>   m_DefinitionType  ;
+
+   // Used for "By Point Definition"
+   vector<G4ThreeVector>   m_X1_Y1     ; // Top Left Corner Position Vector
+   vector<G4ThreeVector>   m_X1_Y128   ; // Bottom Left Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y1   ; // Bottom Right Corner Position Vector
+   vector<G4ThreeVector>   m_X128_Y128 ; // Center Corner Position Vector
+
+   // Used for "By Angle Definition"
+   vector<G4double>  m_R      ; //  |
+   vector<G4double>  m_Theta  ; //  > Spherical coordinate of Strips Silicium Plate
+   vector<G4double>  m_Phi    ; //  |
+
+   vector<G4double>  m_beta_u ; //  |
+   vector<G4double>  m_beta_v ; //  > Tilt angle of the Telescope
+   vector<G4double>  m_beta_w ; //  |
+
+  G4ThreeVector momentum;
+};
+
+
+
+namespace PARISPHSHIELD
+{
+   // Resolution
+//   const G4double ResoFirstStage  = 0;	// = 50 keV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoFirstStage  = 0.0366;	// = 3% at .662 MeV of Resolution   //   Unit is MeV/2.35
+   const G4double ResoTimeGpd     = 0.212765957;// = 500ps                 //   Unit is  ns/2.35
+
+   // Geometry for the mother volume containing the different layers of your dummy shape module
+  //   const G4double FaceFront          = 16.9*cm;
+  //   const G4double FaceBack           = 16.9*cm;
+
+   const G4double Length             = 15.*cm;
+
+  // central hole for Phoswich  
+  const G4double PhoswichFace       = 5.8*cm; // 5.7+0.1 cm
+
+   // CsI
+  //   const G4double CsIFace      = LaBr3Face;
+  //   const G4double CsIThickness = 15.24*cm;
+
+   // Starting form the LaBr3 and going to the CsI
+  //   const G4double LaBr3Stage_PosZ  = Length* -0.5 + 0.5*LaBr3Thickness;
+  //   const G4double CsIStage_PosZ    = Length* -0.5 + LaBr3Thickness + 0.5*CsIThickness;
+}
+
+#endif
diff --git a/NPSimulation/include/ShieldScorers.hh b/NPSimulation/include/ShieldScorers.hh
new file mode 100644
index 000000000..b61153fa1
--- /dev/null
+++ b/NPSimulation/include/ShieldScorers.hh
@@ -0,0 +1,107 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 26/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class holds all the scorers needed by the                *
+ *             GaspardTracker*** objects.                                    *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#ifndef SHIELDScorer_h
+#define SHIELDScorer_h 1
+
+#include "G4VPrimitiveScorer.hh"
+#include "G4THitsMap.hh"
+
+namespace SHIELDSCORERS
+{
+
+
+class SHIELDScorerCsIDetectorNumber : public G4VPrimitiveScorer
+{
+public: // with description
+   SHIELDScorerCsIDetectorNumber(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~SHIELDScorerCsIDetectorNumber();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4int>* EvtMap;
+};
+
+
+
+class SHIELDScorerCsIEnergy : public G4VPrimitiveScorer
+{
+public: // with description
+   SHIELDScorerCsIEnergy(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~SHIELDScorerCsIEnergy();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4double>* EvtMap;
+};
+
+
+
+class SHIELDScorerCsITOF : public G4VPrimitiveScorer
+{
+public: // with description
+   SHIELDScorerCsITOF(G4String name, G4String volumeName, G4int depth = 0);
+   virtual ~SHIELDScorerCsITOF();
+
+protected: // with description
+   virtual G4bool ProcessHits(G4Step*, G4TouchableHistory*);
+
+public:
+   virtual void Initialize(G4HCofThisEvent*);
+   virtual void EndOfEvent(G4HCofThisEvent*);
+   virtual void Clear();
+   virtual void DrawAll();
+   virtual void PrintAll();
+
+private:
+   G4String m_VolumeName;
+   G4int HCID;
+   G4THitsMap<G4double>* EvtMap;
+};
+
+
+
+}
+
+using namespace SHIELDSCORERS;
+#endif
diff --git a/NPSimulation/src/Chamber.cc b/NPSimulation/src/Chamber.cc
new file mode 100644
index 000000000..da0328ec0
--- /dev/null
+++ b/NPSimulation/src/Chamber.cc
@@ -0,0 +1,255 @@
+/*****************************************************************************
+ * 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: Marc Labiche  contact address: marc.labiche@stfc.ac.uk   *
+ *                                                                           *
+ * Creation Date  : January 2010                                             *
+ * Last update    : 11/03/2010                                               *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class describe standard Chamber. Derived from VDetector*
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+// C++ header
+#include <fstream>
+#include <limits>
+
+// G4 geometry header
+#include "G4Tubs.hh"
+#include "G4Sphere.hh"
+
+//G4 various headers
+#include "G4Material.hh"
+#include "G4MaterialTable.hh"
+#include "G4Element.hh"
+#include "G4ElementTable.hh"
+#include "G4RotationMatrix.hh"
+#include "G4PVPlacement.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VisAttributes.hh"
+#include "G4Colour.hh"
+#include "G4EmCalculator.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "Randomize.hh"
+using namespace CLHEP ;
+// NPTool header
+#include"Chamber.hh"
+
+using namespace std;
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Specific Method of this class
+Chamber::Chamber()
+{
+   m_ChamberType	= true;
+   m_ChamberRmin	= 0   ;
+   m_ChamberRmax	= 0   ;
+   m_ChamberPhiMin	= 0   ;
+   m_ChamberPhiMax	= 0   ;
+   m_ChamberThetaMin	= 0   ;
+   m_ChamberThetaMax	= 0   ;
+}
+
+G4Material* Chamber::GetMaterialFromLibrary(G4String MaterialName, G4double Temperature, G4double Pressure)
+{
+  
+   G4Material* myMaterial;
+   
+ 
+   if (MaterialName == "Alu") {
+  
+      G4Material* myMaterial = new G4Material("Alu", 13, 26.98*g/mole, 2.7*g/cm3);
+    
+      return myMaterial;
+   }
+   if (MaterialName == "Cu") {
+  
+      G4Material* myMaterial = new G4Material("Cu", 29, 63.546*g/mole, 8.96*g/cm3);
+    
+      return myMaterial;
+   }
+   if (MaterialName == "12C") {
+  
+      G4Material* myMaterial = new G4Material("12C", 6, 12.011*g/mole, 2.62*g/cm3);
+    
+      return myMaterial;
+   }
+
+   else {
+      G4cout << "No Matching Material in the Chamber Library Default is Vacuum" << G4endl;
+      G4Element* N = new G4Element("Nitrogen", "N", 7., 14.01*g / mole);
+      G4Element* O = new G4Element("Oxygen"  , "O", 8., 16.00*g / mole);
+      myMaterial = new G4Material("Vacuum", 0.000000001*mg / cm3, 2);
+      myMaterial->AddElement(N, .7);
+      myMaterial->AddElement(O, .3);
+      return(myMaterial);
+   }
+}
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Inherite Method of Vdetector Class
+
+// Read stream at Configfile to pick-up parameters of detector (Position,...)
+// Called in DetecorConstruction::ReadDetextorConfiguration Method
+void Chamber::ReadConfiguration(string Path)
+{
+   ifstream ConfigFile;
+   ConfigFile.open(Path.c_str());
+   string LineBuffer;
+   string DataBuffer;
+	
+   bool ReadingStatusChamber = false ;
+   //   bool ReadingStatusCryoChamber = false ;
+
+   bool check_Rmin = false ;
+   bool check_Rmax = false ;
+   bool check_PhiMin = false ;
+   bool check_PhiMax = false ;
+   bool check_ThetaMin = false ;
+   bool check_ThetaMax = false ;
+   bool check_Material = false ;
+
+   	
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+      if (LineBuffer.compare(0, 8, "Chamber") == 0) {
+         cout << "Chamber Found" << endl;
+         m_ChamberType = true ;
+         ReadingStatusChamber = true ;
+      }
+      /*
+      else if (LineBuffer.compare(0, 10, "CryoChamber") == 0) {
+         cout << "Cryogenic Chamber Found" << endl;
+         m_ChamberType = false ;
+         ReadingStatusCryoChamber = true ;
+      }
+      */
+
+      while (ReadingStatusChamber) {
+         ConfigFile >> DataBuffer;
+	
+      		//Search for comment Symbol %
+      		if (DataBuffer.compare(0, 1, "%") == 0) {	ConfigFile.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );}
+      		
+	        else if (DataBuffer.compare(0, 5, "Rmin=") == 0) {
+	        	check_Rmin = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberRmin = atof(DataBuffer.c_str()) * mm;
+	             cout << "Chamber inner radius: "  << m_ChamberRmin << endl     ;
+	         }
+
+	        else if (DataBuffer.compare(0, 5, "Rmax=") == 0) {
+	        	check_Rmax = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberRmax = atof(DataBuffer.c_str()) * mm;
+	             cout << "Chamber outer radius: "  << m_ChamberRmax << endl     ;
+	         }
+
+	        else if (DataBuffer.compare(0, 8, "PhiMin=") == 0) {
+	        	check_PhiMin = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberPhiMin = atof(DataBuffer.c_str()) * rad;
+	            cout << "Chamber PhiMin: "     <<  m_ChamberPhiMin      << endl     ;
+	         }
+	        else if (DataBuffer.compare(0, 8, "PhiMax=") == 0) {
+	        	check_PhiMax = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberPhiMax = atof(DataBuffer.c_str()) * rad;
+	            cout << "Chamber PhiMax: "     <<  m_ChamberPhiMax      << endl     ;
+	         }
+	        else if (DataBuffer.compare(0, 9, "ThetaMin=") == 0) {
+	        	check_ThetaMin = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberThetaMin = atof(DataBuffer.c_str()) * rad;
+	            cout << "Chamber ThetaMin: "     <<  m_ChamberThetaMin      << endl     ;
+	         }
+	        else if (DataBuffer.compare(0, 9, "ThetaMax=") == 0) {
+	        	check_ThetaMax = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberThetaMax = atof(DataBuffer.c_str()) * rad;
+	            cout << "Chamber ThetaMax: "     <<  m_ChamberThetaMax      << endl     ;
+	         }
+
+	        else if (DataBuffer.compare(0, 9, "MATERIAL=") == 0) {
+	        	check_Material = true ;
+	            ConfigFile >> DataBuffer;
+	            m_ChamberMaterial = GetMaterialFromLibrary(DataBuffer);
+	            cout << "Chamber Material: "      << m_ChamberMaterial  << endl  ;
+	         }
+
+	        ///////////////////////////////////////////////////
+			//	If no Beam Token and no comment, toggle out
+	         else 
+	         	{ReadingStatusChamber = false; G4cout << "WARNING : Wrong Token Sequence: Getting out " << G4endl ;}
+	         
+	        ///////////////////////////////////////////////////
+			//	If all Token found toggle out
+	         if( check_Rmin && check_Rmax && check_Material && check_PhiMin && check_PhiMax && check_ThetaMin && check_ThetaMax )
+	         	ReadingStatusChamber = false ;	
+
+		}				
+      
+      
+	      
+   }
+
+
+}
+
+// Construct detector and inialise sensitive part.
+// Called After DetecorConstruction::AddDetector Method
+void Chamber::ConstructDetector(G4LogicalVolume* world)
+{
+
+// Little trick to avoid warning in compilation: Use a PVPlacement "buffer".
+// If don't you will have a Warning unused variable 'myPVP'
+   G4VPhysicalVolume* PVPBuffer ;
+
+   if (m_ChamberType) {	// case of standard Chamber
+
+	 G4Sphere* solidChamber
+	   = new G4Sphere("solidChamber", m_ChamberRmin, m_ChamberRmax, m_ChamberPhiMin, m_ChamberPhiMax, m_ChamberThetaMin, m_ChamberThetaMax );
+
+	 G4LogicalVolume* logicChamber = new G4LogicalVolume(solidChamber, m_ChamberMaterial, "logicChamber");
+
+         // rotation of target
+         //G4RotationMatrix *rotation = new G4RotationMatrix();
+         //rotation->rotateY(m_ChamberAngle);
+
+         PVPBuffer =
+            new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), logicChamber, "Chamber", world, false, 0);
+
+         G4VisAttributes* ChamberVisAtt = new G4VisAttributes(G4Colour(0., 1., 1.));
+         logicChamber->SetVisAttributes(ChamberVisAtt);
+	 //  }
+   }
+
+   else {	// case of cryogenic target
+   }
+
+}
+
+// Add Detector branch to the EventTree.
+// Called After DetecorConstruction::AddDetector Method
+void Chamber::InitializeRootOutput()
+{}
+
+// Read sensitive part and fill the Root tree.
+// Called at in the EventAction::EndOfEventAvtion
+void Chamber::ReadSensitive(const G4Event*)
+{}
+	
diff --git a/NPSimulation/src/DetectorConstruction.cc b/NPSimulation/src/DetectorConstruction.cc
index 8ecc581bb..07b02e0b8 100644
--- a/NPSimulation/src/DetectorConstruction.cc
+++ b/NPSimulation/src/DetectorConstruction.cc
@@ -9,7 +9,7 @@
  * Original Author: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
  *                                                                           *
  * Creation Date  : January 2009                                             *
- * Last update    :                                                          *
+ * Last update    : 26/08/2010  (M. Labiche)                                 *
  *---------------------------------------------------------------------------*
  * Decription:                                                               *
  *  This Class manage the virtual detector and call their method.            *
@@ -18,14 +18,17 @@
  *  token.                                                                   *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
- *                                                                           *
- *                                                                           *
+ *    25/08/10: Added Shield around PARIS   (marc.labiche@stfc.ac.uk)        *
+ *    15/01/10: Added Chamber (marc.labiche@stfc.ac.uk)                      *
+ *    04/12/09: Added PARIS detector (marc.labiche@stfc.ac.uk)               *
  *****************************************************************************/
+
 #include "DetectorConstruction.hh"
 
 #include "G4Material.hh"
 #include "G4Box.hh"
 #include "G4Tubs.hh"
+#include "G4Sphere.hh"
 #include "G4LogicalVolume.hh"
 #include "G4ThreeVector.hh"
 #include "G4PVPlacement.hh"
@@ -42,9 +45,11 @@
 #include "GaspardTracker.hh"
 #include "AnnularS1.hh"
 #include "Target.hh"
+#include "Chamber.hh"
 #include "ThinSi.hh"
 #include "Plastic.hh"
 #include "Paris.hh"
+#include "Shield.hh"
 
 //Not G4
 #include <cstdlib>
@@ -55,12 +60,14 @@ DetectorConstruction::DetectorConstruction()
       :  world_log(0), world_phys(0)
 {
    m_Target	= 0;
+   m_Chamber	= 0;
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 DetectorConstruction::~DetectorConstruction()
 {
    delete m_Target;
+   delete m_Chamber;
 }
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -95,11 +102,36 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
 
    world_phys = new G4PVPlacement(0, G4ThreeVector(), world_log, "world", 0, false, 0);
 
-   G4VisAttributes* VisAtt = new G4VisAttributes(G4Colour(0.2, 0.2, 0.2));
+   //   G4VisAttributes* VisAtt = new G4VisAttributes(G4Colour(0.2, 0.2, 0.2));
+   G4VisAttributes* VisAtt = new G4VisAttributes(G4VisAttributes::Invisible);
    world_log->SetVisAttributes(VisAtt);
 
    //------------------------------------------------------------------
 
+   //------------------------------Reaction Chamber volume
+   /*
+   G4double Chamber_Rmin = 20.0 * cm;
+   G4double Chamber_Rmax = 20.2 * cm;
+   G4double Chamber_ThetaMin = 0.0 * rad;
+   G4double Chamber_ThetaMax = 3.14 * rad;
+   G4double Chamber_PhiMin = 0.0 * rad;
+   G4double Chamber_PhiMax = 6.26 * rad;
+
+   G4Sphere* Chamber_sphere
+   = new G4Sphere("Chamber_sphere", Chamber_Rmin, Chamber_Rmax, Chamber_PhiMin, Chamber_PhiMax, Chamber_ThetaMin, Chamber_ThetaMax );
+
+   Chamber_log = new G4LogicalVolume(Chamber_sphere, Vacuum, "Chamber_log", 0, 0, 0);
+
+   Chamber_phys = new G4PVPlacement(0, G4ThreeVector(), Chamber_log, "Chamber", world_log, false, 0);
+
+   G4VisAttributes* VisAttChamber = new G4VisAttributes(G4Colour(0.2, 0.2, 0.2));
+   //G4VisAttributes* VisAtt = new G4VisAttributes(G4VisAttributes::Invisible);
+   Chamber_log->SetVisAttributes(VisAttChamber);
+   */
+   //------------------------------------------------------------------
+
+
+
    return world_phys;
 }
 
@@ -128,11 +160,13 @@ void DetectorConstruction::ReadConfigurationFile(string Path)
    bool cMUST2           = false;
    bool cAddThinSi       = false;
    bool cGeneralTarget   = false;
+   bool cGeneralChamber  = false;
    bool cGPDTracker      = false;	// Gaspard Tracker
    bool cS1              = false;
    bool cPlastic         = false;
    bool cDummy           = false;
    bool cParis           = false;	// Paris Calorimeter
+   bool cShield          = false;	// Paris Shield CsI
    //////////////////////////////////////////////////////////////////////////////////////////
    // added by Nicolas [07/05/09]
    string GlobalPath = getenv("NPTOOL");
@@ -193,6 +227,7 @@ void DetectorConstruction::ReadConfigurationFile(string Path)
          AddDetector(myDetector)                            ;
       }
 
+
       ////////////////////////////////////////////
       //////////// Search for paris   ////////////
       ////////////////////////////////////////////
@@ -212,6 +247,25 @@ void DetectorConstruction::ReadConfigurationFile(string Path)
          AddDetector(myDetector)                            ;
       }
 
+      ////////////////////////////////////////////
+      //////////// Search for paris shield   ////////////
+      ////////////////////////////////////////////
+      else if (LineBuffer.compare(0, 6, "Shield") == 0 && cShield == false) {
+         cShield = true ;
+         G4cout << "//////// Shield  ////////" << G4endl   ;
+
+         // Instantiate the new array as a VDetector Object
+         VDetector* myDetector = new Shield()                  ;
+
+         // Read Position of Telescope
+         ConfigFile.close()                                 ;
+         myDetector->ReadConfiguration(Path)                   ;
+         ConfigFile.open(Path.c_str())                      ;
+
+         // Add array to the VDetector Vector
+         AddDetector(myDetector)                            ;
+      }
+
       ////////////////////////////////////////////
       ///// Search for S1 Annular detector  //////
       ////////////////////////////////////////////
@@ -310,6 +364,28 @@ void DetectorConstruction::ReadConfigurationFile(string Path)
          // Add target to the VDetector Vector
          AddDetector(myDetector);
       }
+      ////////////////////////////////////////////
+      //////////// Search for Chamber /////////////
+      ////////////////////////////////////////////
+
+      else if (LineBuffer.compare(0, 14, "GeneralChamber") == 0 && cGeneralChamber == false) {
+         cGeneralChamber = true ;
+         G4cout << "////////// Chamber ///////////" << G4endl   << G4endl   ;
+
+         // Instantiate the new array as a VDetector Objects
+         VDetector* myDetector = new Chamber();
+
+         // Read Position and target specification
+         ConfigFile.close();
+         myDetector->ReadConfiguration(Path);
+         ConfigFile.open(Path.c_str());
+
+         // Add Target to DetectorConstruction
+         m_Chamber = (Chamber*) myDetector;
+
+         // Add target to the VDetector Vector
+         AddDetector(myDetector);
+      }
 
       //Nothing understandable
       //else ;
diff --git a/NPSimulation/src/EventGeneratorIsotropic.cc b/NPSimulation/src/EventGeneratorIsotropic.cc
index b2814747a..df410a427 100644
--- a/NPSimulation/src/EventGeneratorIsotropic.cc
+++ b/NPSimulation/src/EventGeneratorIsotropic.cc
@@ -195,6 +195,7 @@ void EventGeneratorIsotropic::GenerateEvent(G4Event* anEvent, G4ParticleGun* par
    G4double cos_theta_max   = cos(m_HalfOpenAngleMax);
    G4double cos_theta       = cos_theta_min + (cos_theta_max - cos_theta_min) * RandFlat::shoot();
    G4double theta           = acos(cos_theta)                                                   ;
+   //   G4double phi             = 3*pi/2; //RandFlat::shoot() * 2 * pi                                        ;
    G4double phi             = RandFlat::shoot() * 2 * pi                                        ;
    G4double particle_energy = m_EnergyLow + RandFlat::shoot() * (m_EnergyHigh - m_EnergyLow)    ;
 
@@ -229,6 +230,7 @@ void EventGeneratorIsotropic::GenerateEvent(G4Event* anEvent, G4ParticleGun* par
    // Emitted particle energy
    m_InitConditions->SetICEmittedEnergy(particle_energy / MeV);
 
+
    //Shoot particle
    particleGun->GeneratePrimaryVertex(anEvent)                                                    ;
 }
diff --git a/NPSimulation/src/GaspardTrackerDummyShape.cc b/NPSimulation/src/GaspardTrackerDummyShape.cc
index 20b87009b..c04602bd0 100644
--- a/NPSimulation/src/GaspardTrackerDummyShape.cc
+++ b/NPSimulation/src/GaspardTrackerDummyShape.cc
@@ -755,6 +755,10 @@ void GaspardTrackerDummyShape::ReadSensitive(const G4Event* event)
    G4int sizeX = XHitMap->entries();
    G4int sizeY = YHitMap->entries();
 
+
+   //G4cout << "sizeN:" << sizeN << G4endl;
+
+
    if (sizeE != sizeT || sizeT != sizeX || sizeX != sizeY) {
       G4cout << "No match size Si Event Map: sE:"
       << sizeE << " sT:" << sizeT << " sX:" << sizeX << " sY:" << sizeY << endl ;
@@ -766,6 +770,11 @@ void GaspardTrackerDummyShape::ReadSensitive(const G4Event* event)
       G4double N     = *(DetectorNumber_itr->second);
       G4int NTrackID =   DetectorNumber_itr->first - N;
 
+      G4cout <<"N:" <<N << G4endl;
+      G4cout <<"DetectorNumber_itr->first:" << DetectorNumber_itr->first <<  G4endl;
+      G4cout <<"NTrackID:" <<NTrackID << G4endl;
+
+
       if (N > 0) {
          // Fill detector number
          ms_Event->SetGPDTrkFirstStageFrontEDetectorNbr(m_index["DummyShape"] + N);
diff --git a/NPSimulation/src/GeneralScorers.cc b/NPSimulation/src/GeneralScorers.cc
index c22470385..9284d069e 100644
--- a/NPSimulation/src/GeneralScorers.cc
+++ b/NPSimulation/src/GeneralScorers.cc
@@ -54,7 +54,7 @@ int GENERALSCORERS::PickUpDetectorNumber(G4Step* aStep, std::string DetName)
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-		//Detector Number Scorer
+// Detector Number Scorer
 PSDetectorNumber::PSDetectorNumber(G4String name, G4String VolumeName, G4int depth )
       : G4VPrimitiveScorer(name, depth), HCID(-1)
 {
@@ -119,6 +119,8 @@ void PSDetectorNumber::PrintAll()
 
 
 
+
+
 // Energy Scorer (deal with multiple particle hit)
 
 PSEnergy::PSEnergy(G4String name, G4String VolumeName, G4int depth)
diff --git a/NPSimulation/src/Paris.cc b/NPSimulation/src/Paris.cc
index 2145ae213..649b85395 100644
--- a/NPSimulation/src/Paris.cc
+++ b/NPSimulation/src/Paris.cc
@@ -6,7 +6,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche    contact address: marc.labiche@stfc.ac.uk   *
  *                                                                           *
  * Creation Date  : 04/12/09                                                 *
  * Last update    :                                                          *
@@ -28,7 +28,8 @@
 
 // NPTool headers
 #include "Paris.hh"
-#include "ParisPhoswitch.hh"
+#include "ParisPhoswich.hh"
+#include "ParisCluster.hh"
 
 using namespace std;
 
@@ -53,16 +54,17 @@ void Paris::ReadConfiguration(string Path)
    ifstream ConfigFile;
    ConfigFile.open(Path.c_str());
 
-   bool bParisPhoswitch     = false;
+   bool bParisPhoswich     = false;
+   bool bParisCluster     = false;
 
    string LineBuffer;
    while (!ConfigFile.eof()) {
       getline(ConfigFile, LineBuffer);
-      if (LineBuffer.compare(0, 14, "ParisPhoswitch") == 0  &&  bParisPhoswitch == false) {
-         bParisPhoswitch = true;
+      if (LineBuffer.compare(0, 14, "ParisPhoswich") == 0  &&  bParisPhoswich == false) {
+         bParisPhoswich = true;
 
          // instantiate a new "detector" corresponding to the Square elements
-         ParisModule* myDetector = new ParisPhoswitch();
+         ParisModule* myDetector = new ParisPhoswich();
 
          // read part of the configuration file corresponding to square elements
          ConfigFile.close();
@@ -72,14 +74,14 @@ void Paris::ReadConfiguration(string Path)
          // ms_InterCoord comes from VDetector
          myDetector->SetInterCoordPointer(ms_InterCoord);
 
-         // store ParisSquare "detector"
+         // store ParisPhoswich "detector"
          m_Modules.push_back(myDetector);
       }
-/*      else if (LineBuffer.compare(0, 12, "GPDTrapezoid") == 0  &&  GPDTrkTrapezoid == false) {
-         GPDTrkTrapezoid = true;
+      else if (LineBuffer.compare(0, 12, "ParisCluster") == 0  &&  bParisCluster == false) {
+         bParisCluster = true;
 
          // instantiate a new "detector" corresponding to the Trapezoid elements
-         ParisModule* myDetector = new ParisTrapezoid();
+         ParisModule* myDetector = new ParisCluster();
 
          // read part of the configuration file corresponding to trapezoid elements
          ConfigFile.close();
@@ -89,16 +91,17 @@ void Paris::ReadConfiguration(string Path)
          // ms_InterCoord comes from VDetector
          myDetector->SetInterCoordPointer(ms_InterCoord);
 
-         // store ParisTrapezoid "detector"
+         // store ParisCluster "detector"
          m_Modules.push_back(myDetector);
-      }*/
+      }
+
    }
 }
 
 
 
 // Construct detector and initialize sensitive part.
-// Called After DetecorConstruction::AddDetector Method
+// Called After DetectorConstruction::AddDetector Method
 void Paris::ConstructDetector(G4LogicalVolume* world)
 {
    // loop on sub-detectors belonging to Paris
diff --git a/NPSimulation/src/ParisCluster.cc b/NPSimulation/src/ParisCluster.cc
new file mode 100644
index 000000000..464b611fe
--- /dev/null
+++ b/NPSimulation/src/ParisCluster.cc
@@ -0,0 +1,1084 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define a cluster of 9 phoswitch modules for the Paris detector*
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+
+// C++ headers
+#include <sstream>
+#include <string>
+#include <cmath>
+
+// G4 Geometry headers
+#include "G4Trd.hh"
+#include "G4Box.hh"
+#include "G4Trap.hh"
+
+// G4 various headers
+#include "G4MaterialTable.hh"
+#include "G4Element.hh"
+#include "G4ElementTable.hh"
+#include "G4VisAttributes.hh"
+#include "G4Colour.hh"
+#include "G4RotationMatrix.hh"
+#include "G4Transform3D.hh"
+#include "G4PVPlacement.hh"
+#include "G4PVDivision.hh"
+
+// G4 sensitive
+#include "G4SDManager.hh"
+#include "G4MultiFunctionalDetector.hh"
+
+// NPTool headers
+#include "ParisCluster.hh"
+#include "ParisScorers.hh"
+#include "GeneralScorers.hh"
+#include "RootOutput.h"
+
+// CLHEP
+#include "CLHEP/Random/RandGauss.h"
+
+using namespace std;
+using namespace CLHEP;
+using namespace PARISCLUSTER;
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ParisCluster::ParisCluster()
+{
+   ms_InterCoord = 0;
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ParisCluster::~ParisCluster()
+{
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisCluster::AddModule(G4ThreeVector X1_Y1,
+                               G4ThreeVector X128_Y1,
+                               G4ThreeVector X1_Y128,
+                               G4ThreeVector X128_Y128)
+{
+   m_DefinitionType.push_back(true);
+
+   m_X1_Y1.push_back(X1_Y1);
+   m_X128_Y1.push_back(X128_Y1);
+   m_X1_Y128.push_back(X1_Y128);
+   m_X128_Y128.push_back(X128_Y128);
+
+   m_R.push_back(0);
+   m_Theta.push_back(0);
+   m_Phi.push_back(0);
+   m_beta_u.push_back(0);
+   m_beta_v.push_back(0);
+   m_beta_w.push_back(0);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisCluster::AddModule(G4double R,
+                               G4double Theta,
+                               G4double Phi,
+                               G4double beta_u,
+                               G4double beta_v,
+                               G4double beta_w) 
+{
+   G4ThreeVector empty = G4ThreeVector(0, 0, 0);
+
+   m_DefinitionType.push_back(false);
+
+   m_X1_Y1.push_back(empty);
+   m_X128_Y1.push_back(empty);
+   m_X1_Y128.push_back(empty);
+   m_X128_Y128.push_back(empty);
+
+   m_R.push_back(R);
+   m_Theta.push_back(Theta);
+   m_Phi.push_back(Phi);
+   m_beta_u.push_back(beta_u);
+   m_beta_v.push_back(beta_v);
+   m_beta_w.push_back(beta_w);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisCluster::VolumeMaker(G4int             DetecNumber,
+                                 G4ThreeVector     MMpos,
+                                 G4RotationMatrix* MMrot,
+                                 G4LogicalVolume*  world)
+{
+   G4double NbrTelescopes = DetecNumber;
+   G4String DetectorNumber;
+   ostringstream Number;
+   Number << NbrTelescopes;
+   DetectorNumber = Number.str();
+
+   /////////////////////////////////////////////////////////////////
+   /////////////////Element  Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   G4String symbol, name;
+   G4double density = 0. , a = 0, z = 0;
+   G4int ncomponents = 0;
+   G4int nel = 0, natoms = 0;
+
+   ////////////////////////////////////////////////////////////////
+   /////////////////Material Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   a=137.327*g/mole;
+   G4Element* Ba = new G4Element(name="Barium",symbol="Ba",z=56.,a);
+   a=18.9984032*g/mole;
+   G4Element* F = new G4Element(name="Fluorine",symbol="F",z=9.,a);
+   a=22.99*g/mole;
+   G4Element* Na = new G4Element(name="Sodium",symbol="Na",z=11.,a);
+   a=79.904*g/mole;
+   G4Element* Br = new G4Element(name="Bromine",symbol="Br",z=35.,a);
+   a=126.90477*g/mole;
+   G4Element* I  = new G4Element(name="Iodine",symbol="I",z=53.,a);
+   a=132.90545*g/mole;
+   G4Element* Cs = new G4Element(name="Cesium",symbol="Cs",z=55.,a);
+   a=138.9055*g/mole;
+   G4Element* La = new G4Element(name="Lanthanum",symbol="La",z=57.,a);
+
+   //  Vacuum
+   G4Element* N   = new G4Element("Nitrogen" , symbol = "N"  , z = 7  , a = 14.01  * g / mole);
+   G4Element* O   = new G4Element("Oxigen"   , symbol = "O"  , z = 8  , a = 16.00  * g / mole);
+
+   density = 0.000000001 * mg / cm3;
+   G4Material* Vacuum = new G4Material("Vacuum", density, ncomponents = 2);
+   Vacuum->AddElement(N, .7);
+   Vacuum->AddElement(O, .3);
+
+   // NaI
+   density = 3.67*g/cm3, nel = 2; 
+   G4Material* NaI = new G4Material(name="NaI",density,nel);
+   NaI->AddElement(Na, natoms = 1);
+   NaI->AddElement(I,  natoms = 1);
+
+   // CsI
+   density  = 4.51*g/cm3, nel = 2; 
+   G4Material* CsI = new G4Material(name="CsI", density, nel);
+   CsI->AddElement(Cs, natoms = 1);
+   CsI->AddElement(I,  natoms = 1);
+
+   // LaBr3
+   density = 5.29*g/cm3, nel = 2; 
+   G4Material* LaBr3 = new G4Material(name="LaBr3",density,nel);
+   LaBr3->AddElement(La, natoms = 1);
+   LaBr3->AddElement(Br, natoms = 3);
+
+   // BaF2
+   density = 4.89*g/cm3, nel = 2;
+   G4Material* BaF2 = new G4Material(name="BaF2", density, nel);
+   BaF2->AddElement(Ba, natoms = 1);
+   BaF2->AddElement(F,  natoms = 2);
+
+   ////////////////////////////////////////////////////////////////
+   ////////////// Starting Volume Definition //////////////////////
+   ////////////////////////////////////////////////////////////////
+   // Little trick to avoid warning in compilation: Use a PVPlacement "buffer".
+   // If don't you will have a Warning unused variable 'myPVP'
+   G4PVPlacement* PVPBuffer;
+   G4String Name = "ParisCluster" + DetectorNumber ;
+
+   // Mother Volume
+   G4Box*           solidParisCluster = new G4Box(Name, 0.5*FaceFront, 0.5*FaceFront, 0.5*Length);
+   G4LogicalVolume* logicParisCluster = new G4LogicalVolume(solidParisCluster, Vacuum, Name, 0, 0, 0);
+
+   PVPBuffer     = new G4PVPlacement(G4Transform3D(*MMrot, MMpos) ,
+                                     logicParisCluster           ,
+                                     Name                         ,
+                                     world                        ,
+                                     false                        ,
+                                     0);
+
+   logicParisCluster->SetVisAttributes(G4VisAttributes::Invisible);
+   if (m_non_sensitive_part_visiualisation) logicParisCluster->SetVisAttributes(G4VisAttributes(G4Colour(0.90, 0.90, 0.90)));
+
+   // Phoswich construction
+
+   G4ThreeVector  positionPhoSwStage = G4ThreeVector(LaBr3Face+InterSpace, LaBr3Face+InterSpace, 0.);
+   G4Box*           solidPhoSwStage = new G4Box(Name+"_PhoSwStage", 0.5*LaBr3Face, 0.5*LaBr3Face, 0.5*(LaBr3Thickness+CsIThickness));
+   G4LogicalVolume* logicPhoSwStage = new G4LogicalVolume(solidPhoSwStage, LaBr3, "logicPhoSwStage", 0, 0, 0);
+
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 0);
+   
+   positionPhoSwStage = G4ThreeVector(0., LaBr3Face+InterSpace, 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 1);
+
+   positionPhoSwStage = G4ThreeVector(-(LaBr3Face+InterSpace), LaBr3Face+InterSpace, 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 2);
+
+   positionPhoSwStage = G4ThreeVector(LaBr3Face+InterSpace, 0., 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 3);
+
+   positionPhoSwStage = G4ThreeVector(0., 0., 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 4);
+
+   positionPhoSwStage = G4ThreeVector(-(LaBr3Face+InterSpace), 0., 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 5);
+
+   positionPhoSwStage = G4ThreeVector(LaBr3Face+InterSpace, -(LaBr3Face+InterSpace), 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 6);
+
+   positionPhoSwStage = G4ThreeVector(0.,-(LaBr3Face+InterSpace), 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 7);
+
+   positionPhoSwStage = G4ThreeVector(-(LaBr3Face+InterSpace),-(LaBr3Face+InterSpace), 0.);
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionPhoSwStage, 
+                                 logicPhoSwStage, 
+                                 Name+"_PhoSwStage", 
+                                 logicParisCluster, 
+                                 false, 
+                                 8);
+   
+
+   // LaBr3
+   G4ThreeVector  positionLaBr3Stage = G4ThreeVector(0., 0., LaBr3Stage_PosZ);
+
+   G4Box*           solidLaBr3Stage = new G4Box(Name+"_LaBr3Stage", 0.5*LaBr3Face, 0.5*LaBr3Face, 0.5*LaBr3Thickness);
+   G4LogicalVolume* logicLaBr3Stage = new G4LogicalVolume(solidLaBr3Stage, LaBr3, "logicLaBr3Stage", 0, 0, 0);
+
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionLaBr3Stage, 
+                                 logicLaBr3Stage, 
+                                 Name+"_LaBr3Stage", 
+                                 logicPhoSwStage, 
+                                 false, 
+                                 0);
+
+
+
+
+   // Set LaBr3 sensible
+   logicLaBr3Stage->SetSensitiveDetector(m_LaBr3StageScorer);
+
+   // Visualisation of LaBr3Stage Strip
+   G4VisAttributes* LaBr3VisAtt = new G4VisAttributes(G4Colour(0., 0., 1.));
+   logicLaBr3Stage->SetVisAttributes(LaBr3VisAtt);
+
+   // CsI or NaI
+   G4ThreeVector  positionCsIStage = G4ThreeVector(0.,0., CsIStage_PosZ);
+
+   G4Box*           solidCsIStage = new G4Box(Name+"_CsIStage", 0.5*CsIFace, 0.5*CsIFace, 0.5*CsIThickness);
+   //G4LogicalVolume* logicCsIStage = new G4LogicalVolume(solidCsIStage, CsI, "logicCsIStage", 0, 0, 0);
+   G4LogicalVolume* logicCsIStage = new G4LogicalVolume(solidCsIStage, NaI, "logicCsIStage", 0, 0, 0);
+
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionCsIStage, 
+                                 logicCsIStage, 
+                                 Name + "_CsIStage", 
+                                 logicPhoSwStage, 
+                                 false, 
+                                 0);
+
+   // Set CsI sensible
+   logicCsIStage->SetSensitiveDetector(m_CsIStageScorer);
+
+   // Visualisation of CsIStage Strip
+   G4VisAttributes* CsIVisAtt = new G4VisAttributes(G4Colour(1., 0., 0.));
+   logicCsIStage->SetVisAttributes(CsIVisAtt);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Virtual Method of VDetector class
+
+// Read stream at Configfile to pick-up parameters of detector (Position,...)
+// Called in DetecorConstruction::ReadDetextorConfiguration Method
+void ParisCluster::ReadConfiguration(string Path)
+{
+   ifstream ConfigFile;
+   ConfigFile.open(Path.c_str());
+   string LineBuffer, DataBuffer; 
+
+   // A:X1_Y1     --> X:1    Y:1
+   // B:X128_Y1   --> X:128  Y:1
+   // C:X1_Y128   --> X:1    Y:128
+   // D:X128_Y128    --> X:128  Y:128
+
+   G4double Ax , Bx , Cx , Dx , Ay , By , Cy , Dy , Az , Bz , Cz , Dz          ;
+   G4ThreeVector A , B , C , D                                                 ;
+   G4double Theta = 0 , Phi = 0 , R = 0 , beta_u = 0 , beta_v = 0 , beta_w = 0 ;
+
+   bool ReadingStatus = false;
+
+   bool check_A = false;
+   bool check_C = false;
+   bool check_B = false;
+   bool check_D = false;
+
+   bool check_Theta = false;
+   bool check_Phi   = false;
+   bool check_R     = false;
+   bool check_beta  = false;
+   
+   bool checkVis = false;
+
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+      if (LineBuffer.compare(0, 12, "ParisCluster") == 0) {
+         G4cout << "///" << G4endl           ;
+         G4cout << "Cluster element found: " << G4endl   ;
+         ReadingStatus = true ;
+      }
+         
+      while (ReadingStatus) {
+         ConfigFile >> DataBuffer;
+         // Comment Line 
+         if (DataBuffer.compare(0, 1, "%") == 0) {/*do nothing */;}
+	
+         // Position method
+         else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+            check_A = true;
+            ConfigFile >> DataBuffer ;
+            Ax = atof(DataBuffer.c_str()) ;
+            Ax = Ax * mm ;
+            ConfigFile >> DataBuffer ;
+            Ay = atof(DataBuffer.c_str()) ;
+            Ay = Ay * mm ;
+            ConfigFile >> DataBuffer ;
+            Az = atof(DataBuffer.c_str()) ;
+            Az = Az * mm ;
+
+            A = G4ThreeVector(Ax, Ay, Az);
+            cout << "X1 Y1 corner position : " << A << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+            check_B = true;
+            ConfigFile >> DataBuffer ;
+            Bx = atof(DataBuffer.c_str()) ;
+            Bx = Bx * mm ;
+            ConfigFile >> DataBuffer ;
+            By = atof(DataBuffer.c_str()) ;
+            By = By * mm ;
+            ConfigFile >> DataBuffer ;
+            Bz = atof(DataBuffer.c_str()) ;
+            Bz = Bz * mm ;
+
+            B = G4ThreeVector(Bx, By, Bz);
+            cout << "X128 Y1 corner position : " << B << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+            check_C = true;
+            ConfigFile >> DataBuffer ;
+            Cx = atof(DataBuffer.c_str()) ;
+            Cx = Cx * mm ;
+            ConfigFile >> DataBuffer ;
+            Cy = atof(DataBuffer.c_str()) ;
+            Cy = Cy * mm ;
+            ConfigFile >> DataBuffer ;
+            Cz = atof(DataBuffer.c_str()) ;
+            Cz = Cz * mm ;
+
+            C = G4ThreeVector(Cx, Cy, Cz);
+            cout << "X1 Y128 corner position : " << C << endl;
+         }
+         else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+            check_D = true;
+            ConfigFile >> DataBuffer ;
+            Dx = atof(DataBuffer.c_str()) ;
+            Dx = Dx * mm ;
+            ConfigFile >> DataBuffer ;
+            Dy = atof(DataBuffer.c_str()) ;
+            Dy = Dy * mm ;
+            ConfigFile >> DataBuffer ;
+            Dz = atof(DataBuffer.c_str()) ;
+            Dz = Dz * mm ;
+
+            D = G4ThreeVector(Dx, Dy, Dz);
+            cout << "X128 Y128 corner position : " << D << endl;
+         }
+
+         // Angle method
+         else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+            check_Theta = true;
+            ConfigFile >> DataBuffer ;
+            Theta = atof(DataBuffer.c_str()) ;
+            Theta = Theta * deg;
+            cout << "Theta:  " << Theta / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+            check_Phi = true;
+            ConfigFile >> DataBuffer ;
+            Phi = atof(DataBuffer.c_str()) ;
+            Phi = Phi * deg;
+            cout << "Phi:  " << Phi / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 2, "R=") == 0) {
+            check_R = true;
+            ConfigFile >> DataBuffer ;
+            R = atof(DataBuffer.c_str()) ;
+            R = R * mm;
+            cout << "R:  " << R / mm << endl;
+         }
+         else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+            check_beta = true;
+            ConfigFile >> DataBuffer ;
+            beta_u = atof(DataBuffer.c_str()) ;
+            beta_u = beta_u * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_v = atof(DataBuffer.c_str()) ;
+            beta_v = beta_v * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_w = atof(DataBuffer.c_str()) ;
+            beta_w = beta_w * deg   ;
+            G4cout << "Beta:  " << beta_u / deg << " " << beta_v / deg << " " << beta_w / deg << G4endl  ;
+         }
+
+         else if (DataBuffer.compare(0, 4, "VIS=") == 0) {
+            checkVis = true ;
+            ConfigFile >> DataBuffer;
+            if (DataBuffer.compare(0, 3, "all") == 0) m_non_sensitive_part_visiualisation = true;
+         }
+         
+         else G4cout << "WARNING: Wrong Token, ParisCluster: Cluster Element not added" << G4endl;
+
+         // Add The previously define telescope
+         // With position method
+         if ((check_A && check_B && check_C && check_D && checkVis) && 
+             !(check_Theta && check_Phi && check_R)) {
+            ReadingStatus = false;
+	    check_A = false;
+	    check_C = false;
+	    check_B = false;
+	    check_D = false;
+	    checkVis = false;
+
+            AddModule(A, B, C, D);
+         }
+
+         // With angle method
+         if ((check_Theta && check_Phi && check_R && checkVis) && 
+             !(check_A && check_B && check_C && check_D)) {
+            ReadingStatus = false;
+            check_Theta = false;
+   	    check_Phi   = false;
+   	    check_R     = false;
+   	    check_beta  = false;
+	    checkVis = false;
+		     
+            AddModule(R, Theta, Phi, beta_u, beta_v, beta_w);
+         }
+      }
+   }
+}
+
+
+
+// Construct detector and inialise sensitive part.
+// Called After DetecorConstruction::AddDetector Method
+void ParisCluster::ConstructDetector(G4LogicalVolume* world)
+{
+   G4RotationMatrix* MMrot    = NULL                   ;
+   G4ThreeVector     MMpos    = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMu      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMv      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMw      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMCenter = G4ThreeVector(0, 0, 0) ;
+
+   G4int NumberOfTelescope = m_DefinitionType.size() ;
+
+   for (G4int i = 0; i < NumberOfTelescope; i++) {
+      // By Point
+      if (m_DefinitionType[i]) {
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         MMu = m_X128_Y1[i] - m_X1_Y1[i]; 
+         MMu = MMu.unit();
+
+         MMv = m_X1_Y128[i] - m_X1_Y1[i];
+         MMv = MMv.unit();
+
+         G4ThreeVector MMscal = MMu.dot(MMv);
+
+         MMw = MMu.cross(MMv);
+//         if (MMw.z() > 0) MMw = MMv.cross(MMu) ;
+         MMw = MMw.unit();
+
+         MMCenter = (m_X1_Y1[i] + m_X1_Y128[i] + m_X128_Y1[i] + m_X128_Y128[i]) / 4;
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // translation to place Telescope
+         MMpos = MMw * Length * 0.5 + MMCenter;
+      }
+
+      // By Angle
+      else {
+         G4double Theta = m_Theta[i] ;
+         G4double Phi   = m_Phi[i]   ;
+
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         // Phi is angle between X axis and projection in (X,Y) plan
+         // Theta is angle between  position vector and z axis
+         G4double wX = m_R[i] * sin(Theta / rad) * cos(Phi / rad);
+         G4double wY = m_R[i] * sin(Theta / rad) * sin(Phi / rad);
+         G4double wZ = m_R[i] * cos(Theta / rad);
+         MMw = G4ThreeVector(wX, wY, wZ);
+
+         // vector corresponding to the center of the module
+         G4ThreeVector CT = MMw;
+
+         // vector parallel to one axis of silicon plane
+         G4double ii = cos(Theta / rad) * cos(Phi / rad);
+         G4double jj = cos(Theta / rad) * sin(Phi / rad);
+         G4double kk = -sin(Theta / rad);
+         G4ThreeVector Y = G4ThreeVector(ii, jj, kk);
+
+         MMw = MMw.unit();
+         MMu = MMw.cross(Y);
+         MMv = MMw.cross(MMu);
+         MMv = MMv.unit();
+         MMu = MMu.unit();
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // Telescope is rotate of Beta angle around MMv axis.
+         MMrot->rotate(m_beta_u[i], MMu);
+         MMrot->rotate(m_beta_v[i], MMv);
+         MMrot->rotate(m_beta_w[i], MMw);
+         // translation to place Telescope
+         MMpos = MMw * Length * 0.5 + CT ;
+      }
+
+      VolumeMaker(i + 1, MMpos, MMrot, world);
+   }
+
+   delete MMrot ;
+}
+
+
+
+// Connect the ParisData class to the output TTree
+// of the simulation
+void ParisCluster::InitializeRootOutput()
+{
+}
+
+
+
+// Set the TinteractionCoordinates object from VDetector to the present class
+void ParisCluster::SetInterCoordPointer(TInteractionCoordinates* interCoord)
+{
+   ms_InterCoord = interCoord;
+}
+
+
+
+// Read sensitive part and fill the Root tree.
+// Called at in the EventAction::EndOfEventAvtion
+void ParisCluster::ReadSensitive(const G4Event* event)
+{
+   //////////////////////////////////////////////////////////////////////////////////////
+   //////////////////////// Used to Read Event Map of detector //////////////////////////
+   //////////////////////////////////////////////////////////////////////////////////////
+ 
+      momentum = event->GetPrimaryVertex()->GetPrimary()->GetMomentum(); 
+      G4double EGamma = momentum.getR(); // for photon E=p
+      G4double EGammaMin = EGamma-4*ResoFirstStage; 
+      G4double EGammaMax = EGamma+4*ResoFirstStage;
+
+   // First Stage (LaBr3)
+   std::map<G4int, G4int*>::iterator    DetectorNumber_itr;
+   std::map<G4int, G4int*>::iterator    CrystalNumber_itr;
+   std::map<G4int, G4double*>::iterator Energy_itr;
+   std::map<G4int, G4double*>::iterator Time_itr;
+   //std::map<G4int, G4double*>::iterator X_itr;
+   //std::map<G4int, G4double*>::iterator Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_X_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Z_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Theta_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Phi_itr;
+
+   G4THitsMap<G4int>*    DetectorNumberHitMap;
+   G4THitsMap<G4int>*    CrystalNumberHitMap;
+   G4THitsMap<G4double>* EnergyHitMap;
+   G4THitsMap<G4double>* TimeHitMap;
+   //   G4THitsMap<G4double>* XHitMap;
+   //  G4THitsMap<G4double>* YHitMap;
+   //G4THitsMap<G4double>* PosXHitMap;
+   //G4THitsMap<G4double>* PosYHitMap;
+   //G4THitsMap<G4double>* PosZHitMap;
+   //G4THitsMap<G4double>* AngThetaHitMap;
+   //G4THitsMap<G4double>* AngPhiHitMap;
+
+   // NULL pointer are given to avoid warning at compilation
+   // Second Stage (CsI)
+   std::map<G4int, G4int*>::iterator    CsIDetectorNumber_itr;
+   std::map<G4int, G4double*>::iterator CsIStageEnergy_itr ;
+   G4THitsMap<G4int>* CsIDetectorNumberHitMap = NULL      ;
+   G4THitsMap<G4double>* CsIStageEnergyHitMap = NULL      ;
+  
+
+   // Read the Scorer associate to the LaBr
+   //Detector Number
+   G4int StripDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/DetectorNumber")    ;
+   DetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(StripDetCollectionID))         ;
+   DetectorNumber_itr =  DetectorNumberHitMap->GetMap()->begin()                                               ;
+
+   //Crystal Number
+   G4int CrystDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/CrystalNumber")    ;
+   CrystalNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CrystDetCollectionID))         ;
+   CrystalNumber_itr =  CrystalNumberHitMap->GetMap()->begin()                                               ;
+
+   //Energy
+   G4int StripEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/StripEnergy")   ;
+   EnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripEnergyCollectionID))                    ;
+   Energy_itr = EnergyHitMap->GetMap()->begin()                                                          ;
+
+   //Time of Flight
+   G4int StripTimeCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/StripTime")    ;
+   TimeHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripTimeCollectionID))                        ;
+   Time_itr = TimeHitMap->GetMap()->begin()                                                              ;
+
+   /*
+   //Strip Number X
+   G4int StripXCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/StripIDFront")    ;
+   XHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripXCollectionID))                              ;
+   X_itr = XHitMap->GetMap()->begin()                                                                    ;
+
+   //Strip Number Y
+   G4int StripYCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/StripIDBack");
+   YHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripYCollectionID))                              ;
+   Y_itr = YHitMap->GetMap()->begin()                                                                    ;
+   
+
+   //Interaction Coordinate X
+   G4int InterCoordXCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/InterCoordX")    ;
+   PosXHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordXCollectionID))                              ;
+   Pos_X_itr = PosXHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Y
+   G4int InterCoordYCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/InterCoordY")    ;
+   PosYHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordYCollectionID))                              ;
+   Pos_Y_itr = PosYHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Z
+   G4int InterCoordZCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/InterCoordZ")    ;
+   PosZHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordZCollectionID))                              ;
+   Pos_Z_itr = PosXHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Angle Theta
+   G4int InterCoordAngThetaCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/InterCoordAngTheta")    ;
+   AngThetaHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordAngThetaCollectionID))                              ;
+   Ang_Theta_itr = AngThetaHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Angle Phi
+   G4int InterCoordAngPhiCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisCluster/InterCoordAngPhi")    ;
+   AngPhiHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordAngPhiCollectionID))                              ;
+   Ang_Phi_itr = AngPhiHitMap->GetMap()->begin()                                                                    ;
+   */
+
+
+   // Read the Scorer associate to the SecondStage
+   //CsI Detector Number
+   G4int CsIDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIStageScorerParisCluster/CsIDetectorNumber")    ;
+   CsIDetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CsIDetCollectionID))         ;
+   CsIDetectorNumber_itr =  CsIDetectorNumberHitMap->GetMap()->begin()                                               ;
+   //CsI Energy
+   G4int CsIStageEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIStageScorerParisCluster/CsIStageEnergy")   ;
+   CsIStageEnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIStageEnergyCollectionID))                 ;
+   CsIStageEnergy_itr = CsIStageEnergyHitMap->GetMap()->begin()                                                     ;
+
+
+   // Check the size of different map
+   G4int sizeN = DetectorNumberHitMap->entries();  // number of objects hit by trackID=1 (can be the same object hit several time) 
+   G4int sizeC = CrystalNumberHitMap->entries();
+   G4int sizeE = EnergyHitMap->entries();          // = number of steps with edep non null 
+   G4int sizeT = TimeHitMap->entries();
+   //G4int sizeX = PosXHitMap->entries();
+   //G4int sizeY = PosYHitMap->entries();
+   //G4int sizeX = XHitMap->entries();
+   //G4int sizeY = YHitMap->entries();
+
+   G4int sizeNCsI= CsIDetectorNumberHitMap->entries();
+   G4int sizeECsI= CsIStageEnergyHitMap->entries();
+
+   //G4cout <<"SizeN=" << sizeN << endl;
+   //G4cout <<"SizeC=" << sizeC << endl;
+   //G4cout <<"SizeN CsI =" << sizeNCsI << endl;
+   //G4cout <<"SizeE CsI =" << sizeECsI << endl;
+
+   //DetectorNumberHitMap->PrintAllHits();
+
+
+    if (sizeE != sizeT) {
+      G4cout << "No match size PARIS Event Map: sE:"
+      << sizeE << " sT:" << sizeT << endl ;
+
+      //   if (sizeE != sizeX) {
+      //G4cout << "No match size PARIS Event Map: sE:"
+      //<< sizeE << " sT:" << sizeT << " sX:" << sizeX << " sY:" << sizeY << endl ;
+      return;
+     }
+
+
+    //G4cout <<"SizeN=" << sizeN << G4endl;
+
+
+   if(sizeN>0)
+     {
+
+       // Deal with trackID=1:
+       G4int N_first= *(DetectorNumber_itr->second);                  // ID of first det hit
+       G4int NTrackID =   DetectorNumber_itr->first - N_first;           // first trackID dealt with (not always =1)
+       G4double E = *(Energy_itr->second);
+       G4double T = *(Time_itr->second);
+       G4int NCryst= *(CrystalNumber_itr->second);
+
+
+       //G4cout <<"NTrackID=" << NTrackID << G4endl;
+       //G4cout <<"N_first=" << N_first << G4endl;
+       //G4cout <<"CrystalNumber_first=" << NCryst << G4endl;
+       //G4cout <<"Energy first=" << E << G4endl;
+       //G4cout <<"Time first =" << T << G4endl;
+
+
+       if(sizeN>1)
+	 {
+	   Energy_itr++;
+	   Time_itr++;
+	   CrystalNumber_itr++;
+	   DetectorNumber_itr++;
+
+	   for (G4int l = 1; l < sizeN ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int N= *(DetectorNumber_itr->second);            // ID of det hit
+	     NTrackID =   DetectorNumber_itr->first - N;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"N=" << N << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << DetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NTrackID=" << NTrackID << G4endl;
+
+	     if(N==N_first)
+	       {
+		 E += *(Energy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Cluster"] + N_first);
+		       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Cluster"] + N_first);
+		       // Fill Energy
+		       //ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+		       // Fill Time
+		       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));
+
+		     }
+
+		   N_first=N;
+		   E=*(Energy_itr->second);
+
+		 }
+
+
+	     //G4cout <<"Energy=" << E << G4endl;
+	     //G4cout <<"Time =" << T << G4endl;
+       
+	     // Always fill the tree at the end of the loop:
+	   if(l==(sizeN-1) && E!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Cluster"] + N_first);
+	       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Cluster"] + N_first);
+	       // Fill Energy
+	       //ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));	       
+	     }
+
+	     Energy_itr++;
+	     DetectorNumber_itr++;
+	   }
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Cluster"] + N_first);
+	       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Cluster"] + N_first);
+	       // Fill Energy
+	       //ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));
+	       }
+	   }
+	
+ 
+     }
+  
+
+   ///////// For CsI stage:
+   EGammaMin = EGamma-4*ResoSecondStage; 
+   EGammaMax = EGamma+4*ResoSecondStage;
+   if(sizeNCsI>0)
+     {
+       // Deal with trackID=1:
+       G4int NCsI_first= *(CsIDetectorNumber_itr->second);                  // ID of first det hit
+       G4int NCsITrackID =   CsIDetectorNumber_itr->first - NCsI_first;           // first trackID dealt with (not always =1)
+       G4double E_CsI=*(CsIStageEnergy_itr->second);                   // Energy second stage
+
+
+       //G4cout <<"NCsITrackID=" << NCsITrackID << G4endl;
+       //G4cout <<"NCsI_first=" << NCsI_first << G4endl;
+       //G4cout <<"CsI Energy first=" << E_CsI << G4endl;
+
+       if(sizeNCsI>1)
+	 {
+	   CsIDetectorNumber_itr++;
+	   CsIStageEnergy_itr++;
+
+	   for (G4int l = 1; l < sizeNCsI ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int NCsI= *(CsIDetectorNumber_itr->second);            // ID of det hit
+	     NCsITrackID =   CsIDetectorNumber_itr->first - NCsI;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"NCsI=" << NCsI << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << CsIDetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NCsITrackID=" << NCsITrackID << G4endl;
+
+	     if(NCsI==NCsI_first)
+	       {
+		
+		 E_CsI += *(CsIStageEnergy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E_CsI!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Cluster"] + NCsI_first);
+		       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Cluster"] + NCsI_first);
+		       // Fill Energy
+		       // ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+
+		       // Fill Time
+		       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+		     }
+		   
+		    NCsI_first=NCsI;
+		    E_CsI=*(CsIStageEnergy_itr->second);
+		 }
+
+	     //G4cout <<"Energy_CsI=" << E_CsI << G4endl;
+
+	     // Always fill the tree at the end of the loop:
+       
+	   if(l==(sizeNCsI-1) && E_CsI!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Cluster"] + NCsI_first);
+	       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Cluster"] + NCsI_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+	       // Fill Time
+	       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+	       
+	       }
+
+	     CsIStageEnergy_itr++;
+	     CsIDetectorNumber_itr++;
+	   }
+
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E_CsI!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Cluster"] + NCsI_first);
+	       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Cluster"] + NCsI_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+	       // Fill Time
+	       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+	       }
+	   }
+ 
+     }
+  
+
+
+
+      // clear map for next event
+      DetectorNumberHitMap    -> clear();
+      EnergyHitMap            -> clear();
+      TimeHitMap              -> clear();
+      //XHitMap                 -> clear();
+      //YHitMap                 -> clear();
+      //PosXHitMap              -> clear();
+      //PosYHitMap              -> clear();
+      //PosZHitMap              -> clear();
+      //AngThetaHitMap          -> clear();
+      //AngPhiHitMap            -> clear();
+
+      CsIDetectorNumberHitMap    -> clear();
+      CsIStageEnergyHitMap -> clear();
+      //    SecondStageEnergyHitMap -> clear();
+      //    ThirdStageEnergyHitMap  -> clear();
+
+
+}
+
+
+
+void ParisCluster::InitializeScorers()
+{
+   // LaBr3 Associate Scorer
+   m_LaBr3StageScorer = new G4MultiFunctionalDetector("LaBr3StageScorerParisCluster");
+   /**/
+   //   G4VPrimitiveScorer* DetNbr                           = new GENERALSCORERS::PSDetectorNumber("DetectorNumber", "ParisCluster", 0);
+   G4VPrimitiveScorer* DetNbr                           = new PARISScorerLaBr3StageDetectorNumber("DetectorNumber", "ParisCluster", 0);
+   //   G4VPrimitiveScorer* TOF                              = new GENERALSCORERS::PSTOF("StripTime","ParisCluster", 0);
+   G4VPrimitiveScorer* TOF                              = new PARISScorerLaBr3StageTOF("StripTime","ParisCluster", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesX          = new GENERALSCORERS::PSInteractionCoordinatesX("InterCoordX","ParisCluster", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesY          = new GENERALSCORERS::PSInteractionCoordinatesY("InterCoordY","ParisCluster", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesZ          = new GENERALSCORERS::PSInteractionCoordinatesZ("InterCoordZ","ParisCluster", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAngleTheta = new GENERALSCORERS::PSInteractionCoordinatesAngleTheta("InterCoordAngTheta","ParisCluster", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAnglePhi   = new GENERALSCORERS::PSInteractionCoordinatesAnglePhi("InterCoordAngPhi","ParisCluster", 0);
+
+   G4VPrimitiveScorer* Energy                           = new PARISScorerLaBr3StageEnergy("StripEnergy", "ParisCluster", 0);
+   G4VPrimitiveScorer* CrystNbr                         = new PARISScorerLaBr3StageCrystal("CrystalNumber", "ParisCluster", 0);
+
+   //   G4VPrimitiveScorer* StripPositionX                   = new PARIScorerLaBr3StageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips);
+   //  G4VPrimitiveScorer* StripPositionY                   = new PARISScorerLaBr3StageBackStripDummyShape("StripIDBack", 0, NumberOfStrips);
+
+   //and register it to the multifunctionnal detector
+   m_LaBr3StageScorer->RegisterPrimitive(DetNbr);
+   m_LaBr3StageScorer->RegisterPrimitive(CrystNbr);
+   m_LaBr3StageScorer->RegisterPrimitive(Energy);
+   m_LaBr3StageScorer->RegisterPrimitive(TOF);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionX);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesX);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesZ);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAngleTheta);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAnglePhi);
+
+
+
+   /**/
+
+   // Second stage Associate Scorer
+   m_CsIStageScorer = new G4MultiFunctionalDetector("CsIStageScorerParisCluster");
+   /**/
+   G4VPrimitiveScorer* CsIDetNbr                        = new PARISScorerCsIStageDetectorNumber("CsIDetectorNumber", "ParisCluster", 0);
+   G4VPrimitiveScorer* CsIStageEnergy                   = new PARISScorerCsIStageEnergy("CsIStageEnergy", "ParisCluster", 0);
+
+   m_CsIStageScorer->RegisterPrimitive(CsIDetNbr);
+   m_CsIStageScorer->RegisterPrimitive(CsIStageEnergy);
+   /**/
+
+   //  Add All Scorer to the Global Scorer Manager
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_LaBr3StageScorer);
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_CsIStageScorer);
+}
diff --git a/NPSimulation/src/ParisModule.cc b/NPSimulation/src/ParisModule.cc
index f2f92bb4f..a42856357 100644
--- a/NPSimulation/src/ParisModule.cc
+++ b/NPSimulation/src/ParisModule.cc
@@ -6,7 +6,7 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
  *                                                                           *
  * Creation Date  : 04/12/09                                                 *
  * Last update    :                                                          *
@@ -56,5 +56,6 @@ void ParisModule::InitializeRootOutput()
 
 void ParisModule::InitializeIndex()
 {
-   m_index["Phoswitch"]     =    0;
+  m_index["Phoswich"]     =    0;  // 24 phoswish max
+  m_index["Cluster"]     =    100;  // 18 cluster max
 }
diff --git a/NPSimulation/src/ParisPhoswich.cc b/NPSimulation/src/ParisPhoswich.cc
new file mode 100644
index 000000000..cd7a6a4f4
--- /dev/null
+++ b/NPSimulation/src/ParisPhoswich.cc
@@ -0,0 +1,996 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 04/12/09                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define a phoswitch module for the Paris detector.             *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+
+// C++ headers
+#include <sstream>
+#include <string>
+#include <cmath>
+
+// G4 Geometry headers
+#include "G4Trd.hh"
+#include "G4Box.hh"
+#include "G4Trap.hh"
+
+// G4 various headers
+#include "G4MaterialTable.hh"
+#include "G4Element.hh"
+#include "G4ElementTable.hh"
+#include "G4VisAttributes.hh"
+#include "G4Colour.hh"
+#include "G4RotationMatrix.hh"
+#include "G4Transform3D.hh"
+#include "G4PVPlacement.hh"
+#include "G4PVDivision.hh"
+
+// G4 sensitive
+#include "G4SDManager.hh"
+#include "G4MultiFunctionalDetector.hh"
+
+// NPTool headers
+#include "ParisPhoswich.hh"
+#include "GeneralScorers.hh"
+#include "ParisScorers.hh"
+#include "RootOutput.h"
+
+// CLHEP
+#include "CLHEP/Random/RandGauss.h"
+
+using namespace std;
+using namespace CLHEP;
+using namespace PARISPHOSWICH;
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ParisPhoswich::ParisPhoswich()
+{
+   ms_InterCoord = 0;
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ParisPhoswich::~ParisPhoswich()
+{
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisPhoswich::AddModule(G4ThreeVector X1_Y1,
+                               G4ThreeVector X128_Y1,
+                               G4ThreeVector X1_Y128,
+                               G4ThreeVector X128_Y128)
+{
+   m_DefinitionType.push_back(true);
+
+   m_X1_Y1.push_back(X1_Y1);
+   m_X128_Y1.push_back(X128_Y1);
+   m_X1_Y128.push_back(X1_Y128);
+   m_X128_Y128.push_back(X128_Y128);
+
+   m_R.push_back(0);
+   m_Theta.push_back(0);
+   m_Phi.push_back(0);
+   m_beta_u.push_back(0);
+   m_beta_v.push_back(0);
+   m_beta_w.push_back(0);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisPhoswich::AddModule(G4double R,
+                               G4double Theta,
+                               G4double Phi,
+                               G4double beta_u,
+                               G4double beta_v,
+                               G4double beta_w) 
+{
+   G4ThreeVector empty = G4ThreeVector(0, 0, 0);
+
+   m_DefinitionType.push_back(false);
+
+   m_X1_Y1.push_back(empty);
+   m_X128_Y1.push_back(empty);
+   m_X1_Y128.push_back(empty);
+   m_X128_Y128.push_back(empty);
+
+   m_R.push_back(R);
+   m_Theta.push_back(Theta);
+   m_Phi.push_back(Phi);
+   m_beta_u.push_back(beta_u);
+   m_beta_v.push_back(beta_v);
+   m_beta_w.push_back(beta_w);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ParisPhoswich::VolumeMaker(G4int             DetecNumber,
+                                 G4ThreeVector     MMpos,
+                                 G4RotationMatrix* MMrot,
+                                 G4LogicalVolume*  world)
+{
+   G4double NbrTelescopes = DetecNumber;
+   G4String DetectorNumber;
+   ostringstream Number;
+   Number << NbrTelescopes;
+   DetectorNumber = Number.str();
+
+   /////////////////////////////////////////////////////////////////
+   /////////////////Element  Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   G4String symbol, name;
+   G4double density = 0. , a = 0, z = 0;
+   G4int ncomponents = 0;
+   G4int nel = 0, natoms = 0;
+
+   ////////////////////////////////////////////////////////////////
+   /////////////////Material Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   a=137.327*g/mole;
+   G4Element* Ba = new G4Element(name="Barium",symbol="Ba",z=56.,a);
+   a=18.9984032*g/mole;
+   G4Element* F = new G4Element(name="Fluorine",symbol="F",z=9.,a);
+   a=22.99*g/mole;
+   G4Element* Na = new G4Element(name="Sodium",symbol="Na",z=11.,a);
+   a=79.904*g/mole;
+   G4Element* Br = new G4Element(name="Bromine",symbol="Br",z=35.,a);
+   a=126.90477*g/mole;
+   G4Element* I  = new G4Element(name="Iodine",symbol="I",z=53.,a);
+   a=132.90545*g/mole;
+   G4Element* Cs = new G4Element(name="Cesium",symbol="Cs",z=55.,a);
+   a=138.9055*g/mole;
+   G4Element* La = new G4Element(name="Lanthanum",symbol="La",z=57.,a);
+
+   //  Vacuum
+   G4Element* N   = new G4Element("Nitrogen" , symbol = "N"  , z = 7  , a = 14.01  * g / mole);
+   G4Element* O   = new G4Element("Oxigen"   , symbol = "O"  , z = 8  , a = 16.00  * g / mole);
+
+   density = 0.000000001 * mg / cm3;
+   G4Material* Vacuum = new G4Material("Vacuum", density, ncomponents = 2);
+   Vacuum->AddElement(N, .7);
+   Vacuum->AddElement(O, .3);
+
+   // NaI
+   density = 3.67*g/cm3, nel = 2; 
+   G4Material* NaI = new G4Material(name="NaI",density,nel);
+   NaI->AddElement(Na, natoms = 1);
+   NaI->AddElement(I,  natoms = 1);
+
+   // CsI
+   density  = 4.51*g/cm3, nel = 2; 
+   G4Material* CsI = new G4Material(name="CsI", density, nel);
+   CsI->AddElement(Cs, natoms = 1);
+   CsI->AddElement(I,  natoms = 1);
+
+   // LaBr3
+   density = 5.29*g/cm3, nel = 2; 
+   G4Material* LaBr3 = new G4Material(name="LaBr3",density,nel);
+   LaBr3->AddElement(La, natoms = 1);
+   LaBr3->AddElement(Br, natoms = 3);
+
+   // BaF2
+   density = 4.89*g/cm3, nel = 2;
+   G4Material* BaF2 = new G4Material(name="BaF2", density, nel);
+   BaF2->AddElement(Ba, natoms = 1);
+   BaF2->AddElement(F,  natoms = 2);
+
+   ////////////////////////////////////////////////////////////////
+   ////////////// Starting Volume Definition //////////////////////
+   ////////////////////////////////////////////////////////////////
+   // Little trick to avoid warning in compilation: Use a PVPlacement "buffer".
+   // If don't you will have a Warning unused variable 'myPVP'
+   G4PVPlacement* PVPBuffer;
+   G4String Name = "ParisPhoswich" + DetectorNumber ;
+
+   // Mother Volume
+   G4Box*           solidParisPhoswich = new G4Box(Name, 0.5*FaceFront, 0.5*FaceFront, 0.5*Length);
+   G4LogicalVolume* logicParisPhoswich = new G4LogicalVolume(solidParisPhoswich, Vacuum, Name, 0, 0, 0);
+
+   PVPBuffer     = new G4PVPlacement(G4Transform3D(*MMrot, MMpos) ,
+                                     logicParisPhoswich           ,
+                                     Name                         ,
+                                     world                        ,
+                                     false                        ,
+                                     0);
+
+   logicParisPhoswich->SetVisAttributes(G4VisAttributes::Invisible);
+   if (m_non_sensitive_part_visiualisation) logicParisPhoswich->SetVisAttributes(G4VisAttributes(G4Colour(0.90, 0.90, 0.90)));
+
+   // Phoswich construction
+   // LaBr3
+   G4ThreeVector  positionLaBr3Stage = G4ThreeVector(0, 0, LaBr3Stage_PosZ);
+
+   G4Box*           solidLaBr3Stage = new G4Box("solidLaBr3Stage", 0.5*LaBr3Face, 0.5*LaBr3Face, 0.5*LaBr3Thickness);
+   G4LogicalVolume* logicLaBr3Stage = new G4LogicalVolume(solidLaBr3Stage, LaBr3, "logicLaBr3Stage", 0, 0, 0);
+
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionLaBr3Stage, 
+                                 logicLaBr3Stage, 
+                                 Name + "_LaBr3Stage", 
+                                 logicParisPhoswich, 
+                                 false, 
+                                 0);
+
+   // Set LaBr3 sensible
+   logicLaBr3Stage->SetSensitiveDetector(m_LaBr3StageScorer);
+
+   // Visualisation of LaBr3Stage Strip
+   G4VisAttributes* LaBr3VisAtt = new G4VisAttributes(G4Colour(0., 0., 1.));
+   logicLaBr3Stage->SetVisAttributes(LaBr3VisAtt);
+
+   // CsI or NaI
+   G4ThreeVector  positionCsIStage = G4ThreeVector(0, 0, CsIStage_PosZ);
+
+   G4Box*           solidCsIStage = new G4Box("solidCsIStage", 0.5*CsIFace, 0.5*CsIFace, 0.5*CsIThickness);
+   //G4LogicalVolume* logicCsIStage = new G4LogicalVolume(solidCsIStage, CsI, "logicCsIStage", 0, 0, 0);
+   G4LogicalVolume* logicCsIStage = new G4LogicalVolume(solidCsIStage, NaI, "logicCsIStage", 0, 0, 0);
+
+   PVPBuffer = new G4PVPlacement(0, 
+                                 positionCsIStage, 
+                                 logicCsIStage, 
+                                 Name + "_CsIStage", 
+                                 logicParisPhoswich, 
+                                 false, 
+                                 0);
+
+   // Set CsI sensible
+   logicCsIStage->SetSensitiveDetector(m_CsIStageScorer);
+
+   // Visualisation of CsIStage Strip
+   G4VisAttributes* CsIVisAtt = new G4VisAttributes(G4Colour(1., 0., 0.));
+   logicCsIStage->SetVisAttributes(CsIVisAtt);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Virtual Method of VDetector class
+
+// Read stream at Configfile to pick-up parameters of detector (Position,...)
+// Called in DetecorConstruction::ReadDetextorConfiguration Method
+void ParisPhoswich::ReadConfiguration(string Path)
+{
+   ifstream ConfigFile;
+   ConfigFile.open(Path.c_str());
+   string LineBuffer, DataBuffer; 
+
+   // A:X1_Y1     --> X:1    Y:1
+   // B:X128_Y1   --> X:128  Y:1
+   // C:X1_Y128   --> X:1    Y:128
+   // D:X128_Y128    --> X:128  Y:128
+
+   G4double Ax , Bx , Cx , Dx , Ay , By , Cy , Dy , Az , Bz , Cz , Dz          ;
+   G4ThreeVector A , B , C , D                                                 ;
+   G4double Theta = 0 , Phi = 0 , R = 0 , beta_u = 0 , beta_v = 0 , beta_w = 0 ;
+
+   bool ReadingStatus = false;
+
+   bool check_A = false;
+   bool check_C = false;
+   bool check_B = false;
+   bool check_D = false;
+
+   bool check_Theta = false;
+   bool check_Phi   = false;
+   bool check_R     = false;
+   bool check_beta  = false;
+   
+   bool checkVis = false;
+
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+      if (LineBuffer.compare(0, 14, "ParisPhoswich") == 0) {
+         G4cout << "///" << G4endl           ;
+         G4cout << "Phoswich element found: " << G4endl   ;
+         ReadingStatus = true ;
+      }
+         
+      while (ReadingStatus) {
+         ConfigFile >> DataBuffer;
+         // Comment Line 
+         if (DataBuffer.compare(0, 1, "%") == 0) {/*do nothing */;}
+	
+         // Position method
+         else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+            check_A = true;
+            ConfigFile >> DataBuffer ;
+            Ax = atof(DataBuffer.c_str()) ;
+            Ax = Ax * mm ;
+            ConfigFile >> DataBuffer ;
+            Ay = atof(DataBuffer.c_str()) ;
+            Ay = Ay * mm ;
+            ConfigFile >> DataBuffer ;
+            Az = atof(DataBuffer.c_str()) ;
+            Az = Az * mm ;
+
+            A = G4ThreeVector(Ax, Ay, Az);
+            cout << "X1 Y1 corner position : " << A << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+            check_B = true;
+            ConfigFile >> DataBuffer ;
+            Bx = atof(DataBuffer.c_str()) ;
+            Bx = Bx * mm ;
+            ConfigFile >> DataBuffer ;
+            By = atof(DataBuffer.c_str()) ;
+            By = By * mm ;
+            ConfigFile >> DataBuffer ;
+            Bz = atof(DataBuffer.c_str()) ;
+            Bz = Bz * mm ;
+
+            B = G4ThreeVector(Bx, By, Bz);
+            cout << "X128 Y1 corner position : " << B << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+            check_C = true;
+            ConfigFile >> DataBuffer ;
+            Cx = atof(DataBuffer.c_str()) ;
+            Cx = Cx * mm ;
+            ConfigFile >> DataBuffer ;
+            Cy = atof(DataBuffer.c_str()) ;
+            Cy = Cy * mm ;
+            ConfigFile >> DataBuffer ;
+            Cz = atof(DataBuffer.c_str()) ;
+            Cz = Cz * mm ;
+
+            C = G4ThreeVector(Cx, Cy, Cz);
+            cout << "X1 Y128 corner position : " << C << endl;
+         }
+         else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+            check_D = true;
+            ConfigFile >> DataBuffer ;
+            Dx = atof(DataBuffer.c_str()) ;
+            Dx = Dx * mm ;
+            ConfigFile >> DataBuffer ;
+            Dy = atof(DataBuffer.c_str()) ;
+            Dy = Dy * mm ;
+            ConfigFile >> DataBuffer ;
+            Dz = atof(DataBuffer.c_str()) ;
+            Dz = Dz * mm ;
+
+            D = G4ThreeVector(Dx, Dy, Dz);
+            cout << "X128 Y128 corner position : " << D << endl;
+         }
+
+         // Angle method
+         else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+            check_Theta = true;
+            ConfigFile >> DataBuffer ;
+            Theta = atof(DataBuffer.c_str()) ;
+            Theta = Theta * deg;
+            cout << "Theta:  " << Theta / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+            check_Phi = true;
+            ConfigFile >> DataBuffer ;
+            Phi = atof(DataBuffer.c_str()) ;
+            Phi = Phi * deg;
+            cout << "Phi:  " << Phi / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 2, "R=") == 0) {
+            check_R = true;
+            ConfigFile >> DataBuffer ;
+            R = atof(DataBuffer.c_str()) ;
+            R = R * mm;
+            cout << "R:  " << R / mm << endl;
+         }
+         else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+            check_beta = true;
+            ConfigFile >> DataBuffer ;
+            beta_u = atof(DataBuffer.c_str()) ;
+            beta_u = beta_u * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_v = atof(DataBuffer.c_str()) ;
+            beta_v = beta_v * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_w = atof(DataBuffer.c_str()) ;
+            beta_w = beta_w * deg   ;
+            G4cout << "Beta:  " << beta_u / deg << " " << beta_v / deg << " " << beta_w / deg << G4endl  ;
+         }
+
+         else if (DataBuffer.compare(0, 4, "VIS=") == 0) {
+            checkVis = true ;
+            ConfigFile >> DataBuffer;
+            if (DataBuffer.compare(0, 3, "all") == 0) m_non_sensitive_part_visiualisation = true;
+         }
+         
+         else G4cout << "WARNING: Wrong Token, ParisPhoswich: Phoswich Element not added" << G4endl;
+
+         // Add The previously define telescope
+         // With position method
+         if ((check_A && check_B && check_C && check_D && checkVis) && 
+             !(check_Theta && check_Phi && check_R)) {
+            ReadingStatus = false;
+	    check_A = false;
+	    check_C = false;
+	    check_B = false;
+	    check_D = false;
+	    checkVis = false;
+
+            AddModule(A, B, C, D);
+         }
+
+         // With angle method
+         if ((check_Theta && check_Phi && check_R && checkVis) && 
+             !(check_A && check_B && check_C && check_D)) {
+            ReadingStatus = false;
+            check_Theta = false;
+   	    check_Phi   = false;
+   	    check_R     = false;
+   	    check_beta  = false;
+	    checkVis = false;
+		     
+            AddModule(R, Theta, Phi, beta_u, beta_v, beta_w);
+         }
+      }
+   }
+}
+
+
+
+// Construct detector and inialise sensitive part.
+// Called After DetecorConstruction::AddDetector Method
+void ParisPhoswich::ConstructDetector(G4LogicalVolume* world)
+{
+   G4RotationMatrix* MMrot    = NULL                   ;
+   G4ThreeVector     MMpos    = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMu      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMv      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMw      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMCenter = G4ThreeVector(0, 0, 0) ;
+
+   G4int NumberOfTelescope = m_DefinitionType.size() ;
+
+   for (G4int i = 0; i < NumberOfTelescope; i++) {
+      // By Point
+      if (m_DefinitionType[i]) {
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         MMu = m_X128_Y1[i] - m_X1_Y1[i]; 
+         MMu = MMu.unit();
+
+         MMv = m_X1_Y128[i] - m_X1_Y1[i];
+         MMv = MMv.unit();
+
+         G4ThreeVector MMscal = MMu.dot(MMv);
+
+         MMw = MMu.cross(MMv);
+//         if (MMw.z() > 0) MMw = MMv.cross(MMu) ;
+         MMw = MMw.unit();
+
+         MMCenter = (m_X1_Y1[i] + m_X1_Y128[i] + m_X128_Y1[i] + m_X128_Y128[i]) / 4;
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // translation to place Telescope
+         MMpos = MMw * Length * 0.5 + MMCenter;
+      }
+
+      // By Angle
+      else {
+         G4double Theta = m_Theta[i] ;
+         G4double Phi   = m_Phi[i]   ;
+
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         // Phi is angle between X axis and projection in (X,Y) plan
+         // Theta is angle between  position vector and z axis
+         G4double wX = m_R[i] * sin(Theta / rad) * cos(Phi / rad);
+         G4double wY = m_R[i] * sin(Theta / rad) * sin(Phi / rad);
+         G4double wZ = m_R[i] * cos(Theta / rad);
+         MMw = G4ThreeVector(wX, wY, wZ);
+
+         // vector corresponding to the center of the module
+         G4ThreeVector CT = MMw;
+
+         // vector parallel to one axis of silicon plane
+         G4double ii = cos(Theta / rad) * cos(Phi / rad);
+         G4double jj = cos(Theta / rad) * sin(Phi / rad);
+         G4double kk = -sin(Theta / rad);
+         G4ThreeVector Y = G4ThreeVector(ii, jj, kk);
+
+         MMw = MMw.unit();
+         MMu = MMw.cross(Y);
+         MMv = MMw.cross(MMu);
+         MMv = MMv.unit();
+         MMu = MMu.unit();
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // Telescope is rotate of Beta angle around MMv axis.
+         MMrot->rotate(m_beta_u[i], MMu);
+         MMrot->rotate(m_beta_v[i], MMv);
+         MMrot->rotate(m_beta_w[i], MMw);
+         // translation to place Telescope
+         MMpos = MMw * Length * 0.5 + CT ;
+      }
+
+      VolumeMaker(i + 1, MMpos, MMrot, world);
+   }
+
+   delete MMrot ;
+}
+
+
+
+// Connect the ParisData class to the output TTree
+// of the simulation
+void ParisPhoswich::InitializeRootOutput()
+{
+}
+
+
+
+// Set the TinteractionCoordinates object from VDetector to the present class
+void ParisPhoswich::SetInterCoordPointer(TInteractionCoordinates* interCoord)
+{
+   ms_InterCoord = interCoord;
+}
+
+
+
+// Read sensitive part and fill the Root tree.
+// Called at in the EventAction::EndOfEventAvtion
+void ParisPhoswich::ReadSensitive(const G4Event* event)
+{
+   //////////////////////////////////////////////////////////////////////////////////////
+   //////////////////////// Used to Read Event Map of detector //////////////////////////
+   //////////////////////////////////////////////////////////////////////////////////////
+
+      momentum = event->GetPrimaryVertex()->GetPrimary()->GetMomentum(); 
+      G4double EGamma = momentum.getR(); // for photon E=p
+      G4double EGammaMin = EGamma-4*ResoFirstStage; 
+      G4double EGammaMax = EGamma+4*ResoFirstStage;
+ 
+
+   // First Stage (LaBr3)
+   std::map<G4int, G4int*>::iterator    DetectorNumber_itr;
+   std::map<G4int, G4int*>::iterator    CrystalNumber_itr;
+   std::map<G4int, G4double*>::iterator Energy_itr;
+   std::map<G4int, G4double*>::iterator Time_itr;
+   //std::map<G4int, G4double*>::iterator X_itr;
+   //std::map<G4int, G4double*>::iterator Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_X_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Z_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Theta_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Phi_itr;
+
+   G4THitsMap<G4int>*    DetectorNumberHitMap;
+   G4THitsMap<G4int>*    CrystalNumberHitMap;
+   G4THitsMap<G4double>* EnergyHitMap;
+   G4THitsMap<G4double>* TimeHitMap;
+   //   G4THitsMap<G4double>* XHitMap;
+   //  G4THitsMap<G4double>* YHitMap;
+   //G4THitsMap<G4double>* PosXHitMap;
+   //G4THitsMap<G4double>* PosYHitMap;
+   //G4THitsMap<G4double>* PosZHitMap;
+   //G4THitsMap<G4double>* AngThetaHitMap;
+   //G4THitsMap<G4double>* AngPhiHitMap;
+
+   // NULL pointer are given to avoid warning at compilation
+   // Second Stage (CsI)
+   std::map<G4int, G4int*>::iterator    CsIDetectorNumber_itr;
+   std::map<G4int, G4double*>::iterator CsIStageEnergy_itr ;
+   G4THitsMap<G4int>* CsIDetectorNumberHitMap = NULL      ;
+   G4THitsMap<G4double>* CsIStageEnergyHitMap = NULL      ;
+  
+
+   // Read the Scorer associate to the LaBr
+   //Detector Number
+   G4int StripDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/DetectorNumber")    ;
+   DetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(StripDetCollectionID))         ;
+   DetectorNumber_itr =  DetectorNumberHitMap->GetMap()->begin()                                               ;
+
+   //Crystal Number
+   G4int CrystDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/CrystalNumber")    ;
+   CrystalNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CrystDetCollectionID))         ;
+   CrystalNumber_itr =  CrystalNumberHitMap->GetMap()->begin()                                               ;
+
+   //Energy
+   G4int StripEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/StripEnergy")   ;
+   EnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripEnergyCollectionID))                    ;
+   Energy_itr = EnergyHitMap->GetMap()->begin()                                                          ;
+
+   //Time of Flight
+   G4int StripTimeCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/StripTime")    ;
+   TimeHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripTimeCollectionID))                        ;
+   Time_itr = TimeHitMap->GetMap()->begin()                                                              ;
+
+   /*
+   //Strip Number X
+   G4int StripXCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/StripIDFront")    ;
+   XHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripXCollectionID))                              ;
+   X_itr = XHitMap->GetMap()->begin()                                                                    ;
+
+   //Strip Number Y
+   G4int StripYCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/StripIDBack");
+   YHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(StripYCollectionID))                              ;
+   Y_itr = YHitMap->GetMap()->begin()                                                                    ;
+   
+
+   //Interaction Coordinate X
+   G4int InterCoordXCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/InterCoordX")    ;
+   PosXHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordXCollectionID))                              ;
+   Pos_X_itr = PosXHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Y
+   G4int InterCoordYCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/InterCoordY")    ;
+   PosYHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordYCollectionID))                              ;
+   Pos_Y_itr = PosYHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Z
+   G4int InterCoordZCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/InterCoordZ")    ;
+   PosZHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordZCollectionID))                              ;
+   Pos_Z_itr = PosXHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Angle Theta
+   G4int InterCoordAngThetaCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/InterCoordAngTheta")    ;
+   AngThetaHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordAngThetaCollectionID))                              ;
+   Ang_Theta_itr = AngThetaHitMap->GetMap()->begin()                                                                    ;
+
+   //Interaction Coordinate Angle Phi
+   G4int InterCoordAngPhiCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("LaBr3StageScorerParisPhoswich/InterCoordAngPhi")    ;
+   AngPhiHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(InterCoordAngPhiCollectionID))                              ;
+   Ang_Phi_itr = AngPhiHitMap->GetMap()->begin()                                                                    ;
+   */
+
+
+   // Read the Scorer associate to the SecondStage
+   //CsI Detector Number
+   G4int CsIDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIStageScorerParisPhoswich/CsIDetectorNumber")    ;
+   CsIDetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CsIDetCollectionID))         ;
+   CsIDetectorNumber_itr =  CsIDetectorNumberHitMap->GetMap()->begin()                                               ;
+   //CsI Energy
+   G4int CsIStageEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIStageScorerParisPhoswich/CsIStageEnergy")   ;
+   CsIStageEnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIStageEnergyCollectionID))                 ;
+   CsIStageEnergy_itr = CsIStageEnergyHitMap->GetMap()->begin()                                                     ;
+
+
+   // Check the size of different map
+   G4int sizeN = DetectorNumberHitMap->entries();  // number of objects hit by trackID=1 (can be the same object hit several time) 
+   G4int sizeC = CrystalNumberHitMap->entries();
+   G4int sizeE = EnergyHitMap->entries();          // = number of steps with edep non null 
+   G4int sizeT = TimeHitMap->entries();
+   //G4int sizeX = PosXHitMap->entries();
+   //G4int sizeY = PosYHitMap->entries();
+   //G4int sizeX = XHitMap->entries();
+   //G4int sizeY = YHitMap->entries();
+
+   G4int sizeNCsI= CsIDetectorNumberHitMap->entries();
+   G4int sizeECsI= CsIStageEnergyHitMap->entries();
+
+   //G4cout <<"SizeN=" << sizeN << endl;
+   //G4cout <<"SizeC=" << sizeC << endl;
+   //G4cout <<"SizeN CsI =" << sizeNCsI << endl;
+   //G4cout <<"SizeE CsI =" << sizeECsI << endl;
+
+   //DetectorNumberHitMap->PrintAllHits();
+		       
+
+    if (sizeE != sizeT) {
+      G4cout << "No match size PARIS Event Map: sE:"
+      << sizeE << " sT:" << sizeT << endl ;
+
+      //   if (sizeE != sizeX) {
+      //G4cout << "No match size PARIS Event Map: sE:"
+      //<< sizeE << " sT:" << sizeT << " sX:" << sizeX << " sY:" << sizeY << endl ;
+      return;
+     }
+
+
+    //G4cout <<"SizeN=" << sizeN << G4endl;
+
+
+   if(sizeN>0)
+     {
+
+       // Deal with trackID=1:
+       G4int N_first= *(DetectorNumber_itr->second);                  // ID of first det hit
+       G4int NTrackID =   DetectorNumber_itr->first - N_first;           // first trackID dealt with (not always =1)
+       G4double E = *(Energy_itr->second);
+       G4double T = *(Time_itr->second);
+       G4int NCryst= *(CrystalNumber_itr->second);
+
+
+       //G4cout <<"NTrackID=" << NTrackID << G4endl;
+       //G4cout <<"N_first=" << N_first << G4endl;
+       //G4cout <<"CrystalNumber_first=" << NCryst << G4endl;
+       //G4cout <<"Energy first=" << E << G4endl;
+       //G4cout <<"Time first =" << T << G4endl;
+
+
+       if(sizeN>1)
+	 {
+	   Energy_itr++;
+	   Time_itr++;
+	   CrystalNumber_itr++;
+	   DetectorNumber_itr++;
+
+	   for (G4int l = 1; l < sizeN ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int N= *(DetectorNumber_itr->second);            // ID of det hit
+	     NTrackID =   DetectorNumber_itr->first - N;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"N=" << N << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << DetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NTrackID=" << NTrackID << G4endl;
+
+	     if(N==N_first)
+	       {
+		 E += *(Energy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Phoswich"] + N_first);
+		       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Phoswich"] + N_first);
+		       // Fill Energy
+	               // ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+		       // Fill Time
+		       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));
+
+		     }
+
+		   N_first=N;
+		   E=*(Energy_itr->second);
+
+		 }
+
+
+	     //G4cout <<"Energy=" << E << G4endl;
+	     //G4cout <<"Time =" << T << G4endl;
+       
+	     // Always fill the tree at the end of the loop:
+	   if(l==(sizeN-1) && E!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Phoswich"] + N_first);
+	       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Phoswich"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		       E=RandGauss::shoot(E, ResoFirstStage);
+		       ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		       if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));	       
+	     }
+
+	     Energy_itr++;
+	     DetectorNumber_itr++;
+	   }
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISLaBr3StageEDetectorNbr(m_index["Phoswich"] + N_first);
+	       ms_Event->SetPARISLaBr3StageTDetectorNbr(m_index["Phoswich"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISLaBr3StageEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		       E=RandGauss::shoot(E, ResoFirstStage);
+		       ms_Event->SetPARISLaBr3StageEEnergy(E); // Fill the tree
+		       if(E>EGammaMin && E<EGammaMax)ms_Event->SetPARISLaBr3StageEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISLaBr3StageTTime(RandGauss::shoot(T, ResoTimeGpd));
+	       }
+	   }
+	
+ 
+
+     }
+  
+
+   ///////// For CsI stage:
+   EGammaMin = EGamma-4*ResoSecondStage; 
+   EGammaMax = EGamma+4*ResoSecondStage;
+   if(sizeNCsI>0)
+     {
+       // Deal with trackID=1:
+       G4int NCsI_first= *(CsIDetectorNumber_itr->second);                  // ID of first det hit
+       G4int NCsITrackID =   CsIDetectorNumber_itr->first - NCsI_first;           // first trackID dealt with (not always =1)
+       G4double E_CsI=*(CsIStageEnergy_itr->second);                   // Energy second stage
+
+
+       //G4cout <<"NCsITrackID=" << NCsITrackID << G4endl;
+       //G4cout <<"NCsI_first=" << NCsI_first << G4endl;
+       //G4cout <<"CsI Energy first=" << E_CsI << G4endl;
+
+       if(sizeNCsI>1)
+	 {
+	   CsIDetectorNumber_itr++;
+	   CsIStageEnergy_itr++;
+
+	   for (G4int l = 1; l < sizeNCsI ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int NCsI= *(CsIDetectorNumber_itr->second);            // ID of det hit
+	     NCsITrackID =   CsIDetectorNumber_itr->first - NCsI;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"NCsI=" << NCsI << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << CsIDetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NCsITrackID=" << NCsITrackID << G4endl;
+
+	     if(NCsI==NCsI_first)
+	       {
+		
+		 E_CsI += *(CsIStageEnergy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E_CsI!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Phoswich"] + NCsI_first);
+		       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Phoswich"] + NCsI_first);
+		       // Fill Energy
+		       //ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+		       // Fill Time
+		       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+		     }
+		   
+		    NCsI_first=NCsI;
+		    E_CsI=*(CsIStageEnergy_itr->second);
+		 }
+
+	     //G4cout <<"Energy_CsI=" << E_CsI << G4endl;
+
+	     // Always fill the tree at the end of the loop:
+       
+	   if(l==(sizeNCsI-1) && E_CsI!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Phoswich"] + NCsI_first);
+	       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Phoswich"] + NCsI_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+	       // Fill Time
+	       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+	       
+	       }
+
+	     CsIStageEnergy_itr++;
+	     CsIDetectorNumber_itr++;
+	   }
+
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E_CsI!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIStageEDetectorNbr(m_index["Phoswich"] + NCsI_first);
+	       ms_Event->SetPARISCsIStageTDetectorNbr(m_index["Phoswich"] + NCsI_first);
+	       // Fill Energy
+	       //ms_Event->SetPARISCsIStageEEnergy(RandGauss::shoot(E_CsI, ResoSecondStage));
+		           E_CsI=RandGauss::shoot(E_CsI, ResoSecondStage);
+		           ms_Event->SetPARISCsIStageEEnergy(E_CsI); // Fill the tree
+		           if(E_CsI>EGammaMin && E_CsI<EGammaMax)ms_Event->SetPARISCsIStageEffphpeak(EGamma);
+	       // Fill Time
+	       //ms_Event->SetPARISCsIStageTTime(RandGauss::shoot(T_CsI, ResoTimeGpd));
+	       }
+	   }
+ 
+     }
+  
+
+
+
+      // clear map for next event
+      DetectorNumberHitMap    -> clear();
+      EnergyHitMap            -> clear();
+      TimeHitMap              -> clear();
+      //XHitMap                 -> clear();
+      //YHitMap                 -> clear();
+      //PosXHitMap              -> clear();
+      //PosYHitMap              -> clear();
+      //PosZHitMap              -> clear();
+      //AngThetaHitMap          -> clear();
+      //AngPhiHitMap            -> clear();
+
+      CsIDetectorNumberHitMap    -> clear();
+      CsIStageEnergyHitMap -> clear();
+
+
+
+}
+
+
+
+void ParisPhoswich::InitializeScorers()
+{
+   // LaBr3 Associate Scorer
+   m_LaBr3StageScorer = new G4MultiFunctionalDetector("LaBr3StageScorerParisPhoswich");
+  
+   //   G4VPrimitiveScorer* DetNbr                           = new GENERALSCORERS::PSDetectorNumber("DetectorNumber", "ParisPhoswich", 0);
+   G4VPrimitiveScorer* DetNbr                           = new PARISScorerLaBr3StageDetectorNumber("DetectorNumber", "ParisPhoswich", 0);
+   //   G4VPrimitiveScorer* TOF                              = new GENERALSCORERS::PSTOF("StripTime","ParisPhoswich", 0);
+   G4VPrimitiveScorer* TOF                              = new PARISScorerLaBr3StageTOF("StripTime","ParisPhoswich", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesX          = new GENERALSCORERS::PSInteractionCoordinatesX("InterCoordX","ParisPhoswich", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesY          = new GENERALSCORERS::PSInteractionCoordinatesY("InterCoordY","ParisPhoswich", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesZ          = new GENERALSCORERS::PSInteractionCoordinatesZ("InterCoordZ","ParisPhoswich", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAngleTheta = new GENERALSCORERS::PSInteractionCoordinatesAngleTheta("InterCoordAngTheta","ParisPhoswich", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAnglePhi   = new GENERALSCORERS::PSInteractionCoordinatesAnglePhi("InterCoordAngPhi","ParisPhoswich", 0);
+
+   G4VPrimitiveScorer* Energy                           = new PARISScorerLaBr3StageEnergy("StripEnergy", "ParisPhoswich", 0);
+   G4VPrimitiveScorer* CrystNbr                         = new PARISScorerLaBr3StageCrystal("CrystalNumber", "ParisPhoswich", 0);
+
+   //   G4VPrimitiveScorer* StripPositionX                   = new PARIScorerLaBr3StageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips);
+   //  G4VPrimitiveScorer* StripPositionY                   = new PARISScorerLaBr3StageBackStripDummyShape("StripIDBack", 0, NumberOfStrips);
+
+   //and register it to the multifunctionnal detector
+   m_LaBr3StageScorer->RegisterPrimitive(DetNbr);
+   m_LaBr3StageScorer->RegisterPrimitive(CrystNbr);
+   m_LaBr3StageScorer->RegisterPrimitive(Energy);
+   m_LaBr3StageScorer->RegisterPrimitive(TOF);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionX);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesX);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesZ);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAngleTheta);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAnglePhi);
+
+
+
+   /**/
+
+   // Second stage Associate Scorer
+   m_CsIStageScorer = new G4MultiFunctionalDetector("CsIStageScorerParisPhoswich");
+   /**/
+   G4VPrimitiveScorer* CsIDetNbr                        = new PARISScorerCsIStageDetectorNumber("CsIDetectorNumber", "ParisPhoswich", 0);
+   G4VPrimitiveScorer* CsIStageEnergy                   = new PARISScorerCsIStageEnergy("CsIStageEnergy", "ParisPhoswich", 0);
+
+   m_CsIStageScorer->RegisterPrimitive(CsIDetNbr);
+   m_CsIStageScorer->RegisterPrimitive(CsIStageEnergy);
+   /**/
+
+   //  Add All Scorer to the Global Scorer Manager
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_LaBr3StageScorer);
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_CsIStageScorer);
+
+}
diff --git a/NPSimulation/src/ParisScorers.cc b/NPSimulation/src/ParisScorers.cc
new file mode 100644
index 000000000..ce481189c
--- /dev/null
+++ b/NPSimulation/src/ParisScorers.cc
@@ -0,0 +1,423 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 30/02/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class holds all the scorers needed by the                *
+ *             Paris*** objects.                                    *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+// G4 headers
+#include "G4UnitsTable.hh"
+
+// NPTool headers
+#include "GeneralScorers.hh"
+#include "ParisScorers.hh"
+
+#include "ParisCluster.hh"
+#include "ParisPhoswich.hh"
+
+using namespace PARISCLUSTER;
+using namespace PARISPHOSWICH;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Added by Adrien MATTA:
+// Those Scorer use TrackID as map index. This way ones can rebuild energy deposit,
+// time of flight or position,... particle by particle for each event. Because standard
+// scorer provide by G4 don't work this way but using a global ID for each event you should
+// not use those scorer with some G4 provided ones or being very carefull doing so.
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage Detector Number Scorer (deal with multiple particle hit)
+PARISScorerLaBr3StageDetectorNumber::PARISScorerLaBr3StageDetectorNumber(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerLaBr3StageDetectorNumber::~PARISScorerLaBr3StageDetectorNumber()
+{
+}
+
+G4bool PARISScorerLaBr3StageDetectorNumber::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->set(DetNbr + index, DetNbr);
+   return TRUE;
+}
+void PARISScorerLaBr3StageDetectorNumber::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4int>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerLaBr3StageDetectorNumber::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerLaBr3StageDetectorNumber::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerLaBr3StageDetectorNumber::DrawAll()
+{
+}
+
+void PARISScorerLaBr3StageDetectorNumber::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4int*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << " Detector Number : " << G4BestUnit(*(itr->second), "DetectorNumber")
+      << G4endl;
+   }
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage Energy Scorer (deal with multiple particle hit)
+PARISScorerLaBr3StageEnergy::PARISScorerLaBr3StageEnergy(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerLaBr3StageEnergy::~PARISScorerLaBr3StageEnergy()
+{
+}
+
+G4bool PARISScorerLaBr3StageEnergy::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4ThreeVector POS  = aStep->GetPreStepPoint()->GetPosition();
+   POS = aStep->GetPreStepPoint()->GetTouchableHandle()->GetHistory()->GetTopTransform().TransformPoint(POS);
+
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //   if (edep < 100*keV) return FALSE;
+   if (edep < 0*keV) return FALSE;                  // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, edep);
+   return TRUE;
+}
+
+void PARISScorerLaBr3StageEnergy::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4double>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerLaBr3StageEnergy::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerLaBr3StageEnergy::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerLaBr3StageEnergy::DrawAll()
+{
+}
+
+void PARISScorerLaBr3StageEnergy::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4double*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << "  energy deposit: " << G4BestUnit(*(itr->second), "Energy")
+      << G4endl;
+   }
+}
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage CrystalNbr Scorer (deal with multiple particle hit)
+PARISScorerLaBr3StageCrystal::PARISScorerLaBr3StageCrystal(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerLaBr3StageCrystal::~PARISScorerLaBr3StageCrystal()
+{
+}
+
+G4bool PARISScorerLaBr3StageCrystal::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4int CrystalNbr  = aStep->GetPreStepPoint()->GetTouchableHandle()->GetReplicaNumber(1);
+ 
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //   if (edep < 100*keV) return FALSE;
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, CrystalNbr);
+   return TRUE;
+
+}
+
+void PARISScorerLaBr3StageCrystal::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4int>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerLaBr3StageCrystal::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerLaBr3StageCrystal::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerLaBr3StageCrystal::DrawAll()
+{
+}
+
+void PARISScorerLaBr3StageCrystal::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+      std::map<G4int, G4int*>::iterator itr = EvtMap->GetMap()->begin();
+      for (; itr != EvtMap->GetMap()->end(); itr++) {
+         G4cout << "  copy no.: " << itr->first
+         << "  crystal nbr: " << G4BestUnit(*(itr->second), "Crystal")
+       << G4endl;
+   }
+}
+
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage ToF Scorer (deal with multiple particle hit)
+PARISScorerLaBr3StageTOF::PARISScorerLaBr3StageTOF(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerLaBr3StageTOF::~PARISScorerLaBr3StageTOF()
+{
+}
+
+G4bool PARISScorerLaBr3StageTOF::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get TOF
+   G4double TOF  = aStep->GetPreStepPoint()->GetGlobalTime();
+
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //   if (edep < 100*keV) return FALSE;
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, TOF);
+   return TRUE;
+}
+
+void PARISScorerLaBr3StageTOF::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4double>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerLaBr3StageTOF::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerLaBr3StageTOF::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerLaBr3StageTOF::DrawAll()
+{
+}
+
+void PARISScorerLaBr3StageTOF::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+}
+
+
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// SecondStage (CsI) Detector Number Scorer (deal with multiple particle hit)
+PARISScorerCsIStageDetectorNumber::PARISScorerCsIStageDetectorNumber(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerCsIStageDetectorNumber::~PARISScorerCsIStageDetectorNumber()
+{
+}
+
+G4bool PARISScorerCsIStageDetectorNumber::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->set(DetNbr + index, DetNbr);
+   return TRUE;
+}
+void PARISScorerCsIStageDetectorNumber::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4int>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerCsIStageDetectorNumber::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerCsIStageDetectorNumber::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerCsIStageDetectorNumber::DrawAll()
+{
+}
+
+void PARISScorerCsIStageDetectorNumber::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4int*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << " Detector Number : " << G4BestUnit(*(itr->second), "DetectorNumber")
+      << G4endl;
+   }
+}
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// CsIStage Energy Scorer (deal with multiple particle hit)
+PARISScorerCsIStageEnergy::PARISScorerCsIStageEnergy(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+PARISScorerCsIStageEnergy::~PARISScorerCsIStageEnergy()
+{
+}
+
+G4bool PARISScorerCsIStageEnergy::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4ThreeVector POS  = aStep->GetPreStepPoint()->GetPosition();
+   POS = aStep->GetPreStepPoint()->GetTouchableHandle()->GetHistory()->GetTopTransform().TransformPoint(POS);
+
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //if (edep < 100*keV) return FALSE;      
+   if (edep < 0*keV) return FALSE;      // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, edep);
+   return TRUE;
+}
+
+void PARISScorerCsIStageEnergy::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4double>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void PARISScorerCsIStageEnergy::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void PARISScorerCsIStageEnergy::Clear()
+{
+   EvtMap->clear();
+}
+
+void PARISScorerCsIStageEnergy::DrawAll()
+{
+}
+
+void PARISScorerCsIStageEnergy::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4double*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << "  energy deposit: " << G4BestUnit(*(itr->second), "Energy")
+      << G4endl;
+   }
+}
+
+
diff --git a/NPSimulation/src/PhysicsList.cc b/NPSimulation/src/PhysicsList.cc
index ff560e1bf..e55adb66b 100644
--- a/NPSimulation/src/PhysicsList.cc
+++ b/NPSimulation/src/PhysicsList.cc
@@ -32,9 +32,11 @@
 #include "G4ParticleDefinition.hh"
 #include "G4ParticleTable.hh"
 
+
 //Process
 #include "G4Transportation.hh"
 
+// Standard Geant4
 #include "G4ComptonScattering.hh"
 #include "G4GammaConversion.hh"
 #include "G4PhotoElectricEffect.hh"
@@ -43,6 +45,26 @@
 #include "G4eBremsstrahlung.hh"
 #include "G4eplusAnnihilation.hh"
 
+// Penelope 
+#include "G4PenelopeIonisation.hh"
+#include "G4PenelopeBremsstrahlung.hh"
+#include "G4PenelopeAnnihilation.hh"
+
+#include "G4PenelopeCompton.hh"
+#include "G4PenelopeGammaConversion.hh"
+#include "G4PenelopePhotoElectric.hh"
+#include "G4PenelopeRayleigh.hh"
+
+// Low energy ~ Penelope
+#include "G4LowEnergyIonisation.hh"
+#include "G4LowEnergyBremsstrahlung.hh"
+
+#include "G4LowEnergyCompton.hh"
+#include "G4LowEnergyGammaConversion.hh"
+#include "G4LowEnergyPhotoElectric.hh"
+#include "G4LowEnergyRayleigh.hh"
+
+
 #include "G4MuIonisation.hh"
 #include "G4MuBremsstrahlung.hh"
 #include "G4MuPairProduction.hh"
@@ -68,6 +90,12 @@
 #include "G4BetaMinusDecayChannel.hh"
 
 
+//#include "G4Gamma.hh"
+//#include "G4Electron.hh"
+//#include "G4Positron.hh"
+
+
+
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 PhysicsList::PhysicsList()
 {	
@@ -169,6 +197,7 @@ void PhysicsList::ConstructProcess()
 {
    AddTransportation()   ;
    ConstructEM()         ;
+
    SetCuts()          ;
 }
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -176,6 +205,7 @@ void PhysicsList::ConstructEM()
 {
 
    theParticleIterator->reset();
+   
    while ((*theParticleIterator)()) {
       G4ParticleDefinition* particle = theParticleIterator->value()          ;
       G4ProcessManager* pmanager = particle->GetProcessManager()             ;
@@ -183,31 +213,58 @@ void PhysicsList::ConstructEM()
 
       if (particleName == "gamma") {
          // gamma
-         pmanager->AddDiscreteProcess(new G4PhotoElectricEffect)          ;
-         pmanager->AddDiscreteProcess(new G4ComptonScattering)            ;
-         pmanager->AddDiscreteProcess(new G4GammaConversion)              ;
+	//standard Geant4
+	pmanager->AddDiscreteProcess(new G4PhotoElectricEffect)          ;
+        pmanager->AddDiscreteProcess(new G4ComptonScattering)            ;
+	pmanager->AddDiscreteProcess(new G4GammaConversion)              ;
+	//Low energy
+	//pmanager->AddDiscreteProcess(new G4LowEnergyPhotoElectric)          ;
+        //pmanager->AddDiscreteProcess(new G4LowEnergyCompton)            ;
+        //pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion)              ;
+        //pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh)              ;
+	 // Penelope
+         //pmanager->AddDiscreteProcess(new G4PenelopePhotoElectric)          ;
+         //pmanager->AddDiscreteProcess(new G4PenelopeCompton)            ;
+         //pmanager->AddDiscreteProcess(new G4PenelopeGammaConversion)              ;
+         //pmanager->AddDiscreteProcess(new G4PenelopeRayleigh)              ;
 
       } else if (particleName == "e-") {
          //electron
          pmanager->AddProcess(new G4MultipleScattering  , -1,  1, 1)     ;
-         pmanager->AddProcess(new G4eIonisation         , -1,  2, 2)     ;
-         pmanager->AddProcess(new G4eBremsstrahlung     , -1, -1, 3)     ;
+	 //standard geant4:
+	 pmanager->AddProcess(new G4eIonisation         , -1,  2, 2)     ;
+	 pmanager->AddProcess(new G4eBremsstrahlung     , -1, -1, 3)     ;
+	 // Low energy:
+	 //pmanager->AddProcess(new G4LowEnergyIonisation         , -1,  2, 2)     ;
+	 //pmanager->AddProcess(new G4LowEnergyBremsstrahlung     , -1, -1, 3)     ;
+	 // Penelope:
+	 // pmanager->AddProcess(new G4PenelopeIonisation         , -1,  2, 2)     ;
+	 // pmanager->AddProcess(new G4PenelopeBremsstrahlung     , -1, -1, 3)     ;
+
 
       } else if (particleName == "e+") {
          //positron
-            pmanager->AddProcess(new G4MultipleScattering  , -1,  1, 1 );
-            pmanager->AddProcess(new G4eIonisation         , -1,  2, 2 );
-            pmanager->AddProcess(new G4eBremsstrahlung     , -1, -1, 3 );
-            pmanager->AddProcess(new G4eplusAnnihilation   ,  0, -1, 4 );
+	pmanager->AddProcess(new G4MultipleScattering  , -1,  1, 1 );
+	// standard Geant4 and Low energy
+	pmanager->AddProcess(new G4eIonisation         , -1,  2, 2 );
+	pmanager->AddProcess(new G4eBremsstrahlung     , -1, -1, 3 );
+	pmanager->AddProcess(new G4eplusAnnihilation   ,  0, -1, 4 );
+	//Penelope:
+	//pmanager->AddProcess(new G4PenelopeIonisation         , -1,  2, 2 );
+	//pmanager->AddProcess(new G4PenelopeBremsstrahlung     , -1, -1, 3 );
+	//pmanager->AddProcess(new G4PenelopeAnnihilation   ,  0, -1, 4 );
+
+
 
       } else if (particleName == "mu+" ||
                  particleName == "mu-") {
-         //muon
+  
+    //muon
          /*   pmanager->AddProcess(new G4MultipleScattering   , -1,  1, 1 )     ;
             pmanager->AddProcess(new G4MuIonisation        , -1,  2, 2 )     ;
             pmanager->AddProcess(new G4MuBremsstrahlung    , -1, -1, 3 )     ;
             pmanager->AddProcess(new G4MuPairProduction    , -1, -1, 4 )     ;*/
-
+  
       } else if (particleName == "GenericIon") {
          pmanager->AddProcess(new G4MultipleScattering(), -1, 1, 1)        ;
          G4ionIonisation* iI = new G4ionIonisation                   ;
@@ -230,6 +287,7 @@ void PhysicsList::ConstructEM()
 
       }//end else if
    }//end while particle
+   
    G4EmProcessOptions opt        ;
    opt.SetSubCutoff(true)        ;
    opt.SetMinEnergy(0.001*eV)    ;
@@ -252,9 +310,9 @@ void PhysicsList::SetCuts()
    SetCutsWithDefault();
 
    // for gamma-rays
-   SetCutValue(0.1*mm, "gamma");
-   SetCutValue(0.1*mm, "e-");
-   SetCutValue(0.1*mm, "e+");
+   SetCutValue(0.01*mm, "gamma");
+   SetCutValue(0.01*mm, "e-");
+   SetCutValue(0.01*mm, "e+");
 
    // Retrieve verbose level
    SetVerboseLevel(temp);
diff --git a/NPSimulation/src/Shield.cc b/NPSimulation/src/Shield.cc
new file mode 100644
index 000000000..e309d4c42
--- /dev/null
+++ b/NPSimulation/src/Shield.cc
@@ -0,0 +1,150 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class manages different shapes of module for the Paris   *
+ *             Shield detector. It allows to have Shiled geometries with an  *
+ *             heterogeneous set of modules                                  *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+// C++ headers
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <cmath>
+
+// NPTool headers
+#include "Shield.hh"
+#include "ShieldClParis.hh"
+#include "ShieldPhParis.hh"
+
+using namespace std;
+
+
+Shield::Shield()
+{
+}
+
+Shield::~Shield()
+{
+}
+
+
+
+// Read stream at Configfile to pick-up parameters of detector (Position,...)
+// Called in DetecorConstruction::ReadDetextorConfiguration Method
+void Shield::ReadConfiguration(string Path)
+{
+   // open configuration file
+   ifstream ConfigFile;
+   ConfigFile.open(Path.c_str());
+
+   bool bShieldClParis     = false;
+   bool bShieldPhParis     = false;
+
+   string LineBuffer;
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+      if (LineBuffer.compare(0, 13, "ShieldClParis") == 0  &&  bShieldClParis == false) {
+         bShieldClParis = true;
+
+         // instantiate a new "detector" corresponding to the Trapezoid elements
+         ShieldModule* myDetector = new ShieldClParis();
+
+         // read part of the configuration file corresponding to trapezoid elements
+         ConfigFile.close();
+         myDetector->ReadConfiguration(Path);
+         ConfigFile.open(Path.c_str());
+
+         // ms_InterCoord comes from VDetector
+         myDetector->SetInterCoordPointer(ms_InterCoord);
+
+         // store ShieldClParis "detector"
+         m_Modules.push_back(myDetector);
+      }
+      else if (LineBuffer.compare(0, 13, "ShieldPhParis") == 0  &&  bShieldPhParis == false) {
+         bShieldPhParis = true;
+
+         // instantiate a new "detector" corresponding to the Trapezoid elements
+         ShieldModule* myDetector = new ShieldPhParis();
+
+         // read part of the configuration file corresponding to trapezoid elements
+         ConfigFile.close();
+         myDetector->ReadConfiguration(Path);
+         ConfigFile.open(Path.c_str());
+
+         // ms_InterCoord comes from VDetector
+         myDetector->SetInterCoordPointer(ms_InterCoord);
+
+         // store ShieldPhParis "detector"
+         m_Modules.push_back(myDetector);
+      }
+
+   }
+}
+
+
+
+// Construct detector and initialize sensitive part.
+// Called After DetectorConstruction::AddDetector Method
+void Shield::ConstructDetector(G4LogicalVolume* world)
+{
+   // loop on sub-detectors belonging to Paris
+   int nbDetectors = m_Modules.size();
+   for (int i = 0; i < nbDetectors; i++) m_Modules[i]->ConstructDetector(world);
+}
+
+
+
+// Connect the ShieldData class to the output TTree
+// of the simulation
+void Shield::InitializeRootOutput()
+{
+   // loop on sub-detectors belonging to Paris
+   int nbDetectors = m_Modules.size();
+   for (int i = 0; i < nbDetectors; i++) m_Modules[i]->InitializeRootOutput();
+}
+
+
+
+// Initialize all scorers necessary for each detector
+void Shield::InitializeScorers()
+{
+   // loop on sub-detectors belonging to Paris
+   int nbDetectors = m_Modules.size();
+   for (int i = 0; i < nbDetectors; i++) m_Modules[i]->InitializeScorers();
+}
+
+
+
+// Read sensitive part and fill the Root tree.
+// Called at in the EventAction::EndOfEventAction
+void Shield::ReadSensitive(const G4Event* event)
+{
+   // Before looping on each sub-detector, clear the static variable
+   // ms_InterCoord
+   // This is done on the first element of the m_Modules vector.
+   // This should be done here since this variable (of type TIneractionCoordinates)
+   // deals with multiplicity of events > 1.
+   m_Modules[0]->GetInterCoordPointer()->Clear();
+
+   // We do the same for the static variable ms_Event
+   m_Modules[0]->GetEventPointer()->Clear();
+
+   // loop on sub-detectors belonging to Paris
+   int nbDetectors = m_Modules.size();
+   for (int i = 0; i < nbDetectors; i++) m_Modules[i]->ReadSensitive(event);
+}
diff --git a/NPSimulation/src/ParisPhoswitch.cc b/NPSimulation/src/ShieldClParis.cc
similarity index 54%
rename from NPSimulation/src/ParisPhoswitch.cc
rename to NPSimulation/src/ShieldClParis.cc
index 0e12ce4ba..2b77daa18 100644
--- a/NPSimulation/src/ParisPhoswitch.cc
+++ b/NPSimulation/src/ShieldClParis.cc
@@ -6,12 +6,13 @@
  *****************************************************************************/
 
 /*****************************************************************************
- * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
+ * Original Author: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
  *                                                                           *
- * Creation Date  : 04/12/09                                                 *
+ * Creation Date  : 26/08/10                                                 *
  * Last update    :                                                          *
  *---------------------------------------------------------------------------*
- * Decription: Define a phoswitch module for the Paris detector.             *
+ * Decription: Define the shiled around a cluster of 9 phoswich modules for  *
+ * the Paris detector                                                        *
  *                                                                           *
  *---------------------------------------------------------------------------*
  * Comment:                                                                  *
@@ -46,7 +47,9 @@
 #include "G4MultiFunctionalDetector.hh"
 
 // NPTool headers
-#include "ParisPhoswitch.hh"
+#include "ShieldClParis.hh"
+//#include "ParisScorers.hh"
+#include "ShieldScorers.hh"
 #include "GeneralScorers.hh"
 #include "RootOutput.h"
 
@@ -55,12 +58,12 @@
 
 using namespace std;
 using namespace CLHEP;
-using namespace PARISPHOSWITCH;
+using namespace PARISCLSHIELD;
 
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-ParisPhoswitch::ParisPhoswitch()
+ShieldClParis::ShieldClParis()
 {
    ms_InterCoord = 0;
 }
@@ -68,14 +71,14 @@ ParisPhoswitch::ParisPhoswitch()
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-ParisPhoswitch::~ParisPhoswitch()
+ShieldClParis::~ShieldClParis()
 {
 }
 
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ParisPhoswitch::AddModule(G4ThreeVector X1_Y1,
+void ShieldClParis::AddModule(G4ThreeVector X1_Y1,
                                G4ThreeVector X128_Y1,
                                G4ThreeVector X1_Y128,
                                G4ThreeVector X128_Y128)
@@ -98,7 +101,7 @@ void ParisPhoswitch::AddModule(G4ThreeVector X1_Y1,
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ParisPhoswitch::AddModule(G4double R,
+void ShieldClParis::AddModule(G4double R,
                                G4double Theta,
                                G4double Phi,
                                G4double beta_u,
@@ -125,7 +128,7 @@ void ParisPhoswitch::AddModule(G4double R,
 
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ParisPhoswitch::VolumeMaker(G4int             DetecNumber,
+void ShieldClParis::VolumeMaker(G4int             DetecNumber,
                                  G4ThreeVector     MMpos,
                                  G4RotationMatrix* MMrot,
                                  G4LogicalVolume*  world)
@@ -201,64 +204,50 @@ void ParisPhoswitch::VolumeMaker(G4int             DetecNumber,
    // Little trick to avoid warning in compilation: Use a PVPlacement "buffer".
    // If don't you will have a Warning unused variable 'myPVP'
    G4PVPlacement* PVPBuffer;
-   G4String Name = "ParisPhoswitch" + DetectorNumber ;
+   G4String Name = "ShieldClParis" + DetectorNumber ;
 
    // Mother Volume
-   G4Box*           solidParisPhoswitch = new G4Box(Name, 0.5*FaceFront, 0.5*FaceFront, 0.5*Length);
-   G4LogicalVolume* logicParisPhoswitch = new G4LogicalVolume(solidParisPhoswitch, Vacuum, Name, 0, 0, 0);
+   G4Trap*           solidShieldClParis = new G4Trap(Name, Length/2, 16.3543*deg, 225.*deg, 
+						     12.*mm,102.375*mm, 102.375*mm, 0.*deg, 
+						     43.125*mm, 133.5*mm, 133.5*mm,0.*deg);
+   G4LogicalVolume* logicShieldClParis = new G4LogicalVolume(solidShieldClParis, Vacuum, Name, 0, 0, 0);
 
    PVPBuffer     = new G4PVPlacement(G4Transform3D(*MMrot, MMpos) ,
-                                     logicParisPhoswitch           ,
+                                     logicShieldClParis           ,
                                      Name                         ,
                                      world                        ,
                                      false                        ,
                                      0);
 
-   logicParisPhoswitch->SetVisAttributes(G4VisAttributes::Invisible);
-   if (m_non_sensitive_part_visiualisation) logicParisPhoswitch->SetVisAttributes(G4VisAttributes(G4Colour(0.90, 0.90, 0.90)));
-
-   // Phoswitch construction
-   // LaBr3
-   G4ThreeVector  positionLaBr3Stage = G4ThreeVector(0, 0, LaBr3Stage_PosZ);
-
-   G4Box*           solidLaBr3Stage = new G4Box("solidLaBr3Stage", 0.5*LaBr3Face, 0.5*LaBr3Face, 0.5*LaBr3Thickness);
-   G4LogicalVolume* logicLaBr3Stage = new G4LogicalVolume(solidLaBr3Stage, LaBr3, "logicLaBr3Stage", 0, 0, 0);
-
-   PVPBuffer = new G4PVPlacement(0, 
-                                 positionLaBr3Stage, 
-                                 logicLaBr3Stage, 
-                                 Name + "_LaBr3Stage", 
-                                 logicParisPhoswitch, 
-                                 false, 
-                                 0);
-
-   // Set LaBr3 sensible
-   logicLaBr3Stage->SetSensitiveDetector(m_LaBr3StageScorer);
-
-   // Visualisation of LaBr3Stage Strip
-   G4VisAttributes* LaBr3VisAtt = new G4VisAttributes(G4Colour(0., 0., 1.));
-   logicLaBr3Stage->SetVisAttributes(LaBr3VisAtt);
-
-   // CsI
-   G4ThreeVector  positionCsIStage = G4ThreeVector(0, 0, CsIStage_PosZ);
-
-   G4Box*           solidCsIStage = new G4Box("solidCsIStage", 0.5*CsIFace, 0.5*CsIFace, 0.5*CsIThickness);
-   G4LogicalVolume* logicCsIStage = new G4LogicalVolume(solidCsIStage, CsI, "logicCsIStage", 0, 0, 0);
+   logicShieldClParis->SetVisAttributes(G4VisAttributes::Invisible);
+   if (m_non_sensitive_part_visiualisation) logicShieldClParis->SetVisAttributes(G4VisAttributes(G4Colour(0.90, 0.90, 0.90)));
+
+   // Daughter Volume
+   // CsI or NaI
+   G4ThreeVector  positionCsI = G4ThreeVector(0, 0, 0);
+
+   G4Trap*           solidShieldCsI = new G4Trap("solidShieldCsI", Length/2, 16.3543*deg, 225.*deg, 
+						     12.*mm,102.375*mm, 102.375*mm, 0.*deg, 
+						     43.125*mm, 133.5*mm, 133.5*mm,0.*deg);
+   //G4LogicalVolume* logicShieldCsI = new G4LogicalVolume(solidShieldCsI, CsI, "logicShieldCsI", 0, 0, 0);
+   G4LogicalVolume* logicShieldCsI = new G4LogicalVolume(solidShieldCsI, NaI, "logicShieldCsI", 0, 0, 0);
+
+   PVPBuffer     = new G4PVPlacement(0,
+				     positionCsI              ,
+                                     logicShieldCsI           ,
+                                     Name + "_ShieldCsI"      ,
+                                     logicShieldClParis       ,
+                                     false                    ,
+                                     0);
+  
+   // Set CsI sensible
+   logicShieldCsI->SetSensitiveDetector(m_CsIShieldScorer);
 
-   PVPBuffer = new G4PVPlacement(0, 
-                                 positionCsIStage, 
-                                 logicCsIStage, 
-                                 Name + "_CsIStage", 
-                                 logicParisPhoswitch, 
-                                 false, 
-                                 0);
+   // Visualisation of CsIStage
+   G4VisAttributes* CsIShieldVisAtt = new G4VisAttributes(G4Colour(1., 0., 0.));
+   logicShieldCsI->SetVisAttributes(CsIShieldVisAtt);
 
-   // Set CsI sensible
-   logicCsIStage->SetSensitiveDetector(m_CsIStageScorer);
 
-   // Visualisation of CsIStage Strip
-   G4VisAttributes* CsIVisAtt = new G4VisAttributes(G4Colour(1., 0., 0.));
-   logicCsIStage->SetVisAttributes(CsIVisAtt);
 }
 
 
@@ -268,7 +257,7 @@ void ParisPhoswitch::VolumeMaker(G4int             DetecNumber,
 
 // Read stream at Configfile to pick-up parameters of detector (Position,...)
 // Called in DetecorConstruction::ReadDetextorConfiguration Method
-void ParisPhoswitch::ReadConfiguration(string Path)
+void ShieldClParis::ReadConfiguration(string Path)
 {
    ifstream ConfigFile;
    ConfigFile.open(Path.c_str());
@@ -299,9 +288,9 @@ void ParisPhoswitch::ReadConfiguration(string Path)
 
    while (!ConfigFile.eof()) {
       getline(ConfigFile, LineBuffer);
-      if (LineBuffer.compare(0, 14, "ParisPhoswitch") == 0) {
+      if (LineBuffer.compare(0, 13, "ShieldClParis") == 0) {
          G4cout << "///" << G4endl           ;
-         G4cout << "Phoswitch element found: " << G4endl   ;
+         G4cout << "Cluster Shield element found: " << G4endl   ;
          ReadingStatus = true ;
       }
          
@@ -414,7 +403,7 @@ void ParisPhoswitch::ReadConfiguration(string Path)
             if (DataBuffer.compare(0, 3, "all") == 0) m_non_sensitive_part_visiualisation = true;
          }
          
-         else G4cout << "WARNING: Wrong Token, ParisPhoswitch: Phoswitch Element not added" << G4endl;
+         else G4cout << "WARNING: Wrong Token, ShieldClParis: Cluster Element not added" << G4endl;
 
          // Add The previously define telescope
          // With position method
@@ -450,7 +439,7 @@ void ParisPhoswitch::ReadConfiguration(string Path)
 
 // Construct detector and inialise sensitive part.
 // Called After DetecorConstruction::AddDetector Method
-void ParisPhoswitch::ConstructDetector(G4LogicalVolume* world)
+void ShieldClParis::ConstructDetector(G4LogicalVolume* world)
 {
    G4RotationMatrix* MMrot    = NULL                   ;
    G4ThreeVector     MMpos    = G4ThreeVector(0, 0, 0) ;
@@ -471,6 +460,7 @@ void ParisPhoswitch::ConstructDetector(G4LogicalVolume* world)
          MMu = MMu.unit();
 
          MMv = m_X1_Y128[i] - m_X1_Y1[i];
+         //MMv = -0.5 * (m_X1_Y1[i] + m_X128_Y128[i] - m_X1_Y128[i] - m_X128_Y1[i]);
          MMv = MMv.unit();
 
          G4ThreeVector MMscal = MMu.dot(MMv);
@@ -485,7 +475,8 @@ void ParisPhoswitch::ConstructDetector(G4LogicalVolume* world)
          // MUST2
          MMrot = new G4RotationMatrix(MMu, MMv, MMw);
          // translation to place Telescope
-         MMpos = MMw * Length * 0.5 + MMCenter;
+         //MMpos = MMw * Length * 0.5 + MMCenter;
+         MMpos = MMCenter;
       }
 
       // By Angle
@@ -539,14 +530,14 @@ void ParisPhoswitch::ConstructDetector(G4LogicalVolume* world)
 
 // Connect the ParisData class to the output TTree
 // of the simulation
-void ParisPhoswitch::InitializeRootOutput()
+void ShieldClParis::InitializeRootOutput()
 {
 }
 
 
 
 // Set the TinteractionCoordinates object from VDetector to the present class
-void ParisPhoswitch::SetInterCoordPointer(TInteractionCoordinates* interCoord)
+void ShieldClParis::SetInterCoordPointer(TInteractionCoordinates* interCoord)
 {
    ms_InterCoord = interCoord;
 }
@@ -555,21 +546,251 @@ void ParisPhoswitch::SetInterCoordPointer(TInteractionCoordinates* interCoord)
 
 // Read sensitive part and fill the Root tree.
 // Called at in the EventAction::EndOfEventAvtion
-void ParisPhoswitch::ReadSensitive(const G4Event* event)
+void ShieldClParis::ReadSensitive(const G4Event* event)
 {
+   //////////////////////////////////////////////////////////////////////////////////////
+   //////////////////////// Used to Read Event Map of detector //////////////////////////
+   //////////////////////////////////////////////////////////////////////////////////////
+
+      momentum = event->GetPrimaryVertex()->GetPrimary()->GetMomentum(); 
+      G4double EGamma = momentum.getR(); // for photon E=p
+      G4double EGammaMin = EGamma-4*ResoFirstStage; 
+      G4double EGammaMax = EGamma+4*ResoFirstStage;
+  
+   // CsI Shield
+   std::map<G4int, G4int*>::iterator    CsIShieldDetectorNumber_itr;
+   std::map<G4int, G4double*>::iterator CsIShieldEnergy_itr;
+   std::map<G4int, G4double*>::iterator CsIShieldTime_itr;
+   //std::map<G4int, G4double*>::iterator X_itr;
+   //std::map<G4int, G4double*>::iterator Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_X_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Z_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Theta_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Phi_itr;
+
+   G4THitsMap<G4int>*    CsIShieldDetectorNumberHitMap;
+   G4THitsMap<G4double>* CsIShieldEnergyHitMap;
+   G4THitsMap<G4double>* CsIShieldTimeHitMap;
+   //   G4THitsMap<G4double>* XHitMap;
+   //  G4THitsMap<G4double>* YHitMap;
+   //G4THitsMap<G4double>* PosXHitMap;
+   //G4THitsMap<G4double>* PosYHitMap;
+   //G4THitsMap<G4double>* PosZHitMap;
+   //G4THitsMap<G4double>* AngThetaHitMap;
+   //G4THitsMap<G4double>* AngPhiHitMap;
+
+   // NULL pointer are given to avoid warning at compilation
+
+   // Read the Scorer associate to the LaBr
+
+   //Detector Number
+   G4int CsIShieldDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldClParis/CsIShieldDetectorNumber")    ;
+   CsIShieldDetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CsIShieldDetCollectionID))         ;
+   CsIShieldDetectorNumber_itr =  CsIShieldDetectorNumberHitMap->GetMap()->begin()                                               ;
+
+   //Energy
+   G4int CsIShieldEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldClParis/CsIShieldEnergy")   ;
+   CsIShieldEnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIShieldEnergyCollectionID))                    ;
+   CsIShieldEnergy_itr = CsIShieldEnergyHitMap->GetMap()->begin()                                                          ;
+
+   //Time of Flight
+   G4int CsIShieldTimeCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldClParis/CsIShieldTime")    ;
+   CsIShieldTimeHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIShieldTimeCollectionID))                        ;
+   CsIShieldTime_itr = CsIShieldTimeHitMap->GetMap()->begin()                                                              ;
+
+
+   // Check the size of different map
+   G4int sizeN = CsIShieldDetectorNumberHitMap->entries();  // number of objects hit by trackID=1 (can be the same object hit several time) 
+   G4int sizeE = CsIShieldEnergyHitMap->entries();          // = number of steps with edep non null 
+   G4int sizeT = CsIShieldTimeHitMap->entries();
+   //G4int sizeX = PosXHitMap->entries();
+   //G4int sizeY = PosYHitMap->entries();
+   //G4int sizeX = XHitMap->entries();
+   //G4int sizeY = YHitMap->entries();
+
+   //G4cout <<"SizeN=" << sizeN << endl;
+   //G4cout <<"SizeC=" << sizeC << endl;
+   //G4cout <<"SizeN CsI =" << sizeNCsI << endl;
+   //G4cout <<"SizeE CsI =" << sizeECsI << endl;
+
+   //DetectorNumberHitMap->PrintAllHits();
+
+
+    if (sizeE != sizeT) {
+      G4cout << "No match size PARIS Event Map: sE:"
+      << sizeE << " sT:" << sizeT << endl ;
+
+      //   if (sizeE != sizeX) {
+      //G4cout << "No match size PARIS Event Map: sE:"
+      //<< sizeE << " sT:" << sizeT << " sX:" << sizeX << " sY:" << sizeY << endl ;
+      return;
+     }
+
+
+    //G4cout <<"SizeN=" << sizeN << G4endl;
+
+
+   if(sizeN>0)
+     {
+
+       // Deal with trackID=1:
+       G4int N_first= *(CsIShieldDetectorNumber_itr->second);                  // ID of first det hit
+       G4int NTrackID =   CsIShieldDetectorNumber_itr->first - N_first;           // first trackID dealt with (not always =1)
+       G4double E = *(CsIShieldEnergy_itr->second);
+       G4double T = *(CsIShieldTime_itr->second);
+      
+
+       //G4cout <<"NTrackID=" << NTrackID << G4endl;
+       //G4cout <<"N_first=" << N_first << G4endl;
+       //G4cout <<"CrystalNumber_first=" << NCryst << G4endl;
+       //G4cout <<"Energy first=" << E << G4endl;
+       //G4cout <<"Time first =" << T << G4endl;
+
+
+       if(sizeN>1)
+	 {
+	   CsIShieldEnergy_itr++;
+	   CsIShieldTime_itr++;
+	   CsIShieldDetectorNumber_itr++;
+
+	   for (G4int l = 1; l < sizeN ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int N= *(CsIShieldDetectorNumber_itr->second);            // ID of det hit
+	     NTrackID =   CsIShieldDetectorNumber_itr->first - N;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"N=" << N << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << DetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NTrackID=" << NTrackID << G4endl;
+
+	     if(N==N_first)
+	       {
+		 E += *(CsIShieldEnergy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldCl"] + N_first);
+		       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldCl"] + N_first);
+		       // Fill Energy
+		       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+
+		       // Fill Time
+		       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));
+
+		     }
+
+		   N_first=N;
+		   E=*(CsIShieldEnergy_itr->second);
+
+		 }
+
+
+	     //G4cout <<"Energy=" << E << G4endl;
+	     //G4cout <<"Time =" << T << G4endl;
+       
+	     // Always fill the tree at the end of the loop:
+	   if(l==(sizeN-1) && E!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldCl"] + N_first);
+	       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldCl"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+	       // Fill Time
+	       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));	       
+	     }
+
+	     CsIShieldEnergy_itr++;
+	     CsIShieldDetectorNumber_itr++;
+	   }
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldCl"] + N_first);
+	       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldCl"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));
+	       }
+	   }
+	
+ 
+     }
+  
+
+
+      // clear map for next event
+      CsIShieldDetectorNumberHitMap    -> clear();
+      CsIShieldEnergyHitMap            -> clear();
+      CsIShieldTimeHitMap              -> clear();
+      //XHitMap                 -> clear();
+      //YHitMap                 -> clear();
+      //PosXHitMap              -> clear();
+      //PosYHitMap              -> clear();
+      //PosZHitMap              -> clear();
+      //AngThetaHitMap          -> clear();
+      //AngPhiHitMap            -> clear();
+
 }
 
 
 
-void ParisPhoswitch::InitializeScorers()
+void ShieldClParis::InitializeScorers()
 {
-   // LaBr3 Associate Scorer
-   m_LaBr3StageScorer = new G4MultiFunctionalDetector("LaBr3StageScorerParisPhoswitch");
+ 
+   // CsIShield Associate Scorer
+   m_CsIShieldScorer = new G4MultiFunctionalDetector("CsIScorerShieldClParis");
+   
+   //   G4VPrimitiveScorer* DetNbr                           = new GENERALSCORERS::PSDetectorNumber("DetectorNumber", "ShieldClParis", 0);
+   G4VPrimitiveScorer* DetNbr                           = new SHIELDScorerCsIDetectorNumber("CsIShieldDetectorNumber", "ShieldClParis", 0);
+   //   G4VPrimitiveScorer* TOF                              = new GENERALSCORERS::PSTOF("StripTime","ShieldClParis", 0);
+   G4VPrimitiveScorer* TOF                              = new SHIELDScorerCsITOF("CsIShieldTime","ShieldClParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesX          = new GENERALSCORERS::PSInteractionCoordinatesX("InterCoordX","ShieldClParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesY          = new GENERALSCORERS::PSInteractionCoordinatesY("InterCoordY","ShieldClParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesZ          = new GENERALSCORERS::PSInteractionCoordinatesZ("InterCoordZ","ShieldClParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAngleTheta = new GENERALSCORERS::PSInteractionCoordinatesAngleTheta("InterCoordAngTheta","ShieldClParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAnglePhi   = new GENERALSCORERS::PSInteractionCoordinatesAnglePhi("InterCoordAngPhi","ShieldClParis", 0);
+
+   G4VPrimitiveScorer* Energy                           = new SHIELDScorerCsIEnergy("CsIShieldEnergy", "ShieldClParis", 0);
+
+   //   G4VPrimitiveScorer* StripPositionX                   = new PARIScorerLaBr3StageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips);
+   //  G4VPrimitiveScorer* StripPositionY                   = new PARISScorerLaBr3StageBackStripDummyShape("StripIDBack", 0, NumberOfStrips);
+
+   //and register it to the multifunctionnal detector
+   m_CsIShieldScorer->RegisterPrimitive(DetNbr);
+   m_CsIShieldScorer->RegisterPrimitive(Energy);
+   m_CsIShieldScorer->RegisterPrimitive(TOF);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionX);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesX);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesZ);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAngleTheta);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAnglePhi);
+
 
-   // Second stage Associate Scorer
-   m_CsIStageScorer = new G4MultiFunctionalDetector("CsIStageScorerParisPhoswitch");
 
    //  Add All Scorer to the Global Scorer Manager
-   G4SDManager::GetSDMpointer()->AddNewDetector(m_LaBr3StageScorer);
-   G4SDManager::GetSDMpointer()->AddNewDetector(m_CsIStageScorer);
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_CsIShieldScorer);
+  
+ 
 }
diff --git a/NPSimulation/src/ShieldModule.cc b/NPSimulation/src/ShieldModule.cc
new file mode 100644
index 000000000..546486ce6
--- /dev/null
+++ b/NPSimulation/src/ShieldModule.cc
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class is an Abstract Base Class (ABC) from which should  *
+ *             derive all different modules from the Shield detector.         *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+#include "ShieldModule.hh"
+#include "RootOutput.h"
+
+
+TShieldData *ShieldModule::ms_Event = 0;
+
+
+
+ShieldModule::ShieldModule()
+{
+   if (ms_Event == 0) ms_Event = new TShieldData();
+
+   InitializeRootOutput();
+   InitializeIndex();
+}
+
+
+
+ShieldModule::~ShieldModule()
+{
+}
+
+
+
+void ShieldModule::InitializeRootOutput()
+{
+   RootOutput *pAnalysis = RootOutput::getInstance();
+   TTree *pTree = pAnalysis->GetTree();
+   // if the branch does not exist yet, create it
+   if (!pTree->GetBranch("SHIELD"))
+      pTree->Branch("SHIELD", "TShieldData", &ms_Event);
+}
+
+
+
+void ShieldModule::InitializeIndex()
+{
+  m_index["ShieldCl"]=200; // CsI shield
+  m_index["ShieldPh"]=300; // CsI shield
+}
diff --git a/NPSimulation/src/ShieldPhParis.cc b/NPSimulation/src/ShieldPhParis.cc
new file mode 100644
index 000000000..0f6b140dc
--- /dev/null
+++ b/NPSimulation/src/ShieldPhParis.cc
@@ -0,0 +1,805 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@atfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 25/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: Define the shield around a PARIS phoswich module              *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+
+// C++ headers
+#include <sstream>
+#include <string>
+#include <cmath>
+
+// G4 Geometry headers
+#include "G4Trd.hh"
+#include "G4Box.hh"
+#include "G4Trap.hh"
+#include "G4Polyhedra.hh"
+
+#include "G4SubtractionSolid.hh"
+
+// G4 various headers
+#include "G4MaterialTable.hh"
+#include "G4Element.hh"
+#include "G4ElementTable.hh"
+#include "G4VisAttributes.hh"
+#include "G4Colour.hh"
+#include "G4RotationMatrix.hh"
+#include "G4Transform3D.hh"
+#include "G4PVPlacement.hh"
+#include "G4PVDivision.hh"
+
+// G4 sensitive
+#include "G4SDManager.hh"
+#include "G4MultiFunctionalDetector.hh"
+
+// NPTool headers
+#include "ShieldPhParis.hh"
+//#include "ParisScorers.hh"
+#include "ShieldScorers.hh"
+#include "GeneralScorers.hh"
+#include "RootOutput.h"
+
+// CLHEP
+#include "CLHEP/Random/RandGauss.h"
+
+using namespace std;
+using namespace CLHEP;
+using namespace PARISPHSHIELD;
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ShieldPhParis::ShieldPhParis()
+{
+   ms_InterCoord = 0;
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+ShieldPhParis::~ShieldPhParis()
+{
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ShieldPhParis::AddModule(G4ThreeVector X1_Y1,
+                               G4ThreeVector X128_Y1,
+                               G4ThreeVector X1_Y128,
+                               G4ThreeVector X128_Y128)
+{
+   m_DefinitionType.push_back(true);
+
+   m_X1_Y1.push_back(X1_Y1);
+   m_X128_Y1.push_back(X128_Y1);
+   m_X1_Y128.push_back(X1_Y128);
+   m_X128_Y128.push_back(X128_Y128);
+
+   m_R.push_back(0);
+   m_Theta.push_back(0);
+   m_Phi.push_back(0);
+   m_beta_u.push_back(0);
+   m_beta_v.push_back(0);
+   m_beta_w.push_back(0);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ShieldPhParis::AddModule(G4double R,
+                               G4double Theta,
+                               G4double Phi,
+                               G4double beta_u,
+                               G4double beta_v,
+                               G4double beta_w) 
+{
+   G4ThreeVector empty = G4ThreeVector(0, 0, 0);
+
+   m_DefinitionType.push_back(false);
+
+   m_X1_Y1.push_back(empty);
+   m_X128_Y1.push_back(empty);
+   m_X1_Y128.push_back(empty);
+   m_X128_Y128.push_back(empty);
+
+   m_R.push_back(R);
+   m_Theta.push_back(Theta);
+   m_Phi.push_back(Phi);
+   m_beta_u.push_back(beta_u);
+   m_beta_v.push_back(beta_v);
+   m_beta_w.push_back(beta_w);
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+void ShieldPhParis::VolumeMaker(G4int             DetecNumber,
+                                 G4ThreeVector     MMpos,
+                                 G4RotationMatrix* MMrot,
+                                 G4LogicalVolume*  world)
+{
+   G4double NbrTelescopes = DetecNumber;
+   G4String DetectorNumber;
+   ostringstream Number;
+   Number << NbrTelescopes;
+   DetectorNumber = Number.str();
+
+   /////////////////////////////////////////////////////////////////
+   /////////////////Element  Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   G4String symbol, name;
+   G4double density = 0. , a = 0, z = 0;
+   G4int ncomponents = 0;
+   G4int nel = 0, natoms = 0;
+
+   ////////////////////////////////////////////////////////////////
+   /////////////////Material Definition ///////////////////////////
+   ////////////////////////////////////////////////////////////////
+   a=137.327*g/mole;
+   G4Element* Ba = new G4Element(name="Barium",symbol="Ba",z=56.,a);
+   a=18.9984032*g/mole;
+   G4Element* F = new G4Element(name="Fluorine",symbol="F",z=9.,a);
+   a=22.99*g/mole;
+   G4Element* Na = new G4Element(name="Sodium",symbol="Na",z=11.,a);
+   a=79.904*g/mole;
+   G4Element* Br = new G4Element(name="Bromine",symbol="Br",z=35.,a);
+   a=126.90477*g/mole;
+   G4Element* I  = new G4Element(name="Iodine",symbol="I",z=53.,a);
+   a=132.90545*g/mole;
+   G4Element* Cs = new G4Element(name="Cesium",symbol="Cs",z=55.,a);
+   a=138.9055*g/mole;
+   G4Element* La = new G4Element(name="Lanthanum",symbol="La",z=57.,a);
+   //  Vacuum
+   G4Element* N   = new G4Element("Nitrogen" , symbol = "N"  , z = 7  , a = 14.01  * g / mole);
+   G4Element* O   = new G4Element("Oxigen"   , symbol = "O"  , z = 8  , a = 16.00  * g / mole);
+
+   density = 0.000000001 * mg / cm3;
+   G4Material* Vacuum = new G4Material("Vacuum", density, ncomponents = 2);
+   Vacuum->AddElement(N, .7);
+   Vacuum->AddElement(O, .3);
+
+   // NaI
+   density = 3.67*g/cm3, nel = 2; 
+   G4Material* NaI = new G4Material(name="NaI",density,nel);
+   NaI->AddElement(Na, natoms = 1);
+   NaI->AddElement(I,  natoms = 1);
+
+   // CsI
+   density  = 4.51*g/cm3, nel = 2; 
+   G4Material* CsI = new G4Material(name="CsI", density, nel);
+   CsI->AddElement(Cs, natoms = 1);
+   CsI->AddElement(I,  natoms = 1);
+
+   // LaBr3
+   density = 5.29*g/cm3, nel = 2; 
+   G4Material* LaBr3 = new G4Material(name="LaBr3",density,nel);
+   LaBr3->AddElement(La, natoms = 1);
+   LaBr3->AddElement(Br, natoms = 3);
+
+   // BaF2
+   density = 4.89*g/cm3, nel = 2;
+   G4Material* BaF2 = new G4Material(name="BaF2", density, nel);
+   BaF2->AddElement(Ba, natoms = 1);
+   BaF2->AddElement(F,  natoms = 2);
+
+   ////////////////////////////////////////////////////////////////
+   ////////////// Starting Volume Definition //////////////////////
+   ////////////////////////////////////////////////////////////////
+   // Little trick to avoid warning in compilation: Use a PVPlacement "buffer".
+   // If don't you will have a Warning unused variable 'myPVP'
+   G4PVPlacement* PVPBuffer;
+   G4String Name = "ShieldPhParis" + DetectorNumber ;
+
+   // Mother VolumeShieldPhParis.cc
+   G4double z_values[2]={0 , Length};
+   G4double Rmin_values[2]={0., 0.};
+   G4double Rmax_values[2]={134.375/2, 196.625/2};
+
+   G4Box*           solidSubtractBox = new G4Box("Box", (PhoswichFace/2.), (PhoswichFace/2.), (Length+0.5)/2); 
+
+   G4Polyhedra*           solidPolyhedra = new G4Polyhedra(Name, 0.*deg, 360.*deg, 3, 2, z_values, Rmin_values, Rmax_values); 
+
+   G4SubtractionSolid*           solidShieldPhParis = new G4SubtractionSolid(Name,solidPolyhedra, solidSubtractBox, 0, G4ThreeVector(0.,0.,Length/2)); 
+
+
+   G4LogicalVolume* logicShieldPhParis = new G4LogicalVolume(solidShieldPhParis, Vacuum, Name, 0, 0, 0);
+
+   PVPBuffer     = new G4PVPlacement(G4Transform3D(*MMrot, MMpos) ,
+                                     logicShieldPhParis           ,
+                                     Name                         ,
+                                     world                        ,
+                                     false                        ,
+                                     0);
+
+   logicShieldPhParis->SetVisAttributes(G4VisAttributes::Invisible);
+   //if (m_non_sensitive_part_visiualisation) logicShieldPhParis->SetVisAttributes(G4VisAttributes(G4Colour(0.90, 0.90, 0.90)));
+
+   // Daughter Volume
+   // CsI
+   G4ThreeVector  positionCsI = G4ThreeVector(0, 0, 0);
+
+   G4Polyhedra*           solidShield = new G4Polyhedra("solidShield",0.*deg, 360.*deg, 3, 2, z_values, Rmin_values, Rmax_values);  
+
+   G4SubtractionSolid*           solidShieldCsI = new G4SubtractionSolid("solidShieldCsI",solidShield, solidSubtractBox, 0, G4ThreeVector(0.,0.,Length/2)); 
+
+   //G4LogicalVolume* logicShieldCsI = new G4LogicalVolume(solidShieldCsI, CsI, "logicShieldCsI", 0, 0, 0);
+   G4LogicalVolume* logicShieldCsI = new G4LogicalVolume(solidShieldCsI, NaI, "logicShieldCsI", 0, 0, 0);
+
+   PVPBuffer     = new G4PVPlacement(0,
+				     positionCsI              ,
+                                     logicShieldCsI           ,
+                                     Name + "_ShieldCsI"      ,
+                                     logicShieldPhParis       ,
+                                     false                    ,
+                                     0);
+  
+   // Set CsI sensible
+   logicShieldCsI->SetSensitiveDetector(m_CsIShieldScorer);
+
+   // Visualisation of CsIStage
+   G4VisAttributes* CsIShieldVisAtt = new G4VisAttributes(G4Colour(1., 0., 0.));
+   logicShieldCsI->SetVisAttributes(CsIShieldVisAtt);
+
+
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Virtual Method of VDetector class
+
+// Read stream at Configfile to pick-up parameters of detector (Position,...)
+// Called in DetecorConstruction::ReadDetextorConfiguration Method
+void ShieldPhParis::ReadConfiguration(string Path)
+{
+   ifstream ConfigFile;
+   ConfigFile.open(Path.c_str());
+   string LineBuffer, DataBuffer; 
+
+   // A:X1_Y1     --> X:1    Y:1
+   // B:X128_Y1   --> X:128  Y:1
+   // C:X1_Y128   --> X:1    Y:128
+   // D:X128_Y128    --> X:128  Y:128
+
+   G4double Ax , Bx , Cx , Dx , Ay , By , Cy , Dy , Az , Bz , Cz , Dz          ;
+   G4ThreeVector A , B , C , D                                                 ;
+   G4double Theta = 0 , Phi = 0 , R = 0 , beta_u = 0 , beta_v = 0 , beta_w = 0 ;
+
+   bool ReadingStatus = false;
+
+   bool check_A = false;
+   bool check_C = false;
+   bool check_B = false;
+   bool check_D = false;
+
+   bool check_Theta = false;
+   bool check_Phi   = false;
+   bool check_R     = false;
+   bool check_beta  = false;
+   
+   bool checkVis = false;
+
+   while (!ConfigFile.eof()) {
+      getline(ConfigFile, LineBuffer);
+      if (LineBuffer.compare(0, 13, "ShieldPhParis") == 0) {
+         G4cout << "///" << G4endl           ;
+         G4cout << "Cluster Shield element found: " << G4endl   ;
+         ReadingStatus = true ;
+      }
+         
+      while (ReadingStatus) {
+         ConfigFile >> DataBuffer;
+         // Comment Line 
+         if (DataBuffer.compare(0, 1, "%") == 0) {/*do nothing */;}
+	
+         // Position method
+         else if (DataBuffer.compare(0, 6, "X1_Y1=") == 0) {
+            check_A = true;
+            ConfigFile >> DataBuffer ;
+            Ax = atof(DataBuffer.c_str()) ;
+            Ax = Ax * mm ;
+            ConfigFile >> DataBuffer ;
+            Ay = atof(DataBuffer.c_str()) ;
+            Ay = Ay * mm ;
+            ConfigFile >> DataBuffer ;
+            Az = atof(DataBuffer.c_str()) ;
+            Az = Az * mm ;
+
+            A = G4ThreeVector(Ax, Ay, Az);
+            cout << "X1 Y1 corner position : " << A << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X128_Y1=") == 0) {
+            check_B = true;
+            ConfigFile >> DataBuffer ;
+            Bx = atof(DataBuffer.c_str()) ;
+            Bx = Bx * mm ;
+            ConfigFile >> DataBuffer ;
+            By = atof(DataBuffer.c_str()) ;
+            By = By * mm ;
+            ConfigFile >> DataBuffer ;
+            Bz = atof(DataBuffer.c_str()) ;
+            Bz = Bz * mm ;
+
+            B = G4ThreeVector(Bx, By, Bz);
+            cout << "X128 Y1 corner position : " << B << endl;
+         }
+         else if (DataBuffer.compare(0, 8, "X1_Y128=") == 0) {
+            check_C = true;
+            ConfigFile >> DataBuffer ;
+            Cx = atof(DataBuffer.c_str()) ;
+            Cx = Cx * mm ;
+            ConfigFile >> DataBuffer ;
+            Cy = atof(DataBuffer.c_str()) ;
+            Cy = Cy * mm ;
+            ConfigFile >> DataBuffer ;
+            Cz = atof(DataBuffer.c_str()) ;
+            Cz = Cz * mm ;
+
+            C = G4ThreeVector(Cx, Cy, Cz);
+            cout << "X1 Y128 corner position : " << C << endl;
+         }
+         else if (DataBuffer.compare(0, 10, "X128_Y128=") == 0) {
+            check_D = true;
+            ConfigFile >> DataBuffer ;
+            Dx = atof(DataBuffer.c_str()) ;
+            Dx = Dx * mm ;
+            ConfigFile >> DataBuffer ;
+            Dy = atof(DataBuffer.c_str()) ;
+            Dy = Dy * mm ;
+            ConfigFile >> DataBuffer ;
+            Dz = atof(DataBuffer.c_str()) ;
+            Dz = Dz * mm ;
+
+            D = G4ThreeVector(Dx, Dy, Dz);
+            cout << "X128 Y128 corner position : " << D << endl;
+         }
+
+         // Angle method
+         else if (DataBuffer.compare(0, 6, "THETA=") == 0) {
+            check_Theta = true;
+            ConfigFile >> DataBuffer ;
+            Theta = atof(DataBuffer.c_str()) ;
+            Theta = Theta * deg;
+            cout << "Theta:  " << Theta / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 4, "PHI=") == 0) {
+            check_Phi = true;
+            ConfigFile >> DataBuffer ;
+            Phi = atof(DataBuffer.c_str()) ;
+            Phi = Phi * deg;
+            cout << "Phi:  " << Phi / deg << endl;
+         }
+         else if (DataBuffer.compare(0, 2, "R=") == 0) {
+            check_R = true;
+            ConfigFile >> DataBuffer ;
+            R = atof(DataBuffer.c_str()) ;
+            R = R * mm;
+            cout << "R:  " << R / mm << endl;
+         }
+         else if (DataBuffer.compare(0, 5, "BETA=") == 0) {
+            check_beta = true;
+            ConfigFile >> DataBuffer ;
+            beta_u = atof(DataBuffer.c_str()) ;
+            beta_u = beta_u * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_v = atof(DataBuffer.c_str()) ;
+            beta_v = beta_v * deg   ;
+            ConfigFile >> DataBuffer ;
+            beta_w = atof(DataBuffer.c_str()) ;
+            beta_w = beta_w * deg   ;
+            G4cout << "Beta:  " << beta_u / deg << " " << beta_v / deg << " " << beta_w / deg << G4endl  ;
+         }
+
+         else if (DataBuffer.compare(0, 4, "VIS=") == 0) {
+            checkVis = true ;
+            ConfigFile >> DataBuffer;
+            if (DataBuffer.compare(0, 3, "all") == 0) m_non_sensitive_part_visiualisation = true;
+         }
+         
+         else G4cout << "WARNING: Wrong Token, ShieldPhParis: Cluster Element not added" << G4endl;
+
+         // Add The previously define telescope
+         // With position method
+         if ((check_A && check_B && check_C && check_D && checkVis) && 
+             !(check_Theta && check_Phi && check_R)) {
+            ReadingStatus = false;
+	    check_A = false;
+	    check_C = false;
+	    check_B = false;
+	    check_D = false;
+	    checkVis = false;
+
+            AddModule(A, B, C, D);
+         }
+
+         // With angle method
+         if ((check_Theta && check_Phi && check_R && checkVis) && 
+             !(check_A && check_B && check_C && check_D)) {
+            ReadingStatus = false;
+            check_Theta = false;
+   	    check_Phi   = false;
+   	    check_R     = false;
+   	    check_beta  = false;
+	    checkVis = false;
+		     
+            AddModule(R, Theta, Phi, beta_u, beta_v, beta_w);
+         }
+      }
+   }
+}
+
+
+
+// Construct detector and inialise sensitive part.
+// Called After DetecorConstruction::AddDetector Method
+void ShieldPhParis::ConstructDetector(G4LogicalVolume* world)
+{
+   G4RotationMatrix* MMrot    = NULL                   ;
+   G4ThreeVector     MMpos    = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMu      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMv      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMw      = G4ThreeVector(0, 0, 0) ;
+   G4ThreeVector     MMCenter = G4ThreeVector(0, 0, 0) ;
+
+   G4int NumberOfTelescope = m_DefinitionType.size() ;
+
+   for (G4int i = 0; i < NumberOfTelescope; i++) {
+      // By Point
+      if (m_DefinitionType[i]) {
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         MMu = m_X128_Y1[i] - m_X1_Y1[i]; 
+         MMu = MMu.unit();
+
+         MMv = m_X1_Y128[i] - m_X1_Y1[i];
+         //MMv = -0.5 * (m_X1_Y1[i] + m_X128_Y128[i] - m_X1_Y128[i] - m_X128_Y1[i]);
+         MMv = MMv.unit();
+
+         G4ThreeVector MMscal = MMu.dot(MMv);
+
+         MMw = MMu.cross(MMv);
+//         if (MMw.z() > 0) MMw = MMv.cross(MMu) ;
+         MMw = MMw.unit();
+
+         MMCenter = (m_X1_Y1[i] + m_X1_Y128[i] + m_X128_Y1[i] + m_X128_Y128[i]) / 4;
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // translation to place Telescope
+         //MMpos = MMw * Length * 0.5 + MMCenter;
+         MMpos = MMCenter;
+      }
+
+      // By Angle
+      else {
+         G4double Theta = m_Theta[i] ;
+         G4double Phi   = m_Phi[i]   ;
+
+         // (u,v,w) unitary vector associated to telescope referencial
+         // (u,v) // to silicon plan
+         // w perpendicular to (u,v) plan and pointing ThirdStage
+         // Phi is angle between X axis and projection in (X,Y) plan
+         // Theta is angle between  position vector and z axis
+         G4double wX = m_R[i] * sin(Theta / rad) * cos(Phi / rad);
+         G4double wY = m_R[i] * sin(Theta / rad) * sin(Phi / rad);
+         G4double wZ = m_R[i] * cos(Theta / rad);
+         MMw = G4ThreeVector(wX, wY, wZ);
+
+         // vector corresponding to the center of the module
+         G4ThreeVector CT = MMw;
+
+         // vector parallel to one axis of silicon plane
+         G4double ii = cos(Theta / rad) * cos(Phi / rad);
+         G4double jj = cos(Theta / rad) * sin(Phi / rad);
+         G4double kk = -sin(Theta / rad);
+         G4ThreeVector Y = G4ThreeVector(ii, jj, kk);
+
+         MMw = MMw.unit();
+         MMu = MMw.cross(Y);
+         MMv = MMw.cross(MMu);
+         MMv = MMv.unit();
+         MMu = MMu.unit();
+
+         // Passage Matrix from Lab Referential to Telescope Referential
+         // MUST2
+         MMrot = new G4RotationMatrix(MMu, MMv, MMw);
+         // Telescope is rotate of Beta angle around MMv axis.
+         MMrot->rotate(m_beta_u[i], MMu);
+         MMrot->rotate(m_beta_v[i], MMv);
+         MMrot->rotate(m_beta_w[i], MMw);
+         // translation to place Telescope
+         MMpos = MMw * Length * 0.5 + CT ;
+      }
+
+      VolumeMaker(i + 1, MMpos, MMrot, world);
+   }
+
+   delete MMrot ;
+}
+
+
+
+// Connect the ParisData class to the output TTree
+// of the simulation
+void ShieldPhParis::InitializeRootOutput()
+{
+}
+
+
+
+// Set the TinteractionCoordinates object from VDetector to the present class
+void ShieldPhParis::SetInterCoordPointer(TInteractionCoordinates* interCoord)
+{
+   ms_InterCoord = interCoord;
+}
+
+
+
+// Read sensitive part and fill the Root tree.
+// Called at in the EventAction::EndOfEventAvtion
+void ShieldPhParis::ReadSensitive(const G4Event* event)
+{
+   //////////////////////////////////////////////////////////////////////////////////////
+   //////////////////////// Used to Read Event Map of detector //////////////////////////
+   //////////////////////////////////////////////////////////////////////////////////////
+ 
+      momentum = event->GetPrimaryVertex()->GetPrimary()->GetMomentum(); 
+      G4double EGamma = momentum.getR(); // for photon E=p
+      G4double EGammaMin = EGamma-4*ResoFirstStage; 
+      G4double EGammaMax = EGamma+4*ResoFirstStage;
+
+   // CsI Shield
+   std::map<G4int, G4int*>::iterator    CsIShieldDetectorNumber_itr;
+   std::map<G4int, G4double*>::iterator CsIShieldEnergy_itr;
+   std::map<G4int, G4double*>::iterator CsIShieldTime_itr;
+   //std::map<G4int, G4double*>::iterator X_itr;
+   //std::map<G4int, G4double*>::iterator Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_X_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Y_itr;
+   //std::map<G4int, G4double*>::iterator Pos_Z_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Theta_itr;
+   //std::map<G4int, G4double*>::iterator Ang_Phi_itr;
+
+   G4THitsMap<G4int>*    CsIShieldDetectorNumberHitMap;
+   G4THitsMap<G4double>* CsIShieldEnergyHitMap;
+   G4THitsMap<G4double>* CsIShieldTimeHitMap;
+   //   G4THitsMap<G4double>* XHitMap;
+   //  G4THitsMap<G4double>* YHitMap;
+   //G4THitsMap<G4double>* PosXHitMap;
+   //G4THitsMap<G4double>* PosYHitMap;
+   //G4THitsMap<G4double>* PosZHitMap;
+   //G4THitsMap<G4double>* AngThetaHitMap;
+   //G4THitsMap<G4double>* AngPhiHitMap;
+
+   // NULL pointer are given to avoid warning at compilation
+
+   // Read the Scorer associate to the LaBr
+
+   //Detector Number
+   G4int CsIShieldDetCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldPhParis/CsIShieldDetectorNumber")    ;
+   CsIShieldDetectorNumberHitMap = (G4THitsMap<G4int>*)(event->GetHCofThisEvent()->GetHC(CsIShieldDetCollectionID))         ;
+   CsIShieldDetectorNumber_itr =  CsIShieldDetectorNumberHitMap->GetMap()->begin()                                               ;
+
+   //Energy
+   G4int CsIShieldEnergyCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldPhParis/CsIShieldEnergy")   ;
+   CsIShieldEnergyHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIShieldEnergyCollectionID))                    ;
+   CsIShieldEnergy_itr = CsIShieldEnergyHitMap->GetMap()->begin()                                                          ;
+
+   //Time of Flight
+   G4int CsIShieldTimeCollectionID = G4SDManager::GetSDMpointer()->GetCollectionID("CsIScorerShieldPhParis/CsIShieldTime")    ;
+   CsIShieldTimeHitMap = (G4THitsMap<G4double>*)(event->GetHCofThisEvent()->GetHC(CsIShieldTimeCollectionID))                        ;
+   CsIShieldTime_itr = CsIShieldTimeHitMap->GetMap()->begin()                                                              ;
+
+
+   // Check the size of different map
+   G4int sizeN = CsIShieldDetectorNumberHitMap->entries();  // number of objects hit by trackID=1 (can be the same object hit several time) 
+   G4int sizeE = CsIShieldEnergyHitMap->entries();          // = number of steps with edep non null 
+   G4int sizeT = CsIShieldTimeHitMap->entries();
+   //G4int sizeX = PosXHitMap->entries();
+   //G4int sizeY = PosYHitMap->entries();
+   //G4int sizeX = XHitMap->entries();
+   //G4int sizeY = YHitMap->entries();
+
+   //G4cout <<"SizeN=" << sizeN << endl;
+   //G4cout <<"SizeC=" << sizeC << endl;
+   //G4cout <<"SizeN CsI =" << sizeNCsI << endl;
+   //G4cout <<"SizeE CsI =" << sizeECsI << endl;
+
+   //DetectorNumberHitMap->PrintAllHits();
+
+
+    if (sizeE != sizeT) {
+      G4cout << "No match size PARIS Event Map: sE:"
+      << sizeE << " sT:" << sizeT << endl ;
+
+      //   if (sizeE != sizeX) {
+      //G4cout << "No match size PARIS Event Map: sE:"
+      //<< sizeE << " sT:" << sizeT << " sX:" << sizeX << " sY:" << sizeY << endl ;
+      return;
+     }
+
+
+    //G4cout <<"SizeN=" << sizeN << G4endl;
+
+
+   if(sizeN>0)
+     {
+
+       // Deal with trackID=1:
+       G4int N_first= *(CsIShieldDetectorNumber_itr->second);                  // ID of first det hit
+       G4int NTrackID =   CsIShieldDetectorNumber_itr->first - N_first;           // first trackID dealt with (not always =1)
+       G4double E = *(CsIShieldEnergy_itr->second);
+       G4double T = *(CsIShieldTime_itr->second);
+      
+
+       //G4cout <<"NTrackID=" << NTrackID << G4endl;
+       //G4cout <<"N_first=" << N_first << G4endl;
+       //G4cout <<"CrystalNumber_first=" << NCryst << G4endl;
+       //G4cout <<"Energy first=" << E << G4endl;
+       //G4cout <<"Time first =" << T << G4endl;
+
+
+       if(sizeN>1)
+	 {
+	   CsIShieldEnergy_itr++;
+	   CsIShieldTime_itr++;
+	   CsIShieldDetectorNumber_itr++;
+
+	   for (G4int l = 1; l < sizeN ; l++) {                    // loop on all the other tracks
+
+ 
+	     G4int N= *(CsIShieldDetectorNumber_itr->second);            // ID of det hit
+	     NTrackID =   CsIShieldDetectorNumber_itr->first - N;           // ID of the track
+
+	     //G4cout <<"l=" << l << G4endl;
+	     //G4cout <<"N=" << N << G4endl;
+	     //G4cout <<"DetectorNumber_itr->first =" << DetectorNumber_itr->first << G4endl;
+	     //G4cout <<"NTrackID=" << NTrackID << G4endl;
+
+	     if(N==N_first)
+	       {
+		 E += *(CsIShieldEnergy_itr->second);
+
+	       }else  // we fill the tree for the first detector hit and move to the next detector hit
+		 {
+		   if(E!=0)
+		     {
+		       // Fill detector number
+		       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldPh"] + N_first);
+		       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldPh"] + N_first);
+		       // Fill Energy
+		       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+		       // Fill Time
+		       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));
+
+		     }
+
+		   N_first=N;
+		   E=*(CsIShieldEnergy_itr->second);
+
+		 }
+
+
+	     //G4cout <<"Energy=" << E << G4endl;
+	     //G4cout <<"Time =" << T << G4endl;
+       
+	     // Always fill the tree at the end of the loop:
+	   if(l==(sizeN-1) && E!=0)
+	     {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldPh"] + N_first);
+	       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldPh"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+	       // Fill Time
+	       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));	       
+	     }
+
+	     CsIShieldEnergy_itr++;
+	     CsIShieldDetectorNumber_itr++;
+	   }
+	 }else
+	   {
+	     // Fill the tree if sizeN=1:
+	     if(E!=0)
+	       {
+	       // Fill detector number
+	       ms_Event->SetPARISCsIShieldEDetectorNbr(m_index["ShieldPh"] + N_first);
+	       ms_Event->SetPARISCsIShieldTDetectorNbr(m_index["ShieldPh"] + N_first);
+	       // Fill Energy
+	       // ms_Event->SetPARISCsIShieldEEnergy(RandGauss::shoot(E, ResoFirstStage));
+		           E=RandGauss::shoot(E, ResoFirstStage);
+		           ms_Event->SetPARISCsIShieldEEnergy(E); // Fill the tree
+		           if(E>EGammaMin && E<EGammaMax) ms_Event->SetPARISCsIShieldEffphpeak(EGamma);
+
+	       // Fill Time
+	       ms_Event->SetPARISCsIShieldTTime(RandGauss::shoot(T, ResoTimeGpd));
+	       }
+	   }
+	
+ 
+     }
+  
+
+
+      // clear map for next event
+      CsIShieldDetectorNumberHitMap    -> clear();
+      CsIShieldEnergyHitMap            -> clear();
+      CsIShieldTimeHitMap              -> clear();
+      //XHitMap                 -> clear();
+      //YHitMap                 -> clear();
+      //PosXHitMap              -> clear();
+      //PosYHitMap              -> clear();
+      //PosZHitMap              -> clear();
+      //AngThetaHitMap          -> clear();
+      //AngPhiHitMap            -> clear();
+
+}
+
+
+
+void ShieldPhParis::InitializeScorers()
+{
+ 
+   // CsIShield Associate Scorer
+   m_CsIShieldScorer = new G4MultiFunctionalDetector("CsIScorerShieldPhParis");
+   
+   //   G4VPrimitiveScorer* DetNbr                           = new GENERALSCORERS::PSDetectorNumber("DetectorNumber", "ShieldPhParis", 0);
+   G4VPrimitiveScorer* DetNbr                           = new SHIELDScorerCsIDetectorNumber("CsIShieldDetectorNumber", "ShieldPhParis", 0);
+   //   G4VPrimitiveScorer* TOF                              = new GENERALSCORERS::PSTOF("StripTime","ShieldPhParis", 0);
+   G4VPrimitiveScorer* TOF                              = new SHIELDScorerCsITOF("CsIShieldTime","ShieldPhParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesX          = new GENERALSCORERS::PSInteractionCoordinatesX("InterCoordX","ShieldPhParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesY          = new GENERALSCORERS::PSInteractionCoordinatesY("InterCoordY","ShieldPhParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesZ          = new GENERALSCORERS::PSInteractionCoordinatesZ("InterCoordZ","ShieldPhParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAngleTheta = new GENERALSCORERS::PSInteractionCoordinatesAngleTheta("InterCoordAngTheta","ShieldPhParis", 0);
+   //G4VPrimitiveScorer* InteractionCoordinatesAnglePhi   = new GENERALSCORERS::PSInteractionCoordinatesAnglePhi("InterCoordAngPhi","ShieldPhParis", 0);
+
+   G4VPrimitiveScorer* Energy                           = new SHIELDScorerCsIEnergy("CsIShieldEnergy", "ShieldPhParis", 0);
+
+   //   G4VPrimitiveScorer* StripPositionX                   = new PARIScorerLaBr3StageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips);
+   //  G4VPrimitiveScorer* StripPositionY                   = new PARISScorerLaBr3StageBackStripDummyShape("StripIDBack", 0, NumberOfStrips);
+
+   //and register it to the multifunctionnal detector
+   m_CsIShieldScorer->RegisterPrimitive(DetNbr);
+   m_CsIShieldScorer->RegisterPrimitive(Energy);
+   m_CsIShieldScorer->RegisterPrimitive(TOF);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionX);
+   //m_LaBr3StageScorer->RegisterPrimitive(StripPositionY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesX);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesY);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesZ);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAngleTheta);
+   //m_LaBr3StageScorer->RegisterPrimitive(InteractionCoordinatesAnglePhi);
+
+
+
+   //  Add All Scorer to the Global Scorer Manager
+   G4SDManager::GetSDMpointer()->AddNewDetector(m_CsIShieldScorer);
+  
+ 
+}
diff --git a/NPSimulation/src/ShieldScorers.cc b/NPSimulation/src/ShieldScorers.cc
new file mode 100644
index 000000000..6748c306d
--- /dev/null
+++ b/NPSimulation/src/ShieldScorers.cc
@@ -0,0 +1,231 @@
+/*****************************************************************************
+ * 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: M. Labiche  contact address: marc.labiche@stfc.ac.uk     *
+ *                                                                           *
+ * Creation Date  : 26/08/10                                                 *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription: This class holds all the scorers needed by the                *
+ *             Shield*** objects.                                            *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+// G4 headers
+#include "G4UnitsTable.hh"
+
+// NPTool headers
+#include "GeneralScorers.hh"
+#include "ShieldScorers.hh"
+
+#include "ShieldClParis.hh"
+#include "ShieldPhParis.hh"
+
+using namespace PARISCLSHIELD;
+using namespace PARISPHSHIELD;
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Added by Adrien MATTA:
+// Those Scorer use TrackID as map index. This way ones can rebuild energy deposit,
+// time of flight or position,... particle by particle for each event. Because standard
+// scorer provide by G4 don't work this way but using a global ID for each event you should
+// not use those scorer with some G4 provided ones or being very carefull doing so.
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// Detector Number Scorer (deal with multiple particle hit)
+SHIELDScorerCsIDetectorNumber::SHIELDScorerCsIDetectorNumber(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+SHIELDScorerCsIDetectorNumber::~SHIELDScorerCsIDetectorNumber()
+{
+}
+
+G4bool SHIELDScorerCsIDetectorNumber::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->set(DetNbr + index, DetNbr);
+   return TRUE;
+}
+void SHIELDScorerCsIDetectorNumber::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4int>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void SHIELDScorerCsIDetectorNumber::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void SHIELDScorerCsIDetectorNumber::Clear()
+{
+   EvtMap->clear();
+}
+
+void SHIELDScorerCsIDetectorNumber::DrawAll()
+{
+}
+
+void SHIELDScorerCsIDetectorNumber::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4int*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << " Detector Number : " << G4BestUnit(*(itr->second), "DetectorNumber")
+      << G4endl;
+   }
+}
+
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage Energy Scorer (deal with multiple particle hit)
+SHIELDScorerCsIEnergy::SHIELDScorerCsIEnergy(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+SHIELDScorerCsIEnergy::~SHIELDScorerCsIEnergy()
+{
+}
+
+G4bool SHIELDScorerCsIEnergy::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get energy
+   G4ThreeVector POS  = aStep->GetPreStepPoint()->GetPosition();
+   POS = aStep->GetPreStepPoint()->GetTouchableHandle()->GetHistory()->GetTopTransform().TransformPoint(POS);
+
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //   if (edep < 100*keV) return FALSE;
+   if (edep < 0*keV) return FALSE;                  // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, edep);
+   return TRUE;
+}
+
+void SHIELDScorerCsIEnergy::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4double>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void SHIELDScorerCsIEnergy::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void SHIELDScorerCsIEnergy::Clear()
+{
+   EvtMap->clear();
+}
+
+void SHIELDScorerCsIEnergy::DrawAll()
+{
+}
+
+void SHIELDScorerCsIEnergy::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+   std::map<G4int, G4double*>::iterator itr = EvtMap->GetMap()->begin();
+   for (; itr != EvtMap->GetMap()->end(); itr++) {
+      G4cout << "  copy no.: " << itr->first
+      << "  energy deposit: " << G4BestUnit(*(itr->second), "Energy")
+      << G4endl;
+   }
+}
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+// FirstStage ToF Scorer (deal with multiple particle hit)
+SHIELDScorerCsITOF::SHIELDScorerCsITOF(G4String name, G4String volumeName, G4int depth)
+      : G4VPrimitiveScorer(name, depth), HCID(-1)
+{
+   m_VolumeName = volumeName;
+}
+
+SHIELDScorerCsITOF::~SHIELDScorerCsITOF()
+{
+}
+
+G4bool SHIELDScorerCsITOF::ProcessHits(G4Step* aStep, G4TouchableHistory*)
+{
+   // get detector number
+   int DetNbr = GENERALSCORERS::PickUpDetectorNumber(aStep, m_VolumeName);
+
+   // get TOF
+   G4double TOF  = aStep->GetPreStepPoint()->GetGlobalTime();
+
+   G4double edep = aStep->GetTotalEnergyDeposit();
+   //   if (edep < 100*keV) return FALSE;
+   if (edep < 0*keV) return FALSE;                   // = HERE IS THE DIFFERENCE WITH GENERALSCORER 
+   G4int  index = aStep->GetTrack()->GetTrackID();
+   EvtMap->add(DetNbr + index, TOF);
+   return TRUE;
+}
+
+void SHIELDScorerCsITOF::Initialize(G4HCofThisEvent* HCE)
+{
+   EvtMap = new G4THitsMap<G4double>(GetMultiFunctionalDetector()->GetName(), GetName());
+   if (HCID < 0) {
+      HCID = GetCollectionID(0);
+   }
+   HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap);
+}
+
+void SHIELDScorerCsITOF::EndOfEvent(G4HCofThisEvent*)
+{
+}
+
+void SHIELDScorerCsITOF::Clear()
+{
+   EvtMap->clear();
+}
+
+void SHIELDScorerCsITOF::DrawAll()
+{
+}
+
+void SHIELDScorerCsITOF::PrintAll()
+{
+   G4cout << " MultiFunctionalDet  " << detector->GetName() << G4endl;
+   G4cout << " PrimitiveScorer " << GetName() << G4endl;
+   G4cout << " Number of entries " << EvtMap->entries() << G4endl;
+}
+
+
+
+
diff --git a/NPSimulation/vasigamma.mac b/NPSimulation/vasigamma.mac
new file mode 100644
index 000000000..de894f95f
--- /dev/null
+++ b/NPSimulation/vasigamma.mac
@@ -0,0 +1,27 @@
+#verbose level
+/control/verbose 0
+/material/verbose 0
+/tracking/verbose 0
+/process/verbose 0
+/event/verbose 0
+/run/verbose 0
+
+# choose a graphic system
+#/vis/open OGLIX
+#/vis/open OGLSX
+#/vis/open VRML2FILE
+#/vis/scene/create
+#/vis/drawVolume
+#/vis/viewer/set/viewpointThetaPhi 0 0 deg
+#/vis/viewer/zoom 7
+
+# options to draw trajectories
+#/vis/scene/endOfEventAction accumulate
+#/vis/scene/add/trajectories 1
+#/tracking/storeTrajectory 1
+#/vis/scene/add/axes 0 0 0 20 cm
+#/vis/viewer/refresh
+
+# run event
+/run/beamOn 100000
+
diff --git a/NPSimulation/vis.mac b/NPSimulation/vis.mac
index 6082ac113..de2be93c3 100644
--- a/NPSimulation/vis.mac
+++ b/NPSimulation/vis.mac
@@ -1,26 +1,28 @@
 #verbose level
 /control/verbose 1
 /material/verbose 1
-/tracking/verbose 1
-/process/verbose 1
+/tracking/verbose 0
+/process/verbose 0
 /event/verbose 0
 /run/verbose 1
 
 # choose a graphic system
-#/vis/open OGLIX
-#/vis/open OGLSX
-/vis/open VRML2FILE
-/vis/scene/create
-/vis/drawVolume
-/vis/viewer/set/viewpointThetaPhi 0 0 deg
-/vis/viewer/zoom 7
+##/vis/open OGLIX
+##/vis/open OGLSX
+#/vis/open VRML2FILE
+#/vis/scene/create
+#/vis/drawVolume
+#/vis/viewer/set/viewpointThetaPhi 0 0 deg
+#/vis/viewer/zoom 7
 
-# options to draw trajectories
-/vis/scene/endOfEventAction accumulate
-/vis/scene/add/trajectories 1
-/tracking/storeTrajectory 1
-/vis/scene/add/axes 0 0 0 20 cm
-/vis/viewer/refresh
+## options to draw trajectories
+#/vis/scene/endOfEventAction accumulate
+#/vis/scene/add/trajectories 1
+#/tracking/storeTrajectory 1
+#/vis/scene/add/axes 0 0 0 20 cm
+#/vis/viewer/refresh
 
 # run event
-#/run/beamOn 100000
+#/run/beamOn 0
+#/run/beamOn 10000
+/run/beamOn 5000
-- 
GitLab