From 8c99b07c2eac0be03ce3080afef1a3a45a7552e4 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Tue, 11 Oct 2022 21:13:58 +0200
Subject: [PATCH] Fix python style errors

---
 DDCore/python/dd4hep_base.py                  |  4 +-
 DDDigi/include/DDDigi/DigiAction.h            |  8 ++--
 DDDigi/include/DDDigi/DigiActionSequence.h    |  2 +-
 DDDigi/include/DDDigi/DigiAttenuator.h        |  4 +-
 DDDigi/include/DDDigi/DigiContext.h           |  6 +--
 DDDigi/include/DDDigi/DigiData.h              | 12 +++---
 DDDigi/include/DDDigi/DigiExponentialNoise.h  |  2 +-
 DDDigi/include/DDDigi/DigiFactories.h         |  6 +--
 DDDigi/include/DDDigi/DigiGaussianNoise.h     |  2 +-
 DDDigi/include/DDDigi/DigiGrammars.h          |  6 +--
 DDDigi/include/DDDigi/DigiHandle.h            |  4 +-
 DDDigi/include/DDDigi/DigiHitAttenuatorExp.h  |  2 +-
 DDDigi/include/DDDigi/DigiKernel.h            |  2 +-
 DDDigi/include/DDDigi/DigiLandauNoise.h       |  2 +-
 DDDigi/include/DDDigi/DigiLockedAction.h      |  2 +-
 DDDigi/include/DDDigi/DigiSignalProcessor.h   |  4 +-
 .../DDDigi/DigiSignalProcessorSequence.h      |  2 +-
 DDDigi/include/DDDigi/DigiStore.h             |  4 +-
 DDDigi/include/DDDigi/DigiStoreDump.h         |  2 +-
 DDDigi/include/DDDigi/DigiSynchronize.h       |  4 +-
 DDDigi/include/DDDigi/DigiUniformNoise.h      |  2 +-
 DDDigi/python/dddigi.py                       | 34 ++++++++++-----
 DDDigi/python/digitize.py                     |  2 +-
 DDDigi/src/DigiActionSequence.cpp             |  6 +--
 DDDigi/src/DigiContainerCombine.cpp           |  8 ++--
 DDDigi/src/DigiData.cpp                       | 18 +++++---
 DDDigi/src/DigiEventAction.cpp                |  4 +-
 DDDigi/src/DigiExponentialNoise.cpp           |  8 ++--
 DDDigi/src/DigiGaussianNoise.cpp              |  8 ++--
 DDDigi/src/DigiHandle.cpp                     | 20 ++++-----
 DDDigi/src/DigiHitAttenuatorExp.cpp           |  8 ++--
 DDDigi/src/DigiInputAction.cpp                |  4 +-
 DDDigi/src/DigiKernel.cpp                     | 20 ++++-----
 DDDigi/src/DigiLandauNoise.cpp                |  8 ++--
 DDDigi/src/DigiRandomNoise.cpp                |  4 +-
 DDDigi/src/DigiSegmentationSplitter.cpp       | 41 +++++++++++++++----
 DDDigi/src/DigiSignalProcessor.cpp            |  4 +-
 DDDigi/src/DigiSignalProcessorSequence.cpp    |  6 +--
 DDDigi/src/DigiStore.cpp                      |  8 ++--
 DDDigi/src/DigiStoreDump.cpp                  | 10 ++---
 DDDigi/src/DigiSubdetectorSequence.cpp        | 16 ++++----
 DDDigi/src/DigiSynchronize.cpp                |  8 ++--
 DDDigi/src/DigiUniformNoise.cpp               |  6 +--
 examples/DDDigi/scripts/DigiTest.py           | 15 +++----
 examples/DDDigi/scripts/TestInput.py          | 18 +++-----
 .../DDDigi/scripts/TestMultiInteractions.py   |  1 -
 .../DDDigi/scripts/TestSegmentationSplit.py   |  4 +-
 47 files changed, 205 insertions(+), 166 deletions(-)

diff --git a/DDCore/python/dd4hep_base.py b/DDCore/python/dd4hep_base.py
index fac7caf26..b0921a864 100644
--- a/DDCore/python/dd4hep_base.py
+++ b/DDCore/python/dd4hep_base.py
@@ -156,6 +156,7 @@ import_namespace_item('detail', 'eval')
 # def evaluator():     return eval.instance()
 # def g4Evaluator():   return eval.g4instance()
 
+
 # ---------------------------------------------------------------------------
 def import_detail():
   import_namespace_item('detail', 'DD4hepUI')
@@ -302,11 +303,12 @@ import_tgeo()
 import_geometry()
 import_detail()
 
+
 # ---------------------------------------------------------------------------
 class Logger:
   """
   Helper class to use the dd4hep printout functions from python
-  
+
   \author  M.Frank
   \version 1.0
   """
diff --git a/DDDigi/include/DDDigi/DigiAction.h b/DDDigi/include/DDDigi/DigiAction.h
index 8559bc353..7c6daae64 100644
--- a/DDDigi/include/DDDigi/DigiAction.h
+++ b/DDDigi/include/DDDigi/DigiAction.h
@@ -14,10 +14,10 @@
 #define DDDIGI_DIGIACTION_H
 
 // Framework include files
-#include "DD4hep/Printout.h"
-#include "DD4hep/Callback.h"
-#include "DD4hep/ComponentProperties.h"
-#include "DDDigi/DigiContext.h"
+#include <DD4hep/Printout.h>
+#include <DD4hep/Callback.h>
+#include <DD4hep/ComponentProperties.h>
+#include <DDDigi/DigiContext.h>
 
 // C/C++ include files
 #include <string>
diff --git a/DDDigi/include/DDDigi/DigiActionSequence.h b/DDDigi/include/DDDigi/DigiActionSequence.h
index de1d9e08e..cefd19fac 100644
--- a/DDDigi/include/DDDigi/DigiActionSequence.h
+++ b/DDDigi/include/DDDigi/DigiActionSequence.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIACTIONSEQUENCE_H
 
 // Framework include files
-#include "DDDigi/DigiSynchronize.h"
+#include <DDDigi/DigiSynchronize.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiAttenuator.h b/DDDigi/include/DDDigi/DigiAttenuator.h
index 640052697..8ab583498 100644
--- a/DDDigi/include/DDDigi/DigiAttenuator.h
+++ b/DDDigi/include/DDDigi/DigiAttenuator.h
@@ -14,8 +14,8 @@
 #define DDDIGI_DIGIATTENUATOR_H
 
 /// Framework include files
-#include "DDDigi/DigiAction.h"
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiAction.h>
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// C/C++ include files
 #include <functional>
diff --git a/DDDigi/include/DDDigi/DigiContext.h b/DDDigi/include/DDDigi/DigiContext.h
index 2a9150bfd..398d3a75d 100644
--- a/DDDigi/include/DDDigi/DigiContext.h
+++ b/DDDigi/include/DDDigi/DigiContext.h
@@ -14,9 +14,9 @@
 #define DDDIGI_DIGICONTEXT_H
 
 // Framework incloude files
-#include "DD4hep/Primitives.h"
-#include "DDDigi/DigiRandomGenerator.h"
-#include "DDDigi/DigiData.h"
+#include <DD4hep/Primitives.h>
+#include <DDDigi/DigiData.h>
+#include <DDDigi/DigiRandomGenerator.h>
 
 /// C/C++ include files
 #include <memory>
diff --git a/DDDigi/include/DDDigi/DigiData.h b/DDDigi/include/DDDigi/DigiData.h
index f12ae3a03..999520110 100644
--- a/DDDigi/include/DDDigi/DigiData.h
+++ b/DDDigi/include/DDDigi/DigiData.h
@@ -14,11 +14,11 @@
 #define DDDIGI_DIGIDATA_H
 
 /// Framework include files
-#include "DD4hep/config.h"
-#include "DD4hep/Objects.h"
-#include "DD4hep/Printout.h"
-#include "DD4hep/Primitives.h"
-#include "DD4hep/ObjectExtensions.h"
+#include <DD4hep/config.h>
+#include <DD4hep/Objects.h>
+#include <DD4hep/Printout.h>
+#include <DD4hep/Primitives.h>
+#include <DD4hep/ObjectExtensions.h>
 
 /// C/C++ include files
 #include <functional>
@@ -240,7 +240,7 @@ namespace dd4hep {
 /// <any> is not properly processed by cling.
 /// We need to exclude any reference to it.
 #if !defined(DD4HEP_INTERPRETER_MODE)
-#include "DD4hep/Any.h"
+#include <DD4hep/Any.h>
 #endif
 
 /// Namespace for the AIDA detector description toolkit
diff --git a/DDDigi/include/DDDigi/DigiExponentialNoise.h b/DDDigi/include/DDDigi/DigiExponentialNoise.h
index f06744dc1..1a489961c 100644
--- a/DDDigi/include/DDDigi/DigiExponentialNoise.h
+++ b/DDDigi/include/DDDigi/DigiExponentialNoise.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIEXPONENTIALNOISE_H
 
 /// Framework include files
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiFactories.h b/DDDigi/include/DDDigi/DigiFactories.h
index 726d97948..8a28d2c17 100644
--- a/DDDigi/include/DDDigi/DigiFactories.h
+++ b/DDDigi/include/DDDigi/DigiFactories.h
@@ -14,9 +14,9 @@
 #define DDDIGI_DIGIFACTORIES_H
 
 // Framework include files
-#include "DD4hep/Plugins.h"
-#include "DD4hep/Detector.h"
-#include "DD4hep/Primitives.h"
+#include <DD4hep/Plugins.h>
+#include <DD4hep/Detector.h>
+#include <DD4hep/Primitives.h>
 
 // C/C++ include files
 #include <string>
diff --git a/DDDigi/include/DDDigi/DigiGaussianNoise.h b/DDDigi/include/DDDigi/DigiGaussianNoise.h
index 356c2aadc..177d2397a 100644
--- a/DDDigi/include/DDDigi/DigiGaussianNoise.h
+++ b/DDDigi/include/DDDigi/DigiGaussianNoise.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIGAUSSIANNOISE_H
 
 /// Framework include files
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiGrammars.h b/DDDigi/include/DDDigi/DigiGrammars.h
index 89e46dbef..7d2ae834d 100644
--- a/DDDigi/include/DDDigi/DigiGrammars.h
+++ b/DDDigi/include/DDDigi/DigiGrammars.h
@@ -10,8 +10,8 @@
 // Author     : M.Frank
 //
 //==========================================================================
-#ifndef DDDIGI_GRAMMARS_H
-#define DDDIGI_GRAMMARS_H
+#ifndef DDDIGI_DIGIGRAMMARS_H
+#define DDDIGI_DIGIGRAMMARS_H
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
@@ -22,4 +22,4 @@ namespace dd4hep {
 
   }    // End namespace digi
 }      // End namespace dd4hep
-#endif // DDDIGI_GRAMMARS_H
+#endif // DDDIGI_DIGIGRAMMARS_H
diff --git a/DDDigi/include/DDDigi/DigiHandle.h b/DDDigi/include/DDDigi/DigiHandle.h
index dbafaaeb3..80ebf49f2 100644
--- a/DDDigi/include/DDDigi/DigiHandle.h
+++ b/DDDigi/include/DDDigi/DigiHandle.h
@@ -14,8 +14,8 @@
 #define DDDIGI_DIGIHANDLE_H
 
 // Framework include files
-#include "DD4hep/ComponentProperties.h"
-#include "DD4hep/Detector.h"
+#include <DD4hep/ComponentProperties.h>
+#include <DD4hep/Detector.h>
 
 // C/C++ include files
 #include <string>
diff --git a/DDDigi/include/DDDigi/DigiHitAttenuatorExp.h b/DDDigi/include/DDDigi/DigiHitAttenuatorExp.h
index d4281fe75..598962b0e 100644
--- a/DDDigi/include/DDDigi/DigiHitAttenuatorExp.h
+++ b/DDDigi/include/DDDigi/DigiHitAttenuatorExp.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIHITATTENUATOREXP_H
 
 // Framework include files
-#include "DDDigi/DigiEventAction.h"
+#include <DDDigi/DigiEventAction.h>
 
 
 /// Namespace for the AIDA detector description toolkit
diff --git a/DDDigi/include/DDDigi/DigiKernel.h b/DDDigi/include/DDDigi/DigiKernel.h
index edd680220..29fb36891 100644
--- a/DDDigi/include/DDDigi/DigiKernel.h
+++ b/DDDigi/include/DDDigi/DigiKernel.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIKERNEL_H
 
 // Framework include files
-#include "DDDigi/DigiEventAction.h"
+#include <DDDigi/DigiEventAction.h>
 
 // C/C++ include files
 #include <mutex>
diff --git a/DDDigi/include/DDDigi/DigiLandauNoise.h b/DDDigi/include/DDDigi/DigiLandauNoise.h
index a40b7663a..42eaf0dc8 100644
--- a/DDDigi/include/DDDigi/DigiLandauNoise.h
+++ b/DDDigi/include/DDDigi/DigiLandauNoise.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGILANDAUNOISE_H
 
 /// Framework include files
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiLockedAction.h b/DDDigi/include/DDDigi/DigiLockedAction.h
index e837e4ec4..034575359 100644
--- a/DDDigi/include/DDDigi/DigiLockedAction.h
+++ b/DDDigi/include/DDDigi/DigiLockedAction.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGILOCKEDACTION_H
 
 /// Framework include files
-#include "DDDigi/DigiEventAction.h"
+#include <DDDigi/DigiEventAction.h>
 
 /// C/C++ include files
 #include <mutex>
diff --git a/DDDigi/include/DDDigi/DigiSignalProcessor.h b/DDDigi/include/DDDigi/DigiSignalProcessor.h
index 6ae70c8ce..52251dc47 100644
--- a/DDDigi/include/DDDigi/DigiSignalProcessor.h
+++ b/DDDigi/include/DDDigi/DigiSignalProcessor.h
@@ -14,8 +14,8 @@
 #define DDDIGI_DIGISIGNALPROCESSOR_H
 
 /// Framework include files
-#include "DDDigi/DigiAction.h"
-#include "DDDigi/DigiData.h"
+#include <DDDigi/DigiAction.h>
+#include <DDDigi/DigiData.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiSignalProcessorSequence.h b/DDDigi/include/DDDigi/DigiSignalProcessorSequence.h
index ee1c58aac..947ac6c0b 100644
--- a/DDDigi/include/DDDigi/DigiSignalProcessorSequence.h
+++ b/DDDigi/include/DDDigi/DigiSignalProcessorSequence.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGISIGNALPROCESSORSEQUENCE_H
 
 // Framework include files
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiStore.h b/DDDigi/include/DDDigi/DigiStore.h
index 4c77f34f6..d34b8028e 100644
--- a/DDDigi/include/DDDigi/DigiStore.h
+++ b/DDDigi/include/DDDigi/DigiStore.h
@@ -14,8 +14,8 @@
 #define DDDIGI_DIGISTORE_H
 
 // Framework incloude files
-#include "DDDigi/DigiAction.h"
-#include "DDDigi/DigiData.h"
+#include <DDDigi/DigiAction.h>
+#include <DDDigi/DigiData.h>
 
 #include <mutex>
 
diff --git a/DDDigi/include/DDDigi/DigiStoreDump.h b/DDDigi/include/DDDigi/DigiStoreDump.h
index 2cbf1e89a..ea814049a 100644
--- a/DDDigi/include/DDDigi/DigiStoreDump.h
+++ b/DDDigi/include/DDDigi/DigiStoreDump.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGISTOREDUMP_H
 
 /// Framework include files
-#include "DDDigi/DigiEventAction.h"
+#include <DDDigi/DigiEventAction.h>
 
 /// C/C++ include files
 #include <mutex>
diff --git a/DDDigi/include/DDDigi/DigiSynchronize.h b/DDDigi/include/DDDigi/DigiSynchronize.h
index db33a3742..9b69a0a05 100644
--- a/DDDigi/include/DDDigi/DigiSynchronize.h
+++ b/DDDigi/include/DDDigi/DigiSynchronize.h
@@ -13,8 +13,8 @@
 #ifndef DDDIGI_DIGISYNCHRONIZE_H
 #define DDDIGI_DIGISYNCHRONIZE_H
 
-// Framework incloude files
-#include "DDDigi/DigiEventAction.h"
+/// Framework incloude files
+#include <DDDigi/DigiEventAction.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/include/DDDigi/DigiUniformNoise.h b/DDDigi/include/DDDigi/DigiUniformNoise.h
index 03e7adc98..2b8dcceb1 100644
--- a/DDDigi/include/DDDigi/DigiUniformNoise.h
+++ b/DDDigi/include/DDDigi/DigiUniformNoise.h
@@ -14,7 +14,7 @@
 #define DDDIGI_DIGIUNIFORMNOISE_H
 
 /// Framework include files
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/python/dddigi.py b/DDDigi/python/dddigi.py
index a6f3cc97d..8a08cb538 100644
--- a/DDDigi/python/dddigi.py
+++ b/DDDigi/python/dddigi.py
@@ -10,9 +10,9 @@
 # ==========================================================================
 from __future__ import absolute_import, unicode_literals
 from dd4hep_base import *  # noqa: F403
-import dd4hep_base.dd4hep_logger as dd4hep_logger
+import dd4hep_base
 
-logger = dd4hep_logger('dddigi')
+logger = dd4hep_base.dd4hep_logger('dddigi')
 
 
 def loadDDDigi():
@@ -47,6 +47,7 @@ def loadDDDigi():
 # We are nearly there ....
 current = __import__(__name__)
 
+
 def _import_class(ns, nam):
   scope = getattr(current, ns)
   setattr(current, nam, getattr(scope, nam))
@@ -67,7 +68,9 @@ core = dd4hep
 digi = dd4hep.digi
 Kernel = digi.KernelHandle
 Interface = digi.DigiActionCreation
-Detector  = core.Detector
+Detector = core.Detector
+
+
 # ---------------------------------------------------------------------------
 def _constant(self, name):
   return self.constantAsString(name)
@@ -76,6 +79,7 @@ def _constant(self, name):
 Detector.globalVal = _constant
 # ---------------------------------------------------------------------------
 
+
 """
   Import the Detector constants into the dddigi namespace
 """
@@ -156,6 +160,8 @@ Kernel.__setattr__ = _setKernelProperty
 Kernel.terminate = _kernel_terminate
 # ---------------------------------------------------------------------------
 ActionHandle = digi.ActionHandle
+
+
 # ---------------------------------------------------------------------------
 def Action(kernel, nam, parallel=False):
   obj = Interface.createAction(kernel, str(nam))
@@ -219,14 +225,16 @@ def _get(self, name):
 
 def _set(self, name, value):
   """This function is called when properties are passed to the c++ objects."""
+  import dd4hep as dd4hep
   a = Interface.toAction(self)
-  name  = unicode_2_string(name)
-  value = unicode_2_string(value)
+  name = dd4hep.unicode_2_string(name)
+  value = dd4hep.unicode_2_string(value)
   if Interface.setProperty(a, name, value):
     return
   msg = 'DDDigiAction::SetProperty [Unhandled]: Cannot set ' + a.name() + '.' + name + ' = ' + value
   raise KeyError(msg)
 
+
 def _props(obj, **extensions):
   _import_class('digi', obj)
   cls = getattr(current, obj)
@@ -263,9 +271,15 @@ def adopt_sequence_action(self, name, **options):
 
 
 _props('DigiSynchronize')
-_props('DigiActionSequence', adopt_action = adopt_sequence_action)
-_props('DigiParallelActionSequence', adopt_action = adopt_sequence_action)
-_props('DigiSequentialActionSequence', adopt_action = adopt_sequence_action)
+_props('DigiActionSequence', adopt_action=adopt_sequence_action)
+_props('DigiParallelActionSequence', adopt_action=adopt_sequence_action)
+_props('DigiSequentialActionSequence', adopt_action=adopt_sequence_action)
+
 
-import digitize
-Digitize = digitize.Digitize
+# Need to import digitize late, since it cross includes dddigi
+Digitize = None
+try:
+  import digitize
+  Digitize = digitize.Digitize
+except Exception as X:
+  pass
diff --git a/DDDigi/python/digitize.py b/DDDigi/python/digitize.py
index 5c63b7eee..fea211963 100644
--- a/DDDigi/python/digitize.py
+++ b/DDDigi/python/digitize.py
@@ -138,7 +138,7 @@ class Digitize(dd4hep.Logger):
   def activeDetectors(self):
     detectors = []
     for i in self.description.detectors():
-      o = DetElement(i.second.ptr())  # noqa: F405
+      o = dd4hep.DetElement(i.second.ptr())  # noqa: F405
       sd = self.description.sensitiveDetector(o.name())
       if sd.isValid():
         d = {'name': o.name(), 'type': sd.type(), 'detector': o, 'sensitive': sd}
diff --git a/DDDigi/src/DigiActionSequence.cpp b/DDDigi/src/DigiActionSequence.cpp
index b705e4953..4815074fb 100644
--- a/DDDigi/src/DigiActionSequence.cpp
+++ b/DDDigi/src/DigiActionSequence.cpp
@@ -11,9 +11,9 @@
 //
 //==========================================================================
 
-// Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiActionSequence.h"
+/// Framework include files
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiActionSequence.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiContainerCombine.cpp b/DDDigi/src/DigiContainerCombine.cpp
index d5d4065d5..28d08d3b3 100644
--- a/DDDigi/src/DigiContainerCombine.cpp
+++ b/DDDigi/src/DigiContainerCombine.cpp
@@ -12,11 +12,11 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/InstanceCount.h>
 
-#include "DDDigi/DigiData.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiContainerCombine.h"
+#include <DDDigi/DigiData.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiContainerCombine.h>
 
 using dd4hep::digi::DigiContainerCombine;
 
diff --git a/DDDigi/src/DigiData.cpp b/DDDigi/src/DigiData.cpp
index b3586757e..2f76d9c13 100644
--- a/DDDigi/src/DigiData.cpp
+++ b/DDDigi/src/DigiData.cpp
@@ -12,11 +12,11 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/Printout.h"
-#include "DD4hep/Primitives.h"
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/Printout.h>
+#include <DD4hep/Primitives.h>
+#include <DD4hep/InstanceCount.h>
 #define  G__ROOT
-#include "DDDigi/DigiData.h"
+#include <DDDigi/DigiData.h>
 
 // C/C++ include files
 #include <mutex>
@@ -152,9 +152,17 @@ dd4hep::digi::DigiEvent::get_segment(const std::string& name)   {
   case 'I':
     return this->inputs;
   case 'D':
-    return this->deposits;
+    switch(::toupper(name[1]))   {
+    case 'E':
+      return this->deposits;
+    default:
+      return this->data;
+    }
+    break;
   case 'O':
     return this->data;
+  default:
+    return this->data;
   }
   throw std::runtime_error("Invalid segment name: "+name);
 }
diff --git a/DDDigi/src/DigiEventAction.cpp b/DDDigi/src/DigiEventAction.cpp
index 2c1eb5c62..3bd580848 100644
--- a/DDDigi/src/DigiEventAction.cpp
+++ b/DDDigi/src/DigiEventAction.cpp
@@ -12,8 +12,8 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiEventAction.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiEventAction.h>
 
 /// Standard constructor
 dd4hep::digi::DigiEventAction::DigiEventAction(const DigiKernel& krnl, const std::string& nam)
diff --git a/DDDigi/src/DigiExponentialNoise.cpp b/DDDigi/src/DigiExponentialNoise.cpp
index 2a3d279ed..ff456171f 100644
--- a/DDDigi/src/DigiExponentialNoise.cpp
+++ b/DDDigi/src/DigiExponentialNoise.cpp
@@ -12,10 +12,10 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiSegmentation.h"
-#include "DDDigi/DigiRandomGenerator.h"
-#include "DDDigi/DigiExponentialNoise.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiSegmentation.h>
+#include <DDDigi/DigiRandomGenerator.h>
+#include <DDDigi/DigiExponentialNoise.h>
 
 using namespace dd4hep::digi;
 
diff --git a/DDDigi/src/DigiGaussianNoise.cpp b/DDDigi/src/DigiGaussianNoise.cpp
index e86180f95..dc10c3aa9 100644
--- a/DDDigi/src/DigiGaussianNoise.cpp
+++ b/DDDigi/src/DigiGaussianNoise.cpp
@@ -12,10 +12,10 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiSegmentation.h"
-#include "DDDigi/DigiRandomGenerator.h"
-#include "DDDigi/DigiGaussianNoise.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiSegmentation.h>
+#include <DDDigi/DigiRandomGenerator.h>
+#include <DDDigi/DigiGaussianNoise.h>
 
 using namespace dd4hep::digi;
 
diff --git a/DDDigi/src/DigiHandle.cpp b/DDDigi/src/DigiHandle.cpp
index 2b6156331..1099d011d 100644
--- a/DDDigi/src/DigiHandle.cpp
+++ b/DDDigi/src/DigiHandle.cpp
@@ -12,15 +12,15 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/Detector.h"
-#include "DD4hep/Plugins.h"
-#include "DD4hep/Printout.h"
+#include <DD4hep/Detector.h>
+#include <DD4hep/Plugins.h>
+#include <DD4hep/Printout.h>
 
-#include "DDDigi/DigiHandle.h"
-#include "DDDigi/DigiKernel.h"
-#include "DDDigi/DigiInputAction.h"
-#include "DDDigi/DigiEventAction.h"
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DDDigi/DigiHandle.h>
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiInputAction.h>
+#include <DDDigi/DigiEventAction.h>
+#include <DDDigi/DigiSignalProcessor.h>
 
 // C/C++ include files
 #include <stdexcept>
@@ -187,8 +187,8 @@ namespace dd4hep {
   }
 }
 
-#include "DDDigi/DigiSynchronize.h"
-#include "DDDigi/DigiActionSequence.h"
+#include <DDDigi/DigiSynchronize.h>
+#include <DDDigi/DigiActionSequence.h>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
diff --git a/DDDigi/src/DigiHitAttenuatorExp.cpp b/DDDigi/src/DigiHitAttenuatorExp.cpp
index 8b88fa2e2..1adda1b20 100644
--- a/DDDigi/src/DigiHitAttenuatorExp.cpp
+++ b/DDDigi/src/DigiHitAttenuatorExp.cpp
@@ -12,11 +12,11 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/InstanceCount.h>
 
-#include "DDDigi/DigiData.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiHitAttenuatorExp.h"
+#include <DDDigi/DigiData.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiHitAttenuatorExp.h>
 
 class dd4hep::digi::DigiHitAttenuatorExp::internals_t   {
 public:
diff --git a/DDDigi/src/DigiInputAction.cpp b/DDDigi/src/DigiInputAction.cpp
index 2352bed75..8b141e319 100644
--- a/DDDigi/src/DigiInputAction.cpp
+++ b/DDDigi/src/DigiInputAction.cpp
@@ -12,8 +12,8 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiInputAction.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiInputAction.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiKernel.cpp b/DDDigi/src/DigiKernel.cpp
index 995f05459..e20a47183 100644
--- a/DDDigi/src/DigiKernel.cpp
+++ b/DDDigi/src/DigiKernel.cpp
@@ -12,19 +12,19 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/Detector.h"
-#include "DD4hep/Memory.h"
-#include "DD4hep/Plugins.h"
-#include "DD4hep/Printout.h"
-#include "DD4hep/Primitives.h"
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/Detector.h>
+#include <DD4hep/Memory.h>
+#include <DD4hep/Plugins.h>
+#include <DD4hep/Printout.h>
+#include <DD4hep/Primitives.h>
+#include <DD4hep/InstanceCount.h>
 
-#include "DDDigi/DigiKernel.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiActionSequence.h"
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiActionSequence.h>
 
 #ifdef DD4HEP_USE_TBB
-#include "tbb/tbb.h"
+#include <tbb/tbb.h>
 #endif
 
 // C/C++ include files
diff --git a/DDDigi/src/DigiLandauNoise.cpp b/DDDigi/src/DigiLandauNoise.cpp
index 61d527c75..11188203b 100644
--- a/DDDigi/src/DigiLandauNoise.cpp
+++ b/DDDigi/src/DigiLandauNoise.cpp
@@ -12,10 +12,10 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiLandauNoise.h"
-#include "DDDigi/DigiSegmentation.h"
-#include "DDDigi/DigiRandomGenerator.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiLandauNoise.h>
+#include <DDDigi/DigiSegmentation.h>
+#include <DDDigi/DigiRandomGenerator.h>
 
 using namespace dd4hep::digi;
 
diff --git a/DDDigi/src/DigiRandomNoise.cpp b/DDDigi/src/DigiRandomNoise.cpp
index 2cf3b0f25..458c0d7a8 100644
--- a/DDDigi/src/DigiRandomNoise.cpp
+++ b/DDDigi/src/DigiRandomNoise.cpp
@@ -12,8 +12,8 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiRandomNoise.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiRandomNoise.h>
 
 using namespace dd4hep::digi;
 
diff --git a/DDDigi/src/DigiSegmentationSplitter.cpp b/DDDigi/src/DigiSegmentationSplitter.cpp
index b94a2556b..e43e6fc2b 100644
--- a/DDDigi/src/DigiSegmentationSplitter.cpp
+++ b/DDDigi/src/DigiSegmentationSplitter.cpp
@@ -12,11 +12,13 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/Detector.h>
+#include <DD4hep/InstanceCount.h>
 
-#include "DDDigi/DigiData.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiSegmentationSplitter.h"
+#include <DDDigi/DigiData.h>
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiSegmentationSplitter.h>
 
 using dd4hep::digi::DigiSegmentationSplitter;
 
@@ -29,15 +31,40 @@ public:
   /// Property: Input masks in the repository
   std::vector<int> masks;
 
+  const DigiKernel& kernel;
+  Detector&         description;
+  DetElement        detector;
+  SensitiveDetector sensitive;
+  IDDescriptor      iddescriptor;
+  DigiSegmentationSplitter* split { nullptr };
+
   /// Flag to check the initialization
   bool inited  { false };
 
+  internals_t(const DigiKernel& krnl, DigiSegmentationSplitter* s) 
+    : kernel(krnl), description(kernel.detectorDescription()), split(s)
+  {
+
+  }
+
   /// Initializing function: compute values which depend on properties
   void initialize(DigiContext& context)   {
     if ( !this->inited )   {
       std::lock_guard<std::mutex> lock(context.initializer_lock());
       if ( !this->inited )   {
 	this->inited = true;
+	detector = description.detector(detector_name);
+	if ( !detector.isValid() )   {
+	  split->except("FAILED: Cannot access subdetector %s from the detector description.", detector_name.c_str());
+	}
+	sensitive = description.sensitiveDetector(detector_name);
+	if ( !sensitive.isValid() )   {
+	  split->except("FAILED: Cannot access sensitive detector for %s.", detector_name.c_str());
+	}
+	iddescriptor = sensitive.idSpec();
+	if ( !iddescriptor.isValid() )   {
+	  split->except("FAILED: Cannot access ID descriptor for detector %s.", detector_name.c_str());
+	}
       }
     }
   }
@@ -47,7 +74,7 @@ public:
 dd4hep::digi::DigiSegmentationSplitter::DigiSegmentationSplitter(const DigiKernel& krnl, const std::string& nam)
   : DigiEventAction(krnl, nam)
 {
-  this->internals = std::make_unique<internals_t>();
+  this->internals = std::make_unique<internals_t>(m_kernel, this);
   declareProperty("input",    this->internals->input_id = "deposits");
   declareProperty("detector", this->internals->detector_name);
   declareProperty("masks",    this->internals->masks);
@@ -60,8 +87,8 @@ dd4hep::digi::DigiSegmentationSplitter::~DigiSegmentationSplitter() {
 }
 
 /// Split actions according to the segmentation
-void dd4hep::digi::DigiSegmentationSplitter::split_segments(DigiEvent& event,
-							    DigiEvent::container_map_t& data)  const
+void dd4hep::digi::DigiSegmentationSplitter::split_segments(DigiEvent& /* event */,
+							    DigiEvent::container_map_t& /* data */)  const
 {
 
 }
diff --git a/DDDigi/src/DigiSignalProcessor.cpp b/DDDigi/src/DigiSignalProcessor.cpp
index d24be895c..abbec5be6 100644
--- a/DDDigi/src/DigiSignalProcessor.cpp
+++ b/DDDigi/src/DigiSignalProcessor.cpp
@@ -12,8 +12,8 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiSignalProcessor.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiSignalProcessor.h>
 
 /// Standard constructor
 dd4hep::digi::DigiSignalProcessor::DigiSignalProcessor(const DigiKernel& krnl, const std::string& nam)
diff --git a/DDDigi/src/DigiSignalProcessorSequence.cpp b/DDDigi/src/DigiSignalProcessorSequence.cpp
index 7b03e1be3..b7001f8ad 100644
--- a/DDDigi/src/DigiSignalProcessorSequence.cpp
+++ b/DDDigi/src/DigiSignalProcessorSequence.cpp
@@ -12,9 +12,9 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiSegmentation.h"
-#include "DDDigi/DigiSignalProcessorSequence.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiSegmentation.h>
+#include <DDDigi/DigiSignalProcessorSequence.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiStore.cpp b/DDDigi/src/DigiStore.cpp
index b588973f3..829444cba 100644
--- a/DDDigi/src/DigiStore.cpp
+++ b/DDDigi/src/DigiStore.cpp
@@ -12,10 +12,10 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiKernel.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiStore.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiStore.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiStoreDump.cpp b/DDDigi/src/DigiStoreDump.cpp
index e15199e9c..774907bec 100644
--- a/DDDigi/src/DigiStoreDump.cpp
+++ b/DDDigi/src/DigiStoreDump.cpp
@@ -12,12 +12,12 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
+#include <DD4hep/InstanceCount.h>
 
-#include "DDDigi/DigiData.h"
-#include "DDDigi/DigiKernel.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiStoreDump.h"
+#include <DDDigi/DigiData.h>
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiStoreDump.h>
 
 /// Standard constructor
 dd4hep::digi::DigiStoreDump::DigiStoreDump(const DigiKernel& krnl, const std::string& nam)
diff --git a/DDDigi/src/DigiSubdetectorSequence.cpp b/DDDigi/src/DigiSubdetectorSequence.cpp
index 5ca83e495..97cb96b73 100644
--- a/DDDigi/src/DigiSubdetectorSequence.cpp
+++ b/DDDigi/src/DigiSubdetectorSequence.cpp
@@ -12,14 +12,14 @@
 //==========================================================================
 
 // Framework include files
-#include "DDDigi/DigiSubdetectorSequence.h"
-#include "DDDigi/DigiSegmentation.h"
-#include "DDDigi/DigiKernel.h"
-#include "DD4hep/InstanceCount.h"
-#include "DD4hep/Detector.h"
-#include "DD4hep/IDDescriptor.h"
-#include "DD4hep/detail/VolumeManagerInterna.h"
-#include "TClass.h"
+#include <DDDigi/DigiSubdetectorSequence.h>
+#include <DDDigi/DigiSegmentation.h>
+#include <DDDigi/DigiKernel.h>
+#include <DD4hep/InstanceCount.h>
+#include <DD4hep/Detector.h>
+#include <DD4hep/IDDescriptor.h>
+#include <DD4hep/detail/VolumeManagerInterna.h>
+#include <TClass.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiSynchronize.cpp b/DDDigi/src/DigiSynchronize.cpp
index bc836d85f..8f5a54fd6 100644
--- a/DDDigi/src/DigiSynchronize.cpp
+++ b/DDDigi/src/DigiSynchronize.cpp
@@ -12,10 +12,10 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiKernel.h"
-#include "DDDigi/DigiContext.h"
-#include "DDDigi/DigiSynchronize.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiKernel.h>
+#include <DDDigi/DigiContext.h>
+#include <DDDigi/DigiSynchronize.h>
 
 // C/C++ include files
 #include <stdexcept>
diff --git a/DDDigi/src/DigiUniformNoise.cpp b/DDDigi/src/DigiUniformNoise.cpp
index 22bab865e..d4dd6d190 100644
--- a/DDDigi/src/DigiUniformNoise.cpp
+++ b/DDDigi/src/DigiUniformNoise.cpp
@@ -12,9 +12,9 @@
 //==========================================================================
 
 // Framework include files
-#include "DD4hep/InstanceCount.h"
-#include "DDDigi/DigiRandomGenerator.h"
-#include "DDDigi/DigiUniformNoise.h"
+#include <DD4hep/InstanceCount.h>
+#include <DDDigi/DigiRandomGenerator.h>
+#include <DDDigi/DigiUniformNoise.h>
 
 using namespace dd4hep::digi;
 
diff --git a/examples/DDDigi/scripts/DigiTest.py b/examples/DDDigi/scripts/DigiTest.py
index e2ddf6d28..0d50e4411 100644
--- a/examples/DDDigi/scripts/DigiTest.py
+++ b/examples/DDDigi/scripts/DigiTest.py
@@ -19,7 +19,7 @@ logger = logging.getLogger(__name__)
 """
   00C7A3C1 SiVertexEndcapHits               : map<long long, EnergyDeposit>
   00D16F45 EcalBarrelHits                   : map<long long, EnergyDeposit>
-  0D3C3803 MCParticles                      : 
+  0D3C3803 MCParticles                      :
   2E9082A9 HcalPlugHits                     : map<long long, EnergyDeposit>
   3A89E02E HcalEndcapHits                   : map<long long, EnergyDeposit>
   569C1C49 HcalBarrelHits                   : map<long long, EnergyDeposit>
@@ -66,8 +66,7 @@ class Test(dddigi.Digitize):
         'CLICSiD_2022-10-05_13-21.root',
         'CLICSiD_2022-10-05_13-52.root',
         'CLICSiD_2022-10-05_14-16.root',
-        'CLICSiD_2022-10-05_14-40.root'
-    ]
+        'CLICSiD_2022-10-05_14-40.root']
     self.used_inputs = []
 
   def check_creation(self, objs):
@@ -88,11 +87,9 @@ class Test(dddigi.Digitize):
     return next
 
   def run_checked(self, num_events=5, num_threads=5, parallel=3):
-    evt_todo = num_events
-    evt_done = digi.run(num_events=evt_todo, num_threads=num_threads, parallel=parallel)
-    if evt_done == evt_todo:
+    result = "FAILED"
+    evt_done = self.run(num_events=num_events, num_threads=num_threads, parallel=parallel)
+    if evt_done == num_events:
         result = "PASSED"
-    else:
-        result = "FAILED"
-    self.always('%s Test finished after processing %d events.'%(result, digi.events_done(),))
+    self.always('%s Test finished after processing %d events.'%(result, evt_done,))
     self.always('Test done. Exiting')
diff --git a/examples/DDDigi/scripts/TestInput.py b/examples/DDDigi/scripts/TestInput.py
index 175ced536..6615e5d47 100644
--- a/examples/DDDigi/scripts/TestInput.py
+++ b/examples/DDDigi/scripts/TestInput.py
@@ -13,19 +13,11 @@ from __future__ import absolute_import
 
 def run():
   import DigiTest
-  digi   = DigiTest.Test(geometry=None)
-  reader = digi.input_action('DigiROOTInput/SignalReader', mask=0x1, input=['CLICSiD_2022-10-05_13-21.root'])
-  dump   = digi.event_action('DigiStoreDump/StoreDump')
-
-  if reader is None: digi.error('FAILED create DigiROOTInput')
-  if dump is None: digi.error('FAILED create DigiStoreDump')
-
-  evt_todo = 5
-  evt_done = digi.run(num_events=evt_todo, num_threads=5, parallel=3)
-  if evt_done == evt_todo: result = "PASSED"
-  else: result = "FAILED"
-  digi.always('%s Test finished after processing %d events.'%(result, digi.events_done(),))
-  digi.always('Test done. Exiting')
+  digi = DigiTest.Test(geometry=None)
+  read = digi.input_action('DigiROOTInput/SignalReader', mask=0x1, input=['CLICSiD_2022-10-05_13-21.root'])
+  dump = digi.event_action('DigiStoreDump/StoreDump')
+  digi.check_creation([read, dump])
+  digi.run_checked(num_events=5, num_threads=5, parallel=3)
 
 
 if __name__ == '__main__':
diff --git a/examples/DDDigi/scripts/TestMultiInteractions.py b/examples/DDDigi/scripts/TestMultiInteractions.py
index 836a3a80d..0637e1c97 100644
--- a/examples/DDDigi/scripts/TestMultiInteractions.py
+++ b/examples/DDDigi/scripts/TestMultiInteractions.py
@@ -14,7 +14,6 @@ from __future__ import absolute_import
 def run():
   import DigiTest
   digi = DigiTest.Test(geometry=None)
-  attenuation = digi.attenuation
 
   input = digi.input_action('DigiParallelActionSequence/READER')
   # ========================================================================================================
diff --git a/examples/DDDigi/scripts/TestSegmentationSplit.py b/examples/DDDigi/scripts/TestSegmentationSplit.py
index 22e349b54..b3c52db6f 100644
--- a/examples/DDDigi/scripts/TestSegmentationSplit.py
+++ b/examples/DDDigi/scripts/TestSegmentationSplit.py
@@ -24,10 +24,10 @@ def run():
   event = digi.event_action('DigiSequentialActionSequence/EventAction')
   combine = event.adopt_action('DigiContainerCombine/Combine', masks=[0x0, 0x1, 0x2, 0x3], deposit_mask=0xFEED)
   combine.erase_combined = True  # Not thread-safe! only do in SequentialActionSequence
-  splitter = event.adopt_action('DigiSegmentationSplitter/Splitter', 
+  splitter = event.adopt_action('DigiSegmentationSplitter/Splitter',
                                 input='deposits',
                                 masks=[0xFEED],
-                                detector='SiTrackerBarrel');
+                                detector='SiTrackerBarrel')
   dump = event.adopt_action('DigiStoreDump/StoreDump')
   digi.check_creation([combine, dump, splitter])
   digi.info('Created event.dump')
-- 
GitLab