diff --git a/detectors/src/ERich_geo.cpp b/detectors/src/ERich_geo.cpp
index 44b5764eef62a640810b1b27660df4130bcb2c29..784ae2469107180436bb97c42f7e6032a01df74b 100644
--- a/detectors/src/ERich_geo.cpp
+++ b/detectors/src/ERich_geo.cpp
@@ -142,7 +142,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
   // Get access to the readout structure decoder; may want to simply call desc.readout("DRICHHits");
   const auto &rdspecs = desc.readouts();
   if (rdspecs.size() != 1) {
-    printout(FATAL,"DRich_geo","Expect a single readout structure in XML file"); 
+    printout(FATAL,"ERich_geo","Expect a single readout structure in XML file"); 
     return det;
   } //if
   // Do not mess up with casting of (*desc.readouts().begin()).second; just call desc.readout();
diff --git a/evaluation/CMakeLists.txt b/evaluation/CMakeLists.txt
index 41e419e16db15fefce0f6296d694fa5a9025119a..0283a0bbbcd9f10e05e031c87483984327a070a9 100644
--- a/evaluation/CMakeLists.txt
+++ b/evaluation/CMakeLists.txt
@@ -3,49 +3,42 @@ cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
 
 project(EVALUATION)
 
+set(IRTEVAL_LIB IRTEVAL)
+
 SET(READER_EXE reader)
-SET(DREADER_EXE dreader)
 SET(EVALUATION_EXE evaluation)
 
+SET( IRTEVAL_SRC
+  G__IRTEVAL.cxx
+)
+
 # Well, it is assumed that includes are available in /usr/local/include/dd4pod;
 SET( READER_SRC
   ${PROJECT_SOURCE_DIR}/source/reader.cc
-
-  G__evaluation.cxx
 )
 
-# FIXME: split the CINT library part off;
 SET( EVALUATION_SRC
   ${PROJECT_SOURCE_DIR}/source/evaluation.cc
-
-  G__evaluation.cxx
 )
 
-# FIXME: split the CINT library part off;
-SET( DREADER_SRC
-  ${PROJECT_SOURCE_DIR}/source/dreader.cc
+SET(EVALUATION_ROOTMAP ${CMAKE_CURRENT_BINARY_DIR}/lib${IRTEVAL_LIB}_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/lib${IRTEVAL_LIB}.rootmap )
 
-  G__evaluation.cxx
-)
-
-SET(EVALUATION_ROOTMAP ${CMAKE_CURRENT_BINARY_DIR}/libevaluation_rdict.pcm ${CMAKE_CURRENT_BINARY_DIR}/libevaluation.rootmap )
-
-ROOT_GENERATE_DICTIONARY(G__evaluation eicd/CherenkovPdgHypothesis.h eicd/CherenkovParticleIDData.h dd4pod/PhotoMultiplierHitData.h dd4pod/Geant4ParticleData.h LINKDEF include/evaluationLinkDef.h)
+ROOT_GENERATE_DICTIONARY(G__${IRTEVAL_LIB} eicd/CherenkovPdgHypothesis.h eicd/CherenkovParticleIDData.h dd4pod/PhotoMultiplierHitData.h dd4pod/Geant4ParticleData.h LINKDEF include/evaluationLinkDef.h)
 
 SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
 ADD_EXECUTABLE( ${READER_EXE} ${READER_SRC} )
-TARGET_LINK_LIBRARIES(${READER_EXE} ${ROOT_LIBRARIES} DD4pod IRT)
-
-#ADD_EXECUTABLE( ${DREADER_EXE} ${DREADER_SRC} )
-#TARGET_LINK_LIBRARIES(${DREADER_EXE} ${ROOT_LIBRARIES} DD4pod IRT)
+TARGET_LINK_LIBRARIES(${READER_EXE} ${ROOT_LIBRARIES} DD4pod IRT IRTEVAL)
 
 ADD_EXECUTABLE( ${EVALUATION_EXE} ${EVALUATION_SRC} )
-TARGET_LINK_LIBRARIES(${EVALUATION_EXE} ${ROOT_LIBRARIES} DD4pod IRT)
+TARGET_LINK_LIBRARIES(${EVALUATION_EXE} ${ROOT_LIBRARIES} DD4pod IRT IRTEVAL)
+
+ADD_LIBRARY( ${IRTEVAL_LIB} SHARED ${IRTEVAL_SRC} G__evaluation.cxx)
+TARGET_LINK_LIBRARIES(${IRTEVAL_LIB} ${ROOT_LIBRARIES} DD4pod )
 
 #----------------------------------------------------------------------------
 
-INSTALL(FILES   ${EVALUATION_ROOTMAP} DESTINATION bin)
+INSTALL(FILES   ${EVALUATION_ROOTMAP} DESTINATION lib)
 install(TARGETS ${READER_EXE}         DESTINATION bin)
-#install(TARGETS ${DREADER_EXE}        DESTINATION bin)
 install(TARGETS ${EVALUATION_EXE}     DESTINATION bin)
+install(TARGETS ${IRTEVAL_LIB}        DESTINATION lib)
 
diff --git a/evaluation/source/evaluation.cc b/evaluation/source/evaluation.cc
index d2f4365b4f93711b62f311e1df3bf81f8e674fd8..197ca89542f9cdbd9048026e37e05bd706012c56 100644
--- a/evaluation/source/evaluation.cc
+++ b/evaluation/source/evaluation.cc
@@ -95,9 +95,10 @@ int main(int argc, char** argv)
 	  if (abs(option.pdg) == 11) continue;
 
 	  if (!best || option.weight > best->weight) best = &option;
-	  printf("radiator %3d (pdg %5d): npe %5d, weight %7.2f\n", 
-		 option.radiator, option.pdg, option.npe, option.weight);
+	  printf("radiator %3d (pdg %5d): weight %7.2f, npe %7.2f\n", 
+		 option.radiator, option.pdg, option.weight, option.npe);
 	} //for
+	printf("\n");
 
 	// Check whether the true PDG got a highest score;
 	if (!best || best->pdg != mctrack.pdgID) false_assignment_stat++;
diff --git a/evaluation/source/reader.cc b/evaluation/source/reader.cc
index 334574796d36a29f632f583df6d0a1d785578ea0..56af3879095bbe7247827baa3ce3571e3d86ff5d 100644
--- a/evaluation/source/reader.cc
+++ b/evaluation/source/reader.cc
@@ -1,5 +1,7 @@
 
 // ROOT
+//#include "TH1D.h"
+//#include <TCanvas.h>
 #include "TTree.h"
 #include "TFile.h"
 #include <TRandom.h>
@@ -13,8 +15,8 @@
 #include <CherenkovDetectorCollection.h>
 
 // Optionally: mimic low wave length cutoff and average QE x Geometric sensor efficiency;
-//#define _WAVE_LENGTH_CUTOFF_ (350.0)
-//#define _AVERAGE_PDE_        ( 0.30)
+#define _WAVE_LENGTH_CUTOFF_ (350.0)
+#define _AVERAGE_PDE_        ( 0.30)
 
 int main(int argc, char** argv) 
 {
@@ -53,12 +55,14 @@ int main(int argc, char** argv)
     exit(0);
   } //if
 
-  //auto gas      = detector->GetRadiator("GasVolume");
+  //auto np = new TH1D("np", "Photon count",            50,     0,    50);
+
+  auto gas      = detector->GetRadiator("GasVolume");
   auto aerogel  = detector->GetRadiator("Aerogel");
   //auto acrylic  = detector->GetRadiator("Filter");
   // Assume the reference value was close enough in ERich_geo.cpp; since QE was not accounted, 
   // this may not be true; 
-  //gas    ->m_AverageRefractiveIndex = gas    ->n();
+  gas    ->m_AverageRefractiveIndex = gas    ->n();
   aerogel->m_AverageRefractiveIndex = aerogel->n();
   //acrylic->m_AverageRefractiveIndex = acrylic->n();
 
@@ -178,5 +182,8 @@ int main(int argc, char** argv)
 
   printf("%d false out of %lld\n", false_assignment_stat, t->GetEntries());
 
+  //auto cv = new TCanvas("cv", "", 800, 600);
+  //cv->cd(1); np->Draw();
+
   return 0;
 } // main()