diff --git a/DDCore/python/dd4hep_base.py b/DDCore/python/dd4hep_base.py index fac7caf2696b304bc67ed626c4f2c9462b6de9ec..b0921a864722b3aa0dc12a73372755d97878cd3b 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 8559bc353928eb79fbe2ab851f7a40920c0b2096..7c6daae6439260fe15380a90c012dabf5c73f833 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 de1d9e08e353e958928ff1210eacedfed62b0192..cefd19fac792d1a930a0062789bb9146d864cb84 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 64005269752de604381497d9dcf32d852c8a5e34..8ab5834986062324c7d2cfe725f6482fcb8a3dfd 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 2a9150bfde32669cd1f4a09f9ad1bdb0645a76d6..398d3a75d44ca282d1aade24752cb9a78e7f643f 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 f12ae3a035cab67b398a5f7d03dfa33c66490641..9995201105f9e3ac213294675955d9b262b9d2c4 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 f06744dc1a437318146ca8ebad98297ab4eca5dc..1a489961c1c3d351065f467316bd08d3b8c27a37 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 726d97948967fe2e6ebd070fdfa4abd86170e4b6..8a28d2c175f18a801482a104cb75fdf11175bbbc 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 356c2aadc8fe154e1420730e94ddcf0bb7cf63ef..177d2397afc1807a11d48311a31412e205901295 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 89e46dbef12911fc2bc67214eeabded270091632..7d2ae834de1dfd18ef35d0db1c0a222a9857b8d2 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 dbafaaeb3fe057c1d130c6199b7a26d72945be58..80ebf49f28541ca0502b350f21b8c1bf9491b3b7 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 d4281fe7531e91090671fd0d6d7b3e80b2fcc721..598962b0e202024165f3215721e1e8c9099bf04b 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 edd680220eefb361977bc585f5096dae662423b4..29fb36891d37228a091dd7a898ddfdd6d3ef9870 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 a40b7663a31f1709370da0d729dd2265ba59f2cb..42eaf0dc89a134db74413b658249136217cb5033 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 e837e4ec4658eaf5b1dd94248cc8a81e280448b1..034575359199eec7a8a274329acba6ec71580252 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 6ae70c8cee07d1af0cbe8d950e355ada5e20adf9..52251dc47b86960fb52f1b7463a893b3502aeff4 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 ee1c58aac16781d75feb9a6c81067340f7170930..947ac6c0bc9f878a9fd498921c4ab4010c5404e3 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 4c77f34f6bb3365da621f7c24d55aa8275850e47..d34b8028e2b3cbd2dd2511d6a50164ef7278fffb 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 2cbf1e89ab9fdc45096dbf6dab294aaa82f611bf..ea814049ab33de08ec8274f5708ed3f1b2422b68 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 db33a3742a0090f7c70bee45a786854fe9a3fa0b..9b69a0a05786e90bb41be15c929ca781927af5ba 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 03e7adc98f9dc58f988280e890a3a2b8df3ca88e..2b8dcceb1bd039f79a1e7f1a215c7a48c53ce2e5 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 a6f3cc97d8d97131a4c3b0e07606c7fe5750013e..8a08cb53812dc97c94deae15105b8bc1ca129847 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 5c63b7eeec2aa85a3af15168f5287a7b2cb48a77..fea211963c68a9e3d32314acbd18dc038d15b68a 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 b705e4953ff8841088ecb3e6c507ae84d126e64f..4815074fbd2a873a29ad741195819f90a648a967 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 d5d4065d53302337c98e32d27eaa5aaba3399dd2..28d08d3b36598daace391922a07a1b5de3df713c 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 b3586757e2f6983a8bc79d1a2650ef4af10d94bc..2f76d9c135dd3e89dbb6dce573daf3c9fa13234e 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 2c1eb5c62ac7749bd766fb08cdabb7839cddd89f..3bd580848732ee9845201a01666b4501902c5e66 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 2a3d279eda31d29533b0b078694321ca9ad88a7c..ff456171f1cf680dba55985a6ef1dfb4f90aafb8 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 e86180f951fc3660f525c06eb574d00a4733f9f5..dc10c3aa9ad1dbd21bedfe686ec2a64127a890cb 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 2b6156331ef7416c074341d76583873b4ac54be9..1099d011d975f2741a0e9e615d60c79b26370ec5 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 8b88fa2e22c92a1ebff298091249de499315f4f4..1adda1b2064967495a69fe0ab909d161d1e4cd5d 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 2352bed75e12d793e1aaa22484e39bd2c435d5ec..8b141e319fdb8f1f2d56fa3b6fb0d9b653ad1655 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 995f054596daf18c3607a3d5015d9c1f65075ad9..e20a471839102fb2cecaec8d1d45c15a9cf48398 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 61d527c751f6e4dfed4763347dceaac3210bbd5d..11188203bec55ef5ced5411e160c7ea96dba4246 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 2cf3b0f25a54a05e24e41b64e2179cc8e6a652ef..458c0d7a8b316ef0dcec67a7b0cba6a7253129fa 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 b94a2556bc5dc9457151c7280eacdf1e570df01b..e43e6fc2b34765c1824d0ce1f5406019b6fe29fa 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 d24be895c55559687b0d16eba791a9f094e7e55b..abbec5be6560d5f8a3c9b5dabe8dbfe844295c4f 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 7b03e1be31def97f37883f93f3668b5dbac7cf0f..b7001f8ad2e41658c29bf7d7eba5b8484d943c9d 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 b588973f311d0e8b302c962aadabbb3c440ee3fb..829444cba1630041e80aeb01b1282d89886771ff 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 e15199e9ce6152fdce6af02c5889b89b650c08ff..774907bec390d64891c17f948d8d1eb407ace2a4 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 5ca83e495bddcc3b4cf318938a3b08cac9429493..97cb96b731f72eb51d7ae67041873110b9dba7d8 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 bc836d85f04bb970fa8b3789bc2bfafa66d83af8..8f5a54fd681278e06b5a13b838d84e9c3341954e 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 22bab865e78d74fd940a74880795181fa5699cac..d4dd6d190e681b1b122b423bc82160de6013b21c 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 e2ddf6d28d6060cc9c22b515b8d536449389a9ea..0d50e4411ecd142b4871363e0b7524c984f01ef3 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 175ced536e60008e80a6e2189c43d0c5ca7de55c..6615e5d473e82335319d9974aff8373b10f0c49b 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 836a3a80d69d62264a095f11a92a585739b8432d..0637e1c9706e17b16e10625b29130e674a79629e 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 22e349b543ff9a7a5a34098d657abdd4d312f643..b3c52db6f7453494637668d3c626b7b842ba0770 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')