diff --git a/DDCore/src/plugins/StandardPlugins.cpp b/DDCore/src/plugins/StandardPlugins.cpp index 1942cbcdcf355002d41c96b4d1a9bf9330cc1e25..ec4128563d96dce90efda30889c029c9e32e6398 100644 --- a/DDCore/src/plugins/StandardPlugins.cpp +++ b/DDCore/src/plugins/StandardPlugins.cpp @@ -461,6 +461,7 @@ DECLARE_APPLY(DD4hepXMLProcessor,process_xml_doc) * \date 01/04/2014 */ static long load_volmgr(LCDD& lcdd, int, char**) { + printout(INFO,"DD4hepVolumeManager","**** running plugin DD4hepVolumeManager ! " ); try { LCDDImp* imp = dynamic_cast<LCDDImp*>(&lcdd); if ( imp ) { diff --git a/DDRec/src/IDDecoder.cpp b/DDRec/src/IDDecoder.cpp index ef872386a5f090181096b645321b319c3287ba82..afe888b1e2239d4812e340b3e63d0da509e80210 100644 --- a/DDRec/src/IDDecoder.cpp +++ b/DDRec/src/IDDecoder.cpp @@ -34,7 +34,8 @@ IDDecoder::IDDecoder() { LCDD& lcdd = LCDD::getInstance(); _volumeManager = lcdd.volumeManager(); if (not _volumeManager.isValid()) { - _volumeManager = VolumeManager(lcdd, "volman", lcdd.world(), Readout(), VolumeManager::TREE); + lcdd.apply("DD4hepVolumeManager",0,0); + _volumeManager = lcdd.volumeManager(); } _tgeoMgr = lcdd.world().volume()->GetGeoManager(); } diff --git a/DDRec/src/SurfaceHelper.cpp b/DDRec/src/SurfaceHelper.cpp index 728f0b3084f9e7b730629d3bf21f951d02a754aa..e172813d68874cb62c6a338e478d9cdd21746e3a 100644 --- a/DDRec/src/SurfaceHelper.cpp +++ b/DDRec/src/SurfaceHelper.cpp @@ -27,7 +27,13 @@ namespace DD4hep { // have to populate the volume manager once in order to have // the volumeIDs attached to the DetElements LCDD& lcdd = LCDD::getInstance(); - static VolumeManager volMgr( lcdd , "volMan" , lcdd.world() ) ; + VolumeManager volMgr = lcdd.volumeManager(); + if(not volMgr.isValid()) { + // VolumeManager initialised by DD4hepVolumeManager plugin + lcdd.apply("DD4hepVolumeManager",0,0); + volMgr = lcdd.volumeManager(); + } + //------------------ breadth first tree traversal ---------