diff --git a/INSTALL b/INSTALL
index 35f9cbaf7fa3ac1fe9affbd6c6f43e1e69b91a2e..b916ea7c8a32ef403053b83d34a5064acbdd693a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -28,9 +28,10 @@ I) REQUIREMENTS
 
 II) WORKING CONFIGURATIONS
 	The NPTool package has been mainly tested (and developped) with 
-	the two following configurations:
+	the following configurations:
 	1) Mac OS X (10.5.7) + G4 (4.9.2) + CLHEP (2.0.4.2) + ROOT (5.22/00 and 5.24/00) + GSL ()
 	2) Linux Fedora (kernel 2.6.29) + G4 (4.9.1p3) + CLHEP (2.0.4.2) + ROOT (5.22/00) + GSL (1.12)
+	3) Linux Fedora (kernel 2.6.29) + G4 (4.9.2p2) + CLHEP (2.0.4.2) + ROOT (5.25/02) + GSL (1.12)
 	Please, report any working or non-working configuration.
 
 III) INSTALLATION
diff --git a/NPLib/DummyDetector/Makefile b/NPLib/DummyDetector/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..1d864a05a5312e340ec75ed81070789f66fa289f
--- /dev/null
+++ b/NPLib/DummyDetector/Makefile
@@ -0,0 +1,302 @@
+# 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
+ 
+#------------------------------------------------------------------------------
+SHARELIB      =  libDUMMYDetectorData.so 
+
+all:            $(SHARELIB)
+#------------------------------------------------------------------------------
+############### Detector ##############
+
+## DUMMYDetector ##
+libDUMMYDetectorData.so:	TDUMMYDetectorData.o	TDUMMYDetectorDataDict.o
+			$(LD) $(SOFLAGS) $^ $(OutPutOpt) $@
+
+TDUMMYDetectorDataDict.cxx:	TDUMMYDetectorData.h
+			rootcint -f $@ -c $^
+
+# dependances
+TDUMMYDetectorData.o:	TDUMMYDetectorData.cxx	TDUMMYDetectorData.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/DummyDetector/TDUMMYDetectorData.cxx b/NPLib/DummyDetector/TDUMMYDetectorData.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..1c15b58bdaa04b846a331cac3de2a18b26d11ee0
--- /dev/null
+++ b/NPLib/DummyDetector/TDUMMYDetectorData.cxx
@@ -0,0 +1,59 @@
+#include <iostream>
+#include "TDUMMYDetectorData.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: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
+ *                                                                           *
+ * Creation Date  : October 2009                                             *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class described the raw data of a very simple DUMMYDetector         *
+ *	Use it as a template for your own detector!                              *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+
+ClassImp(TDUMMYDetectorData)
+
+TDUMMYDetectorData::TDUMMYDetectorData()
+{
+}
+
+
+
+TDUMMYDetectorData::~TDUMMYDetectorData()
+{
+}
+
+
+
+void TDUMMYDetectorData::Clear()
+{
+    fDUMMYDetector_Energy.clear();
+    fDUMMYDetector_Number.clear();
+    fDUMMYDetector_Time.clear();
+}
+
+
+
+void TDUMMYDetectorData::Dump() const
+{
+   cout << "XXXXXXXXXXXXXXXXXXXXXXXX New Event XXXXXXXXXXXXXXXXX" << endl;
+
+	for(unsigned short i = 0 ; i<fDUMMYDetector_Energy.size() ; i ++)
+		{
+			cout << "DUMMYDetector Number " << fDUMMYDetector_Number[i] << " Energy: " << fDUMMYDetector_Energy[i]  << " Time: "<< fDUMMYDetector_Time[i] << endl;
+		
+		}
+   
+}
diff --git a/NPLib/DummyDetector/TDUMMYDetectorData.h b/NPLib/DummyDetector/TDUMMYDetectorData.h
new file mode 100755
index 0000000000000000000000000000000000000000..cc5c29fa18c8300f629b2c221e06e6d60d6e5d0e
--- /dev/null
+++ b/NPLib/DummyDetector/TDUMMYDetectorData.h
@@ -0,0 +1,72 @@
+#ifndef __DUMMYDetectorDATA__
+#define __DUMMYDetectorDATA__
+/*****************************************************************************
+ * 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: Adrien MATTA  contact address: matta@ipno.in2p3.fr       *
+ *                                                                           *
+ * Creation Date  : October 2009                                             *
+ * Last update    :                                                          *
+ *---------------------------------------------------------------------------*
+ * Decription:                                                               *
+ *  This class described the raw data of a very simple DUMMY detector        *
+ *	Use it as a template for your own detector!                              *
+ *                                                                           *
+ *---------------------------------------------------------------------------*
+ * Comment:                                                                  *
+ *                                                                           *
+ *                                                                           *
+ *****************************************************************************/
+#include <vector>
+
+#include "TObject.h"
+using namespace std ;
+
+
+class TDUMMYDetectorData : public TObject {
+ private:
+   // ADC
+   vector<double>	  fDUMMYDetector_Energy	;	
+   vector<double>	  fDUMMYDetector_Time		;
+   vector<short>    fDUMMYDetector_Number	;
+   
+ public:
+   TDUMMYDetectorData();
+   virtual ~TDUMMYDetectorData();
+
+   void	Clear();
+   void	Clear(const Option_t*) {};
+   void	Dump() const;
+
+   /////////////////////           GETTERS           ////////////////////////
+   // (E)
+   double	GetEnergy(int i)			{return fDUMMYDetector_Energy[i];}
+   // (T)
+   double	GetTime(int i)				{return fDUMMYDetector_Time[i];}
+   // (N)
+   int      GetDUMMYDetectorNumber(int i)		{return fDUMMYDetector_Number[i];}
+   
+   
+   double	GetEnergySize()			{return fDUMMYDetector_Energy.size();}
+   // (T)
+   double	GetTimeSize()				{return fDUMMYDetector_Time.size();}
+   // (N)
+   int      GetDUMMYDetectorNumberSize()		{return fDUMMYDetector_Number.size();}
+   
+   
+   /////////////////////           SETTERS           ////////////////////////
+   // (E)
+   void	SetEnergy(double E)			{fDUMMYDetector_Energy.push_back(E);}
+   void	SetTime(double T)			{fDUMMYDetector_Time.push_back(T);}
+   void	SetDUMMYDetectorNumber(int N)		{fDUMMYDetector_Number.push_back(N);}
+   
+   //
+   ClassDef(TDUMMYDetectorData,1)  // DUMMYDetectorData structure
+};
+
+#endif
diff --git a/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx b/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..f0f60697fba77a65fb00eca509cec583b65b0d74
--- /dev/null
+++ b/NPLib/DummyDetector/TDUMMYDetectorDataDict.cxx
@@ -0,0 +1,873 @@
+//
+// File generated by rootcint at Fri Oct 16 12:56:33 2009
+
+// Do NOT change. Changes will be lost next time file is generated
+//
+
+#include "RConfig.h" //rootcint 4834
+#if !defined(R__ACCESS_IN_SYMBOL)
+//Break the privacy of classes -- Disabled for the moment
+#define private public
+#define protected public
+#endif
+
+// Since CINT ignores the std namespace, we need to do so in this file.
+namespace std {} using namespace std;
+#include "TDUMMYDetectorDataDict.h"
+
+#include "TCollectionProxyInfo.h"
+#include "TClass.h"
+#include "TBuffer.h"
+#include "TMemberInspector.h"
+#include "TError.h"
+
+#ifndef G__ROOT
+#define G__ROOT
+#endif
+
+#include "RtypesImp.h"
+#include "TIsAProxy.h"
+
+// START OF SHADOWS
+
+namespace ROOT {
+   namespace Shadow {
+   } // of namespace Shadow
+} // of namespace ROOT
+// END OF SHADOWS
+
+namespace ROOT {
+   void TDUMMYDetectorData_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent);
+   static void *new_TDUMMYDetectorData(void *p = 0);
+   static void *newArray_TDUMMYDetectorData(Long_t size, void *p);
+   static void delete_TDUMMYDetectorData(void *p);
+   static void deleteArray_TDUMMYDetectorData(void *p);
+   static void destruct_TDUMMYDetectorData(void *p);
+
+   // Function generating the singleton type initializer
+   static TGenericClassInfo *GenerateInitInstanceLocal(const ::TDUMMYDetectorData*)
+   {
+      ::TDUMMYDetectorData *ptr = 0;
+      static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::TDUMMYDetectorData >(0);
+      static ::ROOT::TGenericClassInfo 
+         instance("TDUMMYDetectorData", ::TDUMMYDetectorData::Class_Version(), "TDUMMYDetectorData.h", 31,
+                  typeid(::TDUMMYDetectorData), DefineBehavior(ptr, ptr),
+                  &::TDUMMYDetectorData::Dictionary, isa_proxy, 0,
+                  sizeof(::TDUMMYDetectorData) );
+      instance.SetNew(&new_TDUMMYDetectorData);
+      instance.SetNewArray(&newArray_TDUMMYDetectorData);
+      instance.SetDelete(&delete_TDUMMYDetectorData);
+      instance.SetDeleteArray(&deleteArray_TDUMMYDetectorData);
+      instance.SetDestructor(&destruct_TDUMMYDetectorData);
+      return &instance;
+   }
+   TGenericClassInfo *GenerateInitInstance(const ::TDUMMYDetectorData*)
+   {
+      return GenerateInitInstanceLocal((::TDUMMYDetectorData*)0);
+   }
+   // Static variable to force the class initialization
+   static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0); R__UseDummy(_R__UNIQUE_(Init));
+} // end of namespace ROOT
+
+//______________________________________________________________________________
+TClass *TDUMMYDetectorData::fgIsA = 0;  // static to hold class pointer
+
+//______________________________________________________________________________
+const char *TDUMMYDetectorData::Class_Name()
+{
+   return "TDUMMYDetectorData";
+}
+
+//______________________________________________________________________________
+const char *TDUMMYDetectorData::ImplFileName()
+{
+   return ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetImplFileName();
+}
+
+//______________________________________________________________________________
+int TDUMMYDetectorData::ImplFileLine()
+{
+   return ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetImplFileLine();
+}
+
+//______________________________________________________________________________
+void TDUMMYDetectorData::Dictionary()
+{
+   fgIsA = ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetClass();
+}
+
+//______________________________________________________________________________
+TClass *TDUMMYDetectorData::Class()
+{
+   if (!fgIsA) fgIsA = ::ROOT::GenerateInitInstanceLocal((const ::TDUMMYDetectorData*)0x0)->GetClass();
+   return fgIsA;
+}
+
+//______________________________________________________________________________
+void TDUMMYDetectorData::Streamer(TBuffer &R__b)
+{
+   // Stream an object of class TDUMMYDetectorData.
+
+   UInt_t R__s, R__c;
+   if (R__b.IsReading()) {
+      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
+      TObject::Streamer(R__b);
+      {
+         vector<double> &R__stl =  fDUMMYDetector_Energy;
+         R__stl.clear();
+         int R__i, R__n;
+         R__b >> R__n;
+         R__stl.reserve(R__n);
+         for (R__i = 0; R__i < R__n; R__i++) {
+            double R__t;
+            R__b >> R__t;
+            R__stl.push_back(R__t);
+         }
+      }
+      {
+         vector<double> &R__stl =  fDUMMYDetector_Time;
+         R__stl.clear();
+         int R__i, R__n;
+         R__b >> R__n;
+         R__stl.reserve(R__n);
+         for (R__i = 0; R__i < R__n; R__i++) {
+            double R__t;
+            R__b >> R__t;
+            R__stl.push_back(R__t);
+         }
+      }
+      {
+         vector<short> &R__stl =  fDUMMYDetector_Number;
+         R__stl.clear();
+         int R__i, R__n;
+         R__b >> R__n;
+         R__stl.reserve(R__n);
+         for (R__i = 0; R__i < R__n; R__i++) {
+            short R__t;
+            R__b >> R__t;
+            R__stl.push_back(R__t);
+         }
+      }
+      R__b.CheckByteCount(R__s, R__c, TDUMMYDetectorData::IsA());
+   } else {
+      R__c = R__b.WriteVersion(TDUMMYDetectorData::IsA(), kTRUE);
+      TObject::Streamer(R__b);
+      {
+         vector<double> &R__stl =  fDUMMYDetector_Energy;
+         int R__n=(&R__stl) ? int(R__stl.size()) : 0;
+         R__b << R__n;
+         if(R__n) {
+            vector<double>::iterator R__k;
+            for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) {
+            R__b << (*R__k);
+            }
+         }
+      }
+      {
+         vector<double> &R__stl =  fDUMMYDetector_Time;
+         int R__n=(&R__stl) ? int(R__stl.size()) : 0;
+         R__b << R__n;
+         if(R__n) {
+            vector<double>::iterator R__k;
+            for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) {
+            R__b << (*R__k);
+            }
+         }
+      }
+      {
+         vector<short> &R__stl =  fDUMMYDetector_Number;
+         int R__n=(&R__stl) ? int(R__stl.size()) : 0;
+         R__b << R__n;
+         if(R__n) {
+            vector<short>::iterator R__k;
+            for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) {
+            R__b << (*R__k);
+            }
+         }
+      }
+      R__b.SetByteCount(R__c, kTRUE);
+   }
+}
+
+//______________________________________________________________________________
+void TDUMMYDetectorData::ShowMembers(TMemberInspector &R__insp, char *R__parent)
+{
+      // Inspect the data members of an object of class TDUMMYDetectorData.
+      TClass *R__cl = ::TDUMMYDetectorData::IsA();
+      Int_t R__ncp = strlen(R__parent);
+      if (R__ncp || R__cl || R__insp.IsA()) { }
+      R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Energy", (void*)&fDUMMYDetector_Energy);
+      ::ROOT::GenericShowMembers("vector<double>", (void*)&fDUMMYDetector_Energy, R__insp, strcat(R__parent,"fDUMMYDetector_Energy."),false);
+      R__parent[R__ncp] = 0;
+      R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Time", (void*)&fDUMMYDetector_Time);
+      ::ROOT::GenericShowMembers("vector<double>", (void*)&fDUMMYDetector_Time, R__insp, strcat(R__parent,"fDUMMYDetector_Time."),false);
+      R__parent[R__ncp] = 0;
+      R__insp.Inspect(R__cl, R__parent, "fDUMMYDetector_Number", (void*)&fDUMMYDetector_Number);
+      ::ROOT::GenericShowMembers("vector<short>", (void*)&fDUMMYDetector_Number, R__insp, strcat(R__parent,"fDUMMYDetector_Number."),false);
+      R__parent[R__ncp] = 0;
+      TObject::ShowMembers(R__insp, R__parent);
+}
+
+namespace ROOT {
+   // Wrappers around operator new
+   static void *new_TDUMMYDetectorData(void *p) {
+      return  p ? new(p) ::TDUMMYDetectorData : new ::TDUMMYDetectorData;
+   }
+   static void *newArray_TDUMMYDetectorData(Long_t nElements, void *p) {
+      return p ? new(p) ::TDUMMYDetectorData[nElements] : new ::TDUMMYDetectorData[nElements];
+   }
+   // Wrapper around operator delete
+   static void delete_TDUMMYDetectorData(void *p) {
+      delete ((::TDUMMYDetectorData*)p);
+   }
+   static void deleteArray_TDUMMYDetectorData(void *p) {
+      delete [] ((::TDUMMYDetectorData*)p);
+   }
+   static void destruct_TDUMMYDetectorData(void *p) {
+      typedef ::TDUMMYDetectorData current_t;
+      ((current_t*)p)->~current_t();
+   }
+} // end of namespace ROOT for class ::TDUMMYDetectorData
+
+namespace ROOT {
+   void vectorlEdoublegR_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent);
+   static void vectorlEdoublegR_Dictionary();
+   static void *new_vectorlEdoublegR(void *p = 0);
+   static void *newArray_vectorlEdoublegR(Long_t size, void *p);
+   static void delete_vectorlEdoublegR(void *p);
+   static void deleteArray_vectorlEdoublegR(void *p);
+   static void destruct_vectorlEdoublegR(void *p);
+
+   // Function generating the singleton type initializer
+   static TGenericClassInfo *GenerateInitInstanceLocal(const vector<double>*)
+   {
+      vector<double> *ptr = 0;
+      static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(vector<double>),0);
+      static ::ROOT::TGenericClassInfo 
+         instance("vector<double>", -2, "vector.dll", 0,
+                  typeid(vector<double>), DefineBehavior(ptr, ptr),
+                  0, &vectorlEdoublegR_Dictionary, isa_proxy, 0,
+                  sizeof(vector<double>) );
+      instance.SetNew(&new_vectorlEdoublegR);
+      instance.SetNewArray(&newArray_vectorlEdoublegR);
+      instance.SetDelete(&delete_vectorlEdoublegR);
+      instance.SetDeleteArray(&deleteArray_vectorlEdoublegR);
+      instance.SetDestructor(&destruct_vectorlEdoublegR);
+      instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback< vector<double> >()));
+      return &instance;
+   }
+   // Static variable to force the class initialization
+   static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const vector<double>*)0x0); R__UseDummy(_R__UNIQUE_(Init));
+
+   // Dictionary for non-ClassDef classes
+   static void vectorlEdoublegR_Dictionary() {
+      ::ROOT::GenerateInitInstanceLocal((const vector<double>*)0x0)->GetClass();
+   }
+
+} // end of namespace ROOT
+
+namespace ROOT {
+   // Wrappers around operator new
+   static void *new_vectorlEdoublegR(void *p) {
+      return  p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<double> : new vector<double>;
+   }
+   static void *newArray_vectorlEdoublegR(Long_t nElements, void *p) {
+      return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<double>[nElements] : new vector<double>[nElements];
+   }
+   // Wrapper around operator delete
+   static void delete_vectorlEdoublegR(void *p) {
+      delete ((vector<double>*)p);
+   }
+   static void deleteArray_vectorlEdoublegR(void *p) {
+      delete [] ((vector<double>*)p);
+   }
+   static void destruct_vectorlEdoublegR(void *p) {
+      typedef vector<double> current_t;
+      ((current_t*)p)->~current_t();
+   }
+} // end of namespace ROOT for class vector<double>
+
+namespace ROOT {
+   void vectorlEshortgR_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent);
+   static void vectorlEshortgR_Dictionary();
+   static void *new_vectorlEshortgR(void *p = 0);
+   static void *newArray_vectorlEshortgR(Long_t size, void *p);
+   static void delete_vectorlEshortgR(void *p);
+   static void deleteArray_vectorlEshortgR(void *p);
+   static void destruct_vectorlEshortgR(void *p);
+
+   // Function generating the singleton type initializer
+   static TGenericClassInfo *GenerateInitInstanceLocal(const vector<short>*)
+   {
+      vector<short> *ptr = 0;
+      static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(vector<short>),0);
+      static ::ROOT::TGenericClassInfo 
+         instance("vector<short>", -2, "vector.dll", 0,
+                  typeid(vector<short>), DefineBehavior(ptr, ptr),
+                  0, &vectorlEshortgR_Dictionary, isa_proxy, 0,
+                  sizeof(vector<short>) );
+      instance.SetNew(&new_vectorlEshortgR);
+      instance.SetNewArray(&newArray_vectorlEshortgR);
+      instance.SetDelete(&delete_vectorlEshortgR);
+      instance.SetDeleteArray(&deleteArray_vectorlEshortgR);
+      instance.SetDestructor(&destruct_vectorlEshortgR);
+      instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback< vector<short> >()));
+      return &instance;
+   }
+   // Static variable to force the class initialization
+   static ::ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstanceLocal((const vector<short>*)0x0); R__UseDummy(_R__UNIQUE_(Init));
+
+   // Dictionary for non-ClassDef classes
+   static void vectorlEshortgR_Dictionary() {
+      ::ROOT::GenerateInitInstanceLocal((const vector<short>*)0x0)->GetClass();
+   }
+
+} // end of namespace ROOT
+
+namespace ROOT {
+   // Wrappers around operator new
+   static void *new_vectorlEshortgR(void *p) {
+      return  p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<short> : new vector<short>;
+   }
+   static void *newArray_vectorlEshortgR(Long_t nElements, void *p) {
+      return p ? ::new((::ROOT::TOperatorNewHelper*)p) vector<short>[nElements] : new vector<short>[nElements];
+   }
+   // Wrapper around operator delete
+   static void delete_vectorlEshortgR(void *p) {
+      delete ((vector<short>*)p);
+   }
+   static void deleteArray_vectorlEshortgR(void *p) {
+      delete [] ((vector<short>*)p);
+   }
+   static void destruct_vectorlEshortgR(void *p) {
+      typedef vector<short> current_t;
+      ((current_t*)p)->~current_t();
+   }
+} // end of namespace ROOT for class vector<short>
+
+/********************************************************
+* TDUMMYDetectorDataDict.cxx
+* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED
+*          FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX().
+*          CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE.
+********************************************************/
+
+#ifdef G__MEMTEST
+#undef malloc
+#undef free
+#endif
+
+#if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC_MINOR__ > 1)
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif
+
+extern "C" void G__cpp_reset_tagtableTDUMMYDetectorDataDict();
+
+extern "C" void G__set_cpp_environmentTDUMMYDetectorDataDict() {
+  G__add_compiledheader("TObject.h");
+  G__add_compiledheader("TMemberInspector.h");
+  G__add_compiledheader("TDUMMYDetectorData.h");
+  G__cpp_reset_tagtableTDUMMYDetectorDataDict();
+}
+#include <new>
+extern "C" int G__cpp_dllrevTDUMMYDetectorDataDict() { return(30051515); }
+
+/*********************************************************
+* Member function Interface Method
+*********************************************************/
+
+/* TDUMMYDetectorData */
+static int G__TDUMMYDetectorDataDict_146_0_1(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+   TDUMMYDetectorData* p = NULL;
+   char* gvp = (char*) G__getgvp();
+   int n = G__getaryconstruct();
+   if (n) {
+     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
+       p = new TDUMMYDetectorData[n];
+     } else {
+       p = new((void*) gvp) TDUMMYDetectorData[n];
+     }
+   } else {
+     if ((gvp == (char*)G__PVOID) || (gvp == 0)) {
+       p = new TDUMMYDetectorData;
+     } else {
+       p = new((void*) gvp) TDUMMYDetectorData;
+     }
+   }
+   result7->obj.i = (long) p;
+   result7->ref = (long) p;
+   G__set_tagnum(result7,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_2(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      ((TDUMMYDetectorData*) G__getstructoffset())->Clear();
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_5(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetEnergy((int) G__int(libp->para[0])));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_6(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetTime((int) G__int(libp->para[0])));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_7(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 105, (long) ((TDUMMYDetectorData*) G__getstructoffset())->GetDUMMYDetectorNumber((int) G__int(libp->para[0])));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_8(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetEnergySize());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letdouble(result7, 100, (double) ((TDUMMYDetectorData*) G__getstructoffset())->GetTimeSize());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 105, (long) ((TDUMMYDetectorData*) G__getstructoffset())->GetDUMMYDetectorNumberSize());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_11(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      ((TDUMMYDetectorData*) G__getstructoffset())->SetEnergy((double) G__double(libp->para[0]));
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_12(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      ((TDUMMYDetectorData*) G__getstructoffset())->SetTime((double) G__double(libp->para[0]));
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_13(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      ((TDUMMYDetectorData*) G__getstructoffset())->SetDUMMYDetectorNumber((int) G__int(libp->para[0]));
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_14(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 85, (long) TDUMMYDetectorData::Class());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_15(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 67, (long) TDUMMYDetectorData::Class_Name());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_16(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 115, (long) TDUMMYDetectorData::Class_Version());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_17(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      TDUMMYDetectorData::Dictionary();
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_21(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      ((TDUMMYDetectorData*) G__getstructoffset())->StreamerNVirtual(*(TBuffer*) libp->para[0].ref);
+      G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_22(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 67, (long) TDUMMYDetectorData::DeclFileName());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_23(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 105, (long) TDUMMYDetectorData::ImplFileLine());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_24(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 67, (long) TDUMMYDetectorData::ImplFileName());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+static int G__TDUMMYDetectorDataDict_146_0_25(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+      G__letint(result7, 105, (long) TDUMMYDetectorData::DeclFileLine());
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+// automatic copy constructor
+static int G__TDUMMYDetectorDataDict_146_0_26(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+
+{
+   TDUMMYDetectorData* p;
+   void* tmp = (void*) G__int(libp->para[0]);
+   p = new TDUMMYDetectorData(*(TDUMMYDetectorData*) tmp);
+   result7->obj.i = (long) p;
+   result7->ref = (long) p;
+   G__set_tagnum(result7,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData));
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+// automatic destructor
+typedef TDUMMYDetectorData G__TTDUMMYDetectorData;
+static int G__TDUMMYDetectorDataDict_146_0_27(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+   char* gvp = (char*) G__getgvp();
+   long soff = G__getstructoffset();
+   int n = G__getaryconstruct();
+   //
+   //has_a_delete: 1
+   //has_own_delete1arg: 0
+   //has_own_delete2arg: 0
+   //
+   if (!soff) {
+     return(1);
+   }
+   if (n) {
+     if (gvp == (char*)G__PVOID) {
+       delete[] (TDUMMYDetectorData*) soff;
+     } else {
+       G__setgvp((long) G__PVOID);
+       for (int i = n - 1; i >= 0; --i) {
+         ((TDUMMYDetectorData*) (soff+(sizeof(TDUMMYDetectorData)*i)))->~G__TTDUMMYDetectorData();
+       }
+       G__setgvp((long)gvp);
+     }
+   } else {
+     if (gvp == (char*)G__PVOID) {
+       delete (TDUMMYDetectorData*) soff;
+     } else {
+       G__setgvp((long) G__PVOID);
+       ((TDUMMYDetectorData*) (soff))->~G__TTDUMMYDetectorData();
+       G__setgvp((long)gvp);
+     }
+   }
+   G__setnull(result7);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+// automatic assignment operator
+static int G__TDUMMYDetectorDataDict_146_0_28(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+{
+   TDUMMYDetectorData* dest = (TDUMMYDetectorData*) G__getstructoffset();
+   *dest = *(TDUMMYDetectorData*) libp->para[0].ref;
+   const TDUMMYDetectorData& obj = *dest;
+   result7->ref = (long) (&obj);
+   result7->obj.i = (long) (&obj);
+   return(1 || funcname || hash || result7 || libp) ;
+}
+
+
+/* Setting up global function */
+
+/*********************************************************
+* Member function Stub
+*********************************************************/
+
+/* TDUMMYDetectorData */
+
+/*********************************************************
+* Global function Stub
+*********************************************************/
+
+/*********************************************************
+* Get size of pointer to member function
+*********************************************************/
+class G__Sizep2memfuncTDUMMYDetectorDataDict {
+ public:
+  G__Sizep2memfuncTDUMMYDetectorDataDict(): p(&G__Sizep2memfuncTDUMMYDetectorDataDict::sizep2memfunc) {}
+    size_t sizep2memfunc() { return(sizeof(p)); }
+  private:
+    size_t (G__Sizep2memfuncTDUMMYDetectorDataDict::*p)();
+};
+
+size_t G__get_sizep2memfuncTDUMMYDetectorDataDict()
+{
+  G__Sizep2memfuncTDUMMYDetectorDataDict a;
+  G__setsizep2memfunc((int)a.sizep2memfunc());
+  return((size_t)a.sizep2memfunc());
+}
+
+
+/*********************************************************
+* virtual base class offset calculation interface
+*********************************************************/
+
+   /* Setting up class inheritance */
+
+/*********************************************************
+* Inheritance information setup/
+*********************************************************/
+extern "C" void G__cpp_setup_inheritanceTDUMMYDetectorDataDict() {
+
+   /* Setting up class inheritance */
+   if(0==G__getnumbaseclass(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData))) {
+     TDUMMYDetectorData *G__Lderived;
+     G__Lderived=(TDUMMYDetectorData*)0x1000;
+     {
+       TObject *G__Lpbase=(TObject*)G__Lderived;
+       G__inheritance_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData),G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TObject),(long)G__Lpbase-(long)G__Lderived,1,1);
+     }
+   }
+}
+
+/*********************************************************
+* typedef information setup/
+*********************************************************/
+extern "C" void G__cpp_setup_typetableTDUMMYDetectorDataDict() {
+
+   /* Setting up typedef entry */
+   G__search_typename2("Version_t",115,-1,0,-1);
+   G__setnewtype(-1,"Class version identifier (short)",0);
+   G__search_typename2("vector<TSchemaHelper>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1);
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("reverse_iterator<const_iterator>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR));
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("reverse_iterator<iterator>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR),0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR));
+   G__setnewtype(-1,NULL,0);
+   G__search_typename2("vector<ROOT::TSchemaHelper>",117,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR),0,-1);
+   G__setnewtype(-1,NULL,0);
+}
+
+/*********************************************************
+* Data Member information setup/
+*********************************************************/
+
+   /* Setting up class,struct,union tag member variable */
+
+   /* TDUMMYDetectorData */
+static void G__setup_memvarTDUMMYDetectorData(void) {
+   G__tag_memvar_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData));
+   { TDUMMYDetectorData *p; p=(TDUMMYDetectorData*)0x1000; if (p) { }
+   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR),G__defined_typename("vector<double>"),-1,4,"fDUMMYDetector_Energy=",0,(char*)NULL);
+   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR),G__defined_typename("vector<double>"),-1,4,"fDUMMYDetector_Time=",0,(char*)NULL);
+   G__memvar_setup((void*)0,117,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR),G__defined_typename("vector<short>"),-1,4,"fDUMMYDetector_Number=",0,(char*)NULL);
+   G__memvar_setup((void*)0,85,0,0,G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass),-1,-2,4,"fgIsA=",0,(char*)NULL);
+   }
+   G__tag_memvar_reset();
+}
+
+extern "C" void G__cpp_setup_memvarTDUMMYDetectorDataDict() {
+}
+/***********************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+************************************************************
+***********************************************************/
+
+/*********************************************************
+* Member function information setup for each class
+*********************************************************/
+static void G__setup_memfuncTDUMMYDetectorData(void) {
+   /* TDUMMYDetectorData */
+   G__tag_memfunc_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData));
+   G__memfunc_setup("TDUMMYDetectorData",1684,G__TDUMMYDetectorDataDict_146_0_1, 105, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("Clear",487,G__TDUMMYDetectorDataDict_146_0_2, 121, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("Clear",487,(G__InterfaceMethod) NULL,121, -1, -1, 0, 1, 1, 1, 0, "C - 'Option_t' 10 - -", (char*)NULL, (void*) NULL, 1);
+   G__memfunc_setup("Dump",406,(G__InterfaceMethod) NULL,121, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 1);
+   G__memfunc_setup("GetEnergy",906,G__TDUMMYDetectorDataDict_146_0_5, 100, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("GetTime",687,G__TDUMMYDetectorDataDict_146_0_6, 100, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("GetDUMMYDetectorNumber",2127,G__TDUMMYDetectorDataDict_146_0_7, 105, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - i", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("GetEnergySize",1317,G__TDUMMYDetectorDataDict_146_0_8, 100, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("GetTimeSize",1098,G__TDUMMYDetectorDataDict_146_0_9, 100, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("GetDUMMYDetectorNumberSize",2538,G__TDUMMYDetectorDataDict_146_0_10, 105, -1, -1, 0, 0, 1, 1, 0, "", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("SetEnergy",918,G__TDUMMYDetectorDataDict_146_0_11, 121, -1, -1, 0, 1, 1, 1, 0, "d - - 0 - E", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("SetTime",699,G__TDUMMYDetectorDataDict_146_0_12, 121, -1, -1, 0, 1, 1, 1, 0, "d - - 0 - T", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("SetDUMMYDetectorNumber",2139,G__TDUMMYDetectorDataDict_146_0_13, 121, -1, -1, 0, 1, 1, 1, 0, "i - - 0 - N", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("Class",502,G__TDUMMYDetectorDataDict_146_0_14, 85, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass), -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (TClass* (*)())(&TDUMMYDetectorData::Class) ), 0);
+   G__memfunc_setup("Class_Name",982,G__TDUMMYDetectorDataDict_146_0_15, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::Class_Name) ), 0);
+   G__memfunc_setup("Class_Version",1339,G__TDUMMYDetectorDataDict_146_0_16, 115, -1, G__defined_typename("Version_t"), 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (Version_t (*)())(&TDUMMYDetectorData::Class_Version) ), 0);
+   G__memfunc_setup("Dictionary",1046,G__TDUMMYDetectorDataDict_146_0_17, 121, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (void (*)())(&TDUMMYDetectorData::Dictionary) ), 0);
+   G__memfunc_setup("IsA",253,(G__InterfaceMethod) NULL,85, G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TClass), -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 1);
+   G__memfunc_setup("ShowMembers",1132,(G__InterfaceMethod) NULL,121, -1, -1, 0, 2, 1, 1, 0, 
+"u 'TMemberInspector' - 1 - insp C - - 0 - parent", (char*)NULL, (void*) NULL, 1);
+   G__memfunc_setup("Streamer",835,(G__InterfaceMethod) NULL,121, -1, -1, 0, 1, 1, 1, 0, "u 'TBuffer' - 1 - b", (char*)NULL, (void*) NULL, 1);
+   G__memfunc_setup("StreamerNVirtual",1656,G__TDUMMYDetectorDataDict_146_0_21, 121, -1, -1, 0, 1, 1, 1, 0, "u 'TBuffer' - 1 - b", (char*)NULL, (void*) NULL, 0);
+   G__memfunc_setup("DeclFileName",1145,G__TDUMMYDetectorDataDict_146_0_22, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::DeclFileName) ), 0);
+   G__memfunc_setup("ImplFileLine",1178,G__TDUMMYDetectorDataDict_146_0_23, 105, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (int (*)())(&TDUMMYDetectorData::ImplFileLine) ), 0);
+   G__memfunc_setup("ImplFileName",1171,G__TDUMMYDetectorDataDict_146_0_24, 67, -1, -1, 0, 0, 3, 1, 1, "", (char*)NULL, (void*) G__func2void( (const char* (*)())(&TDUMMYDetectorData::ImplFileName) ), 0);
+   G__memfunc_setup("DeclFileLine",1152,G__TDUMMYDetectorDataDict_146_0_25, 105, -1, -1, 0, 0, 3, 1, 0, "", (char*)NULL, (void*) G__func2void( (int (*)())(&TDUMMYDetectorData::DeclFileLine) ), 0);
+   // automatic copy constructor
+   G__memfunc_setup("TDUMMYDetectorData", 1684, G__TDUMMYDetectorDataDict_146_0_26, (int) ('i'), G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 0, 1, 1, 1, 0, "u 'TDUMMYDetectorData' - 11 - -", (char*) NULL, (void*) NULL, 0);
+   // automatic destructor
+   G__memfunc_setup("~TDUMMYDetectorData", 1810, G__TDUMMYDetectorDataDict_146_0_27, (int) ('y'), -1, -1, 0, 0, 1, 1, 0, "", (char*) NULL, (void*) NULL, 1);
+   // automatic assignment operator
+   G__memfunc_setup("operator=", 937, G__TDUMMYDetectorDataDict_146_0_28, (int) ('u'), G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData), -1, 1, 1, 1, 1, 0, "u 'TDUMMYDetectorData' - 11 - -", (char*) NULL, (void*) NULL, 0);
+   G__tag_memfunc_reset();
+}
+
+
+/*********************************************************
+* Member function information setup
+*********************************************************/
+extern "C" void G__cpp_setup_memfuncTDUMMYDetectorDataDict() {
+}
+
+/*********************************************************
+* Global variable information setup for each class
+*********************************************************/
+static void G__cpp_setup_global0() {
+
+   /* Setting up global variables */
+   G__resetplocal();
+
+}
+
+static void G__cpp_setup_global1() {
+
+   G__resetglobalenv();
+}
+extern "C" void G__cpp_setup_globalTDUMMYDetectorDataDict() {
+  G__cpp_setup_global0();
+  G__cpp_setup_global1();
+}
+
+/*********************************************************
+* Global function information setup for each class
+*********************************************************/
+static void G__cpp_setup_func0() {
+   G__lastifuncposition();
+
+}
+
+static void G__cpp_setup_func1() {
+}
+
+static void G__cpp_setup_func2() {
+}
+
+static void G__cpp_setup_func3() {
+}
+
+static void G__cpp_setup_func4() {
+}
+
+static void G__cpp_setup_func5() {
+}
+
+static void G__cpp_setup_func6() {
+}
+
+static void G__cpp_setup_func7() {
+}
+
+static void G__cpp_setup_func8() {
+}
+
+static void G__cpp_setup_func9() {
+}
+
+static void G__cpp_setup_func10() {
+
+   G__resetifuncposition();
+}
+
+extern "C" void G__cpp_setup_funcTDUMMYDetectorDataDict() {
+  G__cpp_setup_func0();
+  G__cpp_setup_func1();
+  G__cpp_setup_func2();
+  G__cpp_setup_func3();
+  G__cpp_setup_func4();
+  G__cpp_setup_func5();
+  G__cpp_setup_func6();
+  G__cpp_setup_func7();
+  G__cpp_setup_func8();
+  G__cpp_setup_func9();
+  G__cpp_setup_func10();
+}
+
+/*********************************************************
+* Class,struct,union,enum tag information setup
+*********************************************************/
+/* Setup class/struct taginfo */
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_TClass = { "TClass" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_TBuffer = { "TBuffer" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_TMemberInspector = { "TMemberInspector" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_TObject = { "TObject" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR = { "vector<short,allocator<short> >" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR = { "vector<double,allocator<double> >" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR = { "vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR = { "reverse_iterator<vector<ROOT::TSchemaHelper,allocator<ROOT::TSchemaHelper> >::iterator>" , 99 , -1 };
+G__linked_taginfo G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData = { "TDUMMYDetectorData" , 99 , -1 };
+
+/* Reset class/struct taginfo */
+extern "C" void G__cpp_reset_tagtableTDUMMYDetectorDataDict() {
+  G__TDUMMYDetectorDataDictLN_TClass.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_TBuffer.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_TMemberInspector.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_TObject.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR.tagnum = -1 ;
+  G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData.tagnum = -1 ;
+}
+
+
+extern "C" void G__cpp_setup_tagtableTDUMMYDetectorDataDict() {
+
+   /* Setting up class,struct,union tag entry */
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TClass);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TBuffer);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TMemberInspector);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_TObject);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR);
+   G__get_linked_tagnum_fwd(&G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR);
+   G__tagtable_setup(G__get_linked_tagnum(&G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData),sizeof(TDUMMYDetectorData),-1,29952,"DUMMYDetectorData structure",G__setup_memvarTDUMMYDetectorData,G__setup_memfuncTDUMMYDetectorData);
+}
+extern "C" void G__cpp_setupTDUMMYDetectorDataDict(void) {
+  G__check_setup_version(30051515,"G__cpp_setupTDUMMYDetectorDataDict()");
+  G__set_cpp_environmentTDUMMYDetectorDataDict();
+  G__cpp_setup_tagtableTDUMMYDetectorDataDict();
+
+  G__cpp_setup_inheritanceTDUMMYDetectorDataDict();
+
+  G__cpp_setup_typetableTDUMMYDetectorDataDict();
+
+  G__cpp_setup_memvarTDUMMYDetectorDataDict();
+
+  G__cpp_setup_memfuncTDUMMYDetectorDataDict();
+  G__cpp_setup_globalTDUMMYDetectorDataDict();
+  G__cpp_setup_funcTDUMMYDetectorDataDict();
+
+   if(0==G__getsizep2memfunc()) G__get_sizep2memfuncTDUMMYDetectorDataDict();
+  return;
+}
+class G__cpp_setup_initTDUMMYDetectorDataDict {
+  public:
+    G__cpp_setup_initTDUMMYDetectorDataDict() { G__add_setup_func("TDUMMYDetectorDataDict",(G__incsetup)(&G__cpp_setupTDUMMYDetectorDataDict)); G__call_setup_funcs(); }
+   ~G__cpp_setup_initTDUMMYDetectorDataDict() { G__remove_setup_func("TDUMMYDetectorDataDict"); }
+};
+G__cpp_setup_initTDUMMYDetectorDataDict G__cpp_setup_initializerTDUMMYDetectorDataDict;
+
diff --git a/NPLib/DummyDetector/TDUMMYDetectorDataDict.h b/NPLib/DummyDetector/TDUMMYDetectorDataDict.h
new file mode 100644
index 0000000000000000000000000000000000000000..a5bda1ee0122066fc0b9f636aacfd948375f5b04
--- /dev/null
+++ b/NPLib/DummyDetector/TDUMMYDetectorDataDict.h
@@ -0,0 +1,51 @@
+/********************************************************************
+* TDUMMYDetectorDataDict.h
+* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED
+*          FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX().
+*          CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE.
+********************************************************************/
+#ifdef __CINT__
+#error TDUMMYDetectorDataDict.h/C is only for compilation. Abort cint.
+#endif
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+#define G__ANSIHEADER
+#define G__DICTIONARY
+#define G__PRIVATE_GVALUE
+#include "G__ci.h"
+extern "C" {
+extern void G__cpp_setup_tagtableTDUMMYDetectorDataDict();
+extern void G__cpp_setup_inheritanceTDUMMYDetectorDataDict();
+extern void G__cpp_setup_typetableTDUMMYDetectorDataDict();
+extern void G__cpp_setup_memvarTDUMMYDetectorDataDict();
+extern void G__cpp_setup_globalTDUMMYDetectorDataDict();
+extern void G__cpp_setup_memfuncTDUMMYDetectorDataDict();
+extern void G__cpp_setup_funcTDUMMYDetectorDataDict();
+extern void G__set_cpp_environmentTDUMMYDetectorDataDict();
+}
+
+
+#include "TObject.h"
+#include "TMemberInspector.h"
+#include "TDUMMYDetectorData.h"
+#include <algorithm>
+namespace std { }
+using namespace std;
+
+#ifndef G__MEMFUNCBODY
+#endif
+
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TClass;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TBuffer;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TMemberInspector;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TObject;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEshortcOallocatorlEshortgRsPgR;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEdoublecOallocatorlEdoublegRsPgR;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR;
+extern G__linked_taginfo G__TDUMMYDetectorDataDictLN_TDUMMYDetectorData;
+
+/* STUB derived class for protected member access */
diff --git a/NPLib/Makefile b/NPLib/Makefile
index bdfaaf6e1e7a68e22d56a00385b0a2753ce40bb8..e9f11fcd269aa11f24fb815eb6b32b5427913b47 100644
--- a/NPLib/Makefile
+++ b/NPLib/Makefile
@@ -269,7 +269,7 @@ INCLUDE		= -I$(CLHEP_BASE_DIR)/include
  
 #------------------------------------------------------------------------------
 SHARELIB      =	Vdetec	InputOutputRoot InitCond	InterCoord \
-		Must2All	GaspardData	AnnularS1Data PlasticData\
+		Must2All	GaspardData	AnnularS1Data PlasticData DummyDetectorData\
 		Reaction	EnergyLoss
 
 all:         $(SHARELIB)
@@ -308,19 +308,26 @@ GaspardData:
 		cp ./GASPARD/*.so ./lib ; cp ./GASPARD/*.h ./include
 ifeq ($(ARCH),macosx)
 		cd lib; ln -sf libGaspardData.so libGaspardData.dylib
-		cd lib; ln -sf libGaspardPyysics.so libGaspardPhysics.dylib
+		cd lib; ln -sf libGaspardPhysics.so libGaspardPhysics.dylib
 endif
 
-## Gaspard ##
+## Plastic ##
 PlasticData:
 		make -C ./Plastic
 		cp ./Plastic/*.so ./lib ; cp ./Plastic/*.h ./include
 ifeq ($(ARCH),macosx)
 		cd lib; ln -sf libPlasticData.so libPlasticData.dylib
-		cd lib; ln -sf libPlasticPyysics.so libPlasticPhysics.dylib
+		cd lib; ln -sf libPlasticPhysics.so libPlasticPhysics.dylib
 endif
 
-
+## DUMMY Detector ##
+DummyDetectorData:
+		make -C ./DummyDetector
+		cp ./DummyDetector/*.so ./lib ; cp ./DummyDetector/*.h ./include
+ifeq ($(ARCH),macosx)
+		cd lib; ln -sf libDummyDetectorData.so libPlasticData.dylib
+		cd lib; ln -sf libPlasticPhysics.so libPlasticPhysics.dylib
+endif
 ############# Simulation ##############
 
 ## InitialConditions ##
@@ -378,6 +385,7 @@ clean:
 	make clean -C ./GASPARD
 	make clean -C ./InteractionCoordinates
 	make clean -C ./InitialConditions
+	make clean -C ./DummyDetector
 	
 distclean:
 	rm -f ./lib/*.so
@@ -393,7 +401,7 @@ endif
 	make distclean -C ./GASPARD
 	make distclean -C ./InteractionCoordinates
 	make distclean -C ./InitialConditions
-
+	make distclean -C ./DummyDetector
 .SUFFIXES: .$(SrcSuf)
 
 ###
diff --git a/NPSimulation/include/ThinSi.hh b/NPSimulation/include/ThinSi.hh
index 719c3fda610729aeae8a320434215255e48631c4..bc6269abacf0f251bfa2ff6e3306387d4b597d8a 100644
--- a/NPSimulation/include/ThinSi.hh
+++ b/NPSimulation/include/ThinSi.hh
@@ -122,7 +122,7 @@ private:
    G4double    m_Energy ;
 
 	 ////////////////////////////////////////////////////
-   ////////////////// Scorer Things ///////////////////
+   ///////////////// Scorer Related ///////////////////
    ////////////////////////////////////////////////////
 
 private:
@@ -132,6 +132,17 @@ private:
 		//	Scorer Associate to the 20um Silicon stage
 		G4MultiFunctionalDetector*	m_StripScorer ; 
 
+
+
+private:
+		// 	Initialize mmaterial used in detector definition
+		void InitializeMaterial();
+
+		//	List of material
+		G4Material* m_MaterialSilicon 	;
+   	G4Material* m_MaterialAl 				;
+   	G4Material* m_MaterialVacuum 		;
+
    ////////////////////////////////////////////////////
    ///////////////Private intern Data//////////////////
    ////////////////////////////////////////////////////
diff --git a/NPSimulation/src/ThinSi.cc b/NPSimulation/src/ThinSi.cc
index a196e56324f03402947b3942876cf0dacb4279bb..90ef4c0ae64d30d6649840acbb8ca7789e2c78a5 100644
--- a/NPSimulation/src/ThinSi.cc
+++ b/NPSimulation/src/ThinSi.cc
@@ -62,11 +62,16 @@ using namespace CLHEP;
 // ThinSi Specific Method
 ThinSi::ThinSi()
 {
-
+		InitializeMaterial();
 }
 
 ThinSi::~ThinSi()
-{}
+{
+		delete m_MaterialSilicon 		;
+   	delete m_MaterialAl 				;
+   	delete m_MaterialVacuum 		;
+
+}
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 void ThinSi::AddTelescope(G4ThreeVector TL         ,
       G4ThreeVector BL        ,
@@ -125,28 +130,6 @@ void ThinSi::VolumeMaker(	G4int            	DetNumber      	,
    Number << NbrTelescopes                   ;
    DetectorNumber = Number.str()             ;
 
-////////////////////////////////////////////////////////////////
-/////////////////Material Definition ///////////////////////////
-////////////////////////////////////////////////////////////////
-   G4Element* N   = new G4Element("Nitrogen" , "N"  , 7  , 14.01  * g / mole);
-   G4Element* O   = new G4Element("Oxigen"   , "O"  , 8  , 16.00  * g / mole);
-
-   G4double a, z, density;
-   // Si
-   a = 28.0855 * g / mole;
-   density = 2.321 * g / cm3;
-   G4Material* Silicon = new G4Material("Si", z = 14., a, density);
-
-   // Al
-   density = 2.702 * g / cm3;
-   a = 26.98 * g / mole;
-   G4Material* Al = new G4Material("Al", z = 13., a, density);
-
-   //  Vacuum
-   density = 0.000000001 * mg / cm3;
-   G4Material* Vacuum = new G4Material("Vacuum", density, 2);
-   Vacuum->AddElement(N, .7);
-   Vacuum->AddElement(O, .3);
 
 ////////////////////////////////////////////////////////////////
 /////////General Geometry Parameter Definition /////////////////
@@ -162,7 +145,7 @@ void ThinSi::VolumeMaker(	G4int            	DetNumber      	,
    G4Box* solidThinSi = new G4Box(Name, 0.5*DetectorSize, 0.5*DetectorSize, 0.5*FrameThickness*mm);
 
    G4LogicalVolume* logicThinSi =
-      new G4LogicalVolume(solidThinSi, Vacuum, Name, 0, 0);
+      new G4LogicalVolume(solidThinSi, m_MaterialVacuum, Name, 0, 0);
 
    PVPBuffer =
       new G4PVPlacement(G4Transform3D(*Det_rot, Det_pos)  ,
@@ -177,10 +160,10 @@ void ThinSi::VolumeMaker(	G4int            	DetNumber      	,
    G4Box* solidFrameVertical  = new G4Box(Name + "_Frame", 0.5*(DetectorSize - SiliconSize) / 2, 0.5*DetectorSize, 0.5*FrameThickness*mm)   ;
 
    G4LogicalVolume* logicFrameHorizontal =
-      new G4LogicalVolume(solidFrameHorizontal, Al, Name, 0, 0);
+      new G4LogicalVolume(solidFrameHorizontal, m_MaterialAl, Name, 0, 0);
 
    G4LogicalVolume* logicFrameVertical =
-      new G4LogicalVolume(solidFrameVertical, Al, Name, 0, 0);
+      new G4LogicalVolume(solidFrameVertical, m_MaterialAl, Name, 0, 0);
 
    G4ThreeVector FrameTopPosition      = G4ThreeVector(0 ,  0.5 * SiliconSize + 0.5 * (DetectorSize - SiliconSize) / 2 , 0) ;
    G4ThreeVector FrameBottomPosition   = G4ThreeVector(0 , -0.5 * SiliconSize - 0.5 * (DetectorSize - SiliconSize) / 2 , 0) ;
@@ -233,7 +216,7 @@ void ThinSi::VolumeMaker(	G4int            	DetNumber      	,
       new G4Box("ThinSiAlu", 0.5*SiliconSize, 0.5*SiliconSize, 0.5*AluThickness) ;
 
    G4LogicalVolume* logicAlu  =
-      new G4LogicalVolume(solidAlu, Al, "logicAlu", 0, 0, 0)    ;
+      new G4LogicalVolume(solidAlu, m_MaterialAl, "logicAlu", 0, 0, 0)    ;
 
    PVPBuffer =
       new G4PVPlacement(0  ,  posAluFront ,  logicAlu ,  Name + "_AluFront"   ,  logicThinSi ,  true, 0)  ;
@@ -246,7 +229,7 @@ void ThinSi::VolumeMaker(	G4int            	DetNumber      	,
       new G4Box("ThinSi", 0.5*SiliconSize, 0.5*SiliconSize, 0.5*SiliconThickness)   ;
 
    G4LogicalVolume* logicSi  =
-      new G4LogicalVolume(solidSi, Silicon, "logicSi", 0, 0, 0)           ;
+      new G4LogicalVolume(solidSi, m_MaterialSilicon, "logicSi", 0, 0, 0)           ;
 
    PVPBuffer =
       new G4PVPlacement(0, posSi, logicSi, Name + "_Si", logicThinSi, true, 0)   ;
@@ -683,3 +666,31 @@ void ThinSi::InitializeScorers()
 		  G4SDManager::GetSDMpointer()->AddNewDetector(m_StripScorer) ;
 		}
 
+////////////////////////////////////////////////////////////////
+/////////////////Material Definition ///////////////////////////
+////////////////////////////////////////////////////////////////
+void ThinSi::InitializeMaterial()
+	{
+
+		 G4Element* N   = new G4Element("Nitrogen" , "N"  , 7  , 14.01  * g / mole);
+	   G4Element* O   = new G4Element("Oxigen"   , "O"  , 8  , 16.00  * g / mole);
+
+	   G4double a, z, density;
+	   // Si
+	   a = 28.0855 * g / mole;
+	   density = 2.321 * g / cm3;
+	   m_MaterialSilicon = new G4Material("Si", z = 14., a, density);
+
+	   // Al
+	   density = 2.702 * g / cm3;
+	   a = 26.98 * g / mole;
+	   m_MaterialAl = new G4Material("Al", z = 13., a, density);
+
+	   //  Vacuum
+	   density = 0.000000001 * mg / cm3;
+	   m_MaterialVacuum = new G4Material("Vacuum", density, 2);
+	   m_MaterialVacuum->AddElement(N, .7);
+	   m_MaterialVacuum->AddElement(O, .3);
+	}
+
+