diff --git a/DD4hep.config b/DD4hep.config
new file mode 100644
index 0000000000000000000000000000000000000000..8cec188b38b9176886d417469a701b599d82970f
--- /dev/null
+++ b/DD4hep.config
@@ -0,0 +1 @@
+// ADD PREDEFINED MACROS HERE!
diff --git a/DD4hep.creator b/DD4hep.creator
new file mode 100644
index 0000000000000000000000000000000000000000..e94cbbd3027df32cb00f4fca093d5c72d9696a85
--- /dev/null
+++ b/DD4hep.creator
@@ -0,0 +1 @@
+[General]
diff --git a/DD4hep.files b/DD4hep.files
new file mode 100644
index 0000000000000000000000000000000000000000..58dde6e18034e28d29fccc12fc5500866a6b6695
--- /dev/null
+++ b/DD4hep.files
@@ -0,0 +1,571 @@
+DDAlign/include/DDAlign/AlignmentCache.h
+DDAlign/include/DDAlign/AlignmentOperators.h
+DDAlign/include/DDAlign/AlignmentStack.h
+DDAlign/include/DDAlign/AlignmentTags.h
+DDAlign/include/DDAlign/AlignmentTransaction.h
+DDAlign/include/DDAlign/AlignmentWriter.h
+DDAlign/include/DDAlign/DetectorAlignment.h
+DDAlign/src/AlignmentCache.cpp
+DDAlign/src/AlignmentOperators.cpp
+DDAlign/src/AlignmentParser.cpp
+DDAlign/src/AlignmentStack.cpp
+DDAlign/src/AlignmentTags.cpp
+DDAlign/src/AlignmentTransaction.cpp
+DDAlign/src/AlignmentWriter.cpp
+DDAlign/src/DetectorAlignment.cpp
+DDCond/include/DDCond/ConditionsHandler.h
+DDCond/include/DDCond/ConditionsOperators.h
+DDCond/include/DDCond/ConditionsStack.h
+DDCond/include/DDCond/ConditionsTags.h
+DDCond/include/DDCond/ConditionsTransaction.h
+DDCond/include/DDCond/ConditionValidator.h
+DDCond/src/ConditionsHandler.cpp
+DDCond/src/ConditionsParser.cpp
+DDCond/src/ConditionsStack.cpp
+DDCond/src/ConditionsTags.cpp
+DDCond/src/ConditionsTransaction.cpp
+DDCond/src/ConditionTest.cpp
+DDCond/src/ConditionValidator.cpp
+DDCore/include/DD4hep/objects/BasicGrammar_inl.h
+DDCore/include/DD4hep/objects/ConditionsInterna.h
+DDCore/include/DD4hep/objects/DetectorInterna.h
+DDCore/include/DD4hep/objects/ObjectsInterna.h
+DDCore/include/DD4hep/objects/VolumeManagerInterna.h
+DDCore/include/DD4hep/Alignment.h
+DDCore/include/DD4hep/BasicGrammar.h
+DDCore/include/DD4hep/Callback.h
+DDCore/include/DD4hep/Conditions.h
+DDCore/include/DD4hep/ConditionTypes.h
+DDCore/include/DD4hep/config.h
+DDCore/include/DD4hep/DD4hepRootPersistency.h
+DDCore/include/DD4hep/DD4hepUnits.h
+DDCore/include/DD4hep/Detector.h
+DDCore/include/DD4hep/DetectorTools.h
+DDCore/include/DD4hep/DetFactoryHelper.h
+DDCore/include/DD4hep/Dictionary.h
+DDCore/include/DD4hep/Exceptions.h
+DDCore/include/DD4hep/Factories.h
+DDCore/include/DD4hep/Fields.h
+DDCore/include/DD4hep/FieldTypes.h
+DDCore/include/DD4hep/GeoHandler.h
+DDCore/include/DD4hep/Handle.h
+DDCore/include/DD4hep/IDDescriptor.h
+DDCore/include/DD4hep/InstanceCount.h
+DDCore/include/DD4hep/LCDD.h
+DDCore/include/DD4hep/LCDDData.h
+DDCore/include/DD4hep/LCDDHelper.h
+DDCore/include/DD4hep/LCDDLoad.h
+DDCore/include/DD4hep/MatrixHelpers.h
+DDCore/include/DD4hep/Memory.h
+DDCore/include/DD4hep/NamedObject.h
+DDCore/include/DD4hep/ObjectExtensions.h
+DDCore/include/DD4hep/Objects.h
+DDCore/include/DD4hep/Parsers.h
+DDCore/include/DD4hep/Plugins.h
+DDCore/include/DD4hep/Primitives.h
+DDCore/include/DD4hep/Printout.h
+DDCore/include/DD4hep/Readout.h
+DDCore/include/DD4hep/Segmentations.h
+DDCore/include/DD4hep/Shapes.h
+DDCore/include/DD4hep/SurfaceInstaller.h
+DDCore/include/DD4hep/TGeoUnits.h
+DDCore/include/DD4hep/ToStream.h
+DDCore/include/DD4hep/VolumeManager.h
+DDCore/include/DD4hep/Volumes.h
+DDCore/include/ROOT/LinkDef.h
+DDCore/include/XML/config.h
+DDCore/include/XML/Conversions.h
+DDCore/include/XML/DocumentHandler.h
+DDCore/include/XML/Evaluator.h
+DDCore/include/XML/Layering.h
+DDCore/include/XML/tinystr.h
+DDCore/include/XML/tinyxml.h
+DDCore/include/XML/UnicodeValues.h
+DDCore/include/XML/Utilities.h
+DDCore/include/XML/XMLChildValue.h
+DDCore/include/XML/XMLDetector.h
+DDCore/include/XML/XMLDimension.h
+DDCore/include/XML/XMLElements.h
+DDCore/include/XML/XMLTags.h
+DDCore/src/Evaluator/Evaluator.cpp
+DDCore/src/Evaluator/setStdMath.cpp
+DDCore/src/Evaluator/setSystemOfUnits.cpp
+DDCore/src/parsers/Grammars.h
+DDCore/src/parsers/GrammarsV2.h
+DDCore/src/parsers/ParsersFactory.h
+DDCore/src/parsers/ParsersObjects.cpp
+DDCore/src/parsers/ParsersStandardList1.cpp
+DDCore/src/parsers/ParsersStandardList2.cpp
+DDCore/src/parsers/ParsersStandardList3.cpp
+DDCore/src/parsers/ParsersStandardList4.cpp
+DDCore/src/parsers/ParsersStandardListCommon.h
+DDCore/src/parsers/ParsersStandardMisc1.cpp
+DDCore/src/parsers/ParsersStandardMisc2.cpp
+DDCore/src/parsers/ParsersStandardMisc3.cpp
+DDCore/src/parsers/ParsersStandardMisc4.cpp
+DDCore/src/parsers/ParsersStandardMisc5.cpp
+DDCore/src/parsers/ParsersStandardMiscCommon.h
+DDCore/src/parsers/ParsersStandardSingle.cpp
+DDCore/src/plugins/Compact2Objects.cpp
+DDCore/src/plugins/Geant4XML.cpp
+DDCore/src/plugins/GeometryWalk.cpp
+DDCore/src/plugins/LCDD2Output.cpp
+DDCore/src/plugins/LCDDConverter.cpp
+DDCore/src/plugins/LCDDConverter.h
+DDCore/src/plugins/LCDDFields.cpp
+DDCore/src/plugins/LCDDHelperTest.cpp
+DDCore/src/plugins/PandoraConverter.cpp
+DDCore/src/plugins/PluginInvoker.cpp
+DDCore/src/plugins/ShapePlugins.cpp
+DDCore/src/plugins/StandardPlugins.cpp
+DDCore/src/plugins/VolumeMgrTest.cpp
+DDCore/src/XML/DocumentHandler.cpp
+DDCore/src/XML/Layering.cpp
+DDCore/src/XML/tinyxml_inl.h
+DDCore/src/XML/tinyxmlerror_inl.h
+DDCore/src/XML/tinyxmlparser_inl.h
+DDCore/src/XML/Utilities.cpp
+DDCore/src/XML/XMLChildValue.cpp
+DDCore/src/XML/XMLDetector.cpp
+DDCore/src/XML/XMLDimension.cpp
+DDCore/src/XML/XMLElements.cpp
+DDCore/src/XML/XMLTags.cpp
+DDCore/src/Alignment.cpp
+DDCore/src/BasicGrammar.cpp
+DDCore/src/BasicGrammarTypes.cpp
+DDCore/src/Callback.cpp
+DDCore/src/Conditions.cpp
+DDCore/src/ConditionsInterna.cpp
+DDCore/src/ConditonsTypes.cpp
+DDCore/src/DD4hepRootPersistency.cpp
+DDCore/src/Detector.cpp
+DDCore/src/DetectorInterna.cpp
+DDCore/src/DetectorTools.cpp
+DDCore/src/Exceptions.cpp
+DDCore/src/ExpressionEvaluator.cpp
+DDCore/src/Fields.cpp
+DDCore/src/FieldTypes.cpp
+DDCore/src/GeoHandler.cpp
+DDCore/src/GeometryTreeDump.cpp
+DDCore/src/GeometryTreeDump.h
+DDCore/src/Handle.cpp
+DDCore/src/IDDescriptor.cpp
+DDCore/src/InstanceCount.cpp
+DDCore/src/LCDDData.cpp
+DDCore/src/LCDDHelper.cpp
+DDCore/src/LCDDImp.cpp
+DDCore/src/LCDDImp.h
+DDCore/src/LCDDLoad.cpp
+DDCore/src/MatrixHelpers.cpp
+DDCore/src/NamedObject.cpp
+DDCore/src/ObjectExtensions.cpp
+DDCore/src/Objects.cpp
+DDCore/src/ObjectsInterna.cpp
+DDCore/src/Plugins.cpp
+DDCore/src/Primitives.cpp
+DDCore/src/Printout.cpp
+DDCore/src/Readout.cpp
+DDCore/src/Segmentations.cpp
+DDCore/src/Shapes.cpp
+DDCore/src/SimpleGDMLWriter.cpp
+DDCore/src/SimpleGDMLWriter.h
+DDCore/src/SurfaceInstaller.cpp
+DDCore/src/ToStream.cpp
+DDCore/src/VolumeManager.cpp
+DDCore/src/VolumeManagerInterna.cpp
+DDCore/src/Volumes.cpp
+DDDetectors/src/BoxSegment_geo.cpp
+DDDetectors/src/CaloFaceBarrel_surfaces.cpp
+DDDetectors/src/CaloFaceEndcap_surfaces.cpp
+DDDetectors/src/CylinderShell_geo.cpp
+DDDetectors/src/CylindricalBarrelCalorimeter_geo.cpp
+DDDetectors/src/CylindricalEndcapCalorimeter_geo.cpp
+DDDetectors/src/DiskTracker_geo.cpp
+DDDetectors/src/EcalBarrel_geo.cpp
+DDDetectors/src/ForwardDetector_geo.cpp
+DDDetectors/src/LayeringExtensionPlugin.cpp
+DDDetectors/src/MultiLayerTracker_geo.cpp
+DDDetectors/src/PolyconeSupport_geo.cpp
+DDDetectors/src/PolyhedraBarrelCalorimeter2_geo.cpp
+DDDetectors/src/PolyhedraEndcapCalorimeter2_geo.cpp
+DDDetectors/src/PolyhedraEndcapCalorimeter2_surfaces.cpp
+DDDetectors/src/SiTrackerBarrel_geo.cpp
+DDDetectors/src/SiTrackerBarrel_surfaces.cpp
+DDDetectors/src/SiTrackerEndcap2_geo.cpp
+DDDetectors/src/SiTrackerEndcap_surfaces.cpp
+DDDetectors/src/SubdetectorAssembly_geo.cpp
+DDDetectors/src/SubdetectorExtensionPlugin.cpp
+DDDetectors/src/SurfaceExamplePlugin.cpp
+DDDetectors/src/TubeSegment_geo.cpp
+DDEve/include/DDEve/Annotation.h
+DDEve/include/DDEve/Calo2DProjection.h
+DDEve/include/DDEve/Calo3DProjection.h
+DDEve/include/DDEve/CaloLego.h
+DDEve/include/DDEve/ContextMenu.h
+DDEve/include/DDEve/DD4hepMenu.h
+DDEve/include/DDEve/DDEveEventData.h
+DDEve/include/DDEve/DDG4EventHandler.h
+DDEve/include/DDEve/Dictionary.h
+DDEve/include/DDEve/Display.h
+DDEve/include/DDEve/DisplayConfiguration.h
+DDEve/include/DDEve/ElementList.h
+DDEve/include/DDEve/EventControl.h
+DDEve/include/DDEve/EventHandler.h
+DDEve/include/DDEve/EvePgonSetProjectedContextMenu.h
+DDEve/include/DDEve/EveShapeContextMenu.h
+DDEve/include/DDEve/EveUserContextMenu.h
+DDEve/include/DDEve/Factories.h
+DDEve/include/DDEve/FrameControl.h
+DDEve/include/DDEve/GenericEventHandler.h
+DDEve/include/DDEve/HitActors.h
+DDEve/include/DDEve/MultiView.h
+DDEve/include/DDEve/ParticleActors.h
+DDEve/include/DDEve/PopupMenu.h
+DDEve/include/DDEve/Projection.h
+DDEve/include/DDEve/RhoPhiProjection.h
+DDEve/include/DDEve/RhoZProjection.h
+DDEve/include/DDEve/Utilities.h
+DDEve/include/DDEve/View.h
+DDEve/include/DDEve/View3D.h
+DDEve/include/DDEve/ViewMenu.h
+DDEve/lcio/LCIOEventHandler.cpp
+DDEve/lcio/LCIOEventHandler.h
+DDEve/src/Annotation.cpp
+DDEve/src/Calo2DProjection.cpp
+DDEve/src/Calo3DProjection.cpp
+DDEve/src/CaloLego.cpp
+DDEve/src/ContextMenu.cpp
+DDEve/src/DD4hepMenu.cpp
+DDEve/src/DDEveEventData.cpp
+DDEve/src/DDEvePlugins.cpp
+DDEve/src/DDG4EventHandler.cpp
+DDEve/src/Display.cpp
+DDEve/src/DisplayConfiguration.cpp
+DDEve/src/DisplayConfigurationParser.cpp
+DDEve/src/ElementList.cpp
+DDEve/src/EventControl.cpp
+DDEve/src/EventHandler.cpp
+DDEve/src/EvePgonSetProjectedContextMenu.cpp
+DDEve/src/EveShapeContextMenu.cpp
+DDEve/src/EveUserContextMenu.cpp
+DDEve/src/FrameControl.cpp
+DDEve/src/GenericEventHandler.cpp
+DDEve/src/HitActors.cpp
+DDEve/src/MultiView.cpp
+DDEve/src/ParticleActors.cpp
+DDEve/src/PopupMenu.cpp
+DDEve/src/Projection.cpp
+DDEve/src/RhoPhiProjection.cpp
+DDEve/src/RhoZProjection.cpp
+DDEve/src/Utilities.cpp
+DDEve/src/View.cpp
+DDEve/src/View3D.cpp
+DDEve/src/ViewMenu.cpp
+DDG4/include/DDG4/ComponentProperties.h
+DDG4/include/DDG4/ComponentProperties_inl.h
+DDG4/include/DDG4/ComponentUtils.h
+DDG4/include/DDG4/DDG4Dict.h
+DDG4/include/DDG4/Defs.h
+DDG4/include/DDG4/Factories.h
+DDG4/include/DDG4/Geant4Action.h
+DDG4/include/DDG4/Geant4ActionContainer.h
+DDG4/include/DDG4/Geant4ActionPhase.h
+DDG4/include/DDG4/Geant4AssemblyVolume.h
+DDG4/include/DDG4/Geant4Call.h
+DDG4/include/DDG4/Geant4Callback.h
+DDG4/include/DDG4/Geant4Config.h
+DDG4/include/DDG4/Geant4Context.h
+DDG4/include/DDG4/Geant4Converter.h
+DDG4/include/DDG4/Geant4Data.h
+DDG4/include/DDG4/Geant4DataConversion.h
+DDG4/include/DDG4/Geant4DataDump.h
+DDG4/include/DDG4/Geant4DetectorConstruction.h
+DDG4/include/DDG4/Geant4EventAction.h
+DDG4/include/DDG4/Geant4Field.h
+DDG4/include/DDG4/Geant4GDMLDetector.h
+DDG4/include/DDG4/Geant4GeneratorAction.h
+DDG4/include/DDG4/Geant4GeneratorActionInit.h
+DDG4/include/DDG4/Geant4GeneratorWrapper.h
+DDG4/include/DDG4/Geant4GeometryInfo.h
+DDG4/include/DDG4/Geant4Handle.h
+DDG4/include/DDG4/Geant4HierarchyDump.h
+DDG4/include/DDG4/Geant4HitCollection.h
+DDG4/include/DDG4/Geant4Hits.h
+DDG4/include/DDG4/Geant4InputAction.h
+DDG4/include/DDG4/Geant4InputHandling.h
+DDG4/include/DDG4/Geant4InteractionMerger.h
+DDG4/include/DDG4/Geant4InteractionVertexBoost.h
+DDG4/include/DDG4/Geant4InteractionVertexSmear.h
+DDG4/include/DDG4/Geant4IsotropeGenerator.h
+DDG4/include/DDG4/Geant4Kernel.h
+DDG4/include/DDG4/Geant4Mapping.h
+DDG4/include/DDG4/Geant4MonteCarloTruth.h
+DDG4/include/DDG4/Geant4Output2ROOT.h
+DDG4/include/DDG4/Geant4OutputAction.h
+DDG4/include/DDG4/Geant4Particle.h
+DDG4/include/DDG4/Geant4ParticleGenerator.h
+DDG4/include/DDG4/Geant4ParticleGun.h
+DDG4/include/DDG4/Geant4ParticleHandler.h
+DDG4/include/DDG4/Geant4ParticlePrint.h
+DDG4/include/DDG4/Geant4PhysicsList.h
+DDG4/include/DDG4/Geant4Primary.h
+DDG4/include/DDG4/Geant4PrimaryHandler.h
+DDG4/include/DDG4/Geant4Primitives.h
+DDG4/include/DDG4/Geant4Random.h
+DDG4/include/DDG4/Geant4RunAction.h
+DDG4/include/DDG4/Geant4SensDetAction.h
+DDG4/include/DDG4/Geant4SensitiveDetector.h
+DDG4/include/DDG4/Geant4SensitiveDetector_inline.h
+DDG4/include/DDG4/Geant4StackingAction.h
+DDG4/include/DDG4/Geant4StepHandler.h
+DDG4/include/DDG4/Geant4SteppingAction.h
+DDG4/include/DDG4/Geant4TestActions.h
+DDG4/include/DDG4/Geant4TouchableHandler.h
+DDG4/include/DDG4/Geant4TrackHandler.h
+DDG4/include/DDG4/Geant4TrackInformation.h
+DDG4/include/DDG4/Geant4TrackingAction.h
+DDG4/include/DDG4/Geant4TrackingPostAction.h
+DDG4/include/DDG4/Geant4TrackingPreAction.h
+DDG4/include/DDG4/Geant4UIManager.h
+DDG4/include/DDG4/Geant4UIMessenger.h
+DDG4/include/DDG4/Geant4UserInitialization.h
+DDG4/include/DDG4/Geant4UserParticleHandler.h
+DDG4/include/DDG4/Geant4UserPhysicsList.h
+DDG4/include/DDG4/Geant4Vertex.h
+DDG4/include/DDG4/Geant4VolumeManager.h
+DDG4/include/DDG4/IoStreams.h
+DDG4/include/DDG4Python/DDPython.h
+DDG4/include/DDG4Python/Geant4PythonAction.h
+DDG4/include/DDG4Python/Geant4PythonCall.h
+DDG4/include/DDG4Python/Geant4PythonDetectorConstruction.h
+DDG4/include/DDG4Python/Geant4PythonInitialization.h
+DDG4/lcio/Geant4Output2LCIO.cpp
+DDG4/lcio/LCIOConversions.cpp
+DDG4/lcio/LCIOEventReader.cpp
+DDG4/lcio/LCIOEventReader.h
+DDG4/lcio/LCIOFileReader.cpp
+DDG4/lcio/LCIOSDTestActions.cpp
+DDG4/lcio/LCIOStdHepReader.cpp
+DDG4/legacy/Geant4CalorimeterSD.cpp
+DDG4/legacy/Geant4TrackerCombineSD.cpp
+DDG4/legacy/Geant4TrackerSD.cpp
+DDG4/plugins/Geant4.10.PhysicsConstructors.h
+DDG4/plugins/Geant4.9.PhysicsConstructors.h
+DDG4/plugins/Geant4DetectorGeometryConstruction.cpp
+DDG4/plugins/Geant4DetectorSensitivesConstruction.cpp
+DDG4/plugins/Geant4EscapeCounter.cpp
+DDG4/plugins/Geant4EventReaderHepEvt.cpp
+DDG4/plugins/Geant4EventReaderHepMC.cpp
+DDG4/plugins/Geant4Factories.cpp
+DDG4/plugins/Geant4FieldTrackingSetup.cpp
+DDG4/plugins/Geant4HitExtractor.cpp
+DDG4/plugins/Geant4MaterialScanner.cpp
+DDG4/plugins/Geant4Particles.cpp
+DDG4/plugins/Geant4PhysicsConstructors.cpp
+DDG4/plugins/Geant4PrimaryGenerators.cpp
+DDG4/plugins/Geant4Processes.cpp
+DDG4/plugins/Geant4ROOTDump.cpp
+DDG4/plugins/Geant4SDActions.cpp
+DDG4/plugins/Geant4SensDet.cpp
+DDG4/plugins/Geant4SensDetFilters.cpp
+DDG4/plugins/Geant4Steppers.cpp
+DDG4/plugins/Geant4TCUserParticleHandler.cpp
+DDG4/plugins/Geant4TrackerWeightedSD.cpp
+DDG4/plugins/Geant4UserActionInitialization.cpp
+DDG4/plugins/Geant4XMLSetup.cpp
+DDG4/reco/Geant4SurfaceTest.cpp
+DDG4/src/python/Geant4PythonAction.cpp
+DDG4/src/python/Geant4PythonCall.cpp
+DDG4/src/python/Geant4PythonDetectorConstruction.cpp
+DDG4/src/python/Geant4PythonDetectorConstructionLast.cpp
+DDG4/src/python/Geant4PythonInitialization.cpp
+DDG4/src/python/PyDDG4.cpp
+DDG4/src/python/PyDDG4.h
+DDG4/src/ComponentProperties.cpp
+DDG4/src/Geant4Action.cpp
+DDG4/src/Geant4ActionContainer.cpp
+DDG4/src/Geant4ActionPhase.cpp
+DDG4/src/Geant4Call.cpp
+DDG4/src/Geant4Context.cpp
+DDG4/src/Geant4Converter.cpp
+DDG4/src/Geant4Data.cpp
+DDG4/src/Geant4DataConversion.cpp
+DDG4/src/Geant4DataDump.cpp
+DDG4/src/Geant4DetectorConstruction.cpp
+DDG4/src/Geant4EventAction.cpp
+DDG4/src/Geant4Exec.cpp
+DDG4/src/Geant4Field.cpp
+DDG4/src/Geant4GDMLDetector.cpp
+DDG4/src/Geant4GeneratorAction.cpp
+DDG4/src/Geant4GeneratorActionInit.cpp
+DDG4/src/Geant4GeneratorWrapper.cpp
+DDG4/src/Geant4GeometryInfo.cpp
+DDG4/src/Geant4Handle.cpp
+DDG4/src/Geant4HierarchyDump.cpp
+DDG4/src/Geant4HitCollection.cpp
+DDG4/src/Geant4Hits.cpp
+DDG4/src/Geant4InputAction.cpp
+DDG4/src/Geant4InputHandling.cpp
+DDG4/src/Geant4InteractionMerger.cpp
+DDG4/src/Geant4InteractionVertexBoost.cpp
+DDG4/src/Geant4InteractionVertexSmear.cpp
+DDG4/src/Geant4IsotropeGenerator.cpp
+DDG4/src/Geant4Kernel.cpp
+DDG4/src/Geant4Mapping.cpp
+DDG4/src/Geant4MonteCarloTruth.cpp
+DDG4/src/Geant4Output2ROOT.cpp
+DDG4/src/Geant4OutputAction.cpp
+DDG4/src/Geant4Particle.cpp
+DDG4/src/Geant4ParticleGenerator.cpp
+DDG4/src/Geant4ParticleGun.cpp
+DDG4/src/Geant4ParticleHandler.cpp
+DDG4/src/Geant4ParticlePrint.cpp
+DDG4/src/Geant4PhysicsList.cpp
+DDG4/src/Geant4Plugins.cpp
+DDG4/src/Geant4Primary.cpp
+DDG4/src/Geant4PrimaryHandler.cpp
+DDG4/src/Geant4Random.cpp
+DDG4/src/Geant4RunAction.cpp
+DDG4/src/Geant4SensDetAction.cpp
+DDG4/src/Geant4SensitiveDetector.cpp
+DDG4/src/Geant4StackingAction.cpp
+DDG4/src/Geant4StepHandler.cpp
+DDG4/src/Geant4SteppingAction.cpp
+DDG4/src/Geant4TestActions.cpp
+DDG4/src/Geant4TouchableHandler.cpp
+DDG4/src/Geant4TrackInformation.cpp
+DDG4/src/Geant4TrackingAction.cpp
+DDG4/src/Geant4TrackingPostAction.cpp
+DDG4/src/Geant4TrackingPreAction.cpp
+DDG4/src/Geant4UIManager.cpp
+DDG4/src/Geant4UIMessenger.cpp
+DDG4/src/Geant4UserInitialization.cpp
+DDG4/src/Geant4UserParticleHandler.cpp
+DDG4/src/Geant4Vertex.cpp
+DDG4/src/Geant4VolumeManager.cpp
+DDG4/src/IoStreams.cpp
+DDG4/tpython/DDPython.cpp
+DDG4/ddsim.cpp
+DDG4/g4FromXML.cpp
+DDG4/g4gdmlDisplay.cpp
+DDG4/pyddg4.cpp
+DDRec/include/DDRec/API/Calorimeter.h
+DDRec/include/DDRec/API/Exceptions.h
+DDRec/include/DDRec/API/IDDecoder.h
+DDRec/include/DDRec/API/LayeredSubdetector.h
+DDRec/include/DDRec/API/Subdetector.h
+DDRec/include/DDRec/API/Tracker.h
+DDRec/include/DDRec/Extensions/CalorimeterExtension.h
+DDRec/include/DDRec/Extensions/LayeringExtension.h
+DDRec/include/DDRec/Extensions/LayeringExtensionImpl.h
+DDRec/include/DDRec/Extensions/SubdetectorExtension.h
+DDRec/include/DDRec/Extensions/SubdetectorExtensionImpl.h
+DDRec/include/DDRec/Extensions/TrackerExtension.h
+DDRec/include/DDRec/DDGear.h
+DDRec/include/DDRec/DetectorData.h
+DDRec/include/DDRec/DetectorSurfaces.h
+DDRec/include/DDRec/Exceptions.h
+DDRec/include/DDRec/Material.h
+DDRec/include/DDRec/MaterialManager.h
+DDRec/include/DDRec/Surface.h
+DDRec/include/DDRec/SurfaceHelper.h
+DDRec/include/DDRec/SurfaceManager.h
+DDRec/src/gear/createGearForCLIC.cpp
+DDRec/src/gear/createGearForILD.cpp
+DDRec/src/gear/DDGear.cpp
+DDRec/src/plugins/createSurfaceManager.cpp
+DDRec/src/convertToGear.cc
+DDRec/src/DetectorSurfaces.cpp
+DDRec/src/IDDecoder.cpp
+DDRec/src/LayeringExtensionImpl.cpp
+DDRec/src/MaterialManager.cpp
+DDRec/src/SubdetectorExtensionImpl.cpp
+DDRec/src/Surface.cpp
+DDRec/src/SurfaceHelper.cpp
+DDRec/src/SurfaceManager.cpp
+DDSegmentation/include/DDSegmentation/BitField64.h
+DDSegmentation/include/DDSegmentation/CartesianGrid.h
+DDSegmentation/include/DDSegmentation/CartesianGridXY.h
+DDSegmentation/include/DDSegmentation/CartesianGridXYZ.h
+DDSegmentation/include/DDSegmentation/CartesianGridXZ.h
+DDSegmentation/include/DDSegmentation/CartesianGridYZ.h
+DDSegmentation/include/DDSegmentation/CylindricalSegmentation.h
+DDSegmentation/include/DDSegmentation/PolarGrid.h
+DDSegmentation/include/DDSegmentation/PolarGridRPhi.h
+DDSegmentation/include/DDSegmentation/PolarGridRPhi2.h
+DDSegmentation/include/DDSegmentation/ProjectiveCylinder.h
+DDSegmentation/include/DDSegmentation/Segmentation.h
+DDSegmentation/include/DDSegmentation/SegmentationFactory.h
+DDSegmentation/include/DDSegmentation/SegmentationParameter.h
+DDSegmentation/include/DDSegmentation/SegmentationUtil.h
+DDSegmentation/include/DDSegmentation/TiledLayerGridXY.h
+DDSegmentation/include/DDSegmentation/TiledLayerSegmentation.h
+DDSegmentation/src/BitField64.cpp
+DDSegmentation/src/CartesianGrid.cpp
+DDSegmentation/src/CartesianGridXY.cpp
+DDSegmentation/src/CartesianGridXYZ.cpp
+DDSegmentation/src/CartesianGridXZ.cpp
+DDSegmentation/src/CartesianGridYZ.cpp
+DDSegmentation/src/CylindricalSegmentation.cpp
+DDSegmentation/src/PolarGrid.cpp
+DDSegmentation/src/PolarGridRPhi.cpp
+DDSegmentation/src/PolarGridRPhi2.cpp
+DDSegmentation/src/ProjectiveCylinder.cpp
+DDSegmentation/src/Segmentation.cpp
+DDSegmentation/src/SegmentationFactory.cpp
+DDSegmentation/src/TiledLayerGridXY.cpp
+DDSegmentation/src/TiledLayerSegmentation.cpp
+DDSurfaces/include/DDSurfaces/IMaterial.h
+DDSurfaces/include/DDSurfaces/ISurface.h
+DDSurfaces/include/DDSurfaces/Vector2D.h
+DDSurfaces/include/DDSurfaces/Vector3D.h
+DDTest/include/DD4hep/DDTest.h
+DDTest/src/test_bitfield64.cc
+DDTest/src/test_cellDimensions.cc
+DDTest/src/test_cellDimensionsRPhi2.cc
+DDTest/src/test_example.cc
+DDTest/src/test_PolarGridRPhi2.cc
+DDTest/src/test_surface.cc
+DDTest/src/test_units.cc
+doc/doxygen/DD4hepGroups.h
+doc/doxygen/Geant4Classes.h
+doc/doxygen/ROOTClasses.h
+doc/doxygen/TiXMLClasses.h
+examples/AlignDet/src/AlephTPC_geo.cpp
+examples/AlignDet/src/BoxDetector_geo.cpp
+examples/ClientTests/src/Assemblies_VXD_geo.cpp
+examples/ClientTests/src/FCC_HcalBarrel2_geo.cpp
+examples/ClientTests/src/FCC_HcalBarrel_geo.cpp
+examples/ClientTests/src/IronCylinder_geo.cpp
+examples/ClientTests/src/LheD_tracker_BeamPipe_geo.cpp
+examples/ClientTests/src/LheD_tracker_SiVertexBarrel_geo.cpp
+examples/ClientTests/src/MaterialTester_geo.cpp
+examples/ClientTests/src/MiniTel.cpp
+examples/ClientTests/src/ORG_HcalBarrel_geo.cpp
+examples/ClientTests/src/SectorBarrelCalorimeter.h
+examples/ClientTests/src/SectorBarrelCalorimeter_geo.cpp
+examples/Segmentation/SegmentationTest.cpp
+examples/SimpleDetector/src/AirTube_geo.cpp
+examples/SimpleDetector/src/ZPlanarTracker_geo.cpp
+GaudiPluginService/Gaudi/Details/PluginServiceDetails.h
+GaudiPluginService/Gaudi/PluginService.h
+GaudiPluginService/interface/DD4hep.cpp
+GaudiPluginService/src/capi_pluginservice.cpp
+GaudiPluginService/src/capi_pluginservice.h
+GaudiPluginService/src/listcomponents.cpp
+GaudiPluginService/src/PluginService.cpp
+GaudiPluginService/tests/src/UseCases.cpp
+UtilityApps/src/converter.cpp
+UtilityApps/src/display.cpp
+UtilityApps/src/dumpdetector.cpp
+UtilityApps/src/EvNavHandler.h
+UtilityApps/src/LinkDef.h
+UtilityApps/src/materialScan.cpp
+UtilityApps/src/MultiView.h
+UtilityApps/src/next_event_dummy.cpp
+UtilityApps/src/next_event_lcio.cpp
+UtilityApps/src/plugin_runner.cpp
+UtilityApps/src/print_materials.cpp
+UtilityApps/src/run_plugin.h
+UtilityApps/src/test_surfaces.cpp
+UtilityApps/src/teve_display.cpp
\ No newline at end of file
diff --git a/DD4hep.includes b/DD4hep.includes
new file mode 100644
index 0000000000000000000000000000000000000000..183b2a23af169293720765259fb09ed824ea51db
--- /dev/null
+++ b/DD4hep.includes
@@ -0,0 +1,29 @@
+DDAlign/include/DDAlign
+DDCond/include/DDCond
+DDCore/include/DD4hep
+DDCore/include/DD4hep/objects
+DDCore/include/ROOT
+DDCore/include/XML
+DDCore/src
+DDCore/src/parsers
+DDCore/src/plugins
+DDCore/src/XML
+DDEve/include/DDEve
+DDEve/lcio
+DDG4/include/DDG4
+DDG4/include/DDG4Python
+DDG4/lcio
+DDG4/plugins
+DDG4/src/python
+DDRec/include/DDRec
+DDRec/include/DDRec/API
+DDRec/include/DDRec/Extensions
+DDSegmentation/include/DDSegmentation
+DDSurfaces/include/DDSurfaces
+DDTest/include/DD4hep
+doc/doxygen
+examples/ClientTests/src
+GaudiPluginService/Gaudi
+GaudiPluginService/Gaudi/Details
+GaudiPluginService/src
+UtilityApps/src
\ No newline at end of file
diff --git a/DDG4/include/DDG4/Geant4ParticleGenerator.h b/DDG4/include/DDG4/Geant4ParticleGenerator.h
index 6a21056ecfe97df8566685fcdc57a45c0e01efe5..62c6703f60055c1aa241d3c167aa99b5786ca4f4 100644
--- a/DDG4/include/DDG4/Geant4ParticleGenerator.h
+++ b/DDG4/include/DDG4/Geant4ParticleGenerator.h
@@ -26,6 +26,10 @@ namespace DD4hep {
 
   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
   namespace Simulation {
+
+    // Forward declarations
+    class Geant4PrimaryInteraction;
+
     /// Generate particles isotrop in space around origine (0,0,0)
     /**
      *  \author  M.Frank
@@ -34,9 +38,6 @@ namespace DD4hep {
      */
     class Geant4ParticleGenerator: public Geant4GeneratorAction {
     public:
-      enum { FIRST_INTERACTION =   0UL,
-             LAST_INTERACTION  =  ~0UL
-      };
     protected:
       /// Property: Shooting direction of the gun
       ROOT::Math::XYZVector m_direction;
@@ -65,8 +66,10 @@ namespace DD4hep {
       */
       virtual void getParticleDirection(int num, ROOT::Math::XYZVector& direction, double& momentum) const;
 
-      /// Print single particle interaction identified by sequence number in primary event. Default: last one 
-      virtual void printInteraction(size_t which=LAST_INTERACTION)  const;
+      /// Print single particle interaction identified by its mask
+      virtual void printInteraction(int mask)  const;
+      /// Print single particle interaction identified by it's reference
+      virtual void printInteraction(Geant4PrimaryInteraction* inter)  const;
     
 
     public:
diff --git a/DDG4/include/DDG4/Geant4ParticleGun.h b/DDG4/include/DDG4/Geant4ParticleGun.h
index 5022faf2cbf10a1371e4c936194bbf331d125bd0..943cd3db5b0c80052053afd771fbf71c4d06f6c5 100644
--- a/DDG4/include/DDG4/Geant4ParticleGun.h
+++ b/DDG4/include/DDG4/Geant4ParticleGun.h
@@ -51,6 +51,8 @@ namespace DD4hep {
       bool m_isotrop;
       /// Property: Standalone mode: includes interaction merging and primary generation
       bool m_standalone;
+      /// Property: Enable printout
+      bool m_print;
       /// Shot number in sequence
       int m_shotNo;
       /// Particle modification. Caller presets defaults to: ( direction = m_direction, momentum = m_energy)
diff --git a/DDG4/plugins/Geant4SDActions.cpp b/DDG4/plugins/Geant4SDActions.cpp
index c8ef7ef9ae112bfcf1d43fbbc9be3390f391dae7..cdbfa1be3e9996c9029eadffa8022624aee6a120 100644
--- a/DDG4/plugins/Geant4SDActions.cpp
+++ b/DDG4/plugins/Geant4SDActions.cpp
@@ -62,11 +62,11 @@ namespace DD4hep {
         hit->cellID        = volumeID( step ) ;
         except("+++ Invalid CELL ID for hit!");
       }
-      print("%s> Hit with deposit:%f  Pos:%f %f %f ID=%016X",
-            c_name(),step->GetTotalEnergyDeposit(),position.X(),position.Y(),position.Z(),
+      print("Hit with deposit:%f  Pos:%f %f %f ID=%016X",
+            step->GetTotalEnergyDeposit(),position.X(),position.Y(),position.Z(),
             (void*)hit->cellID);
       Geant4TouchableHandler handler(step);
-      print("%s>     Geant4 path:%s",c_name(),handler.path().c_str());
+      print("    Geant4 path:%s",handler.path().c_str());
       return true;
     }
     typedef Geant4SensitiveAction<Geant4Tracker> Geant4TrackerAction;
@@ -227,8 +227,8 @@ namespace DD4hep {
         hit = new Hit(global);
         hit->cellID = cell;
         coll->add(hit);
-        printM2("%s> CREATE hit with deposit:%e MeV  Pos:%8.2f %8.2f %8.2f  %s",
-                c_name(),contrib.deposit,pos.X,pos.Y,pos.Z,handler.path().c_str());
+        printM2("CREATE hit with deposit:%e MeV  Pos:%8.2f %8.2f %8.2f  %s",
+                contrib.deposit,pos.X,pos.Y,pos.Z,handler.path().c_str());
         if ( 0 == hit->cellID )  { // for debugging only!
           hit->cellID = cellID(step);
           except("+++ Invalid CELL ID for hit!");
diff --git a/DDG4/src/Geant4ParticleGenerator.cpp b/DDG4/src/Geant4ParticleGenerator.cpp
index 076e05a29a9546b8008a4472e3151e91b42cef90..0544b97ac423d4c14794c28993b9a1a68d3b35c2 100644
--- a/DDG4/src/Geant4ParticleGenerator.cpp
+++ b/DDG4/src/Geant4ParticleGenerator.cpp
@@ -59,29 +59,38 @@ void Geant4ParticleGenerator::getParticleMultiplicity(int& ) const   {
 void Geant4ParticleGenerator::getVertexPosition(ROOT::Math::XYZVector& ) const   {
 }
 
-/// Print single particle interaction identified by sequence number in primary event
-void Geant4ParticleGenerator::printInteraction(size_t which)  const  {
+/// Print single particle interaction identified by it's mask
+void Geant4ParticleGenerator::printInteraction(int mask)  const  {
+  Geant4PrimaryEvent* prim = context()->event().extension<Geant4PrimaryEvent>();
+  if ( !prim )   {
+    warning("printInteraction: Bad primary event [NULL-Pointer].");
+    return;
+  }
+  Geant4PrimaryInteraction* inter = prim->get(mask);
+  if ( !inter )   {
+    warning("printInteraction: Bad interaction identifier 0x%08X [Unknown Mask].",mask);
+    return;
+  }
+  printInteraction(inter);
+}
+
+/// Print single particle interaction identified by it's reference
+void Geant4ParticleGenerator::printInteraction(Geant4PrimaryInteraction* inter)  const  {
   typedef Geant4PrimaryInteraction::VertexMap _V;
   int count = 0;
-  Geant4Event& evt = context()->event();
-  Geant4PrimaryEvent* prim = evt.extension<Geant4PrimaryEvent>();
-
-  if ( which == LAST_INTERACTION && prim->size() > 0 )
-    which = prim->size()-1;
-  if ( which >= prim->size() )
-    except("printInteraction: Bad interaction identifier %d must be [0,%d].",
-           which, prim->size());
-
-  Geant4PrimaryInteraction* inter = prim->get(which);
+  if ( !inter )   {
+    warning("printInteraction: Invalid interaction pointer [NULL-Pointer].");
+    return;
+  }
   for(_V::const_iterator iv=inter->vertices.begin(); iv!=inter->vertices.end(); ++iv)  {
     Geant4Vertex* v = (*iv).second;
-    printM1("+-> Interaction [%d] %.3f GeV %s pos:(%.3f %.3f %.3f)[mm]",
+    print("+-> Interaction [%d] %.3f GeV %s pos:(%.3f %.3f %.3f)[mm]",
              count, m_energy/CLHEP::GeV, m_particleName.c_str(),
              v->x/CLHEP::mm, v->y/CLHEP::mm, v->z/CLHEP::mm);
     ++count;
     for(set<int>::const_iterator i=v->out.begin(); i!=v->out.end(); ++i)  {
       Geant4ParticleHandle p = inter->particles[*i];
-      p.dumpWithVertex(outputLevel()-1,name(),"  +->");
+      p.dumpWithVertex(outputLevel(),name(),"  +->");
     }
   }
 }
diff --git a/DDG4/src/Geant4ParticleGun.cpp b/DDG4/src/Geant4ParticleGun.cpp
index 1a25ef212dc7d94ff97432afa9d60a11c47e11a5..5b2307934b4fdbdf4f6b9a9fb7ec00c504e450f1 100644
--- a/DDG4/src/Geant4ParticleGun.cpp
+++ b/DDG4/src/Geant4ParticleGun.cpp
@@ -41,6 +41,7 @@ Geant4ParticleGun::Geant4ParticleGun(Geant4Context* ctxt, const string& nam)
   declareProperty("energy",       m_energy);
   declareProperty("particle",     m_particleName);
   declareProperty("multiplicity", m_multiplicity);
+  declareProperty("print",        m_print = true);
 }
 
 /// Default destructor
@@ -69,8 +70,9 @@ void Geant4ParticleGun::operator()(G4Event* event)   {
         m_shotNo, m_energy/CLHEP::GeV, m_particleName.c_str(),
         m_position.X()/CLHEP::mm, m_position.Y()/CLHEP::mm, m_position.Z()/CLHEP::mm,
         m_direction.X(),m_direction.Y(), m_direction.Z());
-
-  this->Geant4ParticleGenerator::printInteraction();
+  if ( m_print )   {
+    this->Geant4ParticleGenerator::printInteraction(m_mask);
+  }
   ++m_shotNo;
   if ( m_standalone ) {
     mergeInteractions(this,context());