diff --git a/NPLib/.gitignore b/NPLib/.gitignore
index 06207a33e64cd0bf8fd5b56a12372660559e124b..171aeb0eb400eabdede91bce8df7c0da7862e131 100644
--- a/NPLib/.gitignore
+++ b/NPLib/.gitignore
@@ -8,3 +8,5 @@ DetectorClassList.txt
 Utility/Makefile
 Utility/npanalysis
 Utility/nptool-libmap
+*rootmap*
+*_rflx.cpp
diff --git a/NPLib/AnnularS1/CMakeLists.txt b/NPLib/AnnularS1/CMakeLists.txt
index a0d1dd581ec3bf8364fc01d1ce3bf7647b3dfafd..bc72d0ac4633aa65f0326afc7472fe369e011a54 100644
--- a/NPLib/AnnularS1/CMakeLists.txt
+++ b/NPLib/AnnularS1/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TS1Data.h "" TS1DataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TAnnularS1Physics.h "" TAnnularS1PhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TAnnularS1PhysicsDict.cxx TAnnularS1PhysicsDict_rdict.pcm TAnnularS1Physics.rootmap COMMAND genreflex TAnnularS1Physics.h -o TAnnularS1PhysicsDict.cxx -I../Core --rootmap=TAnnularS1Physics.rootmap --rootmap-lib=libNPAnnularS1 --quiet DEPENDS TAnnularS1Physics.h)
+add_custom_command(OUTPUT TS1DataDict.cxx TS1DataDict_rdict.pcm TS1Data.rootmap COMMAND genreflex TS1Data.h -o TS1DataDict.cxx -I../Core --rootmap=TS1Data.rootmap --rootmap-lib=libNPAnnularS1 --quiet DEPENDS TS1Data.h)
 add_library(NPAnnularS1 SHARED TS1Data.cxx TAnnularS1Physics.cxx TS1DataDict.cxx TAnnularS1PhysicsDict.cxx)
 target_link_libraries(NPAnnularS1 ${ROOT_LIBRARIES} NPCore) 
 install(FILES TS1Data.h TAnnularS1Physics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 install(FILES TS1DataDict_rdict.pcm TAnnularS1PhysicsDict_rdict.pcm DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TS1Data.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TAnnularS1Physics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/AnnularS2/CMakeLists.txt b/NPLib/AnnularS2/CMakeLists.txt
index 7f74bbeb1d439dc4de86e585553f6f1fbf962ee5..020dc6cb3c55fc27c72e27d313afe1da9e5f49a7 100644
--- a/NPLib/AnnularS2/CMakeLists.txt
+++ b/NPLib/AnnularS2/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TS2Data.h "" TS2DataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TS2Physics.h "" TS2PhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TS2PhysicsDict.cxx TS2PhysicsDict_rdict.pcm TS2Physics.rootmap COMMAND genreflex TS2Physics.h -o TS2PhysicsDict.cxx -I../Core --rootmap=TS2Physics.rootmap --rootmap-lib=libNPAnnularS2 --quiet DEPENDS TS2Physics.h)
+add_custom_command(OUTPUT TS2DataDict.cxx TS2DataDict_rdict.pcm TS2Data.rootmap COMMAND genreflex TS2Data.h -o TS2DataDict.cxx -I../Core --rootmap=TS2Data.rootmap --rootmap-lib=libNPAnnularS2 --quiet DEPENDS TS2Data.h)
 add_library(NPS2 SHARED TS2Data.cxx TS2Physics.cxx TS2DataDict.cxx TS2PhysicsDict.cxx )
 target_link_libraries(NPS2 ${ROOT_LIBRARIES} NPCore) 
 install(FILES TS2Data.h TS2Physics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TS2Data.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TS2Physics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/CATS/CMakeLists.txt b/NPLib/CATS/CMakeLists.txt
index a7e876a2178507f9c08524f82613d55d63727349..6300ddf0b88b9303db1742230b06e2a70570fa0f 100644
--- a/NPLib/CATS/CMakeLists.txt
+++ b/NPLib/CATS/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TCATSData.h "" TCATSDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TCATSPhysics.h "" TCATSPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TCATSPhysicsDict.cxx TCATSPhysicsDict_rdict.pcm TCATSPhysics.rootmap COMMAND genreflex TCATSPhysics.h -o TCATSPhysicsDict.cxx -I../Core --rootmap=TCATSPhysics.rootmap --rootmap-lib=libNPCATS --quiet DEPENDS TCATSPhysics.h)
+add_custom_command(OUTPUT TCATSDataDict.cxx TCATSDataDict_rdict.pcm TCATSData.rootmap COMMAND genreflex TCATSData.h -o TCATSDataDict.cxx -I../Core --rootmap=TCATSData.rootmap --rootmap-lib=libNPCATS --quiet DEPENDS TCATSData.h)
 add_library(NPCATS SHARED TCATSData.cxx TCATSPhysics.cxx TCATSDataDict.cxx TCATSPhysicsDict.cxx TCATSSpectra.cxx)
 target_link_libraries(NPCATS ${ROOT_LIBRARIES} NPCore) 
 install(FILES TCATSData.h TCATSPhysics.h TCATSSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TCATSData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TCATSPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/CMakeLists.txt b/NPLib/CMakeLists.txt
index 7c5ac98eeb39612f869fb3b3207425070cecf9ee..1f42ec89f473ba0b1b111105ac7df500654e91a7 100644
--- a/NPLib/CMakeLists.txt
+++ b/NPLib/CMakeLists.txt
@@ -1,6 +1,6 @@
 cmake_minimum_required (VERSION 3.1)
 include("FindROOT.cmake")
- 
+
 project (NPLib)
 set (NPLIB_VERSION_MAJOR 2)
 set (NPLIB_VERSION_MINOR 0)
@@ -77,9 +77,11 @@ foreach(subdir ${SUB_DIRECTORY})
   add_subdirectory(${subdir}) 
 endforeach()
 
+install(SCRIPT scripts/post_install.cmake ${DETLIST})
 
-add_custom_target(LIBLIST ALL nptool-libmap ${DETLIST})
-add_dependencies(LIBLIST nptool-libmap)
+#add_custom_target(LIBLIST ALL nptool-libmap ${DETLIST})
+#add_custom_command(TARGET nptool-libmap POST_BUILD COMMAND  nptool-libmap ${DETLIST})
+#add_dependencies(LIBLIST nptool-libmap)
 
 # Link executable against the local lib
 #link_directories( ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Charissa/CMakeLists.txt b/NPLib/Charissa/CMakeLists.txt
index ecf767ea2f36c12dd2166a1ee3cfafd59718b569..6bf65e8f14d93185d7e31b0e1060bf6040e4ab62 100644
--- a/NPLib/Charissa/CMakeLists.txt
+++ b/NPLib/Charissa/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TCharissaData.h "" TCharissaDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TCharissaPhysics.h "" TCharissaPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TCharissaPhysicsDict.cxx TCharissaPhysicsDict_rdict.pcm TCharissaPhysics.rootmap COMMAND genreflex TCharissaPhysics.h -o TCharissaPhysicsDict.cxx -I../Core --rootmap=TCharissaPhysics.rootmap --rootmap-lib=libNPCharissa --quiet DEPENDS TCharissaPhysics.h)
+add_custom_command(OUTPUT TCharissaDataDict.cxx TCharissaDataDict_rdict.pcm TCharissaData.rootmap COMMAND genreflex TCharissaData.h -o TCharissaDataDict.cxx -I../Core --rootmap=TCharissaData.rootmap --rootmap-lib=libNPCharissa --quiet DEPENDS TCharissaData.h)
 add_library(NPCharissa SHARED TCharissaData.cxx TCharissaPhysics.cxx TCharissaDataDict.cxx TCharissaPhysicsDict.cxx TCharissaSpectra.cxx)
 target_link_libraries(NPCharissa ${ROOT_LIBRARIES} NPCore) 
 install(FILES TCharissaData.h TCharissaPhysics.h TCharissaSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TCharissaData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TCharissaPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/ChateauCristal/CMakeLists.txt b/NPLib/ChateauCristal/CMakeLists.txt
index 9c5aa6708d581183b6fd796982e773fff2716824..5c7e0a5888d57c0b55b3ba376aba41de034945d8 100644
--- a/NPLib/ChateauCristal/CMakeLists.txt
+++ b/NPLib/ChateauCristal/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TChateauCristalData.h "" TChateauCristalDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TChateauCristalPhysics.h "" TChateauCristalPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TChateauCristalPhysicsDict.cxx TChateauCristalPhysicsDict_rdict.pcm TChateauCristalPhysics.rootmap COMMAND genreflex TChateauCristalPhysics.h -o TChateauCristalPhysicsDict.cxx -I../Core --rootmap=TChateauCristalPhysics.rootmap --rootmap-lib=libNPChateauCristal --quiet DEPENDS TChateauCristalPhysics.h)
+add_custom_command(OUTPUT TChateauCristalDataDict.cxx TChateauCristalDataDict_rdict.pcm TChateauCristalData.rootmap COMMAND genreflex TChateauCristalData.h -o TChateauCristalDataDict.cxx -I../Core --rootmap=TChateauCristalData.rootmap --rootmap-lib=libNPChateauCristal --quiet DEPENDS TChateauCristalData.h)
 add_library(NPChateauCristal SHARED TChateauCristalData.cxx TChateauCristalPhysics.cxx TChateauCristalDataDict.cxx TChateauCristalPhysicsDict.cxx )
 target_link_libraries(NPChateauCristal ${ROOT_LIBRARIES} NPCore) 
 install(FILES TChateauCristalData.h TChateauCristalPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TChateauCristalData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TChateauCristalPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Chio/CMakeLists.txt b/NPLib/Chio/CMakeLists.txt
index 820082d9ca105486d537e302b3b187ef6a17f897..7aa77c527181905ea4b396cd7bdd9bb41f1633e5 100644
--- a/NPLib/Chio/CMakeLists.txt
+++ b/NPLib/Chio/CMakeLists.txt
@@ -1,9 +1,13 @@
-ROOT_GENERATE_DICTIONARY( TChio_anData.h "" TChio_anDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TChio_anPhysics.h "" TChio_anPhysicsDict.cxx "../Core")
-ROOT_GENERATE_DICTIONARY( TChio_digData.h "" TChio_digDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TChio_digPhysics.h "" TChio_digPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TChio_digPhysicsDict.cxx TChio_digPhysicsDict_rdict.pcm TChio_digPhysics.rootmap COMMAND genreflex TChio_digPhysics.h -o TChio_digPhysicsDict.cxx -I../Core --rootmap=TChio_digPhysics.rootmap --rootmap-lib=libNPChio --quiet DEPENDS TChio_digPhysics.h)
+add_custom_command(OUTPUT TChio_anPhysicsDict.cxx TChio_anPhysicsDict_rdict.pcm TChio_anPhysics.rootmap COMMAND genreflex TChio_anPhysics.h -o TChio_anPhysicsDict.cxx -I../Core --rootmap=TChio_anPhysics.rootmap --rootmap-lib=libNPChio --quiet DEPENDS TChio_anPhysics.h)
+add_custom_command(OUTPUT TChio_digDataDict.cxx TChio_digDataDict_rdict.pcm TChio_digData.rootmap COMMAND genreflex TChio_digData.h -o TChio_digDataDict.cxx -I../Core --rootmap=TChio_digData.rootmap --rootmap-lib=libNPChio --quiet DEPENDS TChio_digData.h)
+add_custom_command(OUTPUT TChio_anDataDict.cxx TChio_anDataDict_rdict.pcm TChio_anData.rootmap COMMAND genreflex TChio_anData.h -o TChio_anDataDict.cxx -I../Core --rootmap=TChio_anData.rootmap --rootmap-lib=libNPChio --quiet DEPENDS TChio_anData.h)
 
 add_library(NPChio SHARED TChio_anData.cxx TChio_anPhysics.cxx TChio_anDataDict.cxx TChio_anPhysicsDict.cxx TChio_digData.cxx TChio_digPhysics.cxx TChio_digDataDict.cxx TChio_digPhysicsDict.cxx )
 target_link_libraries(NPChio ${ROOT_LIBRARIES} NPCore) 
 install(FILES TChio_anData.h TChio_anPhysics.h TChio_digData.h TChio_digPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TChio_anData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TChio_digData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TChio_anPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TChio_digPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/ComptonTelescope/CMakeLists.txt b/NPLib/ComptonTelescope/CMakeLists.txt
index 08db0e3b66a45c8c0dd11473663b70904605cedb..736cff44417d4c87aa7399e92d5bca4992df8de7 100644
--- a/NPLib/ComptonTelescope/CMakeLists.txt
+++ b/NPLib/ComptonTelescope/CMakeLists.txt
@@ -1,6 +1,9 @@
-ROOT_GENERATE_DICTIONARY( TComptonTelescopeData.h "" TComptonTelescopeDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TComptonTelescopePhysics.h "" TComptonTelescopePhysicsDict.cxx "../Core")
-add_library(NPComptonTelescope SHARED TComptonTelescopeData.cxx TComptonTelescopePhysics.cxx TComptonTelescopeDataDict.cxx TComptonTelescopePhysicsDict.cxx TComptonTelescopeSpectra.cxx)
+add_custom_command(OUTPUT TComptonTelescopePhysicsDict.cxx TComptonTelescopePhysicsDict_rdict.pcm TComptonTelescopePhysics.rootmap COMMAND genreflex TComptonTelescopePhysics.h -o TComptonTelescopePhysicsDict.cxx -I../Core --rootmap=TComptonTelescopePhysics.rootmap --rootmap-lib=libNPComptonTelescope --quiet DEPENDS TComptonTelescopePhysics.h)
+add_custom_command(OUTPUT TComptonTelescopeProcessDataDict.cxx TComptonTelescopeProcessDataDict_rdict.pcm TComptonTelescopeProcessData.rootmap COMMAND genreflex TComptonTelescopeProcessData.h -o TComptonTelescopeProcessDataDict.cxx -I../Core --rootmap=TComptonTelescopeProcessData.rootmap --rootmap-lib=libNPComptonTelescope --quiet DEPENDS TComptonTelescopeProcessData.h)
+add_custom_command(OUTPUT TComptonTelescopeDataDict.cxx TComptonTelescopeDataDict_rdict.pcm TComptonTelescopeData.rootmap COMMAND genreflex TComptonTelescopeData.h -o TComptonTelescopeDataDict.cxx -I../Core --rootmap=TComptonTelescopeData.rootmap --rootmap-lib=libNPComptonTelescope --quiet DEPENDS TComptonTelescopeData.h)
+add_library(NPComptonTelescope SHARED TComptonTelescopeData.cxx TComptonTelescopePhysics.cxx TComptonTelescopeDataDict.cxx TComptonTelescopePhysicsDict.cxx TComptonTelescopeSpectra.cxx TComptonTelescopeProcessData.cxx TComptonTelescopeProcessDataDict.cxx)
 target_link_libraries(NPComptonTelescope ${ROOT_LIBRARIES} NPCore) 
-install(FILES TComptonTelescopeData.h TComptonTelescopePhysics.h TComptonTelescopeSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
-
+install(FILES TComptonTelescopeProcessData.h TComptonTelescopeData.h TComptonTelescopePhysics.h TComptonTelescopeSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
+install(FILES TComptonTelescopeData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TComptonTelescopeProcessData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TComptonTelescopePhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Core/CMakeLists.txt b/NPLib/Core/CMakeLists.txt
index f359d65297b2424ce9c7be8735d41d1b42bed5ff..68c512d298e1123a37a69e3316be77ce6d485609 100644
--- a/NPLib/Core/CMakeLists.txt
+++ b/NPLib/Core/CMakeLists.txt
@@ -1,6 +1,7 @@
-ROOT_GENERATE_DICTIONARY( TAsciiFile.h "" TAsciiFileDict.cxx "")
-ROOT_GENERATE_DICTIONARY( NPVDetector.h NPCoreLinkDef.h NPVDetectorDict.cxx "")
+add_custom_command(OUTPUT TAsciiFileDict.cxx TAsciiFile.rootmap TAsciiFileDict_rdict.pcm COMMAND genreflex TAsciiFile.h -o TAsciiFileDict.cxx --rootmap=TAsciiFile.rootmap --rootmap-lib=libNPCore --quiet DEPENDS TAsciiFile.h)
+add_custom_command(OUTPUT NPVDetectorDict.cxx NPVDetectorDict_rdict.pcm NPVDetector.rootmap COMMAND genreflex NPVDetector.h -o NPVDetectorDict.cxx -s ClassSelection.xml --rootmap=NPVDetector.rootmap --rootmap-lib=libNPCore --quiet DEPENDS NPVDetector.h)
 add_library(NPCore SHARED NPVAnalysis.cxx NPAnalysisFactory.cxx NPCalibrationManager.cxx NPOptionManager.cxx RootOutput.cxx RootInput.cxx TAsciiFile.cxx TAsciiFileDict.cxx NPDetectorManager.cxx NPVDetector.cxx NPVDetectorDict.cxx NPVSpectra.cxx NPDetectorFactory.cxx)
 target_link_libraries(NPCore ${ROOT_LIBRARIES}) 
 install(FILES NPVAnalysis.h NPAnalysisFactory.h  NPCalibrationManager.h NPOptionManager.h RootInput.h RootOutput.h TAsciiFile.h NPDetectorManager.h NPVDetector.h NPGlobalSystemOfUnits.h NPPhysicalConstants.h NPSystemOfUnits.h NPVSpectra.h NPDetectorFactory.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 install(FILES NPVDetectorDict_rdict.pcm TAsciiFileDict_rdict.pcm DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES NPVDetector.rootmap TAsciiFile.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Core/ClassSelection.xml b/NPLib/Core/ClassSelection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a5fcec7455c590608c8e6f749612b45f98bfdd29
--- /dev/null
+++ b/NPLib/Core/ClassSelection.xml
@@ -0,0 +1,4 @@
+<lcgdict>
+    <class name="NPA::VDetector" >
+    </class>
+</lcgdict>
diff --git a/NPLib/DummyDetector/CMakeLists.txt b/NPLib/DummyDetector/CMakeLists.txt
index d96be105d2af9a06f20ceb112d8df42dafcdd193..c6e65f4d45954afb98eaecc1bff84a0b2cf2e2bf 100644
--- a/NPLib/DummyDetector/CMakeLists.txt
+++ b/NPLib/DummyDetector/CMakeLists.txt
@@ -1,5 +1,6 @@
-ROOT_GENERATE_DICTIONARY( TDUMMYDetectorData.h "" TDUMMYDetectorDataDict.cxx "")
+add_custom_command(OUTPUT TDUMMYDetectorDataDict.cxx TDUMMYDetectorDataDict_rdict.pcm TDUMMYDetectorData.rootmap COMMAND genreflex TDUMMYDetectorData.h -o TDUMMYDetectorDataDict.cxx -I../Core --rootmap=TDUMMYDetectorData.rootmap --rootmap-lib=libNPDummyDetector --quiet DEPENDS TDUMMYDetectorData.h)
 add_library(NPDUMMYDetector SHARED TDUMMYDetectorData.cxx TDUMMYDetectorDataDict.cxx )
 target_link_libraries(NPDUMMYDetector ${ROOT_LIBRARIES} NPCore) 
 install(FILES TDUMMYDetectorData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TDUMMYDetectorData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/EXL/CMakeLists.txt b/NPLib/EXL/CMakeLists.txt
index c3ec34b14fede718338e77a7918d35ca42470575..bb2f8346a2248078ca8dbe815e8183c28cadb2fd 100644
--- a/NPLib/EXL/CMakeLists.txt
+++ b/NPLib/EXL/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TExlData.h "" TExlDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TExlPhysics.h "" TExlPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TExlPhysicsDict.cxx TExlPhysicsDict_rdict.pcm TExlPhysics.rootmap COMMAND genreflex TExlPhysics.h -o TExlPhysicsDict.cxx -I../Core --rootmap=TExlPhysics.rootmap --rootmap-lib=libNPEXL --quiet DEPENDS TExlPhysics.h)
+add_custom_command(OUTPUT TExlDataDict.cxx TExlDataDict_rdict.pcm TExlData.rootmap COMMAND genreflex TExlData.h -o TExlDataDict.cxx -I../Core --rootmap=TExlData.rootmap --rootmap-lib=libNPEXL --quiet DEPENDS TExlData.h)
 add_library(NPExl SHARED TExlData.cxx TExlPhysics.cxx TExlDataDict.cxx TExlPhysicsDict.cxx )
 target_link_libraries(NPExl ${ROOT_LIBRARIES} NPCore) 
 install(FILES TExlData.h TExlPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TExlData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TExlPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Eurogam/CMakeLists.txt b/NPLib/Eurogam/CMakeLists.txt
index 75ecf4845da35f9850a87143858cd1dd1fdf85ca..257f2171dc0254c11397d45c44d482bd7df21fe9 100644
--- a/NPLib/Eurogam/CMakeLists.txt
+++ b/NPLib/Eurogam/CMakeLists.txt
@@ -1,5 +1,6 @@
-ROOT_GENERATE_DICTIONARY( TEurogamData.h "" TEurogamDataDict.cxx "")
+add_custom_command(OUTPUT TEurogamDataDict.cxx TEurogamDataDict_rdict.pcm TEurogamData.rootmap COMMAND genreflex TEurogamData.h -o TEurogamDataDict.cxx -I../Core --rootmap=TEurogamData.rootmap --rootmap-lib=libNPEurogam --quiet DEPENDS TEurogamData.h)
 add_library(NPEurogam SHARED TEurogamData.cxx TEurogamDataDict.cxx )
 target_link_libraries(NPEurogam ${ROOT_LIBRARIES} NPCore) 
 install(FILES TEurogamData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TEurogamData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Exogam/CMakeLists.txt b/NPLib/Exogam/CMakeLists.txt
index d632c1d968dbc7181a3725ed488341da17d85750..fdf63f44f36a7bfd3a825732500783398975f1db 100644
--- a/NPLib/Exogam/CMakeLists.txt
+++ b/NPLib/Exogam/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TExogamData.h "" TExogamDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TExogamPhysics.h "" TExogamPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TExogamPhysicsDict.cxx TExogamPhysicsDict_rdict.pcm TExogamPhysics.rootmap COMMAND genreflex TExogamPhysics.h -o TExogamPhysicsDict.cxx -I../Core --rootmap=TExogamPhysics.rootmap --rootmap-lib=libNPExogam --quiet DEPENDS TExogamPhysics.h)
+add_custom_command(OUTPUT TExogamDataDict.cxx TExogamDataDict_rdict.pcm TExogamData.rootmap COMMAND genreflex TExogamData.h -o TExogamDataDict.cxx -I../Core --rootmap=TExogamData.rootmap --rootmap-lib=libNPExogam --quiet DEPENDS TExogamData.h)
 add_library(NPExogam SHARED TExogamData.cxx TExogamPhysics.cxx TExogamDataDict.cxx TExogamPhysicsDict.cxx TExogamSpectra.cxx)
 target_link_libraries(NPExogam ${ROOT_LIBRARIES} NPCore) 
 install(FILES TExogamData.h TExogamPhysics.h TExogamSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TExogamData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TExogamPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Fatima/CMakeLists.txt b/NPLib/Fatima/CMakeLists.txt
index 9f1b938f18201c9e8fe179cc0ac546df14496049..1980bb4f256b39ffc12f47c0c703b3194f6ecb65 100644
--- a/NPLib/Fatima/CMakeLists.txt
+++ b/NPLib/Fatima/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TFatimaData.h "" TFatimaDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TFatimaPhysics.h "" TFatimaPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TFatimaPhysicsDict.cxx TFatimaPhysicsDict_rdict.pcm TFatimaPhysics.rootmap COMMAND genreflex TFatimaPhysics.h -o TFatimaPhysicsDict.cxx -I../Core --rootmap=TFatimaPhysics.rootmap --rootmap-lib=libNPFatima --quiet DEPENDS TFatimaPhysics.h)
+add_custom_command(OUTPUT TFatimaDataDict.cxx TFatimaDataDict_rdict.pcm TFatimaData.rootmap COMMAND genreflex TFatimaData.h -o TFatimaDataDict.cxx -I../Core --rootmap=TFatimaData.rootmap --rootmap-lib=libNPFatima --quiet DEPENDS TFatimaData.h)
 add_library(NPFatima SHARED TFatimaData.cxx TFatimaPhysics.cxx TFatimaDataDict.cxx TFatimaPhysicsDict.cxx )
 target_link_libraries(NPFatima ${ROOT_LIBRARIES} NPCore) 
 install(FILES TFatimaData.h TFatimaPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TFatimaData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TFatimaPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/GASPARD/CMakeLists.txt b/NPLib/GASPARD/CMakeLists.txt
index 1874d455970860d0f2b63e4613da5b1fea7651c9..fad616d3afa40e68885f999e7eddb8bd883a2344 100644
--- a/NPLib/GASPARD/CMakeLists.txt
+++ b/NPLib/GASPARD/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TGaspardTrackerData.h "" TGaspardTrackerDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TGaspardTrackerPhysics.h "" TGaspardTrackerPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TGaspardTrackerPhysicsDict.cxx TGaspardTrackerPhysicsDict_rdict.pcm TGaspardTrackerPhysics.rootmap COMMAND genreflex TGaspardTrackerPhysics.h -o TGaspardTrackerPhysicsDict.cxx -I../Core --rootmap=TGaspardTrackerPhysics.rootmap --rootmap-lib=libNPGASPARD --quiet DEPENDS TGaspardTrackerPhysics.h)
+add_custom_command(OUTPUT TGaspardTrackerDataDict.cxx TGaspardTrackerDataDict_rdict.pcm TGaspardTrackerData.rootmap COMMAND genreflex TGaspardTrackerData.h -o TGaspardTrackerDataDict.cxx -I../Core --rootmap=TGaspardTrackerData.rootmap --rootmap-lib=libNPGASPARD --quiet DEPENDS TGaspardTrackerData.h)
 add_library(NPGaspardTracker SHARED GaspardTracker.cxx GaspardTrackerAnnular.cxx GaspardTrackerDummyShape.cxx GaspardTrackerModule.cxx GaspardTrackerTrapezoid.cxx GaspardTrackerSquare.cxx GaspardTrackerRectangle.cxx TGaspardTrackerData.cxx TGaspardTrackerPhysics.cxx TGaspardTrackerDataDict.cxx TGaspardTrackerPhysicsDict.cxx )
 target_link_libraries(NPGaspardTracker ${ROOT_LIBRARIES} NPCore) 
 install(FILES TGaspardTrackerData.h TGaspardTrackerPhysics.h GaspardTracker.h GaspardTrackerAnnular.h GaspardTrackerDummyShape.h GaspardTrackerModule.h GaspardTrackerRectangle.h GaspardTrackerSquare.h GaspardTrackerTrapezoid.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TGaspardTrackerData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TGaspardTrackerPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/HYDE2/CMakeLists.txt b/NPLib/HYDE2/CMakeLists.txt
index 4214d1387a6551f94f54673c26d8a789959ffdfc..ddfd673f5c2a63c9454efe9d0606b16680220248 100644
--- a/NPLib/HYDE2/CMakeLists.txt
+++ b/NPLib/HYDE2/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( THyde2TrackerData.h "" THyde2TrackerDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( THyde2TrackerPhysics.h "" THyde2TrackerPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT THyde2TrackerPhysicsDict.cxx THyde2TrackerPhysicsDict_rdict.pcm THyde2TrackerPhysics.rootmap COMMAND genreflex THyde2TrackerPhysics.h -o THyde2TrackerPhysicsDict.cxx -I../Core --rootmap=THyde2TrackerPhysics.rootmap --rootmap-lib=libNPHYDE2 --quiet DEPENDS THyde2TrackerPhysics.h)
+add_custom_command(OUTPUT THyde2TrackerDataDict.cxx THyde2TrackerDataDict_rdict.pcm THyde2TrackerData.rootmap COMMAND genreflex THyde2TrackerData.h -o THyde2TrackerDataDict.cxx -I../Core --rootmap=THyde2TrackerData.rootmap --rootmap-lib=libNPHYDE2 --quiet DEPENDS THyde2TrackerData.h)
 add_library(NPHyde2Tracker SHARED Hyde2Tracker.cxx Hyde2TrackerModule.cxx Hyde2TrackerTrapezoid1.cxx Hyde2TrackerTrapezoid2.cxx Hyde2TrackerSquare1.cxx THyde2TrackerData.cxx THyde2TrackerPhysics.cxx THyde2TrackerDataDict.cxx THyde2TrackerPhysicsDict.cxx )
 target_link_libraries(NPHyde2Tracker ${ROOT_LIBRARIES} NPCore) 
 install(FILES THyde2TrackerData.h THyde2TrackerPhysics.h Hyde2Tracker.h Hyde2TrackerModule.h Hyde2TrackerSquare1.h Hyde2TrackerTrapezoid1.h Hyde2TrackerTrapezoid2.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES THyde2TrackerData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES THyde2TrackerPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Helios/CMakeLists.txt b/NPLib/Helios/CMakeLists.txt
index ce9fa1c2f0be0d4c3290b94b1bb4e5e9b565d960..3110c313c69b17a6b19531ee4745c887f0ce3e9b 100644
--- a/NPLib/Helios/CMakeLists.txt
+++ b/NPLib/Helios/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( THeliosData.h "" THeliosDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( THeliosPhysics.h "" THeliosPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT THeliosPhysicsDict.cxx THeliosPhysicsDict_rdict.pcm THeliosPhysics.rootmap COMMAND genreflex THeliosPhysics.h -o THeliosPhysicsDict.cxx -I../Core --rootmap=THeliosPhysics.rootmap --rootmap-lib=libNPHelios --quiet DEPENDS THeliosPhysics.h)
+add_custom_command(OUTPUT THeliosDataDict.cxx THeliosDataDict_rdict.pcm THeliosData.rootmap COMMAND genreflex THeliosData.h -o THeliosDataDict.cxx -I../Core --rootmap=THeliosData.rootmap --rootmap-lib=libNPHelios --quiet DEPENDS THeliosData.h)
 add_library(NPHelios SHARED Helios.cxx THeliosData.cxx THeliosPhysics.cxx THeliosDataDict.cxx THeliosPhysicsDict.cxx )
 target_link_libraries(NPHelios ${ROOT_LIBRARIES} NPCore) 
 install(FILES THeliosData.h THeliosPhysics.h Helios.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES THeliosData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES THeliosPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/HiRA/CMakeLists.txt b/NPLib/HiRA/CMakeLists.txt
index 27ef050e33e503ab5bfd582d0d49a0c368c95373..67286730566a196fc716b9856f832d40e79d3e01 100644
--- a/NPLib/HiRA/CMakeLists.txt
+++ b/NPLib/HiRA/CMakeLists.txt
@@ -1,5 +1,6 @@
-ROOT_GENERATE_DICTIONARY( THiraData.h "" THiraDataDict.cxx "")
+add_custom_command(OUTPUT THiraDataDict.cxx THiraDataDict_rdict.pcm THiraData.rootmap COMMAND genreflex THiraData.h -o THiraDataDict.cxx -I../Core --rootmap=THiraData.rootmap --rootmap-lib=libNPHiRA --quiet DEPENDS THiraData.h)
 add_library(NPHira SHARED THiraData.cxx THiraDataDict.cxx )
 target_link_libraries(NPHira ${ROOT_LIBRARIES} NPCore) 
 install(FILES THiraData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES THiraData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/InitialConditions/CMakeLists.txt b/NPLib/InitialConditions/CMakeLists.txt
index 81811267b3e8dd8d5f92a2bcfbeb55692888c7ce..cb872bfba80771d7f02dfe031299632c98c63874 100644
--- a/NPLib/InitialConditions/CMakeLists.txt
+++ b/NPLib/InitialConditions/CMakeLists.txt
@@ -1,5 +1,5 @@
-ROOT_GENERATE_DICTIONARY( TInitialConditions.h "" TInitialConditionsDict.cxx "../Core")
+add_custom_command(OUTPUT TInitialConditionsDict.cxx TInitialConditionsDict_rdict.pcm TInitialConditions.rootmap COMMAND genreflex TInitialConditions.h -o TInitialConditionsDict.cxx -I../Core --rootmap=TInitialConditions.rootmap --rootmap-lib=NPInitialConditions --quiet DEPENDS TInitialConditions.h)
 add_library(NPInitialConditions SHARED TInitialConditions.cxx TInitialConditionsDict.cxx )
 target_link_libraries(NPInitialConditions ${ROOT_LIBRARIES} NPCore)
 install(FILES TInitialConditions.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
-install(FILES TInitialConditionsDict_rdict.pcm DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TInitialConditionsDict_rdict.pcm TInitialConditions.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/InteractionCoordinates/CMakeLists.txt b/NPLib/InteractionCoordinates/CMakeLists.txt
index 9de95b02ecab70be444a2103c9892dca86bc181e..80c2cbb2ca3fcc7390a3958cce465f55d7acc8de 100644
--- a/NPLib/InteractionCoordinates/CMakeLists.txt
+++ b/NPLib/InteractionCoordinates/CMakeLists.txt
@@ -1,6 +1,6 @@
-ROOT_GENERATE_DICTIONARY( TInteractionCoordinates.h "" TInteractionCoordinatesDict.cxx "../Core")
+add_custom_command(OUTPUT TInteractionCoordinatesDict.cxx TInteractionCoordinatesDict_rdict.pcm TInteractionCoordinates.rootmap COMMAND genreflex TInteractionCoordinates.h -o TInteractionCoordinatesDict.cxx -I../CORE --rootmap=TInteractionCoordinates.rootmap --rootmap-lib=libNPInteractionCoordinates --quiet DEPENDS TInteractionCoordinates.h)
 add_library(NPInteractionCoordinates SHARED TInteractionCoordinates.cxx TInteractionCoordinatesDict.cxx )
 target_link_libraries(NPInteractionCoordinates ${ROOT_LIBRARIES} NPCore)
 install(FILES TInteractionCoordinates.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
-install(FILES TInteractionCoordinatesDict_rdict.pcm DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TInteractionCoordinatesDict_rdict.pcm TInteractionCoordinates.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 
diff --git a/NPLib/LaBr3/CMakeLists.txt b/NPLib/LaBr3/CMakeLists.txt
index 547b449b3c2b59aeee05d2bbbad91f9e2ec8b314..ba677827a0417b97b91cd3a32dcd23ff9833200c 100644
--- a/NPLib/LaBr3/CMakeLists.txt
+++ b/NPLib/LaBr3/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TLaBr3Data.h "" TLaBr3DataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TLaBr3Physics.h "" TLaBr3PhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TLaBr3PhysicsDict.cxx TLaBr3PhysicsDict_rdict.pcm TLaBr3Physics.rootmap COMMAND genreflex TLaBr3Physics.h -o TLaBr3PhysicsDict.cxx -I../Core --rootmap=TLaBr3Physics.rootmap --rootmap-lib=libNPLaBr3 --quiet DEPENDS TLaBr3Physics.h)
+add_custom_command(OUTPUT TLaBr3DataDict.cxx TLaBr3DataDict_rdict.pcm TLaBr3Data.rootmap COMMAND genreflex TLaBr3Data.h -o TLaBr3DataDict.cxx -I../Core --rootmap=TLaBr3Data.rootmap --rootmap-lib=libNPLaBr3 --quiet DEPENDS TLaBr3Data.h)
 add_library(NPLaBr3 SHARED TLaBr3Data.cxx TLaBr3Physics.cxx TLaBr3DataDict.cxx TLaBr3PhysicsDict.cxx TLaBr3Spectra.cxx)
 target_link_libraries(NPLaBr3 ${ROOT_LIBRARIES} NPCore) 
 install(FILES TLaBr3Data.h TLaBr3Physics.h TLaBr3Spectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TLaBr3Data.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TLaBr3Physics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/MUST2/CMakeLists.txt b/NPLib/MUST2/CMakeLists.txt
index e064699e28e850f403b2da22b3177d703c01ca05..027e42e3da14dcb06efa0e2f0b3fd3367e996aef 100644
--- a/NPLib/MUST2/CMakeLists.txt
+++ b/NPLib/MUST2/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TMust2Data.h "" TMust2DataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TMust2Physics.h "" TMust2PhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TMust2PhysicsDict.cxx TMust2PhysicsDict_rdict.pcm TMust2Physics.rootmap COMMAND genreflex TMust2Physics.h -o TMust2PhysicsDict.cxx -I../Core --rootmap=TMust2Physics.rootmap --rootmap-lib=libNPMUST2 --quiet DEPENDS TMust2Physics.h)
+add_custom_command(OUTPUT TMust2DataDict.cxx TMust2DataDict_rdict.pcm TMust2Data.rootmap COMMAND genreflex TMust2Data.h -o TMust2DataDict.cxx -I../Core --rootmap=TMust2Data.rootmap --rootmap-lib=libNPMUST2 --quiet DEPENDS TMust2Data.h)
 add_library(NPMust2 SHARED TMust2Data.cxx TMust2Physics.cxx TMust2DataDict.cxx TMust2PhysicsDict.cxx TMust2Spectra.cxx)
 target_link_libraries(NPMust2 ${ROOT_LIBRARIES} NPCore) 
 install(FILES TMust2Data.h TMust2Physics.h TMust2Spectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TMust2Data.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TMust2Physics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Maya/CMakeLists.txt b/NPLib/Maya/CMakeLists.txt
index 33d4dd1f34801260f3e8fa4722970984f848057e..1d4beb75c90f4cb053902702f4a76ebaa6545e27 100644
--- a/NPLib/Maya/CMakeLists.txt
+++ b/NPLib/Maya/CMakeLists.txt
@@ -1,7 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TMayaData.h "" TMayaDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TMayaHisto.h "" TMayaHistoDict.cxx "")
-ROOT_GENERATE_DICTIONARY( ConfigReader.h "" ConfigReaderDict.cxx "")
+add_custom_command(OUTPUT TMayaDataDict.cxx TMayaDataDict_rdict.pcm TMayaData.rootmap COMMAND genreflex TMayaData.h -o TMayaDataDict.cxx -I../Core --rootmap=TMayaData.rootmap --rootmap-lib=libNPMaya --quiet DEPENDS TMayaData.h)
+add_custom_command(OUTPUT TMayaHistoDict.cxx TMayaHistoDict_rdict.pcm TMayaHisto.rootmap COMMAND genreflex TMayaHisto.h -o TMayaHistoDict.cxx -I../Core --rootmap=TMayaHisto.rootmap --rootmap-lib=libNPMaya --quiet DEPENDS TMayaHisto.h)
+
 add_library(NPMaya SHARED TMayaData.cxx TMayaHisto.cxx TMayaDataDict.cxx TMayaHistoDict.cxx ConfigReader.cxx)
 target_link_libraries(NPMaya ${ROOT_LIBRARIES} NPCore) 
 install(FILES TMayaData.h TMayaHisto.h ConfigReader.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TMayaData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Misc/CMakeLists.txt b/NPLib/Misc/CMakeLists.txt
index 30d9b6505a514e023910039aefbd703449d39cdc..0a180c4f137f1b13c24128949763bc5d70b66c21 100644
--- a/NPLib/Misc/CMakeLists.txt
+++ b/NPLib/Misc/CMakeLists.txt
@@ -1,6 +1,10 @@
-ROOT_GENERATE_DICTIONARY( TTacData.h "" TTacDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TTriggerData.h "" TTriggerDataDict.cxx "")
-add_library(NPMisc SHARED TTacData.cxx TTriggerData.cxx TTacDataDict.cxx TTriggerDataDict.cxx)
+add_custom_command(OUTPUT TTacPhysicsDict.cxx TTacPhysicsDict_rdict.pcm TTacPhysics.rootmap COMMAND genreflex TTacPhysics.h -o TTacPhysicsDict.cxx -I../Core --rootmap=TTacPhysics.rootmap --rootmap-lib=libNPMisc --quiet DEPENDS TTacPhysics.h)
+add_custom_command(OUTPUT TTriggerDataDict.cxx TTriggerDataDict_rdict.pcm TTriggerData.rootmap COMMAND genreflex TTriggerData.h -o TTriggerDataDict.cxx -I../Core --rootmap=TTriggerData.rootmap --rootmap-lib=libNPMisc --quiet DEPENDS TTriggerData.h)
+add_custom_command(OUTPUT TTacDataDict.cxx TTacDataDict_rdict.pcm TTacData.rootmap COMMAND genreflex TTacData.h -o TTacDataDict.cxx -I../Core --rootmap=TTacData.rootmap --rootmap-lib=libNPMisc --quiet DEPENDS TTacData.h)
+add_library(NPMisc SHARED TTacPhysics.cxx TTacData.cxx TTriggerData.cxx TTacDataDict.cxx TTriggerDataDict.cxx TTacPhysicsDict.cxx)
 target_link_libraries(NPMisc ${ROOT_LIBRARIES} NPCore) 
 install(FILES TTacData.h TTriggerData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TTacData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTriggerData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTacPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Nana/CMakeLists.txt b/NPLib/Nana/CMakeLists.txt
index 5bc844299b6f0498f613ccb087337d2f2f074131..a067b86b6ccf0f830e9a5a11e13d9be520eed05c 100644
--- a/NPLib/Nana/CMakeLists.txt
+++ b/NPLib/Nana/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TNanaData.h "" TNanaDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TNanaPhysics.h "" TNanaPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TNanaPhysicsDict.cxx TNanaPhysicsDict_rdict.pcm TNanaPhysics.rootmap COMMAND genreflex TNanaPhysics.h -o TNanaPhysicsDict.cxx -I../Core --rootmap=TNanaPhysics.rootmap --rootmap-lib=libNPNana --quiet DEPENDS TNanaPhysics.h)
+add_custom_command(OUTPUT TNanaDataDict.cxx TNanaDataDict_rdict.pcm TNanaData.rootmap COMMAND genreflex TNanaData.h -o TNanaDataDict.cxx -I../Core --rootmap=TNanaData.rootmap --rootmap-lib=libNPNana --quiet DEPENDS TNanaData.h)
 add_library(NPNana SHARED TNanaData.cxx TNanaPhysics.cxx TNanaDataDict.cxx TNanaPhysicsDict.cxx )
 target_link_libraries(NPNana ${ROOT_LIBRARIES} NPCore) 
 install(FILES TNanaData.h TNanaPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TNanaData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TNanaPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Paris/CMakeLists.txt b/NPLib/Paris/CMakeLists.txt
index 1fd04e8dc0d465b7bef129ca901102668a8f3294..c6bb27af93c724717ad74eaa2318827dc9c0574c 100644
--- a/NPLib/Paris/CMakeLists.txt
+++ b/NPLib/Paris/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TParisData.h "" TParisDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TParisPhysics.h "" TParisPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TParisPhysicsDict.cxx TParisPhysicsDict_rdict.pcm TParisPhysics.rootmap COMMAND genreflex TParisPhysics.h -o TParisPhysicsDict.cxx -I../Core --rootmap=TParisPhysics.rootmap --rootmap-lib=libNPParis --quiet DEPENDS TParisPhysics.h)
+add_custom_command(OUTPUT TParisDataDict.cxx TParisDataDict_rdict.pcm TParisData.rootmap COMMAND genreflex TParisData.h -o TParisDataDict.cxx -I../Core --rootmap=TParisData.rootmap --rootmap-lib=libNPParis --quiet DEPENDS TParisData.h)
 add_library(NPParis SHARED TParisData.cxx TParisPhysics.cxx TParisDataDict.cxx TParisPhysicsDict.cxx )
 target_link_libraries(NPParis ${ROOT_LIBRARIES} NPCore) 
 install(FILES TParisData.h TParisPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TParisData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TParisPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Physics/CMakeLists.txt b/NPLib/Physics/CMakeLists.txt
index b3e731d688c10129491a13e0e5f31ef610e707e7..e9b3c7d46535fbcd830a951a53bbcf0792ffa579 100644
--- a/NPLib/Physics/CMakeLists.txt
+++ b/NPLib/Physics/CMakeLists.txt
@@ -1,5 +1,6 @@
-ROOT_GENERATE_DICTIONARY( NPReaction.h NPPhysicsLinkDef.h NPReactionDict.cxx "../Core")
+add_custom_command(OUTPUT NPReactionDict.cxx NPReaction.rootmap NPReactionDict_rdict.pcm COMMAND genreflex NPReaction.h -o NPReactionDict.cxx -I../Core -s ClassSelection.xml --rootmap=NPReaction.rootmap --rootmap-lib=libNPPhysics --quiet DEPENDS NPReaction.h)
 add_library(NPPhysics SHARED NPBeam.cxx NPEnergyLoss.cxx NPFunction.cxx NPNucleus.cxx NPReaction.cxx NPReactionDict.cxx)
 target_link_libraries(NPPhysics ${ROOT_LIBRARIES} MathMore NPCore) 
 install(FILES NPBeam.h NPEnergyLoss.h NPFunction.h NPNucleus.h NPReaction.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 install(FILES NPReactionDict_rdict.pcm DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES NPReaction.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Physics/ClassSelection.xml b/NPLib/Physics/ClassSelection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..131d77b18e89269f3b19288edfd21bc65743d5cf
--- /dev/null
+++ b/NPLib/Physics/ClassSelection.xml
@@ -0,0 +1,4 @@
+<lcgdict>
+    <class name="NPL::Reaction" >
+    </class>
+</lcgdict>
diff --git a/NPLib/Plastic/CMakeLists.txt b/NPLib/Plastic/CMakeLists.txt
index 735fa06cea53a38ddf73072cfe7cf52dc052768c..a1977fc55c2c679ffe0f74df250c5c34a05b97da 100644
--- a/NPLib/Plastic/CMakeLists.txt
+++ b/NPLib/Plastic/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TPlasticData.h "" TPlasticDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TPlasticPhysics.h "" TPlasticPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TPlasticPhysicsDict.cxx TPlasticPhysicsDict_rdict.pcm TPlasticPhysics.rootmap COMMAND genreflex TPlasticPhysics.h -o TPlasticPhysicsDict.cxx -I../Core --rootmap=TPlasticPhysics.rootmap --rootmap-lib=libNPPlastic --quiet DEPENDS TPlasticPhysics.h)
+add_custom_command(OUTPUT TPlasticDataDict.cxx TPlasticDataDict_rdict.pcm TPlasticData.rootmap COMMAND genreflex TPlasticData.h -o TPlasticDataDict.cxx -I../Core --rootmap=TPlasticData.rootmap --rootmap-lib=libNPPlastic --quiet DEPENDS TPlasticData.h)
 add_library(NPPlastic SHARED TPlasticData.cxx TPlasticPhysics.cxx TPlasticDataDict.cxx TPlasticPhysicsDict.cxx )
 target_link_libraries(NPPlastic ${ROOT_LIBRARIES} NPCore) 
 install(FILES TPlasticData.h TPlasticPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TPlasticData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TPlasticPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Riken/CMakeLists.txt b/NPLib/Riken/CMakeLists.txt
index 87a5138b965c860df8b926e8052a8fc4bcbd744b..5af629a069866aad7a51b53b46bc1067997e6fbb 100644
--- a/NPLib/Riken/CMakeLists.txt
+++ b/NPLib/Riken/CMakeLists.txt
@@ -1,5 +1,6 @@
-ROOT_GENERATE_DICTIONARY( TRIPSData.h "" TRIPSDataDict.cxx "")
+add_custom_command(OUTPUT TRIPSDataDict.cxx TRIPSDataDict_rdict.pcm TRIPSData.rootmap COMMAND genreflex TRIPSData.h -o TRIPSDataDict.cxx -I../Core --rootmap=TRIPSData.rootmap --rootmap-lib=libNPRiken --quiet DEPENDS TRIPSData.h)
 add_library(NPRIPS SHARED TRIPSData.cxx TRIPSDataDict.cxx )
 target_link_libraries(NPRIPS ${ROOT_LIBRARIES} NPCore) 
 install(FILES TRIPSData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TRIPSData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/SSSD/CMakeLists.txt b/NPLib/SSSD/CMakeLists.txt
index c170e5f821e91543ef146dfb476f4d32d29d1f26..4c4efd2bb9644d5ea2d72a401a46978c9b330dd9 100644
--- a/NPLib/SSSD/CMakeLists.txt
+++ b/NPLib/SSSD/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TSSSDData.h "" TSSSDDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSSSDPhysics.h "" TSSSDPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TSSSDPhysicsDict.cxx TSSSDPhysicsDict_rdict.pcm TSSSDPhysics.rootmap COMMAND genreflex TSSSDPhysics.h -o TSSSDPhysicsDict.cxx -I../Core --rootmap=TSSSDPhysics.rootmap --rootmap-lib=libNPSSSD --quiet DEPENDS TSSSDPhysics.h)
+add_custom_command(OUTPUT TSSSDDataDict.cxx TSSSDDataDict_rdict.pcm TSSSDData.rootmap COMMAND genreflex TSSSDData.h -o TSSSDDataDict.cxx -I../Core --rootmap=TSSSDData.rootmap --rootmap-lib=libNPSSSD --quiet DEPENDS TSSSDData.h)
 add_library(NPSSSD SHARED TSSSDData.cxx TSSSDPhysics.cxx TSSSDDataDict.cxx TSSSDPhysicsDict.cxx )
 target_link_libraries(NPSSSD ${ROOT_LIBRARIES} NPCore) 
 install(FILES TSSSDData.h TSSSDPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TSSSDData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSSSDPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Sharc/CMakeLists.txt b/NPLib/Sharc/CMakeLists.txt
index 26c5582ebe37c00038535e9c8bbcf654872fa53a..f3a0cd79f3ccb803b7c207ce62096d98d1a02614 100644
--- a/NPLib/Sharc/CMakeLists.txt
+++ b/NPLib/Sharc/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TSharcData.h "" TSharcDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSharcPhysics.h "" TSharcPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TSharcPhysicsDict.cxx TSharcPhysicsDict_rdict.pcm TSharcPhysics.rootmap COMMAND genreflex TSharcPhysics.h -o TSharcPhysicsDict.cxx -I../Core --rootmap=TSharcPhysics.rootmap --rootmap-lib=libNPSharc --quiet DEPENDS TSharcPhysics.h)
+add_custom_command(OUTPUT TSharcDataDict.cxx TSharcDataDict_rdict.pcm TSharcData.rootmap COMMAND genreflex TSharcData.h -o TSharcDataDict.cxx -I../Core --rootmap=TSharcData.rootmap --rootmap-lib=libNPSharc --quiet DEPENDS TSharcData.h)
 add_library(NPSharc SHARED TSharcData.cxx TSharcPhysics.cxx TSharcDataDict.cxx TSharcPhysicsDict.cxx )
 target_link_libraries(NPSharc ${ROOT_LIBRARIES} NPCore) 
 install(FILES TSharcData.h TSharcPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TSharcData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSharcPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/SiLi/CMakeLists.txt b/NPLib/SiLi/CMakeLists.txt
index f9d65780f2c5d24be2f5c6592abd5343a268366c..124abadfef928b646803d3ddbb39e33219d63f2c 100644
--- a/NPLib/SiLi/CMakeLists.txt
+++ b/NPLib/SiLi/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TSiLiData.h "" TSiLiDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSiLiPhysics.h "" TSiLiPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TSiLiPhysicsDict.cxx TSiLiPhysicsDict_rdict.pcm TSiLiPhysics.rootmap COMMAND genreflex TSiLiPhysics.h -o TSiLiPhysicsDict.cxx -I../Core --rootmap=TSiLiPhysics.rootmap --rootmap-lib=libNPSiLi --quiet DEPENDS TSiLiPhysics.h)
+add_custom_command(OUTPUT TSiLiDataDict.cxx TSiLiDataDict_rdict.pcm TSiLiData.rootmap COMMAND genreflex TSiLiData.h -o TSiLiDataDict.cxx -I../Core --rootmap=TSiLiData.rootmap --rootmap-lib=libNPSiLi --quiet DEPENDS TSiLiData.h)
 add_library(NPSiLi SHARED TSiLiData.cxx TSiLiPhysics.cxx TSiLiDataDict.cxx TSiLiPhysicsDict.cxx TSiLiSpectra.cxx)
 target_link_libraries(NPSiLi ${ROOT_LIBRARIES} NPCore) 
 install(FILES TSiLiData.h TSiLiPhysics.h TSiLiSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TSiLiData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSiLiPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/SiRes/CMakeLists.txt b/NPLib/SiRes/CMakeLists.txt
index 8794d9a4d9a8330ba745facb90fe43feba649f27..f8de813147529c063040b787512936db6bdeded1 100644
--- a/NPLib/SiRes/CMakeLists.txt
+++ b/NPLib/SiRes/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TSiResData.h "" TSiResDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSiResPhysics.h "" TSiResPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TSiResPhysicsDict.cxx TSiResPhysicsDict_rdict.pcm TSiResPhysics.rootmap COMMAND genreflex TSiResPhysics.h -o TSiResPhysicsDict.cxx -I../Core --rootmap=TSiResPhysics.rootmap --rootmap-lib=libNPSiRes --quiet DEPENDS TSiResPhysics.h)
+add_custom_command(OUTPUT TSiResDataDict.cxx TSiResDataDict_rdict.pcm TSiResData.rootmap COMMAND genreflex TSiResData.h -o TSiResDataDict.cxx -I../Core --rootmap=TSiResData.rootmap --rootmap-lib=libNPSiRes --quiet DEPENDS TSiResData.h)
 add_library(NPSiRes SHARED TSiResData.cxx TSiResPhysics.cxx TSiResDataDict.cxx TSiResPhysicsDict.cxx TSiResSpectra.cxx)
 target_link_libraries(NPSiRes ${ROOT_LIBRARIES} NPCore) 
 install(FILES TSiResData.h TSiResPhysics.h TSiResSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TSiResData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSiResPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Speg/CMakeLists.txt b/NPLib/Speg/CMakeLists.txt
index 91aefcfd2705d6e48e385ce35309b0ed5b46e06f..70a61b83ff174feeb9c276435a3620ed6c6e5cb0 100644
--- a/NPLib/Speg/CMakeLists.txt
+++ b/NPLib/Speg/CMakeLists.txt
@@ -1,8 +1,12 @@
-ROOT_GENERATE_DICTIONARY( TSpegCHIOData.h "" TSpegCHIODataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSpegDCData.h "" TSpegDCDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSpegPlasticData.h "" TSpegPlasticDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TSpegPhysics.h "" TSpegPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TSpegPhysicsDict.cxx TSpegPhysicsDict_rdict.pcm TSpegPhysics.rootmap COMMAND genreflex TSpegPhysics.h -o TSpegPhysicsDict.cxx -I../Core --rootmap=TSpegPhysics.rootmap --rootmap-lib=libNPSpeg --quiet DEPENDS TSpegPhysics.h)
+add_custom_command(OUTPUT TSpegPlasticDataDict.cxx TSpegPlasticDataDict_rdict.pcm TSpegPlasticData.rootmap COMMAND genreflex TSpegPlasticData.h -o TSpegPlasticDataDict.cxx -I../Core --rootmap=TSpegPlasticData.rootmap --rootmap-lib=libNPSpeg --quiet DEPENDS TSpegPlasticData.h)
+add_custom_command(OUTPUT TSpegDCDataDict.cxx TSpegDCDataDict_rdict.pcm TSpegDCData.rootmap COMMAND genreflex TSpegDCData.h -o TSpegDCDataDict.cxx -I../Core --rootmap=TSpegDCData.rootmap --rootmap-lib=libNPSpeg --quiet DEPENDS TSpegDCData.h)
+add_custom_command(OUTPUT TSpegCHIODataDict.cxx TSpegCHIODataDict_rdict.pcm TSpegCHIOData.rootmap COMMAND genreflex TSpegCHIOData.h -o TSpegCHIODataDict.cxx -I../Core --rootmap=TSpegCHIOData.rootmap --rootmap-lib=libNPSpeg --quiet DEPENDS TSpegCHIOData.h)
 add_library(NPSpeg SHARED TSpegCHIOData.cxx TSpegDCData.cxx TSpegPlasticData.cxx TSpegPhysics.cxx TSpegCHIODataDict.cxx TSpegDCDataDict.cxx TSpegPlasticDataDict.cxx TSpegPhysicsDict.cxx )
 target_link_libraries(NPSpeg ${ROOT_LIBRARIES} NPCore) 
 install(FILES TSpegCHIOData.h TSpegDCData.h TSpegPlasticData.h TSpegPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TSpegCHIOData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSpegDCData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSpegPlasticData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TSpegPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Tiara/CMakeLists.txt b/NPLib/Tiara/CMakeLists.txt
index 0cbfcf5ef3a12c82f032b3150b5f2c78bc2870ed..e34941bf0bbec475c0a461a5d1654e2a4ae9c0b7 100644
--- a/NPLib/Tiara/CMakeLists.txt
+++ b/NPLib/Tiara/CMakeLists.txt
@@ -1,7 +1,7 @@
-ROOT_GENERATE_DICTIONARY( TTiaraBarrelData.h "" TTiaraBarrelDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TTiaraBarrelPhysics.h "" TTiaraBarrelPhysicsDict.cxx "../Core")
-ROOT_GENERATE_DICTIONARY( TTiaraHyballData.h "" TTiaraHyballDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TTiaraHyballPhysics.h "" TTiaraHyballPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TTiaraHyballPhysicsDict.cxx TTiaraHyballPhysicsDict_rdict.pcm TTiaraHyballPhysics.rootmap COMMAND genreflex TTiaraHyballPhysics.h -o TTiaraHyballPhysicsDict.cxx -I../Core --rootmap=TTiaraHyballPhysics.rootmap --rootmap-lib=libNPTiara --quiet DEPENDS TTiaraHyballPhysics.h)
+add_custom_command(OUTPUT TTiaraBarrelPhysicsDict.cxx TTiaraBarrelPhysicsDict_rdict.pcm TTiaraBarrelPhysics.rootmap COMMAND genreflex TTiaraBarrelPhysics.h -o TTiaraBarrelPhysicsDict.cxx -I../Core --rootmap=TTiaraBarrelPhysics.rootmap --rootmap-lib=libNPTiara --quiet DEPENDS TTiaraBarrelPhysics.h)
+add_custom_command(OUTPUT TTiaraHyballDataDict.cxx TTiaraHyballDataDict_rdict.pcm TTiaraHyballData.rootmap COMMAND genreflex TTiaraHyballData.h -o TTiaraHyballDataDict.cxx -I../Core --rootmap=TTiaraHyballData.rootmap --rootmap-lib=libNPTiara --quiet DEPENDS TTiaraHyballData.h)
+add_custom_command(OUTPUT TTiaraBarrelDataDict.cxx TTiaraBarrelDataDict_rdict.pcm TTiaraBarrelData.rootmap COMMAND genreflex TTiaraBarrelData.h -o TTiaraBarrelDataDict.cxx -I../Core --rootmap=TTiaraBarrelData.rootmap --rootmap-lib=libNPTiara --quiet DEPENDS TTiaraBarrelData.h)
 
 add_library(NPTiara SHARED TTiaraBarrelData.cxx TTiaraBarrelPhysics.cxx TTiaraBarrelDataDict.cxx TTiaraBarrelPhysicsDict.cxx TTiaraBarrelSpectra.cxx TTiaraHyballData.cxx TTiaraHyballPhysics.cxx TTiaraHyballDataDict.cxx TTiaraHyballPhysicsDict.cxx TTiaraHyballSpectra.cxx)
 
@@ -9,3 +9,7 @@ add_library(NPTiara SHARED TTiaraBarrelData.cxx TTiaraBarrelPhysics.cxx TTiaraBa
 target_link_libraries(NPTiara ${ROOT_LIBRARIES} NPCore) 
 install(FILES TTiaraBarrelData.h TTiaraBarrelPhysics.h TTiaraBarrelSpectra.h TTiaraHyballData.h TTiaraHyballPhysics.h TTiaraHyballSpectra.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TTiaraBarrelData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTiaraHyballData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTiaraBarrelPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTiaraHyballPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Tigress/CMakeLists.txt b/NPLib/Tigress/CMakeLists.txt
index 3e7f46955e213a653becb78b833043a0431682bd..4ba13f19ab7d8690e7cc3b9de805c1e85c6d4b45 100644
--- a/NPLib/Tigress/CMakeLists.txt
+++ b/NPLib/Tigress/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TTigressData.h "" TTigressDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TTigressPhysics.h "" TTigressPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TTigressPhysicsDict.cxx TTigressPhysicsDict_rdict.pcm TTigressPhysics.rootmap COMMAND genreflex TTigressPhysics.h -o TTigressPhysicsDict.cxx -I../Core --rootmap=TTigressPhysics.rootmap --rootmap-lib=libNPTigress --quiet DEPENDS TTigressPhysics.h)
+add_custom_command(OUTPUT TTigressDataDict.cxx TTigressDataDict_rdict.pcm TTigressData.rootmap COMMAND genreflex TTigressData.h -o TTigressDataDict.cxx -I../Core --rootmap=TTigressData.rootmap --rootmap-lib=libNPTigress --quiet DEPENDS TTigressData.h)
 add_library(NPTigress SHARED TTigressData.cxx TTigressPhysics.cxx TTigressDataDict.cxx TTigressPhysicsDict.cxx )
 target_link_libraries(NPTigress ${ROOT_LIBRARIES} NPCore) 
 install(FILES TTigressData.h TTigressPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TTigressData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTigressPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Tigress/TTigressDataPhysics.h b/NPLib/Tigress/TTigressDataPhysics.h
deleted file mode 100644
index 909f15e2092774f36deba21bc5cef77b179fb2cd..0000000000000000000000000000000000000000
--- a/NPLib/Tigress/TTigressDataPhysics.h
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef TTIGRESSPHYSICS_H
-#define TTIGRESSPHYSICS_H
-/*****************************************************************************
- * Copyright (C) 2009-2014    this file is part of the NPTool Project        *
- *                                                                           *
- * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
- * For the list of contributors see $NPTOOL/Licence/Contributors             *
- *****************************************************************************/
-
-/*****************************************************************************
- * Original Author:                                                          *
- *                                                                           *
- * Creation Date  :                                                          *
- * Last update    :                                                          *
- *---------------------------------------------------------------------------*
- * Decription:                                                               *
- *  This class should deal with TIGRESS gamma data...                        *
- *                                                                           *
- *---------------------------------------------------------------------------*
- * Comment:                                                                  *  
- *                                                                           *
- *                                                                           *
- *                                                                           *
- *****************************************************************************/
- 
- // STL
-#include <vector>
-#include <stdio.h>
-
-// NPL
-#include "TTigressData.h"
-#include "NPCalibrationManager.h"
-#include "NPVDetector.h"
-// ROOT 
-#include "TVector2.h" 
-#include "TVector3.h" 
-#include "TObject.h"
-
-
-using namespace std ;
-
-class TTigressPhysics : public TObject, public NPA::VDetector
-{
-   public:
-      TTigressPhysics();
-      ~TTigressPhysics() {};
-
-   public: 
-      void Clear();   
-      void Clear(const Option_t*) {};
-
-   public: 
-      //vector < TVector2 > Match_Front_Back() ;
-      //int  CheckEvent();
-
-  private:   //   Root Input and Output tree classes
-            
-    TTigressData*         m_EventData;//!
-    TTigressData*         m_PreTreatedData;//!
-    TTigressPhysics*      m_EventPhysics;//!
-
-
-  //private:   //   Map of activated channel
-  //  map< int, vector<bool> > m_FrontChannelStatus;//!
-  //  map< int, vector<bool> > m_BackChannelStatus;//! 
-  //  map< int, vector<bool> > m_PADChannelStatus;//!
-
-  //private:   //   Spatial Position of Strip Calculated on bases of detector position
-   
-   // int m_NumberOfDetector;//!
-   // vector< vector < vector < double > > >   m_StripPositionX;//!
-   // vector< vector < vector < double > > >   m_StripPositionY;//!
-   // vector< vector < vector < double > > >   m_StripPositionZ;//!
-         
-   public: // Static constructor to be passed to the Detector Factory
-     static NPA::VDetector* Construct();
-     ClassDef(TSharcPhysics,1)  // SharcPhysics structure
-};
-
-
-
-
-
-
-
-
-//=============================================//
-// ok, so, i don't really know what I am doing.  but the plan here is to make three classes for tigress.  an "array" class which will contain 16(12) positions.  Each position will be occupied by a "clover" class (also be created here), which will contain four position.  The clover class will contain an add-back method, four "crystal" classes, and I think a "bgo" class.   The Crystal class will contain 8 postions (1 for each segment) and holders for all segment and core time(led,cfd,timestamp) and charge.  I Should try to write this one first.
-
-
-class TigCrystal  {
-
-  public:
-    TTigCrystal();
-    ~TTigCrystal() {};
-
-    void Clear();
-    int WhoAmI(); {return CloverNumber;}
-
-    void SetData();
-    void GetPosition(int*,int*);
-
-  protected: 
-    
-    int ColverNumber;
-    void SetPositionData();
-
-  protected: 
-   
-    //geometery 
-    int Segment_1_theata;  
-    int Segment_1_phi;   
-
-    int Segment_2_theata;  
-    int Segment_2_phi;   
-
-    int Segment_3_theata;  
-    int Segment_3_phi;   
-
-    int Segment_4_theata;  
-    int Segment_4_phi;   
-
-    int Segment_5_theata;  
-    int Segment_5_phi;   
-
-    int Segment_6_theata;  
-    int Segment_6_phi;   
-
-    int Segment_7_theata;  
-    int Segment_7_phi;   
-
-    int Segment_8_theata;  
-    int Segment_8_phi;   
-
-    int Core_theta;
-    int Core_phi;
-
-
-  protected:
-
-    unsigned short charge;
-    unsigned short energy;
-
-    unsigned int cfd;
-    unsigned int led;
-    
-    unsigned int timestamp_low;
-
-    vector<unsigned short> segment
-  
-    vector<unsigned short> s_charge;  
-    vector<unsigned short> s_energy;
-
-    vector<unsigned int> s_cfd;
-    vector<unsigned int> s_led;
-
-    vector<unsigned int> s_timestamp_low;
-
-};
-
-
-
-
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-   
-  
-
diff --git a/NPLib/Trifoil/CMakeLists.txt b/NPLib/Trifoil/CMakeLists.txt
index 9332d86f9b55d5aee574dd1360b9c64d7f0993f0..cc733c684cf8010646d43afa0f8213571fdaa0b7 100644
--- a/NPLib/Trifoil/CMakeLists.txt
+++ b/NPLib/Trifoil/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TTrifoilData.h "" TTrifoilDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TTrifoilPhysics.h "" TTrifoilPhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TTrifoilPhysicsDict.cxx TTrifoilPhysicsDict_rdict.pcm TTrifoilPhysics.rootmap COMMAND genreflex TTrifoilPhysics.h -o TTrifoilPhysicsDict.cxx -I../Core --rootmap=TTrifoilPhysics.rootmap --rootmap-lib=libNPTrifoil --quiet DEPENDS TTrifoilPhysics.h)
+add_custom_command(OUTPUT TTrifoilDataDict.cxx TTrifoilDataDict_rdict.pcm TTrifoilData.rootmap COMMAND genreflex TTrifoilData.h -o TTrifoilDataDict.cxx -I../Core --rootmap=TTrifoilData.rootmap --rootmap-lib=libNPTrifoil --quiet DEPENDS TTrifoilData.h)
 add_library(NPTrifoil SHARED TTrifoilData.cxx TTrifoilPhysics.cxx TTrifoilDataDict.cxx TTrifoilPhysicsDict.cxx )
 target_link_libraries(NPTrifoil ${ROOT_LIBRARIES} NPCore) 
 install(FILES TTrifoilData.h TTrifoilPhysics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TTrifoilData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TTrifoilPhysics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/Utility/CMakeLists.txt b/NPLib/Utility/CMakeLists.txt
index 433212321b490f33736ed71cf846be813100807e..0df58d9760341b64cd13035f49b9c879a824c6c5 100644
--- a/NPLib/Utility/CMakeLists.txt
+++ b/NPLib/Utility/CMakeLists.txt
@@ -3,4 +3,3 @@ target_link_libraries(nptool-libmap ${ROOT_LIBRARIES} NPCore)
 add_executable(npanalysis npanalysis.cxx)
 target_link_libraries(npanalysis ${ROOT_LIBRARIES} NPCore) 
 install(PROGRAMS nptool-libmap npanalysis DESTINATION ${CMAKE_BINARY_OUTPUT_DIRECTORY})
-
diff --git a/NPLib/Utility/nptool-libmap.cxx b/NPLib/Utility/nptool-libmap.cxx
index fcdc8e2f4fa080f079bc137731a0e995a7b60180..33d3cd7aac458382d11bafdd35b6745e72366588 100644
--- a/NPLib/Utility/nptool-libmap.cxx
+++ b/NPLib/Utility/nptool-libmap.cxx
@@ -121,13 +121,12 @@ int main(int argc , char** argv){
       } 
     }
 
-    
-    
-    
-    
-    
-    
-    
-    
+  //  Change all the .so to .dylib for Mac Os X in the installed rootmap    
+  path = getenv("NPTOOL");
+  path += "/NPLib/*/*.rootmap";
+  std::string command = "sed -i '' -e 's/.so/.dylib/g' "+path;  
+  system(command.c_str());   
+ 
+
     return 0;
 }
diff --git a/NPLib/Vamos/CMakeLists.txt b/NPLib/Vamos/CMakeLists.txt
index 1d3712c83476007ae40f0a780a3d946ad95bd2f5..dd6fd51229808c3a7b3783c51e06ec36e17571f9 100644
--- a/NPLib/Vamos/CMakeLists.txt
+++ b/NPLib/Vamos/CMakeLists.txt
@@ -1,8 +1,12 @@
-ROOT_GENERATE_DICTIONARY( TVamosCHIOData.h "" TVamosCHIODataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TVamosDCData.h "" TVamosDCDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TVamosPlasticData.h "" TVamosPlasticDataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TVamosFingerData.h "" TVamosFingerDataDict.cxx "")
+add_custom_command(OUTPUT TVamosPlasticDataDict.cxx TVamosPlasticDataDict_rdict.pcm TVamosPlasticData.rootmap COMMAND genreflex TVamosPlasticData.h -o TVamosPlasticDataDict.cxx -I../Core --rootmap=TVamosPlasticData.rootmap --rootmap-lib=libNPVamos --quiet DEPENDS TVamosPlasticData.h)
+add_custom_command(OUTPUT TVamosFingerDataDict.cxx TVamosFingerDataDict_rdict.pcm TVamosFingerData.rootmap COMMAND genreflex TVamosFingerData.h -o TVamosFingerDataDict.cxx -I../Core --rootmap=TVamosFingerData.rootmap --rootmap-lib=libNPVamos --quiet DEPENDS TVamosFingerData.h)
+add_custom_command(OUTPUT TVamosDCDataDict.cxx TVamosDCDataDict_rdict.pcm TVamosDCData.rootmap COMMAND genreflex TVamosDCData.h -o TVamosDCDataDict.cxx -I../Core --rootmap=TVamosDCData.rootmap --rootmap-lib=libNPVamos --quiet DEPENDS TVamosDCData.h)
+add_custom_command(OUTPUT TVamosCHIODataDict.cxx TVamosCHIODataDict_rdict.pcm TVamosCHIOData.rootmap COMMAND genreflex TVamosCHIOData.h -o TVamosCHIODataDict.cxx -I../Core --rootmap=TVamosCHIOData.rootmap --rootmap-lib=libNPVamos --quiet DEPENDS TVamosCHIOData.h)
 add_library(NPVamos SHARED TVamosCHIOData.cxx TVamosDCData.cxx TVamosPlasticData.cxx TVamosFingerData.cxx TVamosCHIODataDict.cxx TVamosDCDataDict.cxx TVamosPlasticDataDict.cxx TVamosFingerDataDict.cxx )
 target_link_libraries(NPVamos ${ROOT_LIBRARIES} NPCore) 
 install(FILES TVamosCHIOData.h TVamosDCData.h TVamosPlasticData.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TVamosCHIOData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TVamosDCData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TVamosFingerData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TVamosPlasticData.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/W1/CMakeLists.txt b/NPLib/W1/CMakeLists.txt
index 04cdc594b9e01783ccd4d77ffa3af55f832b2b03..a53417a49a7d80c59fec2a87fb0eb1704081fe51 100644
--- a/NPLib/W1/CMakeLists.txt
+++ b/NPLib/W1/CMakeLists.txt
@@ -1,6 +1,8 @@
-ROOT_GENERATE_DICTIONARY( TW1Data.h "" TW1DataDict.cxx "")
-ROOT_GENERATE_DICTIONARY( TW1Physics.h "" TW1PhysicsDict.cxx "../Core")
+add_custom_command(OUTPUT TW1PhysicsDict.cxx TW1PhysicsDict_rdict.pcm TW1Physics.rootmap COMMAND genreflex TW1Physics.h -o TW1PhysicsDict.cxx -I../Core --rootmap=TW1Physics.rootmap --rootmap-lib=libNPW1 --quiet DEPENDS TW1Physics.h)
+add_custom_command(OUTPUT TW1DataDict.cxx TW1DataDict_rdict.pcm TW1Data.rootmap COMMAND genreflex TW1Data.h -o TW1DataDict.cxx -I../Core --rootmap=TW1Data.rootmap --rootmap-lib=libNPW1 --quiet DEPENDS TW1Data.h)
 add_library(NPW1 SHARED TW1Data.cxx TW1Physics.cxx TW1DataDict.cxx TW1PhysicsDict.cxx )
 target_link_libraries(NPW1 ${ROOT_LIBRARIES} NPCore) 
 install(FILES TW1Data.h TW1Physics.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
 
+install(FILES TW1Data.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+install(FILES TW1Physics.rootmap DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
diff --git a/NPLib/scripts/post_install.cmake b/NPLib/scripts/post_install.cmake
new file mode 100755
index 0000000000000000000000000000000000000000..ede9ed1877a2b728d45df85c2faa29c35de6bc91
--- /dev/null
+++ b/NPLib/scripts/post_install.cmake
@@ -0,0 +1 @@
+execute_process(COMMAND nptool-libmap ${DETLIST})