Index: MEMPHYS/HEAD/applications/DigitsCollectionAccessor.cxx
===================================================================
--- MEMPHYS/HEAD/applications/DigitsCollectionAccessor.cxx	(revision 120)
+++ MEMPHYS/HEAD/applications/DigitsCollectionAccessor.cxx	(revision 120)
@@ -0,0 +1,113 @@
+// this :
+#include <MEMPHYS/HitsCollectionAccessor.h>
+
+// Inventor :
+#include <Inventor/nodes/SoSeparator.h>
+#include <Inventor/nodes/SoTransform.h>
+#include <Inventor/nodes/SoLightModel.h>
+#include <Inventor/nodes/SoDrawStyle.h>
+
+#include <Inventor/nodes/SoCube.h> //FIXME
+
+// HEPVis :
+#include <HEPVis/misc/SoStyleCache.h>
+#include <HEPVis/nodes/SoHighlightMaterial.h>
+
+#ifdef WIN32
+#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
+#endif
+
+// Geant4 :
+#include <G4LogicalVolume.hh>
+#include <G4Colour.hh>
+
+// Lib :
+#include <Lib/smanip.h>
+
+// G4Lab :
+#include <G4Lab/Transform3D.h>
+
+//////////////////////////////////////////////////////////////////////////////
+MEMPHYS::HitsCollectionAccessor::HitsCollectionAccessor(
+ Slash::Core::ISession& aSession
+,const std::string& aHC
+)
+:G4Lab::HitsCollectionAccessor(aSession,aHC)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+MEMPHYS::HitsCollectionAccessor::~HitsCollectionAccessor(
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+void MEMPHYS::HitsCollectionAccessor::visualize(
+ Slash::Data::IAccessor::Data aData
+,void*
+) 
+//////////////////////////////////////////////////////////////////////////////
+// The hit must have the "LV" and "TSF" AttDef.
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  G4VHit* obj = (G4VHit*)aData;  
+  G4LogicalVolume* lv = hitLogicalVolume(*obj);
+  if(!lv) return;
+  G4Transform3D* tsf = hitTransform3D(*obj);
+  if(!tsf) return;
+  G4VSolid* solid = lv->GetSolid();
+  if(!solid) return;
+  //G4Material* material = lv->GetMaterial();
+
+  SoSeparator* separator = new SoSeparator;
+  separator->setName("sceneGraph");
+      
+ {G4Colour color;
+  if(hitColor(*obj,color)) {
+    SbColor sbColor((float)color.GetRed(),
+                    (float)color.GetGreen(),
+                    (float)color.GetBlue());
+    float transp = 1.0F - (float)color.GetAlpha();
+    SoStyleCache* styleCache = fSoGC.getStyleCache();
+    separator->addChild(
+      styleCache->getHighlightMaterial
+        (sbColor,fSoGC.getHighlightColor(),transp));
+  } else {
+    separator->addChild(fSoGC.getHighlightMaterial());
+  }
+  separator->addChild(fSoGC.getDrawStyle());
+  separator->addChild(fSoGC.getLightModel());}
+
+ {SoTransform* transform = new SoTransform;
+  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
+  SbMatrix* matrix = t->getMatrix();
+  transform->setMatrix(*matrix);
+  delete matrix;
+  delete t;
+  separator->addChild(transform);}
+          
+  // Build name (for picking) :
+  std::string s;
+  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
+  SbName name(s.c_str());
+
+  // Representation :
+
+  //FIXME
+
+  //FIXME : PM base size :
+  double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
+
+  SoCube* soCube = new SoCube;
+  soCube->width.setValue(WCPMTRadius);
+  soCube->height.setValue(WCPMTRadius);
+  soCube->depth.setValue(WCPMTRadius);
+  soCube->setName(name);
+        
+  separator->addChild(soCube);
+          
+  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
+}
Index: MEMPHYS/HEAD/applications/DigitsCollectionType.cxx
===================================================================
--- MEMPHYS/HEAD/applications/DigitsCollectionType.cxx	(revision 119)
+++ 	(revision )
@@ -1,113 +1,0 @@
-// this :
-#include <MEMPHYS/HitsCollectionType.h>
-
-// Inventor :
-#include <Inventor/nodes/SoSeparator.h>
-#include <Inventor/nodes/SoTransform.h>
-#include <Inventor/nodes/SoLightModel.h>
-#include <Inventor/nodes/SoDrawStyle.h>
-
-#include <Inventor/nodes/SoCube.h> //FIXME
-
-// HEPVis :
-#include <HEPVis/misc/SoStyleCache.h>
-#include <HEPVis/nodes/SoHighlightMaterial.h>
-
-#ifdef WIN32
-#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
-#endif
-
-// Geant4 :
-#include <G4LogicalVolume.hh>
-#include <G4Colour.hh>
-
-// Lib :
-#include <Lib/smanip.h>
-
-// G4Lab :
-#include <G4Lab/Transform3D.h>
-
-//////////////////////////////////////////////////////////////////////////////
-MEMPHYS::HitsCollectionType::HitsCollectionType(
- ISession& aSession
-,const std::string& aHC
-)
-:G4Lab::HitsCollectionType(aSession,aHC)
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-}
-//////////////////////////////////////////////////////////////////////////////
-MEMPHYS::HitsCollectionType::~HitsCollectionType(
-) 
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-}
-//////////////////////////////////////////////////////////////////////////////
-void MEMPHYS::HitsCollectionType::visualize(
- Lib::Identifier aIdentifier
-,void*
-) 
-//////////////////////////////////////////////////////////////////////////////
-// The hit must have the "LV" and "TSF" AttDef.
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-  G4VHit* obj = (G4VHit*)aIdentifier;  
-  G4LogicalVolume* lv = hitLogicalVolume(*obj);
-  if(!lv) return;
-  G4Transform3D* tsf = hitTransform3D(*obj);
-  if(!tsf) return;
-  G4VSolid* solid = lv->GetSolid();
-  if(!solid) return;
-  //G4Material* material = lv->GetMaterial();
-
-  SoSeparator* separator = new SoSeparator;
-  separator->setName("sceneGraph");
-      
- {G4Colour color;
-  if(hitColor(*obj,color)) {
-    SbColor sbColor((float)color.GetRed(),
-                    (float)color.GetGreen(),
-                    (float)color.GetBlue());
-    float transp = 1.0F - (float)color.GetAlpha();
-    SoStyleCache* styleCache = fSoGC.getStyleCache();
-    separator->addChild(
-      styleCache->getHighlightMaterial
-        (sbColor,fSoGC.getHighlightColor(),transp));
-  } else {
-    separator->addChild(fSoGC.getHighlightMaterial());
-  }
-  separator->addChild(fSoGC.getDrawStyle());
-  separator->addChild(fSoGC.getLightModel());}
-
- {SoTransform* transform = new SoTransform;
-  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
-  SbMatrix* matrix = t->getMatrix();
-  transform->setMatrix(*matrix);
-  delete matrix;
-  delete t;
-  separator->addChild(transform);}
-          
-  // Build name (for picking) :
-  std::string s;
-  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
-  SbName name(s.c_str());
-
-  // Representation :
-
-  //FIXME
-
-  //FIXME : PM base size :
-  double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
-
-  SoCube* soCube = new SoCube;
-  soCube->width.setValue(WCPMTRadius);
-  soCube->height.setValue(WCPMTRadius);
-  soCube->depth.setValue(WCPMTRadius);
-  soCube->setName(name);
-        
-  separator->addChild(soCube);
-          
-  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
-}
Index: MEMPHYS/HEAD/applications/HitsCollectionAccessor.cxx
===================================================================
--- MEMPHYS/HEAD/applications/HitsCollectionAccessor.cxx	(revision 120)
+++ MEMPHYS/HEAD/applications/HitsCollectionAccessor.cxx	(revision 120)
@@ -0,0 +1,113 @@
+// this :
+#include <MEMPHYS/HitsCollectionAccessor.h>
+
+// Inventor :
+#include <Inventor/nodes/SoSeparator.h>
+#include <Inventor/nodes/SoTransform.h>
+#include <Inventor/nodes/SoLightModel.h>
+#include <Inventor/nodes/SoDrawStyle.h>
+
+#include <Inventor/nodes/SoCube.h> //FIXME
+
+// HEPVis :
+#include <HEPVis/misc/SoStyleCache.h>
+#include <HEPVis/nodes/SoHighlightMaterial.h>
+
+#ifdef WIN32
+#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
+#endif
+
+// Geant4 :
+#include <G4LogicalVolume.hh>
+#include <G4Colour.hh>
+
+// Lib :
+#include <Lib/smanip.h>
+
+// G4Lab :
+#include <G4Lab/Transform3D.h>
+
+//////////////////////////////////////////////////////////////////////////////
+MEMPHYS::HitsCollectionAccessor::HitsCollectionAccessor(
+ Slash::Core::ISession& aSession
+,const std::string& aHC
+)
+:G4Lab::HitsCollectionAccessor(aSession,aHC)
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+MEMPHYS::HitsCollectionAccessor::~HitsCollectionAccessor(
+) 
+//////////////////////////////////////////////////////////////////////////////
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+}
+//////////////////////////////////////////////////////////////////////////////
+void MEMPHYS::HitsCollectionAccessor::visualize(
+ Slash::Data::IAccessor::Data aData
+,void*
+) 
+//////////////////////////////////////////////////////////////////////////////
+// The hit must have the "LV" and "TSF" AttDef.
+//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
+{
+  G4VHit* obj = (G4VHit*)aData;  
+  G4LogicalVolume* lv = hitLogicalVolume(*obj);
+  if(!lv) return;
+  G4Transform3D* tsf = hitTransform3D(*obj);
+  if(!tsf) return;
+  G4VSolid* solid = lv->GetSolid();
+  if(!solid) return;
+  //G4Material* material = lv->GetMaterial();
+
+  SoSeparator* separator = new SoSeparator;
+  separator->setName("sceneGraph");
+      
+ {G4Colour color;
+  if(hitColor(*obj,color)) {
+    SbColor sbColor((float)color.GetRed(),
+                    (float)color.GetGreen(),
+                    (float)color.GetBlue());
+    float transp = 1.0F - (float)color.GetAlpha();
+    SoStyleCache* styleCache = fSoGC.getStyleCache();
+    separator->addChild(
+      styleCache->getHighlightMaterial
+        (sbColor,fSoGC.getHighlightColor(),transp));
+  } else {
+    separator->addChild(fSoGC.getHighlightMaterial());
+  }
+  separator->addChild(fSoGC.getDrawStyle());
+  separator->addChild(fSoGC.getLightModel());}
+
+ {SoTransform* transform = new SoTransform;
+  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
+  SbMatrix* matrix = t->getMatrix();
+  transform->setMatrix(*matrix);
+  delete matrix;
+  delete t;
+  separator->addChild(transform);}
+          
+  // Build name (for picking) :
+  std::string s;
+  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
+  SbName name(s.c_str());
+
+  // Representation :
+
+  //FIXME
+
+  //FIXME : PM base size :
+  double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
+
+  SoCube* soCube = new SoCube;
+  soCube->width.setValue(WCPMTRadius);
+  soCube->height.setValue(WCPMTRadius);
+  soCube->depth.setValue(WCPMTRadius);
+  soCube->setName(name);
+        
+  separator->addChild(soCube);
+          
+  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
+}
Index: MEMPHYS/HEAD/applications/HitsCollectionType.cxx
===================================================================
--- MEMPHYS/HEAD/applications/HitsCollectionType.cxx	(revision 119)
+++ 	(revision )
@@ -1,113 +1,0 @@
-// this :
-#include <MEMPHYS/HitsCollectionType.h>
-
-// Inventor :
-#include <Inventor/nodes/SoSeparator.h>
-#include <Inventor/nodes/SoTransform.h>
-#include <Inventor/nodes/SoLightModel.h>
-#include <Inventor/nodes/SoDrawStyle.h>
-
-#include <Inventor/nodes/SoCube.h> //FIXME
-
-// HEPVis :
-#include <HEPVis/misc/SoStyleCache.h>
-#include <HEPVis/nodes/SoHighlightMaterial.h>
-
-#ifdef WIN32
-#undef pascal // Clash between windef.h and Geant4/SystemOfUnits.hh
-#endif
-
-// Geant4 :
-#include <G4LogicalVolume.hh>
-#include <G4Colour.hh>
-
-// Lib :
-#include <Lib/smanip.h>
-
-// G4Lab :
-#include <G4Lab/Transform3D.h>
-
-//////////////////////////////////////////////////////////////////////////////
-MEMPHYS::HitsCollectionType::HitsCollectionType(
- ISession& aSession
-,const std::string& aHC
-)
-:G4Lab::HitsCollectionType(aSession,aHC)
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-}
-//////////////////////////////////////////////////////////////////////////////
-MEMPHYS::HitsCollectionType::~HitsCollectionType(
-) 
-//////////////////////////////////////////////////////////////////////////////
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-}
-//////////////////////////////////////////////////////////////////////////////
-void MEMPHYS::HitsCollectionType::visualize(
- Lib::Identifier aIdentifier
-,void*
-) 
-//////////////////////////////////////////////////////////////////////////////
-// The hit must have the "LV" and "TSF" AttDef.
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
-{
-  G4VHit* obj = (G4VHit*)aIdentifier;  
-  G4LogicalVolume* lv = hitLogicalVolume(*obj);
-  if(!lv) return;
-  G4Transform3D* tsf = hitTransform3D(*obj);
-  if(!tsf) return;
-  G4VSolid* solid = lv->GetSolid();
-  if(!solid) return;
-  //G4Material* material = lv->GetMaterial();
-
-  SoSeparator* separator = new SoSeparator;
-  separator->setName("sceneGraph");
-      
- {G4Colour color;
-  if(hitColor(*obj,color)) {
-    SbColor sbColor((float)color.GetRed(),
-                    (float)color.GetGreen(),
-                    (float)color.GetBlue());
-    float transp = 1.0F - (float)color.GetAlpha();
-    SoStyleCache* styleCache = fSoGC.getStyleCache();
-    separator->addChild(
-      styleCache->getHighlightMaterial
-        (sbColor,fSoGC.getHighlightColor(),transp));
-  } else {
-    separator->addChild(fSoGC.getHighlightMaterial());
-  }
-  separator->addChild(fSoGC.getDrawStyle());
-  separator->addChild(fSoGC.getLightModel());}
-
- {SoTransform* transform = new SoTransform;
-  G4Lab::Transform3D* t = new G4Lab::Transform3D(*tsf);
-  SbMatrix* matrix = t->getMatrix();
-  transform->setMatrix(*matrix);
-  delete matrix;
-  delete t;
-  separator->addChild(transform);}
-          
-  // Build name (for picking) :
-  std::string s;
-  Lib::smanip::printf(s,128,"%s/0x%lx",HCName().c_str(),(unsigned long)obj);
-  SbName name(s.c_str());
-
-  // Representation :
-
-  //FIXME
-
-  //FIXME : PM base size :
-  double WCPMTRadius           = 0.10*m;  // 20-cm PMTs (8-inch)
-
-  SoCube* soCube = new SoCube;
-  soCube->width.setValue(WCPMTRadius);
-  soCube->height.setValue(WCPMTRadius);
-  soCube->depth.setValue(WCPMTRadius);
-  soCube->setName(name);
-        
-  separator->addChild(soCube);
-          
-  fSoRegion->doIt(SbAddNode(separator,"dynamicScene"));
-}
Index: MEMPHYS/HEAD/applications/MEMPHYS_session.cxx
===================================================================
--- MEMPHYS/HEAD/applications/MEMPHYS_session.cxx	(revision 119)
+++ MEMPHYS/HEAD/applications/MEMPHYS_session.cxx	(revision 120)
@@ -12,8 +12,10 @@
 #include <iostream>
 
+// Slash :
+#include <Slash/Core/IManager.h>
+#include <Slash/Core/ISession.h>
+#include <Slash/Data/IProcessor.h>
+
 // Lib :
-#include <Lib/Interfaces/IManager.h>
-#include <Lib/Interfaces/ISession.h>
-#include <Lib/Interfaces/ITypeManager.h>
 #include <Lib/Manager.h>
 #include <Lib/System.h>
@@ -25,5 +27,5 @@
 #include <G4Lab/TrackingAction.h>
 #include <G4Lab/Interfaces/IGeant4Manager.h>
-//#include <G4Lab/DigitsCollectionType.h>
+//#include <G4Lab/DigitsCollectionAccessor.h>
 
 //MEMPHYS:
@@ -39,6 +41,6 @@
 #include "MEMPHYS/SteppingAction.hh"
 #include "MEMPHYS/WCDigi.hh"
-#include <MEMPHYS/HitsCollectionType.h>
-#include <MEMPHYS/DigitsCollectionType.h>
+#include <MEMPHYS/HitsCollectionAccessor.h>
+#include <MEMPHYS/DigitsCollectionAccessor.h>
 
 // Create a manager to access the MEMPHYSAnalysis from the callbacks :
@@ -48,20 +50,14 @@
 
 class AppManager 
-  :public virtual IManager
+  :public virtual Slash::Core::IManager
   ,public Analysis  {
- public: //IManager
-  virtual const std::string& name() const { return fName;}
-  virtual void* cast(const std::string& aTo) const {
-    if(aTo=="MEMPHYS::AppManager") {
-      return Lib_SCast(MEMPHYS::AppManager);
-    } else if(aTo=="MEMPHYS::IAppManager") {
-      return Lib_SCast(MEMPHYS::IAppManager);
-    } else if(aTo=="MEMPHYS::Analysis") {
-      return Lib_SCast(MEMPHYS::Analysis);
-    } else if(aTo=="IManager") {
-      return Lib_SCast(IManager);
-    } else {
-      return 0;
-    }
+ public: //Slash::Core::IManager
+  virtual std::string name() const { return fName;}
+  virtual void* cast(const std::string& aClass) const {
+    if_Lib_SCast(MEMPHYS::AppManager)
+    else if_Lib_SCast(MEMPHYS::IAppManager)
+    else if_Lib_SCast(MEMPHYS::Analysis)
+    else if_Lib_SCast(Slash::Core::IManager)
+    else return 0;
   }
  public://IAppManager
@@ -85,8 +81,8 @@
     g4Manager->initialize();
 
-    // Overload the HitsCollectionType of G4Lab :
-    Lib::ITypeManager* typeManager = 
-      Lib_findManager(fSession,"TypeManager",Lib::ITypeManager);
-    if(typeManager) {
+    // Overload the HitsCollectionAccessor of G4Lab :
+    Slash::Data::IProcessor* accessorManager = 
+      Lib_findManager(fSession,"AccessorManager",Slash::Data::IProcessor);
+    if(accessorManager) {
       G4SDManager* sdManager = g4Manager->sdManager();
       if(sdManager) {
@@ -96,7 +92,7 @@
           for(int index=0;index<number;index++) {
             G4String hcName = hcTable->GetHCname(index);
-            typeManager->removeType(hcName);
-            typeManager->addType
-              (new MEMPHYS::HitsCollectionType(fSession,hcName));
+            accessorManager->removeAccessor(hcName);
+            accessorManager->addAccessor
+              (new MEMPHYS::HitsCollectionAccessor(fSession,hcName));
           }
         }
@@ -104,10 +100,10 @@
 
       /*
-      typeManager->addType
-        (new G4Lab::DigitsCollectionType<MEMPHYS::WCDigi>
+      accessorManager->addAccessor
+        (new G4Lab::DigitsCollectionAccessor<MEMPHYS::WCDigi>
           (fSession,"WCDigitizedCollection"));
       */
-      typeManager->addType
-        (new MEMPHYS::DigitsCollectionType<MEMPHYS::WCDigi>
+      accessorManager->addAccessor
+        (new MEMPHYS::DigitsCollectionAccessor<MEMPHYS::WCDigi>
           (fSession,"WCDigitizedCollection"));
     }
@@ -115,9 +111,9 @@
   }
  public:
-  AppManager(ISession& aSession,AIDA::IAnalysisFactory& aAIDA,bool aBatch)
+  AppManager(Slash::Core::ISession& aSession,AIDA::IAnalysisFactory& aAIDA,bool aBatch)
     :Analysis(aAIDA,aBatch),fSession(aSession),fName("MEMPHYS::AppManager") {}
   virtual ~AppManager(){}
  private:
-  ISession& fSession;
+  Slash::Core::ISession& fSession;
   std::string fName;
 };
