Skip to content

CI: update which releases to test against #1341

CI: update which releases to test against

CI: update which releases to test against #1341

GitHub Actions / Test Results failed Mar 26, 2024 in 0s

11 fail, 348 pass in 3h 32m 15s

    7 files  ±0      7 suites  ±0   3h 32m 15s ⏱️ - 1h 17m 10s
  359 tests +1    348 ✅ +1  0 💤 ±0  11 ❌ ±0 
1 087 runs  +3  1 076 ✅ +3  0 💤 ±0  11 ❌ ±0 

Results for commit dcd30f2. ± Comparison against earlier commit 70b8651.

Annotations

Check warning on line 0 in t_test_python_import

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_test_python_import (t_test_python_import)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 1m 17s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' pytest /home/runner/work/DD4hep/DD4hep/DDTest/python/test_import.py '
============================= test session starts ==============================
platform linux -- Python 3.9.12, pytest-8.0.0, pluggy-1.4.0
rootdir: /home/runner/work/DD4hep/DD4hep
plugins: anyio-3.7.1, hypothesis-5.3.0, cov-4.1.0, xdist-3.3.1, typeguard-2.13.3
collected 3 items

../../DDTest/python/test_import.py ..F                                   [100%]

=================================== FAILURES ===================================
_____________________________ test_module[dddigi] ______________________________

moduleName = 'dddigi'

    @parametrize('moduleName', moduleNames)
    def test_module(moduleName):
      """ Try to import a module from DD4hep.
    
          Modules that are in the ALLOWED_TO_FAIL list are shown as skipped and generate a warning
    
          Modules that require graphic libraries (GRAPHIC_MODULES) are skipped on container
      """
    
      try:
>       __import__(moduleName)

../../DDTest/python/test_import.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../lib/python3.9/site-packages/dddigi.py:333: in <module>
    _props('DigiParallelActionSequence', adopt_action=_adopt_sequence_action)
../../lib/python3.9/site-packages/dddigi.py:292: in _props
    _import_class('digi', obj)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

ns = 'digi', nam = 'DigiParallelActionSequence'

    def _import_class(ns, nam):
      scope = getattr(current, ns)
>     setattr(current, nam, getattr(scope, nam))
E     AttributeError: <namespace cppyy.gbl.dd4hep.digi at 0xf412950> has no attribute 'DigiParallelActionSequence'. Full details:
E       type object 'digi' has no attribute 'DigiParallelActionSequence'
E       'dd4hep::digi::DigiParallelActionSequence' is not a known C++ class
E       'DigiParallelActionSequence' is not a known C++ template
E       'DigiParallelActionSequence' is not a known C++ enum

../../lib/python3.9/site-packages/dddigi.py:61: AttributeError
----------------------------- Captured stdout call -----------------------------
dddigi           INFO  DDDigi.py: Successfully loaded DDDigi plugin library libDDDigiPlugins!
dddigi           INFO  DDDigi.py: Successfully loaded DDDigi IO plugin library libDDDigi_IO!
----------------------------- Captured stderr call -----------------------------
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::KernelHandle with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiKernel with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiActionCreation with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see …oadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::ActionHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiSynchronize with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiActionSequence with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiSynchronize is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::DigiActionSequence is available even though it has a TClass initialization routine.
=========================== short test summary info ============================
FAILED ../../DDTest/python/test_import.py::test_module[dddigi] - AttributeErr...
========================= 1 failed, 2 passed in 44.58s =========================

Check warning on line 0 in t_test_python_import_ddg4

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_test_python_import_ddg4 (t_test_python_import_ddg4)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 1m 22s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' pytest /home/runner/work/DD4hep/DD4hep/DDTest/python/test_import_ddg4.py '
============================= test session starts ==============================
platform linux -- Python 3.9.12, pytest-8.0.0, pluggy-1.4.0
rootdir: /home/runner/work/DD4hep/DD4hep
plugins: anyio-3.7.1, hypothesis-5.3.0, cov-4.1.0, xdist-3.3.1, typeguard-2.13.3
collected 4 items

../../DDTest/python/test_import_ddg4.py ..FF                             [100%]

=================================== FAILURES ===================================
_____________________________ test_module[dddigi] ______________________________

moduleName = 'dddigi'

    @parametrize('moduleName', moduleNames)
    def test_module(moduleName):
      """ Try to import a module from DD4hep.
    
          Modules that are in the ALLOWED_TO_FAIL list are shown as skipped and generate a warning
    
          Modules that require graphic libraries (GRAPHIC_MODULES) are skipped on container
      """
    
      try:
>       __import__(moduleName)

../../DDTest/python/test_import.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../lib/python3.9/site-packages/dddigi.py:333: in <module>
    _props('DigiParallelActionSequence', adopt_action=_adopt_sequence_action)
../../lib/python3.9/site-packages/dddigi.py:292: in _props
    _import_class('digi', obj)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

ns = 'digi', nam = 'DigiParallelActionSequence'

    def _import_class(ns, nam):
      scope = getattr(current, ns)
>     setattr(current, nam, getattr(scope, nam))
E     AttributeError: <namespace cppyy.gbl.dd4hep.digi at 0xd671430> has no attribute 'DigiParallelActionSequence'. Full details:
E       type object 'digi' has no attribute 'DigiParallelActionSequence'
E       'dd4hep::digi::DigiParallelActionSequence' is not a known C++ class
E       'DigiParallelActionSequence' is not a known C++ template
E       'DigiParallelActionSequence' is not a known C++ enum

../../lib/python3.9/site-packages/dddigi.py:61: AttributeError
----------------------------- Captured stdout call -----------------------------
dddigi           INFO  DDDigi.py: Successfully loaded DDDigi plugin library libDDDigiPlugins!
dddigi           INFO  DDDigi.py: Successfully loaded DDDigi IO plugin library libDDDigi_IO!
----------------------------- Captured stderr call -----------------------------
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::KernelHandle with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::digi::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiKernel with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

#if defined(__GNUC__)
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma GCC diagnostic ignored "-Wdeprecated"
#pragma GCC diagnostic ignored "-Wunused"
#pragma GCC diagnostic ignored "-Woverlength-strings"

#elif defined(__llvm__) || defined(__APPLE__)

#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wdeprecated"
#pragma clang diagnostic ignored "-Wunused"
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif

#include <DDDigi/DigiData.h>
#include <DDDigi/DigiHandle.h>
#include <DDDigi/DigiKernel.h>
#include <DDDigi/DigiContext.h>
#include <DDDigi/DigiAction.h>
#include <DDDigi/DigiEventAction.h>
#include <DDDigi/DigiContainerProcessor.h>

struct DDDigiDict  {};

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  int init_grammar_types();
  
  /// Namespace for the Digitization part of the AIDA detector description toolkit
  namespace digi {

    template <typename VAL>
    int add_action_property(DigiAction* action, const std::string& name, VAL value);

    struct ActionHandle  {
      DigiAction* action;
      explicit ActionHandle(DigiAction* a) : action(a)  {
        if (action) action->addRef();
      }
      ActionHandle(const ActionHandle& h) : action(h.action) {
        if (action) action->addRef();
      }
      ~ActionHandle()   {
        if (action) action->release();
      }
      ActionHandle& operator=(const ActionHandle& h) { 
        if ( h.action ) h.action->addRef();
        if ( action ) action->release();
        action = h.action;
        return *this;
      }
      DigiAction* release()  {
        DigiAction* tmp = action;
        action=0;
        return tmp;
      }
      operator dd4hep::digi::DigiAction* () const         { return action; }
      DigiAction* operator->() const                      { return action; }
      DigiAction* get() const                             { return action; }
      DigiAction* I_am_a_ROOT_interface_handle() const    { return action; }
      KernelHandle kernel()  const  {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }
    };

    struct PropertyResult  {
    public:
      std::string data   {   };
      int status         { 0 };
      PropertyResult() = default;
      PropertyResult(const std::string& d, int s);
      PropertyResult(const PropertyResult& c) = default;
      ~PropertyResult() = default;
    };
    
    inline PropertyResult::PropertyResult(const std::string& d, int s)
      : data(d), status(s)
    {
    }

    struct DigiActionCreation  {
      template <typename H> static H* cst(DigiAction* in)  {
        auto* out = dynamic_cast<H*>(in);
        if ( out ) return out;
        if ( in )
          except("DigiAction","Invalid cast of action '%s' [type:%s] to type %s!",
                 in->c_name(), typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        except("DigiAction","Invalid cast of NULL [type:%s] to type %s!",
               typeName(typeid(DigiAction)).c_str(), typeName(typeid(H)).c_str());
        return nullptr;
      }

      static KernelHandle createKernel(DigiAction* action)   {
        auto* k = const_cast<DigiKernel*>(action->kernel());
        return KernelHandle(k);
      }

      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type)   {
        DigiHandle<DigiAction> action(*kernel.get(),name_type);
        return ActionHandle(action.get());
      }
      static DigiAction* toAction(DigiKernel* f)    { return f;        }
      static DigiAction* toAction(DigiAction* f)    { return f;        }
      static DigiAction* toAction(KernelHandle f)   { return f.value;  }
      static DigiAction* toAction(ActionHandle f)   { return f.action; }

      static DigiEventAction*        toEventAction(DigiAction* a) { return cst<DigiEventAction>(a); }
      static DigiDepositMonitor*     toDepositMonitor(DigiAction* a) { return cst<DigiDepositMonitor>(a); }
      static DigiContainerProcessor* toContainerProcessor(DigiAction* a) { return cst<DigiContainerProcessor>(a); }
      static DigiContainerSequenceAction* toContainerSequenceAction(DigiAction* a) { return cst<DigiContainerSequenceAction>(a); }

      /// Access DigiAction property
      static PropertyResult getProperty(DigiAction* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }

      /// Set DigiAction property
      static int setProperty(DigiAction* action, const std::string& name, const std::string& value)  {
        init_grammar_types();
        printout(DEBUG,"setProperty","Setting property: %s.%s = %s", action->name().c_str(), name.c_str(), value.c_str());
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }

#define MKVAL auto val = value

#define ADD_PROPERTY(n,X)                                               \
      static int add##n       (DigiAction* action, const std::string& name, const X value) \
      {	return add_action_property(action, name, value); }              \
      static int addVector##n (DigiAction* action, const std::string& name, std::vector<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addList##n   (DigiAction* action, const std::string& name, std::list<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addSet##n    (DigiAction* action, const std::string& name, std::set<X> value) \
      {	MKVAL; return add_action_property(action, name, val); }         \
      static int addMapped##n (DigiAction* action, const std::string& name, std::map<std::string,X> value) \
      {	MKVAL; return add_action_property(action, name, val); }
      ADD_PROPERTY(Property,int)
      ADD_PROPERTY(Property,short)
      ADD_PROPERTY(Property,size_t)
      ADD_PROPERTY(Property,double)

      ADD_PROPERTY(Property,std::string)

      static int addPositionProperty(DigiAction* action, const std::string& name, const std::string value)     {
        Position pos;
        Property pr(pos);
        pr.str(value);
        return add_action_property(action, name, pos);
      }
    };
  }
}

#include <DDDigi/DigiSynchronize.h>
#include <DDDigi/DigiInputAction.h>
#include <DDDigi/DigiSegmentSplitter.h>
#include <DDDigi/DigiActionSequence.h>
#include <DDDigi/DigiSignalProcessor.h>
#include <DDDigi/DigiDepositMonitor.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ namespace dd4hep;
#pragma link C++ namespace dd4hep::digi;

///---- Digi data item wrappers
#pragma link C++ class std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle>+;
#pragma link C++ class std::map<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::digi::Key::key_type, dd4hep::digi::Particle*> >+;

#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit>+;
#pragma link C++ class std::map<dd4hep::CellID, dd4hep::digi::EnergyDeposit*>+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit> >+;
#pragma link C++ class std::vector<std::pair<dd4hep::CellID, dd4hep::digi::EnergyDeposit*> >+;

#pragma link C++ class dd4hep::digi::History+;
#pragma link C++ class dd4hep::digi::Particle+;
#pragma link C++ class dd4hep::digi::EnergyDeposit+;
#pragma link C++ class dd4hep::digi::ParticleMapping+;
#pragma link C++ class dd4hep::digi::DepositMapping+;
#pragma link C++ class dd4hep::digi::DepositVector+;
#pragma link C++ class dd4hep::digi::DigiEvent;

///---- action dictionaries
#pragma link C++ class dd4hep::digi::KernelHandle;
#pragma link C++ class dd4hep::digi::ActionHandle;

#pragma link C++ class dd4hep::digi::DigiActionCreation;
#pragma link C++ class dd4hep::digi::DigiContext;
#pragma link C++ class dd4hep::digi::DigiKernel;
#pragma link C++ class dd4hep::digi::DigiAction;
#pragma link C++ class dd4hep::digi::DigiEventAction;
#pragma link C++ class dd4hep::digi::DigiInputAction;
#pragma link C++ class dd4hep::digi::DigiActionSequence;
#pragma link C++ class dd4hep::digi::DigiSynchronize;
#pragma link C++ class dd4hep::digi::DigiSignalProcessor;

#pragma link C++ class dd4hep::digi::DigiContainerProcessor;
#pragma link C++ class dd4hep::digi::DigiContainerSequence;
#pragma link C++ class dd4hep::digi::DigiContainerSequenceAction;
#pragma link C++ class dd4hep::digi::DigiMultiContainerProcessor;

#pragma link C++ class dd4hep::digi::DigiSegmentSplitter;
#pragma link C++ class dd4hep::digi::DigiDepositMonitor;

#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::digi::DigiActionCreation with content:

#line 1 "G__DDDigi dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#ifndef ROOT_WARNINGS_H
#define ROOT_WARNINGS_H

//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//--------------------------------------------------------------------------
//  These are the common warnings, which are generated by rootcling
//  and which cannot be avoided at all. We hence disable them in the
//  corresponding compilation units to reduce annoying warnings.
//
//  M.Frank
//==========================================================================

#if defined(__clang__)
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  #pragma clang diagnostic ignored "-Wdeprecated"
  #pragma clang diagnostic ignored "-Wunused"
  #pragma clang diagnostic ignored "-Woverlength-strings"
#elif defined(__GNUC__) || defined(__GNUG__)
  #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  #pragma GCC diagnostic ignored "-Wdeprecated"
  #pragma GCC diagnostic ignored "-Wunused"
  #pragma GCC diagnostic ignored "-Woverlength-strings"
#endif


#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLANG__) || defined(__ROOTCLING__)
#define  DD4HEP_DICTIONARY_MODE 1
#endif

#if defined(G__DICTIONARY) && defined(G__ROOT)
#define  DD4HEP_DICTIONARY_CODE 1
#endif


#endif
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors…ction;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
=============================== warnings summary ===============================
DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class _Rb_tree_iterator<pair<const int,dd4hep::sim::Geant4Particle*> > already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class _Rb_tree_const_iterator<pair<const int,dd4hep::sim::Geant4Particle*> > already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::SimpleRun already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::SimpleEvent already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::DataExtension already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4HitData already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4HitData::MonteCarloContrib already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4Tracker already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4Tracker::Hit already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4Calorimeter already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4Calorimeter::Hit already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::ParticleExtension already in TClassTable

DDTest/python/test_import_ddg4.py::test_module_ddg4
  TClassTable::Add:0: RuntimeWarning: class dd4hep::sim::Geant4Particle already in TClassTable

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED ../../DDTest/python/test_import_ddg4.py::test_module[dddigi] - Attribu...
FAILED ../../DDTest/python/test_import_ddg4.py::test_module_ddg4 - AttributeE...
================== 2 failed, 2 passed, 13 warnings in 49.58s ===================

Check warning on line 0 in t_test_ddsim_hepmc3_Pythia_output_hepmc

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_test_ddsim_hepmc3_Pythia_output_hepmc (t_test_ddsim_hepmc3_Pythia_output_hepmc)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 14s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' ddsim --compactFile=/home/runner/work/DD4hep/DD4hep/DDDetectors/compact/SiD.xml --runType=batch -N=1 --outputFile=test_ddsim_hepmc3_Pythia_output_hepmc.root --inputFiles /home/runner/work/DD4hep/DD4hep/DDTest/inputFiles/Pythia_output.hepmc --part.userParticleHandler= '
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4Kernel with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)       … toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Traceback (most recent call last):
  File "/home/runner/work/DD4hep/DD4hep/bin/ddsim", line 25, in <module>
    RUNNER.run()
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDSim/DD4hepSimulation.py", line 298, in run
    import DDG4
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 269, in <module>
    _setup_callback('Geant4ActionPhase')
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 265, in _setup_callback
    setattr(o, '__adopt', getattr(o, 'add'))
AttributeError: <class cppyy.gbl.dd4hep.sim.Geant4ActionPhase at 0x97d2650> has no attribute 'add'. Full details:
  type object 'Geant4ActionPhase' has no attribute 'add'
  'dd4hep::sim::Geant4ActionPhase::add' is not a known C++ class
  'add' is not a known C++ template
  'add' is not a known C++ enum

Check warning on line 0 in t_test_ddsim_.root

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_test_ddsim_.root (t_test_ddsim_.root)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 14s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' ddsim --compactFile=/home/runner/work/DD4hep/DD4hep/DDDetectors/compact/SiD.xml --runType=batch -G -N=2 --outputFile=testSid.root --gun.position "0.0 0.0 1.0*cm" --gun.direction "1.0 0.0 1.0" --gun.momentumMax 100*GeV --part.userParticleHandler= '
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4Kernel with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;    … toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Traceback (most recent call last):
  File "/home/runner/work/DD4hep/DD4hep/bin/ddsim", line 25, in <module>
    RUNNER.run()
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDSim/DD4hepSimulation.py", line 298, in run
    import DDG4
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 269, in <module>
    _setup_callback('Geant4ActionPhase')
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 265, in _setup_callback
    setattr(o, '__adopt', getattr(o, 'add'))
AttributeError: <class cppyy.gbl.dd4hep.sim.Geant4ActionPhase at 0xc9e9be0> has no attribute 'add'. Full details:
  type object 'Geant4ActionPhase' has no attribute 'add'
  'dd4hep::sim::Geant4ActionPhase::add' is not a known C++ class
  'add' is not a known C++ template
  'add' is not a known C++ enum

Check warning on line 0 in t_test_ddsim_.slcio

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_test_ddsim_.slcio (t_test_ddsim_.slcio)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 8s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' ddsim --compactFile=/home/runner/work/DD4hep/DD4hep/DDDetectors/compact/SiD.xml --runType=batch -G -N=2 --outputFile=testSid.slcio --gun.position "0.0 0.0 1.0*cm" --gun.direction "1.0 0.0 1.0" --gun.momentumMax 100*GeV --part.userParticleHandler= '
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4Kernel with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;   … toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Traceback (most recent call last):
  File "/home/runner/work/DD4hep/DD4hep/bin/ddsim", line 25, in <module>
    RUNNER.run()
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDSim/DD4hepSimulation.py", line 298, in run
    import DDG4
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 269, in <module>
    _setup_callback('Geant4ActionPhase')
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 265, in _setup_callback
    setattr(o, '__adopt', getattr(o, 'add'))
AttributeError: <class cppyy.gbl.dd4hep.sim.Geant4ActionPhase at 0x9575890> has no attribute 'add'. Full details:
  type object 'Geant4ActionPhase' has no attribute 'add'
  'dd4hep::sim::Geant4ActionPhase::add' is not a known C++ class
  'add' is not a known C++ template
  'add' is not a known C++ enum

Check warning on line 0 in t_ddsimUserPlugins

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_ddsimUserPlugins (t_ddsimUserPlugins)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 9s]
Raw output
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' ddsim --compactFile=/home/runner/work/DD4hep/DD4hep/DDDetectors/compact/SiD.xml --runType=batch -N=10 --outputFile=t_ddsimUserPlugins.root -G --steeringFile /home/runner/work/DD4hep/DD4hep/DDTest/python/userPluginsSteeringFile.PY --part.userParticleHandler= '
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4Kernel with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(… toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Traceback (most recent call last):
  File "/home/runner/work/DD4hep/DD4hep/bin/ddsim", line 25, in <module>
    RUNNER.run()
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDSim/DD4hepSimulation.py", line 298, in run
    import DDG4
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 269, in <module>
    _setup_callback('Geant4ActionPhase')
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 265, in _setup_callback
    setattr(o, '__adopt', getattr(o, 'add'))
AttributeError: <class cppyy.gbl.dd4hep.sim.Geant4ActionPhase at 0xde4ddb0> has no attribute 'add'. Full details:
  type object 'Geant4ActionPhase' has no attribute 'add'
  'dd4hep::sim::Geant4ActionPhase::add' is not a known C++ class
  'add' is not a known C++ template
  'add' is not a known C++ enum

Check warning on line 0 in t_ddsimUserActions

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 4 runs failed: t_ddsimUserActions (t_ddsimUserActions)

artifacts/Test Results dev3x86_64-el9-gcc13-opt (g4units)/build/TestResults_1.xml [took 7s]
Raw output
Required regular expression not found. Regex=[Deleting object StepActionCLI1 ]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/thepeg/2.2.3/x86_64-el9-gcc13-opt/lib/ThePEG:/cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/MCGenerators/herwig++/7.2.3/x86_64-el9-gcc13-opt/lib/Herwig:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/onnxruntime/capi/:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft-nightlies.cern.ch/lcg/latest/java/8u392-fe115/x86_64-el9-gcc13-opt/jre/lib/amd64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib64:/cvmfs/sft-nightlies.cern.ch/lcg/views/dev3/Tue/x86_64-el9-gcc13-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/R/4.3.0-46a52/x86_64-el9-gcc13-opt/lib64/R/library/readr/rcon:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/clhep/2.4.7.1-b7a7d/x86_64-el9-gcc13-opt/lib:/cvmfs/sft-nightlies.cern.ch/lcg/latest/XercesC/3.2.4-9e637/x86_64-el9-gcc13-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft-nightlies.cern.ch/lcg/nightlies/dev3/Tue/ROOT/HEAD/x86_64-el9-gcc13-opt/lib
---running test :  ' ddsim --compactFile=/home/runner/work/DD4hep/DD4hep/DDDetectors/compact/SiD.xml --runType=batch -N=10 --outputFile=t_ddsimUserActions.root -G --steeringFile /home/runner/work/DD4hep/DD4hep/DDTest/python/userActionsSteeringFile.PY --action.event Geant4TestEventAction/EventActionCLI1 --action.step Geant4TestStepAction/StepActionCLI1,Geant4TestStepAction/StepActionCLI2 --action.step '[ "Geant4TestStepAction/StepActionCLI3" , "Geant4TestStepAction/StepActionCLI4" ]' --action.stack '{ "name" : "Geant4TestStackAction/StackActionCLI1" , "parameter" : { "Property_int" : 10 } }' --action.stack '[ { "name" : "Geant4TestStackAction/StackActionCLI2" , "parameter" : { "Property_int" : 10 } } ]' --printLevel VERBOSE '
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::KernelHandle is available even though it has a TClass initialization routine.
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4Kernel with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_t… toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::Geant4ActionPhase with content:

#line 1 "G__DDG4 dictionary payload"

#ifndef DD4HEP_USE_TBB
  #define DD4HEP_USE_TBB 1
#endif
#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
  #define BOOST_SPIRIT_USE_PHOENIX_V3 1
#endif
#ifndef DD4HEP_USE_GEANT4_UNITS
  #define DD4HEP_USE_GEANT4_UNITS 1
#endif
#ifndef DD4HEP_USE_XERCESC
  #define DD4HEP_USE_XERCESC 1
#endif
#ifndef G4LIB_BUILD_DLL
  #define G4LIB_BUILD_DLL 1
#endif
#ifndef PTL_BUILD_DLL
  #define PTL_BUILD_DLL 1
#endif
#ifndef G4VIS_USE_RAYTRACERX
  #define G4VIS_USE_RAYTRACERX 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_GLES
  #define G4VIS_USE_TOOLSSG_QT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_QT_ZB
  #define G4VIS_USE_TOOLSSG_QT_ZB 1
#endif
#ifndef G4VIS_USE_TOOLSSG_X11_GLES
  #define G4VIS_USE_TOOLSSG_X11_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_GLES
  #define G4VIS_USE_TOOLSSG_XT_GLES 1
#endif
#ifndef G4VIS_USE_TOOLSSG_XT_ZB
  #define G4VIS_USE_TOOLSSG_XT_ZB 1
#endif
#ifndef G4VIS_USE_OPENGLQT
  #define G4VIS_USE_OPENGLQT 1
#endif
#ifndef G4VIS_USE_OPENGLX
  #define G4VIS_USE_OPENGLX 1
#endif
#ifndef G4VIS_USE_OPENGLXM
  #define G4VIS_USE_OPENGLXM 1
#endif
#ifndef QT_GUI_LIB
  #define QT_GUI_LIB 1
#endif
#ifndef QT_CORE_LIB
  #define QT_CORE_LIB 1
#endif
#ifndef QT_NO_DEBUG
  #define QT_NO_DEBUG 1
#endif
#ifndef QT_OPENGL_LIB
  #define QT_OPENGL_LIB 1
#endif
#ifndef QT_WIDGETS_LIB
  #define QT_WIDGETS_LIB 1
#endif
#ifndef G4VIS_USE_QT3D
  #define G4VIS_USE_QT3D 1
#endif
#ifndef G4UI_USE_QT
  #define G4UI_USE_QT 1
#endif
#ifndef G4UI_USE_XM
  #define G4UI_USE_XM 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
//==========================================================================
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
// All rights reserved.
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
//
//====================================================================
//
// Define the ROOT dictionaries for all data classes to be saved 
// which are created by the DDG4 examples.
//
//  Author     : M.Frank
//
//====================================================================

// Framework include files
#include <DDG4/DDG4Dict.h>
#include <DDG4/Geant4Config.h>
#include <DDG4/Geant4Primary.h>
#include <DDG4/Geant4Random.h>
#include <DDG4/Geant4DataDump.h>
#include <DDG4/Geant4InputAction.h>
#include <DDG4/Geant4GeneratorWrapper.h>

/// Namespace for the AIDA detector description toolkit
namespace dd4hep {

  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
  namespace sim {

#define ACTIONHANDLE(x)                                                                   \
    struct x##Handle  {                                                                   \
      Geant4##x* action;                                                                  \
      explicit x##Handle(Geant4##x* a) : action(a)     { if ( action ) action->addRef();} \
      x##Handle(const x##Handle& h) : action(h.action) { if ( action ) action->addRef();} \
      ~x##Handle()                  { if ( action) action->release();                   } \
      Geant4##x* release()          { Geant4##x* tmp = action; action=0; return tmp;    } \
      operator dd4hep::sim::Geant4##x* () const  { return action;     }            \
      Geant4##x* operator->() const                     { return action;     }            \
      Geant4##x* get() const                            { return action;     }            \
    }

    ACTIONHANDLE(Filter);
    ACTIONHANDLE(Action);
    ACTIONHANDLE(PhaseAction);
    ACTIONHANDLE(RunAction);
    ACTIONHANDLE(EventAction);
    ACTIONHANDLE(GeneratorAction);
    ACTIONHANDLE(PhysicsList);
    ACTIONHANDLE(TrackingAction);
    ACTIONHANDLE(SteppingAction);
    ACTIONHANDLE(StackingAction);
    ACTIONHANDLE(DetectorConstruction);
    ACTIONHANDLE(Sensitive);
    ACTIONHANDLE(ParticleHandler);
    ACTIONHANDLE(UserInitialization);

    ACTIONHANDLE(GeneratorActionSequence);
    ACTIONHANDLE(RunActionSequence);
    ACTIONHANDLE(EventActionSequence);
    ACTIONHANDLE(TrackingActionSequence);
    ACTIONHANDLE(SteppingActionSequence);
    ACTIONHANDLE(StackingActionSequence);
    ACTIONHANDLE(DetectorConstructionSequence);
    ACTIONHANDLE(PhysicsListActionSequence);
    ACTIONHANDLE(SensDetActionSequence);
    ACTIONHANDLE(UserInitializationSequence);

    struct PropertyResult  {
      std::string data;
      int status;
      PropertyResult() : status(0) {}
      PropertyResult(const std::string& d, int s) : data(d), status(s) {}
      PropertyResult(const PropertyResult& c) : data(c.data), status(c.status) {}
      ~PropertyResult() {}
    };

    struct Geant4ActionCreation  {
      template <typename H,typename T> static H cr(KernelHandle& kernel, const std::string& name_type, bool shared)  {
        T action(*kernel.get(),name_type,shared);
        H handle(action.get());
        return handle;
      }
      static ActionHandle createAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<ActionHandle,Setup::Action>(kernel,name_type,shared);                            }
      static FilterHandle createFilter(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<FilterHandle,Setup::Filter>(kernel,name_type,shared);                            }
      static PhaseActionHandle createPhaseAction(KernelHandle& kernel, const std::string& name_type, bool shared)   
      { return cr<PhaseActionHandle,Setup::PhaseAction>(kernel,name_type,shared);                  }
      static PhysicsListHandle createPhysicsList(KernelHandle& kernel, const std::string& name_type)
      { return cr<PhysicsListHandle,Setup::PhysicsList>(kernel,name_type,false);                  }
      static RunActionHandle createRunAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<RunActionHandle,Setup::RunAction>(kernel,name_type,shared);                      }
      static EventActionHandle createEventAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<EventActionHandle,Setup::EventAction>(kernel,name_type,shared);         }
      static TrackingActionHandle createTrackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<TrackingActionHandle,Setup::TrackAction>(kernel,name_type,shared);               }
      static SteppingActionHandle createSteppingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<SteppingActionHandle,Setup::StepAction>(kernel,name_type,shared);                }
      static StackingActionHandle createStackingAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<StackingActionHandle,Setup::StackAction>(kernel,name_type,shared);               }
      
      static GeneratorActionHandle createGeneratorAction(KernelHandle& kernel, const std::string& name_type, bool shared)
      { return cr<GeneratorActionHandle,Setup::GenAction>(kernel,name_type,shared);                }
      
      static DetectorConstructionHandle createDetectorConstruction(KernelHandle& kernel, const std::string& name_type)
      { return cr<DetectorConstructionHandle,Setup::DetectorConstruction>(kernel,name_type,false); }
      
      static UserInitializationHandle createUserInitialization(KernelHandle& kernel, const std::string& name_type)
      {	return UserInitializationHandle(Setup::Initialization(*kernel.get(),name_type,false).get());}
      
      static SensitiveHandle createSensitive(KernelHandle& kernel, const std::string& name_type, const std::string& detector, bool shared)
      {	return SensitiveHandle(Setup::Sensitive(*kernel.get(),name_type,detector,shared).get());   }
      
      static SensDetActionSequenceHandle createSensDetSequence(KernelHandle& kernel, const std::string& name_type)
      {	return cr<SensDetActionSequenceHandle,Setup::SensitiveSeq>(kernel,name_type,false);       }
      
      static Geant4Action* toAction(Geant4Filter* f)                   { return f;          }
      static Geant4Action* toAction(Geant4Action* f)                   { return f;          }
      static Geant4Action* toAction(Geant4PhaseAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4Sensitive* f)                { return f;          }
      static Geant4Action* toAction(Geant4PhysicsList* f)              { return f;          }
      static Geant4Action* toAction(Geant4RunAction* f)                { return f;          }
      static Geant4Action* toAction(Geant4EventAction* f)              { return f;          }
      static Geant4Action* toAction(Geant4TrackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4SteppingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4StackingAction* f)           { return f;          }
      static Geant4Action* toAction(Geant4GeneratorAction* f)          { return f;          }
      static Geant4Action* toAction(Geant4GeneratorActionSequence* f)  { return f;          }
      static Geant4Action* toAction(Geant4RunActionSequence* f)        { return f;          }
      static Geant4Action* toAction(Geant4EventActionSequence* f)      { return f;          }
      static Geant4Action* toAction(Geant4TrackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4SteppingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4StackingActionSequence* f)   { return f;          }
      static Geant4Action* toAction(Geant4PhysicsListActionSequence* f){ return f;          }
      static Geant4Action* toAction(Geant4SensDetActionSequence* f)    { return f;          }
      static Geant4Action* toAction(Geant4UserInitialization* f)       { return f;          }
      static Geant4Action* toAction(Geant4UserInitializationSequence* f){ return f;         }
      static Geant4Action* toAction(Geant4DetectorConstruction* f)     { return f;          }
      static Geant4Action* toAction(Geant4DetectorConstructionSequence* f){ return f;       }

      static Geant4Action* toAction(FilterHandle f)                    { return f.action;   }
      static Geant4Action* toAction(ActionHandle f)                    { return f.action;   }
      static Geant4Action* toAction(PhaseActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(SensitiveHandle f)                 { return f.action;   }
      static Geant4Action* toAction(PhysicsListHandle f)               { return f.action;   }
      static Geant4Action* toAction(RunActionHandle f)                 { return f.action;   }
      static Geant4Action* toAction(EventActionHandle f)               { return f.action;   }
      static Geant4Action* toAction(TrackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(SteppingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(StackingActionHandle f)            { return f.action;   }
      static Geant4Action* toAction(GeneratorActionHandle f)           { return f.action;   }
      static Geant4Action* toAction(GeneratorActionSequenceHandle f)   { return f.action;   }
      static Geant4Action* toAction(RunActionSequenceHandle f)         { return f.action;   }
      static Geant4Action* toAction(EventActionSequenceHandle f)       { return f.action;   }
      static Geant4Action* toAction(TrackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(SteppingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(StackingActionSequenceHandle f)    { return f.action;   }
      static Geant4Action* toAction(PhysicsListActionSequenceHandle f) { return f.action;   }
      static Geant4Action* toAction(SensDetActionSequenceHandle f)     { return f.action;   }
      static Geant4Action* toAction(UserInitializationHandle f)        { return f.action;   }
      static Geant4Action* toAction(UserInitializationSequenceHandle f){ return f.action;   }
      static Geant4Action* toAction(DetectorConstructionHandle f)      { return f.action;   }
      static Geant4Action* toAction(DetectorConstructionSequenceHandle f){ return f.action;   }
      static PropertyResult getProperty(Geant4Action* action, const std::string& name)  {
        if ( action->hasProperty(name) )  {
          return PropertyResult(action->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setProperty(Geant4Action* action, const std::string& name, const std::string& value)  {
        if ( action->hasProperty(name) )  {
          action->property(name).str(value);
          return 1;
        }
        return 0;
      }
      static PropertyResult getPropertyKernel(Geant4Kernel* kernel, const std::string& name)  {
        if ( kernel->hasProperty(name) )  {
          return PropertyResult(kernel->property(name).str(),1);
        }
        return PropertyResult("",0);
      }
      static int setPropertyKernel(Geant4Kernel* kernel, const std::string& name, const std::string& value)  {
        if ( kernel->hasProperty(name) )  {
          kernel->property(name).str(value);
          return 1;
        }
        return 0;
      }
    };

    /// Container definitions for Geant4Vertex
    typedef std::vector<Geant4Vertex*>  Geant4VertexVector;
    typedef std::map<int,Geant4Vertex*> Geant4VertexIntMap;

    /// Container definitions for Geant4Particle
    typedef std::vector<Geant4Particle*>  Geant4ParticleVector;
    typedef std::map<int,Geant4Particle*> Geant4ParticleIntMap;
  }
}

typedef dd4hep::sim::Geant4ActionCreation Geant4ActionCreation;

#include <DD4hep/detail/DetectorInterna.h>
#include <DDG4/Geant4UIManager.h>

// CINT configuration
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

//#pragma link C++ namespace DDSegmentation;

/// Geant4 Vertex dictionaries
#pragma link C++ class dd4hep::sim::VertexExtension+;
#pragma link C++ class dd4hep::sim::Geant4Vertex+;
#pragma link C++ class vector<dd4hep::sim::Geant4Vertex*>+;
#pragma link C++ class map<int,dd4hep::sim::Geant4Vertex*>+;

#pragma link C++ class dd4hep::sim::Geant4ParticleMap+;
#pragma link C++ class dd4hep::sim::PrimaryExtension+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryInteraction+;
#pragma link C++ class std::vector<dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4PrimaryInteraction*>+;
#pragma link C++ class dd4hep::sim::Geant4PrimaryEvent+;

#pragma link C++ typedef dd4hep::sim::Geant4VertexVector;
#pragma link C++ typedef dd4hep::sim::Geant4VertexIntMap;

#pragma link C++ typedef dd4hep::sim::Geant4ParticleVector;
#pragma link C++ typedef dd4hep::sim::Geant4ParticleIntMap;

#pragma link C++ class dd4hep::sim::PropertyResult;
//#pragma link C++ class dd4hep::sim::Geant4InputAction::Particles; // same as std::vector<dd4hep::sim::Geant4Particle*>

#pragma link C++ class dd4hep::sim::Geant4ParticleHandle;
#pragma link C++ class dd4hep::sim::Geant4ParticleMap;
#pragma link C++ class std::map<int,dd4hep::sim::Geant4Particle*>;

#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::VertexExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::PrimaryExtension>+;
#pragma link C++ class dd4hep::dd4hep_ptr<dd4hep::sim::Geant4InputAction::Particles>;

// Basic stuff
#pragma link C++ class dd4hep::sim::Geant4ActionCreation;
#pragma link C++ class dd4hep::sim::Geant4Kernel;
#pragma link C++ class dd4hep::sim::Geant4Kernel::PhaseSelector;
#pragma link C++ class dd4hep::sim::Geant4Context;
#pragma link C++ class dd4hep::sim::KernelHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionContainer;

#pragma link C++ class dd4hep::sim::Geant4Action;
#pragma link C++ class dd4hep::sim::ActionHandle;

#pragma link C++ class dd4hep::sim::RunActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4RunActionSequence;
#pragma link C++ class dd4hep::sim::RunActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedRunAction;
#pragma link C++ class dd4hep::sim::Geant4RunAction;

#pragma link C++ class dd4hep::sim::EventActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4EventActionSequence;
#pragma link C++ class dd4hep::sim::EventActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedEventAction;
#pragma link C++ class dd4hep::sim::Geant4EventAction;

#pragma link C++ class dd4hep::sim::SteppingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4SteppingActionSequence;
#pragma link C++ class dd4hep::sim::SteppingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4SharedSteppingAction;
#pragma link C++ class dd4hep::sim::Geant4SteppingAction;

#pragma link C++ class dd4hep::sim::StackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingAction;
#pragma link C++ class dd4hep::sim::StackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4StackingActionSequence;

#pragma link C++ class dd4hep::sim::TrackingActionHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingAction;
#pragma link C++ class dd4hep::sim::TrackingActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4TrackingActionSequence;

#pragma link C++ class dd4hep::sim::GeneratorActionHandle;
#pragma link C++ class dd4hep::sim::GeneratorActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4GeneratorActionSequence;
#pragma link C++ class dd4hep::sim::Geant4GeneratorAction;

#pragma link C++ class dd4hep::sim::Geant4InputAction;
#pragma link C++ class dd4hep::sim::Geant4EventReader;

#pragma link C++ class dd4hep::sim::PhysicsListHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsList;
#pragma link C++ class dd4hep::sim::PhysicsListActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4PhysicsListActionSequence;

#pragma link C++ class dd4hep::sim::UserInitializationHandle;
#pragma link C++ class dd4hep::sim::UserInitializationSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4UserInitializationSequence;
#pragma link C++ class dd4hep::sim::Geant4UserInitialization;

#pragma link C++ class dd4hep::sim::DetectorConstructionHandle;
#pragma link C++ class dd4hep::sim::DetectorConstructionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstructionSequence;
#pragma link C++ class dd4hep::sim::Geant4DetectorConstruction;

#pragma link C++ class dd4hep::sim::SensitiveHandle;
#pragma link C++ class dd4hep::sim::SensDetActionSequenceHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionSD;
#pragma link C++ class dd4hep::sim::Geant4Sensitive;
#pragma link C++ class dd4hep::sim::Geant4SensDetActionSequence;

#pragma link C++ class dd4hep::sim::FilterHandle;
#pragma link C++ class dd4hep::sim::Geant4Filter;
#pragma link C++ class dd4hep::sim::Geant4GeneratorWrapper;

#pragma link C++ class dd4hep::sim::PhaseActionHandle;
#pragma link C++ class dd4hep::sim::Geant4ActionPhase;
#pragma link C++ class dd4hep::sim::Geant4PhaseAction;

#pragma link C++ class dd4hep::Callback;
#pragma link C++ class dd4hep::Callback::mfunc_t;

// Other (specialized) components
#pragma link C++ class dd4hep::sim::Geant4DataDump;
#pragma link C++ class dd4hep::sim::Geant4Random;
#pragma link C++ class dd4hep::sim::Geant4ParticleHandler;
#pragma link C++ class dd4hep::sim::Geant4UIManager;
#pragma link C++ class dd4hep::sim::Geant4UserParticleHandler;


// somehow the symbol Geometry moved into global namespace. Redeclare it here
//namespace detail {}
//#pragma link C++ namespace detail;

#endif

// CLHEP stuff
#include <CLHEP/Random/Random.h>
#if defined(__CINT__) || defined(__MAKECINT__) || defined(__CLING__) || defined(__ROOTCLING__)

#pragma link C++ namespace CLHEP;
#pragma link C++ class CLHEP::HepRandom;
#pragma link C++ class CLHEP::HepRandomEngine;
#endif

#undef  _BACKWARD_BACKWARD_WARNING_H

Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4Action is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class dd4hep::sim::Geant4ActionPhase is available even though it has a TClass initialization routine.
Traceback (most recent call last):
  File "/home/runner/work/DD4hep/DD4hep/bin/ddsim", line 25, in <module>
    RUNNER.run()
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDSim/DD4hepSimulation.py", line 298, in run
    import DDG4
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 269, in <module>
    _setup_callback('Geant4ActionPhase')
  File "/home/runner/work/DD4hep/DD4hep/lib/python3.9/site-packages/DDG4.py", line 265, in _setup_callback
    setattr(o, '__adopt', getattr(o, 'add'))
AttributeError: <class cppyy.gbl.dd4hep.sim.Geant4ActionPhase at 0x8f72040> has no attribute 'add'. Full details:
  type object 'Geant4ActionPhase' has no attribute 'add'
  'dd4hep::sim::Geant4ActionPhase::add' is not a known C++ class
  'add' is not a known C++ template
  'add' is not a known C++ enum

Check warning on line 0 in t_CLICSiD_DDG4_CLICSiDXML_as_AClick_LONGTEST

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 3 runs failed: t_CLICSiD_DDG4_CLICSiDXML_as_AClick_LONGTEST (t_CLICSiD_DDG4_CLICSiDXML_as_AClick_LONGTEST)

artifacts/Test Results LCG_104x86_64-el9-clang16-opt/examples/build/TestResults_2.xml [took 3s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/examples/lib:/home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/thepeg/2.2.3-d272a/x86_64-el9-clang16-opt/lib/ThePEG:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/herwig++/7.2.3-cad3d/x86_64-el9-clang16-opt/lib/Herwig:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft.cern.ch/lcg/releases/java/8u362-88cd4/x86_64-el9-clang16-opt/jre/lib/amd64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clang/16.0.3-9dda8/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/readr/rcon:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib
 ### running test :  'root.exe  -b -x -n -q -l /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDXML")'

Processing /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDXML")...
Info in <TUnixSystem::ACLiC>: creating shared library /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C.so
In file included from /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.cxx:14:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TClass.h:23:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TDictionary.h:44:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TNamed.h:25:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TObject.h:17:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/Rtypes.h:23:
/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/RtypesCore.h:28:10: fatal error: 'cstddef' file not found
#include <cstddef> // size_t, NULL
         ^~~~~~~~~
1 error generated.
clang-16: error: no such file or directory: '/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.o'
Error in <ACLiC>: Executing 'cd "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples" ; clang++ -fPIC -c -O3 -DNDEBUG -std=c++20 -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -pipe -W -Woverloaded-virtual -fsigned-char -pthread  -I$ROOTSYS/include -I"/home/runner/work/DD4hep/DD4hep/examples/include" -I"/home/runner/work/DD4hep/DD4hep/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include/Geant4" -I"/cvmfs/sft.cern.ch/lcg/releases/jsonmcpp/3.10.5-f26c3/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/src/cpp" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/releases/Python/3.9.12-9a1bc/x86_64-el9-clang16-opt/include/python3.9" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/RInside/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/Rcpp/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling/plugins/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include"   -D__ACLIC__ "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.cxx" ; clang++ -O3 -DNDEBUG "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.o" -shared  -rdynamic  "/lib64/libc.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libgcc_s.so" "/lib64/libm.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libstdc++.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libRint.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libCore.so" "/lib64/liblzma.so.5" "/lib64/libz.so.1" "/lib64/libnss_sss.so.2" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libRIO.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libThread.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libCling.so" "/lib64/libtinfo.so.6" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libMathCore.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libImt.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libMultiProc.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libNet.so" "/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/libtbb.so.2" "/lib64/libssl.so.3" "/lib64/libcrypto.so.3" -o "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C.so"' failed!
Status(.L /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick.C+) = 0
input_line_11:2:3: error: use of undeclared identifier 'initAClick'
 (initAClick())
  ^
Error in <HandleInterpreterException>: Error evaluating expression (initAClick())
Execution of your code was aborted.
Status(.L /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick.C+) = 0
input_line_13:2:3: error: use of undeclared identifier 'processMacro'
 (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDXML", true))
  ^
Error in <HandleInterpreterException>: Error evaluating expression (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDXML", true))
Execution of your code was aborted.
Status(processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDXML",true)) = 0

Check warning on line 0 in t_CLICSiD_DDG4_CLICSiDAClick_as_AClick_LONGTEST

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 3 runs failed: t_CLICSiD_DDG4_CLICSiDAClick_as_AClick_LONGTEST (t_CLICSiD_DDG4_CLICSiDAClick_as_AClick_LONGTEST)

artifacts/Test Results LCG_104x86_64-el9-clang16-opt/examples/build/TestResults_2.xml [took 2s]
Raw output
Error regular expression found in output. Regex=[Error]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/examples/lib:/home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/thepeg/2.2.3-d272a/x86_64-el9-clang16-opt/lib/ThePEG:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/herwig++/7.2.3-cad3d/x86_64-el9-clang16-opt/lib/Herwig:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft.cern.ch/lcg/releases/java/8u362-88cd4/x86_64-el9-clang16-opt/jre/lib/amd64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clang/16.0.3-9dda8/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/readr/rcon:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib
 ### running test :  'root.exe  -b -x -n -q -l /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDAClick")'

Processing /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDAClick")...
Info in <TUnixSystem::ACLiC>: creating shared library /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C.so
In file included from /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.cxx:14:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TClass.h:23:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TDictionary.h:44:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TNamed.h:25:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TObject.h:17:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/Rtypes.h:23:
/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/RtypesCore.h:28:10: fatal error: 'cstddef' file not found
#include <cstddef> // size_t, NULL
         ^~~~~~~~~
1 error generated.
clang-16: error: no such file or directory: '/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.o'
Error in <ACLiC>: Executing 'cd "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples" ; clang++ -fPIC -c -O3 -DNDEBUG -std=c++20 -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -pipe -W -Woverloaded-virtual -fsigned-char -pthread  -I$ROOTSYS/include -I"/home/runner/work/DD4hep/DD4hep/examples/include" -I"/home/runner/work/DD4hep/DD4hep/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include/Geant4" -I"/cvmfs/sft.cern.ch/lcg/releases/jsonmcpp/3.10.5-f26c3/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/src/cpp" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/releases/Python/3.9.12-9a1bc/x86_64-el9-clang16-opt/include/python3.9" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/RInside/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/Rcpp/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling/plugins/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include"   -D__ACLIC__ "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.cxx" ; clang++ -O3 -DNDEBUG "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C_ACLiC_dict.o" -shared  -rdynamic  "/lib64/libc.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libgcc_s.so" "/lib64/libm.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libstdc++.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libRint.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libCore.so" "/lib64/liblzma.so.5" "/lib64/libz.so.1" "/lib64/libnss_sss.so.2" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libRIO.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libThread.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libCling.so" "/lib64/libtinfo.so.6" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libMathCore.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libImt.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libMultiProc.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libNet.so" "/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/libtbb.so.2" "/lib64/libssl.so.3" "/lib64/libcrypto.so.3" -o "/home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick_C.so"' failed!
Status(.L /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick.C+) = 0
input_line_11:2:3: error: use of undeclared identifier 'initAClick'
 (initAClick())
  ^
Error in <HandleInterpreterException>: Error evaluating expression (initAClick())
Execution of your code was aborted.
Status(.L /home/runner/work/DD4hep/DD4hep/examples/DDG4/examples/initAClick.C+) = 0
input_line_13:2:3: error: use of undeclared identifier 'processMacro'
 (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDAClick", true))
  ^
Error in <HandleInterpreterException>: Error evaluating expression (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDAClick", true))
Execution of your code was aborted.
Status(processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/CLICSiD/scripts/CLICSiDAClick",true)) = 0

Check warning on line 0 in t_LHeD_DDG4_LHeDXML_as_ACLick_LONGTEST

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 3 runs failed: t_LHeD_DDG4_LHeDXML_as_ACLick_LONGTEST (t_LHeD_DDG4_LHeDXML_as_ACLick_LONGTEST)

artifacts/Test Results LCG_104x86_64-el9-clang16-opt/examples/build/TestResults_2.xml [took 3s]
Raw output
Error regular expression found in output. Regex=[Exception]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/examples/lib:/home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/thepeg/2.2.3-d272a/x86_64-el9-clang16-opt/lib/ThePEG:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/herwig++/7.2.3-cad3d/x86_64-el9-clang16-opt/lib/Herwig:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft.cern.ch/lcg/releases/java/8u362-88cd4/x86_64-el9-clang16-opt/jre/lib/amd64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clang/16.0.3-9dda8/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/readr/rcon:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib
 ### running test :  'root.exe  -b -x -n -q -l /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDXML")'

Processing /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDXML")...
Info in <TUnixSystem::ACLiC>: creating shared library /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C.so
In file included from /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.cxx:14:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TClass.h:23:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TDictionary.h:44:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TNamed.h:25:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TObject.h:17:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/Rtypes.h:23:
/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/RtypesCore.h:28:10: fatal error: 'cstddef' file not found
#include <cstddef> // size_t, NULL
         ^~~~~~~~~
1 error generated.
clang-16: error: no such file or directory: '/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.o'
Error in <ACLiC>: Executing 'cd "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts" ; clang++ -fPIC -c -O3 -DNDEBUG -std=c++20 -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -pipe -W -Woverloaded-virtual -fsigned-char -pthread  -I$ROOTSYS/include -I"/home/runner/work/DD4hep/DD4hep/examples/include" -I"/home/runner/work/DD4hep/DD4hep/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include/Geant4" -I"/cvmfs/sft.cern.ch/lcg/releases/jsonmcpp/3.10.5-f26c3/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/src/cpp" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/releases/Python/3.9.12-9a1bc/x86_64-el9-clang16-opt/include/python3.9" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/RInside/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/Rcpp/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling/plugins/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include"   -D__ACLIC__ "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.cxx" ; clang++ -O3 -DNDEBUG "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.o" -shared  -rdynamic  "/lib64/libc.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libgcc_s.so" "/lib64/libm.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libstdc++.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libRint.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libCore.so" "/lib64/liblzma.so.5" "/lib64/libz.so.1" "/lib64/libnss_sss.so.2" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libRIO.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libThread.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libCling.so" "/lib64/libtinfo.so.6" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libMathCore.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libImt.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libMultiProc.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libNet.so" "/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/libtbb.so.2" "/lib64/libssl.so.3" "/lib64/libcrypto.so.3" -o "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C.so"' failed!
Status(.L /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick.C+) = 0
input_line_11:2:3: error: use of undeclared identifier 'initAClick'
 (initAClick())
  ^
Error in <HandleInterpreterException>: Error evaluating expression (initAClick())
Execution of your code was aborted.
Status(.L /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick.C+) = 0
input_line_13:2:3: error: use of undeclared identifier 'processMacro'
 (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDXML", true))
  ^
Error in <HandleInterpreterException>: Error evaluating expression (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDXML", true))
Execution of your code was aborted.
Status(processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDXML",true)) = 0

Check warning on line 0 in t_LHeD_DDG4_LHeDACLick_as_ACLick_LONGTEST

See this annotation in the file changed.

@github-actions github-actions / Test Results

1 out of 3 runs failed: t_LHeD_DDG4_LHeDACLick_as_ACLick_LONGTEST (t_LHeD_DDG4_LHeDACLick_as_ACLick_LONGTEST)

artifacts/Test Results LCG_104x86_64-el9-clang16-opt/examples/build/TestResults_2.xml [took 3s]
Raw output
Error regular expression found in output. Regex=[Exception]
 #### LD_LIBRARY_PATH = :  /home/runner/work/DD4hep/DD4hep/examples/lib:/home/runner/work/DD4hep/DD4hep/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/thepeg/2.2.3-d272a/x86_64-el9-clang16-opt/lib/ThePEG:/cvmfs/sft.cern.ch/lcg/releases/MCGenerators/herwig++/7.2.3-cad3d/x86_64-el9-clang16-opt/lib/Herwig:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/jaxlib/mlir/_mlir_libs:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/torch/lib:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/contrib/tensor_forest:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/python3.9/site-packages/tensorflow/python/framework:/cvmfs/sft.cern.ch/lcg/releases/java/8u362-88cd4/x86_64-el9-clang16-opt/jre/lib/amd64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib64:/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clang/16.0.3-9dda8/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/binutils/2.40-acaab/x86_64-el9/lib:/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/readr/rcon:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/clhep/2.4.6.4-2ef70/x86_64-el9-clang16-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/XercesC/3.2.4-9e637/x86_64-el9-clang16-opt/lib
 #### DYLD_LIBRARY_PATH = :  /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib
 ### running test :  'root.exe  -b -x -n -q -l /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDACLick")'

Processing /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/run.C("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDACLick")...
Info in <TUnixSystem::ACLiC>: creating shared library /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C.so
In file included from /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.cxx:14:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TClass.h:23:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TDictionary.h:44:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TNamed.h:25:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/TObject.h:17:
In file included from /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/Rtypes.h:23:
/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/RtypesCore.h:28:10: fatal error: 'cstddef' file not found
#include <cstddef> // size_t, NULL
         ^~~~~~~~~
1 error generated.
clang-16: error: no such file or directory: '/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.o'
Error in <ACLiC>: Executing 'cd "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts" ; clang++ -fPIC -c -O3 -DNDEBUG -std=c++20 -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -pipe -W -Woverloaded-virtual -fsigned-char -pthread  -I$ROOTSYS/include -I"/home/runner/work/DD4hep/DD4hep/examples/include" -I"/home/runner/work/DD4hep/DD4hep/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include/Geant4" -I"/cvmfs/sft.cern.ch/lcg/releases/jsonmcpp/3.10.5-f26c3/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/src/cpp" -I"/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/include" -I"/cvmfs/sft.cern.ch/lcg/releases/Python/3.9.12-9a1bc/x86_64-el9-clang16-opt/include/python3.9" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/RInside/include" -I"/cvmfs/sft.cern.ch/lcg/releases/R/4.3.0-09c47/x86_64-el9-clang16-opt/lib64/R/library/Rcpp/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/etc//cling/plugins/include" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include/" -I"/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/include"   -D__ACLIC__ "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.cxx" ; clang++ -O3 -DNDEBUG "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C_ACLiC_dict.o" -shared  -rdynamic  "/lib64/libc.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libgcc_s.so" "/lib64/libm.so" "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/lib64/libstdc++.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libRint.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libCore.so" "/lib64/liblzma.so.5" "/lib64/libz.so.1" "/lib64/libnss_sss.so.2" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libRIO.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libThread.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libCling.so" "/lib64/libtinfo.so.6" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/lib/libMathCore.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libImt.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libMultiProc.so" "/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.28.04-740f6/x86_64-el9-clang16-opt/bin/../lib/libNet.so" "/cvmfs/sft.cern.ch/lcg/views/LCG_104/x86_64-el9-clang16-opt/lib/libtbb.so.2" "/lib64/libssl.so.3" "/lib64/libcrypto.so.3" -o "/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick_C.so"' failed!
Status(.L /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick.C+) = 0
input_line_11:2:3: error: use of undeclared identifier 'initAClick'
 (initAClick())
  ^
Error in <HandleInterpreterException>: Error evaluating expression (initAClick())
Execution of your code was aborted.
Status(.L /home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/initAClick.C+) = 0
input_line_13:2:3: error: use of undeclared identifier 'processMacro'
 (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDACLick", true))
  ^
Error in <HandleInterpreterException>: Error evaluating expression (processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDACLick", true))
Execution of your code was aborted.
Status(processMacro("/home/runner/work/DD4hep/DD4hep/examples/examples/LHeD/scripts/LHeDACLick",true)) = 0

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results

359 tests found

There are 359 tests, see "Raw output" for the full list of tests.
Raw output
TestFailToCompile ‑ TestFailToCompile
t_AlignDet_AlephTPC_global_align ‑ t_AlignDet_AlephTPC_global_align
t_AlignDet_AlephTPC_global_reset ‑ t_AlignDet_AlephTPC_global_reset
t_AlignDet_AlephTPC_load ‑ t_AlignDet_AlephTPC_load
t_AlignDet_CLICSiD_align_nominal_LONGTEST ‑ t_AlignDet_CLICSiD_align_nominal_LONGTEST
t_AlignDet_CLICSiD_stress_LONGTEST ‑ t_AlignDet_CLICSiD_stress_LONGTEST
t_AlignDet_Telescope_align_new ‑ t_AlignDet_Telescope_align_new
t_AlignDet_Telescope_align_nominal ‑ t_AlignDet_Telescope_align_nominal
t_AlignDet_Telescope_dump_geometry ‑ t_AlignDet_Telescope_dump_geometry
t_AlignDet_Telescope_dump_xml ‑ t_AlignDet_Telescope_dump_xml
t_AlignDet_Telescope_populate ‑ t_AlignDet_Telescope_populate
t_AlignDet_Telescope_read_xml ‑ t_AlignDet_Telescope_read_xml
t_AlignDet_Telescope_readback_xml ‑ t_AlignDet_Telescope_readback_xml
t_AlignDet_Telescope_stress ‑ t_AlignDet_Telescope_stress
t_AlignDet_Telescope_write_xml ‑ t_AlignDet_Telescope_write_xml
t_CLICSiD_DDG4_CLICMagField_LONGTEST ‑ t_CLICSiD_DDG4_CLICMagField_LONGTEST
t_CLICSiD_DDG4_CLICPhysics_LONGTEST ‑ t_CLICSiD_DDG4_CLICPhysics_LONGTEST
t_CLICSiD_DDG4_CLICRandom_LONGTEST ‑ t_CLICSiD_DDG4_CLICRandom_LONGTEST
t_CLICSiD_DDG4_CLICSiDAClick_as_AClick_LONGTEST ‑ t_CLICSiD_DDG4_CLICSiDAClick_as_AClick_LONGTEST
t_CLICSiD_DDG4_CLICSiDAClick_as_exe_LONGTEST ‑ t_CLICSiD_DDG4_CLICSiDAClick_as_exe_LONGTEST
t_CLICSiD_DDG4_CLICSiDScan_LONGTEST ‑ t_CLICSiD_DDG4_CLICSiDScan_LONGTEST
t_CLICSiD_DDG4_CLICSiDXML_as_AClick_LONGTEST ‑ t_CLICSiD_DDG4_CLICSiDXML_as_AClick_LONGTEST
t_CLICSiD_DDG4_CLICSiDXML_as_exe_LONGTEST ‑ t_CLICSiD_DDG4_CLICSiDXML_as_exe_LONGTEST
t_CLICSiD_DDG4_g4geometry_scan_LONGTEST ‑ t_CLICSiD_DDG4_g4geometry_scan_LONGTEST
t_CLICSiD_DDG4_g4material_scan_LONGTEST ‑ t_CLICSiD_DDG4_g4material_scan_LONGTEST
t_CLICSiD_DDG4_testDDPython_LONGTEST ‑ t_CLICSiD_DDG4_testDDPython_LONGTEST
t_CLICSiD_GDML_export_LONGTEST ‑ t_CLICSiD_GDML_export_LONGTEST
t_CLICSiD_GDML_import_LONGTEST ‑ t_CLICSiD_GDML_import_LONGTEST
t_CLICSiD_check_checksum_EcalBarrel ‑ t_CLICSiD_check_checksum_EcalBarrel
t_CLICSiD_check_checksum_full ‑ t_CLICSiD_check_checksum_full
t_CLICSiD_check_geometry_LONGTEST ‑ t_CLICSiD_check_geometry_LONGTEST
t_CLICSiD_check_overlaps_LONGTEST ‑ t_CLICSiD_check_overlaps_LONGTEST
t_CLICSiD_converter_description_LONGTEST ‑ t_CLICSiD_converter_description_LONGTEST
t_CLICSiD_converter_vis_LONGTEST ‑ t_CLICSiD_converter_vis_LONGTEST
t_CLICSiD_multiple_inputs ‑ t_CLICSiD_multiple_inputs
t_Check_Shape_Tessellated_check_checksum ‑ t_Check_Shape_Tessellated_check_checksum
t_Check_Shape_Tessellated_check_checksum_with_meshes ‑ t_Check_Shape_Tessellated_check_checksum_with_meshes
t_ClientTests_Bitfield64_BarrelSides ‑ t_ClientTests_Bitfield64_BarrelSides
t_ClientTests_Bitfield64_BarrelSides2 ‑ t_ClientTests_Bitfield64_BarrelSides2
t_ClientTests_Bitfield64_LongVoldID ‑ t_ClientTests_Bitfield64_LongVoldID
t_ClientTests_Check_Handle_Casts ‑ t_ClientTests_Check_Handle_Casts
t_ClientTests_Check_Shape_Box ‑ t_ClientTests_Check_Shape_Box
t_ClientTests_Check_Shape_Cone ‑ t_ClientTests_Check_Shape_Cone
t_ClientTests_Check_Shape_ConeSegment ‑ t_ClientTests_Check_Shape_ConeSegment
t_ClientTests_Check_Shape_CutTube ‑ t_ClientTests_Check_Shape_CutTube
t_ClientTests_Check_Shape_EightPointSolid ‑ t_ClientTests_Check_Shape_EightPointSolid
t_ClientTests_Check_Shape_Eightpoint_Reflect_DetElement ‑ t_ClientTests_Check_Shape_Eightpoint_Reflect_DetElement
t_ClientTests_Check_Shape_Eightpoint_Reflect_Volume ‑ t_ClientTests_Check_Shape_Eightpoint_Reflect_Volume
t_ClientTests_Check_Shape_ElTube ‑ t_ClientTests_Check_Shape_ElTube
t_ClientTests_Check_Shape_ExtrudedPolygon ‑ t_ClientTests_Check_Shape_ExtrudedPolygon
t_ClientTests_Check_Shape_Hyperboloid ‑ t_ClientTests_Check_Shape_Hyperboloid
t_ClientTests_Check_Shape_Paraboloid ‑ t_ClientTests_Check_Shape_Paraboloid
t_ClientTests_Check_Shape_Polycone ‑ t_ClientTests_Check_Shape_Polycone
t_ClientTests_Check_Shape_Polyhedra ‑ t_ClientTests_Check_Shape_Polyhedra
t_ClientTests_Check_Shape_PseudoTrap ‑ t_ClientTests_Check_Shape_PseudoTrap
t_ClientTests_Check_Shape_PseudoTrap1 ‑ t_ClientTests_Check_Shape_PseudoTrap1
t_ClientTests_Check_Shape_PseudoTrap2 ‑ t_ClientTests_Check_Shape_PseudoTrap2
t_ClientTests_Check_Shape_Scaled_Cone ‑ t_ClientTests_Check_Shape_Scaled_Cone
t_ClientTests_Check_Shape_Sphere ‑ t_ClientTests_Check_Shape_Sphere
t_ClientTests_Check_Shape_Tessellated ‑ t_ClientTests_Check_Shape_Tessellated
t_ClientTests_Check_Shape_Torus ‑ t_ClientTests_Check_Shape_Torus
t_ClientTests_Check_Shape_Trap ‑ t_ClientTests_Check_Shape_Trap
t_ClientTests_Check_Shape_Trd1 ‑ t_ClientTests_Check_Shape_Trd1
t_ClientTests_Check_Shape_Trd2 ‑ t_ClientTests_Check_Shape_Trd2
t_ClientTests_Check_Shape_TruncatedTube ‑ t_ClientTests_Check_Shape_TruncatedTube
t_ClientTests_Check_Shape_Tube ‑ t_ClientTests_Check_Shape_Tube
t_ClientTests_Check_Temp_Pressure_Air ‑ t_ClientTests_Check_Temp_Pressure_Air
t_ClientTests_Check_Temp_Pressure_Air_NTP ‑ t_ClientTests_Check_Temp_Pressure_Air_NTP
t_ClientTests_Check_Temp_Pressure_Air_STP ‑ t_ClientTests_Check_Temp_Pressure_Air_STP
t_ClientTests_Check_VolumeDivisionTest ‑ t_ClientTests_Check_VolumeDivisionTest
t_ClientTests_Check_reflection_matrices ‑ t_ClientTests_Check_reflection_matrices
t_ClientTests_DetectorCheck_plugin ‑ t_ClientTests_DetectorCheck_plugin
t_ClientTests_DumpElements ‑ t_ClientTests_DumpElements
t_ClientTests_DumpMaterials ‑ t_ClientTests_DumpMaterials
t_ClientTests_MiniTel_JSON_Detector ‑ t_ClientTests_MiniTel_JSON_Detector
t_ClientTests_MiniTel_JSON_Dump ‑ t_ClientTests_MiniTel_JSON_Dump
t_ClientTests_MultiPlace ‑ t_ClientTests_MultiPlace
t_ClientTests_MultipleGeometries ‑ t_ClientTests_MultipleGeometries
t_ClientTests_Save_ROOT_MiniTel_LONGTEST ‑ t_ClientTests_Save_ROOT_MiniTel_LONGTEST
t_ClientTests_check_geometry_BoxTrafos_LONGTEST ‑ t_ClientTests_check_geometry_BoxTrafos_LONGTEST
t_ClientTests_check_geometry_CaloEndcapReflection_LONGTEST ‑ t_ClientTests_check_geometry_CaloEndcapReflection_LONGTEST
t_ClientTests_check_geometry_IronCylinder_LONGTEST ‑ t_ClientTests_check_geometry_IronCylinder_LONGTEST
t_ClientTests_check_geometry_MiniTel_LONGTEST ‑ t_ClientTests_check_geometry_MiniTel_LONGTEST
t_ClientTests_check_geometry_MultiCollections_LONGTEST ‑ t_ClientTests_check_geometry_MultiCollections_LONGTEST
t_ClientTests_check_geometry_NestedSimple_LONGTEST ‑ t_ClientTests_check_geometry_NestedSimple_LONGTEST
t_ClientTests_check_geometry_SiliconBlock_LONGTEST ‑ t_ClientTests_check_geometry_SiliconBlock_LONGTEST
t_ClientTests_check_overlaps_BoxTrafos_LONGTEST ‑ t_ClientTests_check_overlaps_BoxTrafos_LONGTEST
t_ClientTests_check_overlaps_CaloEndcapReflection_LONGTEST ‑ t_ClientTests_check_overlaps_CaloEndcapReflection_LONGTEST
t_ClientTests_check_overlaps_IronCylinder_LONGTEST ‑ t_ClientTests_check_overlaps_IronCylinder_LONGTEST
t_ClientTests_check_overlaps_MiniTel_LONGTEST ‑ t_ClientTests_check_overlaps_MiniTel_LONGTEST
t_ClientTests_check_overlaps_MultiCollections_LONGTEST ‑ t_ClientTests_check_overlaps_MultiCollections_LONGTEST
t_ClientTests_check_overlaps_NestedSimple_LONGTEST ‑ t_ClientTests_check_overlaps_NestedSimple_LONGTEST
t_ClientTests_check_overlaps_SiliconBlock_LONGTEST ‑ t_ClientTests_check_overlaps_SiliconBlock_LONGTEST
t_ClientTests_converter_description_Assemblies ‑ t_ClientTests_converter_description_Assemblies
t_ClientTests_converter_description_BoxTrafos ‑ t_ClientTests_converter_description_BoxTrafos
t_ClientTests_converter_description_CaloEndcapReflection ‑ t_ClientTests_converter_description_CaloEndcapReflection
t_ClientTests_converter_description_IronCylinder ‑ t_ClientTests_converter_description_IronCylinder
t_ClientTests_converter_description_LheD_tracker ‑ t_ClientTests_converter_description_LheD_tracker
t_ClientTests_converter_description_MagnetFields ‑ t_ClientTests_converter_description_MagnetFields
t_ClientTests_converter_description_MiniTel ‑ t_ClientTests_converter_description_MiniTel
t_ClientTests_converter_description_MultiCollections ‑ t_ClientTests_converter_description_MultiCollections
t_ClientTests_converter_description_MultiSegmentations ‑ t_ClientTests_converter_description_MultiSegmentations
t_ClientTests_converter_description_NestedDetectors ‑ t_ClientTests_converter_description_NestedDetectors
t_ClientTests_converter_description_NestedSimple ‑ t_ClientTests_converter_description_NestedSimple
t_ClientTests_converter_description_ParamVolume1D ‑ t_ClientTests_converter_description_ParamVolume1D
t_ClientTests_converter_description_ParamVolume2D ‑ t_ClientTests_converter_description_ParamVolume2D
t_ClientTests_converter_description_ParamVolume3D ‑ t_ClientTests_converter_description_ParamVolume3D
t_ClientTests_converter_description_SectorBarrelCalorimeter ‑ t_ClientTests_converter_description_SectorBarrelCalorimeter
t_ClientTests_converter_description_SiliconBlock ‑ t_ClientTests_converter_description_SiliconBlock
t_ClientTests_converter_vis_Assemblies ‑ t_ClientTests_converter_vis_Assemblies
t_ClientTests_converter_vis_BoxTrafos ‑ t_ClientTests_converter_vis_BoxTrafos
t_ClientTests_converter_vis_CaloEndcapReflection ‑ t_ClientTests_converter_vis_CaloEndcapReflection
t_ClientTests_converter_vis_IronCylinder ‑ t_ClientTests_converter_vis_IronCylinder
t_ClientTests_converter_vis_LheD_tracker ‑ t_ClientTests_converter_vis_LheD_tracker
t_ClientTests_converter_vis_MagnetFields ‑ t_ClientTests_converter_vis_MagnetFields
t_ClientTests_converter_vis_MiniTel ‑ t_ClientTests_converter_vis_MiniTel
t_ClientTests_converter_vis_MultiCollections ‑ t_ClientTests_converter_vis_MultiCollections
t_ClientTests_converter_vis_MultiSegmentations ‑ t_ClientTests_converter_vis_MultiSegmentations
t_ClientTests_converter_vis_NestedDetectors ‑ t_ClientTests_converter_vis_NestedDetectors
t_ClientTests_converter_vis_NestedSimple ‑ t_ClientTests_converter_vis_NestedSimple
t_ClientTests_converter_vis_ParamVolume1D ‑ t_ClientTests_converter_vis_ParamVolume1D
t_ClientTests_converter_vis_ParamVolume2D ‑ t_ClientTests_converter_vis_ParamVolume2D
t_ClientTests_converter_vis_ParamVolume3D ‑ t_ClientTests_converter_vis_ParamVolume3D
t_ClientTests_converter_vis_SectorBarrelCalorimeter ‑ t_ClientTests_converter_vis_SectorBarrelCalorimeter
t_ClientTests_converter_vis_SiliconBlock ‑ t_ClientTests_converter_vis_SiliconBlock
t_ClientTests_g4_gdml_MT ‑ t_ClientTests_g4_gdml_MT
t_ClientTests_g4_gdml_detector ‑ t_ClientTests_g4_gdml_detector
t_ClientTests_g4material_scan_Assemblies_LONGTEST ‑ t_ClientTests_g4material_scan_Assemblies_LONGTEST
t_ClientTests_g4material_scan_BoxTrafos_LONGTEST ‑ t_ClientTests_g4material_scan_BoxTrafos_LONGTEST
t_ClientTests_g4material_scan_CaloEndcapReflection_LONGTEST ‑ t_ClientTests_g4material_scan_CaloEndcapReflection_LONGTEST
t_ClientTests_g4material_scan_LheD_tracker_LONGTEST ‑ t_ClientTests_g4material_scan_LheD_tracker_LONGTEST
t_ClientTests_g4material_scan_MagnetFields_LONGTEST ‑ t_ClientTests_g4material_scan_MagnetFields_LONGTEST
t_ClientTests_g4material_scan_MiniTel_LONGTEST ‑ t_ClientTests_g4material_scan_MiniTel_LONGTEST
t_ClientTests_g4material_scan_MultiCollections_LONGTEST ‑ t_ClientTests_g4material_scan_MultiCollections_LONGTEST
t_ClientTests_g4material_scan_NestedDetectors_LONGTEST ‑ t_ClientTests_g4material_scan_NestedDetectors_LONGTEST
t_ClientTests_g4material_scan_NestedSimple_LONGTEST ‑ t_ClientTests_g4material_scan_NestedSimple_LONGTEST
t_ClientTests_g4material_scan_ParamVolume1D_LONGTEST ‑ t_ClientTests_g4material_scan_ParamVolume1D_LONGTEST
t_ClientTests_g4material_scan_ParamVolume2D_LONGTEST ‑ t_ClientTests_g4material_scan_ParamVolume2D_LONGTEST
t_ClientTests_g4material_scan_ParamVolume3D_LONGTEST ‑ t_ClientTests_g4material_scan_ParamVolume3D_LONGTEST
t_ClientTests_g4material_scan_SiliconBlock_LONGTEST ‑ t_ClientTests_g4material_scan_SiliconBlock_LONGTEST
t_ClientTests_material_scan_Assemblies ‑ t_ClientTests_material_scan_Assemblies
t_ClientTests_material_scan_BoxTrafos ‑ t_ClientTests_material_scan_BoxTrafos
t_ClientTests_material_scan_CaloEndcapReflection ‑ t_ClientTests_material_scan_CaloEndcapReflection
t_ClientTests_material_scan_LheD_tracker ‑ t_ClientTests_material_scan_LheD_tracker
t_ClientTests_material_scan_MagnetFields ‑ t_ClientTests_material_scan_MagnetFields
t_ClientTests_material_scan_MiniTel ‑ t_ClientTests_material_scan_MiniTel
t_ClientTests_material_scan_MultiCollections ‑ t_ClientTests_material_scan_MultiCollections
t_ClientTests_material_scan_NestedDetectors ‑ t_ClientTests_material_scan_NestedDetectors
t_ClientTests_material_scan_NestedSimple ‑ t_ClientTests_material_scan_NestedSimple
t_ClientTests_material_scan_ParamVolume1D ‑ t_ClientTests_material_scan_ParamVolume1D
t_ClientTests_material_scan_ParamVolume2D ‑ t_ClientTests_material_scan_ParamVolume2D
t_ClientTests_material_scan_ParamVolume3D ‑ t_ClientTests_material_scan_ParamVolume3D
t_ClientTests_material_scan_SiliconBlock ‑ t_ClientTests_material_scan_SiliconBlock
t_ClientTests_namespace_constants ‑ t_ClientTests_namespace_constants
t_ClientTests_parse_xml_string_BoxTrafos ‑ t_ClientTests_parse_xml_string_BoxTrafos
t_ClientTests_parse_xml_string_CaloEndcapReflection ‑ t_ClientTests_parse_xml_string_CaloEndcapReflection
t_ClientTests_parse_xml_string_IronCylinder ‑ t_ClientTests_parse_xml_string_IronCylinder
t_ClientTests_parse_xml_string_MiniTel ‑ t_ClientTests_parse_xml_string_MiniTel
t_ClientTests_parse_xml_string_MultiCollections ‑ t_ClientTests_parse_xml_string_MultiCollections
t_ClientTests_parse_xml_string_NestedSimple ‑ t_ClientTests_parse_xml_string_NestedSimple
t_ClientTests_parse_xml_string_SiliconBlock ‑ t_ClientTests_parse_xml_string_SiliconBlock
t_ClientTests_property_test ‑ t_ClientTests_property_test
t_ClientTests_sim_Assemblies ‑ t_ClientTests_sim_Assemblies
t_ClientTests_sim_Check_Temp_Pressure_Air ‑ t_ClientTests_sim_Check_Temp_Pressure_Air
t_ClientTests_sim_LheD_tracker ‑ t_ClientTests_sim_LheD_tracker
t_ClientTests_sim_MiniTel ‑ t_ClientTests_sim_MiniTel
t_ClientTests_sim_MiniTel_hepmc ‑ t_ClientTests_sim_MiniTel_hepmc
t_ClientTests_sim_MiniTel_limitset ‑ t_ClientTests_sim_MiniTel_limitset
t_ClientTests_sim_MiniTel_prod_cuts ‑ t_ClientTests_sim_MiniTel_prod_cuts
t_ClientTests_sim_MinitTel_edm4hep_write ‑ t_ClientTests_sim_MinitTel_edm4hep_write
t_ClientTests_sim_MultiCollections ‑ t_ClientTests_sim_MultiCollections
t_ClientTests_sim_MultiSegmentCollections ‑ t_ClientTests_sim_MultiSegmentCollections
t_ClientTests_sim_MultiSegmentations ‑ t_ClientTests_sim_MultiSegmentations
t_ClientTests_sim_NestedDetectors ‑ t_ClientTests_sim_NestedDetectors
t_ClientTests_sim_ParamVolume1D_LONGTEST ‑ t_ClientTests_sim_ParamVolume1D_LONGTEST
t_ClientTests_sim_ParamVolume2D_LONGTEST ‑ t_ClientTests_sim_ParamVolume2D_LONGTEST
t_ClientTests_sim_ParamVolume3D_LONGTEST ‑ t_ClientTests_sim_ParamVolume3D_LONGTEST
t_ClientTests_sim_SiliconBlockFastSim_LONGTEST ‑ t_ClientTests_sim_SiliconBlockFastSim_LONGTEST
t_ClientTests_sim_SiliconBlockGFlash_LONGTEST ‑ t_ClientTests_sim_SiliconBlockGFlash_LONGTEST
t_ClientTests_sim_TrackingRegion ‑ t_ClientTests_sim_TrackingRegion
t_ClientTests_sim_UserAnalysis ‑ t_ClientTests_sim_UserAnalysis
t_ClientTests_volume_materials_Assemblies ‑ t_ClientTests_volume_materials_Assemblies
t_ClientTests_volume_materials_BoxTrafos ‑ t_ClientTests_volume_materials_BoxTrafos
t_ClientTests_volume_materials_CaloEndcapReflection ‑ t_ClientTests_volume_materials_CaloEndcapReflection
t_ClientTests_volume_materials_IronCylinder ‑ t_ClientTests_volume_materials_IronCylinder
t_ClientTests_volume_materials_LheD_tracker ‑ t_ClientTests_volume_materials_LheD_tracker
t_ClientTests_volume_materials_MagnetFields ‑ t_ClientTests_volume_materials_MagnetFields
t_ClientTests_volume_materials_MiniTel ‑ t_ClientTests_volume_materials_MiniTel
t_ClientTests_volume_materials_MultiCollections ‑ t_ClientTests_volume_materials_MultiCollections
t_ClientTests_volume_materials_MultiSegmentations ‑ t_ClientTests_volume_materials_MultiSegmentations
t_ClientTests_volume_materials_NestedDetectors ‑ t_ClientTests_volume_materials_NestedDetectors
t_ClientTests_volume_materials_NestedSimple ‑ t_ClientTests_volume_materials_NestedSimple
t_ClientTests_volume_materials_ParamVolume1D ‑ t_ClientTests_volume_materials_ParamVolume1D
t_ClientTests_volume_materials_ParamVolume2D ‑ t_ClientTests_volume_materials_ParamVolume2D
t_ClientTests_volume_materials_ParamVolume3D ‑ t_ClientTests_volume_materials_ParamVolume3D
t_ClientTests_volume_materials_SectorBarrelCalorimeter ‑ t_ClientTests_volume_materials_SectorBarrelCalorimeter
t_ClientTests_volume_materials_SiliconBlock ‑ t_ClientTests_volume_materials_SiliconBlock
t_ClientTests_volume_scanner ‑ t_ClientTests_volume_scanner
t_Conditions_CLICSiD_MT_LONGTEST ‑ t_Conditions_CLICSiD_MT_LONGTEST
t_Conditions_CLICSiD_root_load_cond_LONGTEST ‑ t_Conditions_CLICSiD_root_load_cond_LONGTEST
t_Conditions_CLICSiD_root_load_iov_LONGTEST ‑ t_Conditions_CLICSiD_root_load_iov_LONGTEST
t_Conditions_CLICSiD_root_load_usr_LONGTEST ‑ t_Conditions_CLICSiD_root_load_usr_LONGTEST
t_Conditions_CLICSiD_root_save_LONGTEST ‑ t_Conditions_CLICSiD_root_save_LONGTEST
t_Conditions_CLICSiD_stress2_LONGTEST ‑ t_Conditions_CLICSiD_stress2_LONGTEST
t_Conditions_CLICSiD_stress_LONGTEST ‑ t_Conditions_CLICSiD_stress_LONGTEST
t_Conditions_Telescope_MT_LONGTEST ‑ t_Conditions_Telescope_MT_LONGTEST
t_Conditions_Telescope_cond_dump_by_detelement ‑ t_Conditions_Telescope_cond_dump_by_detelement
t_Conditions_Telescope_cond_dump_by_pool ‑ t_Conditions_Telescope_cond_dump_by_pool
t_Conditions_Telescope_populate ‑ t_Conditions_Telescope_populate
t_Conditions_Telescope_root_load_iov ‑ t_Conditions_Telescope_root_load_iov
t_Conditions_Telescope_root_load_pool ‑ t_Conditions_Telescope_root_load_pool
t_Conditions_Telescope_root_load_usr ‑ t_Conditions_Telescope_root_load_usr
t_Conditions_Telescope_root_save ‑ t_Conditions_Telescope_root_save
t_Conditions_Telescope_stress ‑ t_Conditions_Telescope_stress
t_Conditions_Telescope_stress2 ‑ t_Conditions_Telescope_stress2
t_Conditions_Telescope_unresolved ‑ t_Conditions_Telescope_unresolved
t_Conditions_any_Telescope_populate ‑ t_Conditions_any_Telescope_populate
t_Conditions_any_basic ‑ t_Conditions_any_basic
t_Conditions_dynamic_payload ‑ t_Conditions_dynamic_payload
t_DDCAD_Check_Shape_BHV_Boxing_Toes ‑ t_DDCAD_Check_Shape_BHV_Boxing_Toes
t_DDCAD_Check_Shape_COB_dwarf ‑ t_DDCAD_Check_Shape_COB_dwarf
t_DDCAD_Check_Shape_Collada_duck ‑ t_DDCAD_Check_Shape_Collada_duck
t_DDCAD_Check_Shape_MS3D_jeep ‑ t_DDCAD_Check_Shape_MS3D_jeep
t_DDCAD_Check_Shape_PLY_Wuson ‑ t_DDCAD_Check_Shape_PLY_Wuson
t_DDCAD_Check_Shape_RelativePath ‑ t_DDCAD_Check_Shape_RelativePath
t_DDCAD_Issue1134_g4geometry_scan ‑ t_DDCAD_Issue1134_g4geometry_scan
t_DDCAD_Issue1134_g4overlap_check ‑ t_DDCAD_Issue1134_g4overlap_check
t_DDCAD_Issue1134_geometry_load ‑ t_DDCAD_Issue1134_geometry_load
t_DDCAD_Issue1134_overlap_check ‑ t_DDCAD_Issue1134_overlap_check
t_DDCAD_export_FCC_machine ‑ t_DDCAD_export_FCC_machine
t_DDCAD_export_cal_endcaps ‑ t_DDCAD_export_cal_endcaps
t_DDCAD_export_sid_vertex ‑ t_DDCAD_export_sid_vertex
t_DDCAD_import_FCC_machine ‑ t_DDCAD_import_FCC_machine
t_DDCAD_import_cal_endcaps ‑ t_DDCAD_import_cal_endcaps
t_DDCAD_import_sid_vertex ‑ t_DDCAD_import_sid_vertex
t_DDCMS_DumpDetElements ‑ t_DDCMS_DumpDetElements
t_DDCMS_DumpMaterials ‑ t_DDCMS_DumpMaterials
t_DDCMS_DumpVolumes ‑ t_DDCMS_DumpVolumes
t_DDCMS_LoadGeometry ‑ t_DDCMS_LoadGeometry
t_DDCMS_NamespaceConstants ‑ t_DDCMS_NamespaceConstants
t_DDCMS_Persist_Restore_DetTest1_LONGTEST ‑ t_DDCMS_Persist_Restore_DetTest1_LONGTEST
t_DDCMS_Persist_Restore_DetTest2_LONGTEST ‑ t_DDCMS_Persist_Restore_DetTest2_LONGTEST
t_DDCMS_Persist_Restore_LONGTEST ‑ t_DDCMS_Persist_Restore_LONGTEST
t_DDCMS_Persist_Restore_Nominal_LONGTEST ‑ t_DDCMS_Persist_Restore_Nominal_LONGTEST
t_DDCMS_Persist_Restore_Readouts_LONGTEST ‑ t_DDCMS_Persist_Restore_Readouts_LONGTEST
t_DDCMS_Persist_Restore_Sensitives_LONGTEST ‑ t_DDCMS_Persist_Restore_Sensitives_LONGTEST
t_DDCMS_Persist_Save_LONGTEST ‑ t_DDCMS_Persist_Save_LONGTEST
t_DDCMS_TestShapes ‑ t_DDCMS_TestShapes
t_DDCMS_VolumeMgrTest_PixelBarrel ‑ t_DDCMS_VolumeMgrTest_PixelBarrel
t_DDCMS_VolumeMgrTest_TIB ‑ t_DDCMS_VolumeMgrTest_TIB
t_DDCMS_VolumeMgrTest_TOB ‑ t_DDCMS_VolumeMgrTest_TOB
t_DDDigi_colored_noise ‑ t_DDDigi_colored_noise
t_DDDigi_framework ‑ t_DDDigi_framework
t_DDDigi_generate_ddg4_data ‑ t_DDDigi_generate_ddg4_data
t_DDDigi_generate_edm4hep_data ‑ t_DDDigi_generate_edm4hep_data
t_DDDigi_properties ‑ t_DDDigi_properties
t_DDDigi_test_attenuate ‑ t_DDDigi_test_attenuate
t_DDDigi_test_containers_parallel ‑ t_DDDigi_test_containers_parallel
t_DDDigi_test_deposit_count ‑ t_DDDigi_test_deposit_count
t_DDDigi_test_deposit_smear_energy ‑ t_DDDigi_test_deposit_smear_energy
t_DDDigi_test_deposit_smear_time ‑ t_DDDigi_test_deposit_smear_time
t_DDDigi_test_detector_resegmentation ‑ t_DDDigi_test_detector_resegmentation
t_DDDigi_test_digi_root_write ‑ t_DDDigi_test_digi_root_write
t_DDDigi_test_edm4hep_output ‑ t_DDDigi_test_edm4hep_output
t_DDDigi_test_edm4hep_read ‑ t_DDDigi_test_edm4hep_read
t_DDDigi_test_input_reading ‑ t_DDDigi_test_input_reading
t_DDDigi_test_move_IP ‑ t_DDDigi_test_move_IP
t_DDDigi_test_multi_interactions ‑ t_DDDigi_test_multi_interactions
t_DDDigi_test_processing_exception ‑ t_DDDigi_test_processing_exception
t_DDDigi_test_segmentation_split_1 ‑ t_DDDigi_test_segmentation_split_1
t_DDDigi_test_segmentation_split_2 ‑ t_DDDigi_test_segmentation_split_2
t_DDDigi_test_simple_adc_response ‑ t_DDDigi_test_simple_adc_response
t_DDDigi_test_smear_position ‑ t_DDDigi_test_smear_position
t_DDDigi_test_smear_track ‑ t_DDDigi_test_smear_track
t_DDDigi_test_spillover ‑ t_DDDigi_test_spillover
t_DDDigi_test_weighted_deposit_overlay ‑ t_DDDigi_test_weighted_deposit_overlay
t_DDG4_G4ExtendedMaterial_G4LogicalCrystalVolume ‑ t_DDG4_G4ExtendedMaterial_G4LogicalCrystalVolume
t_DDG4_HepMC_reader ‑ t_DDG4_HepMC_reader
t_DDG4_HepMC_reader_minbias ‑ t_DDG4_HepMC_reader_minbias
t_DDG4_MySensDet_g4material_scan_SiliconBlock_LONGTEST ‑ t_DDG4_MySensDet_g4material_scan_SiliconBlock_LONGTEST
t_DDG4_MySensDet_sim_SiliconBlock_LONGTEST ‑ t_DDG4_MySensDet_sim_SiliconBlock_LONGTEST
t_DDG4_TestStackingAction ‑ t_DDG4_TestStackingAction
t_DDG4_TestSteppingAction ‑ t_DDG4_TestSteppingAction
t_DDG4_Test_property_types ‑ t_DDG4_Test_property_types
t_DDG4_UIManager ‑ t_DDG4_UIManager
t_DDG4_material_volume_string_properties ‑ t_DDG4_material_volume_string_properties
t_LHeD_DDG4_LHeDACLick_as_ACLick_LONGTEST ‑ t_LHeD_DDG4_LHeDACLick_as_ACLick_LONGTEST
t_LHeD_DDG4_LHeDACLick_as_exe_LONGTEST ‑ t_LHeD_DDG4_LHeDACLick_as_exe_LONGTEST
t_LHeD_DDG4_LHeDMagField_LONGTEST ‑ t_LHeD_DDG4_LHeDMagField_LONGTEST
t_LHeD_DDG4_LHeDPhysics_LONGTEST ‑ t_LHeD_DDG4_LHeDPhysics_LONGTEST
t_LHeD_DDG4_LHeDRandom_LONGTEST ‑ t_LHeD_DDG4_LHeDRandom_LONGTEST
t_LHeD_DDG4_LHeDScan_LONGTEST ‑ t_LHeD_DDG4_LHeDScan_LONGTEST
t_LHeD_DDG4_LHeDXML_as_ACLick_LONGTEST ‑ t_LHeD_DDG4_LHeDXML_as_ACLick_LONGTEST
t_LHeD_DDG4_LHeDXML_as_exe_LONGTEST ‑ t_LHeD_DDG4_LHeDXML_as_exe_LONGTEST
t_LHeD_DDG4_g4material_scan_LONGTEST ‑ t_LHeD_DDG4_g4material_scan_LONGTEST
t_LHeD_check_geometry_LONGTEST ‑ t_LHeD_check_geometry_LONGTEST
t_LHeD_check_overlaps_LONGTEST ‑ t_LHeD_check_overlaps_LONGTEST
t_LHeD_converter_description_LONGTEST ‑ t_LHeD_converter_description_LONGTEST
t_LHeD_converter_vis_LONGTEST ‑ t_LHeD_converter_vis_LONGTEST
t_MiniTel_check_checksum_Minitel3 ‑ t_MiniTel_check_checksum_Minitel3
t_MiniTel_check_checksum_full ‑ t_MiniTel_check_checksum_full
t_MiniTel_check_missing_placements ‑ t_MiniTel_check_missing_placements
t_Persist_CLICSiD_Geant4_LONGTEST ‑ t_Persist_CLICSiD_Geant4_LONGTEST
t_Persist_CLICSiD_Restore_DetCheck_LONGTEST ‑ t_Persist_CLICSiD_Restore_DetCheck_LONGTEST
t_Persist_CLICSiD_Restore_LONGTEST ‑ t_Persist_CLICSiD_Restore_LONGTEST
t_Persist_CLICSiD_Restore_Nominal_LONGTEST ‑ t_Persist_CLICSiD_Restore_Nominal_LONGTEST
t_Persist_CLICSiD_Restore_Readouts_LONGTEST ‑ t_Persist_CLICSiD_Restore_Readouts_LONGTEST
t_Persist_CLICSiD_Restore_Segmentations_LONGTEST ‑ t_Persist_CLICSiD_Restore_Segmentations_LONGTEST
t_Persist_CLICSiD_Restore_Sensitives_LONGTEST ‑ t_Persist_CLICSiD_Restore_Sensitives_LONGTEST
t_Persist_CLICSiD_Restore_VolMgr1_LONGTEST ‑ t_Persist_CLICSiD_Restore_VolMgr1_LONGTEST
t_Persist_CLICSiD_Save_LONGTEST ‑ t_Persist_CLICSiD_Save_LONGTEST
t_Persist_Conditions_Restore ‑ t_Persist_Conditions_Restore
t_Persist_Conditions_Save ‑ t_Persist_Conditions_Save
t_Persist_MiniTel_Restore_LONGTEST ‑ t_Persist_MiniTel_Restore_LONGTEST
t_Persist_MiniTel_Restore_Nominal_LONGTEST ‑ t_Persist_MiniTel_Restore_Nominal_LONGTEST
t_Persist_MiniTel_Restore_Readouts_LONGTEST ‑ t_Persist_MiniTel_Restore_Readouts_LONGTEST
t_Persist_MiniTel_Restore_Segmentations_LONGTEST ‑ t_Persist_MiniTel_Restore_Segmentations_LONGTEST
t_Persist_MiniTel_Restore_Sensitives_LONGTEST ‑ t_Persist_MiniTel_Restore_Sensitives_LONGTEST
t_Persist_MiniTel_Restore_VolMgr1_LONGTEST ‑ t_Persist_MiniTel_Restore_VolMgr1_LONGTEST
t_Persist_MiniTel_Save_LONGTEST ‑ t_Persist_MiniTel_Save_LONGTEST
t_RICH_energy_deposition ‑ t_RICH_energy_deposition
t_RICH_number_of_hits ‑ t_RICH_number_of_hits
t_RICH_simulation ‑ t_RICH_simulation
t_SimpleDetector_converter_description ‑ t_SimpleDetector_converter_description
t_SimpleDetector_converter_vis ‑ t_SimpleDetector_converter_vis
t_Surfaces_OpNovice_read_gdml ‑ t_Surfaces_OpNovice_read_gdml
t_Surfaces_OpNovice_write_gdml ‑ t_Surfaces_OpNovice_write_gdml
t_Surfaces_read_GDMLMatrices ‑ t_Surfaces_read_GDMLMatrices
t_Surfaces_read_MaterialProperties ‑ t_Surfaces_read_MaterialProperties
t_Surfaces_read_OpticalSurfaces ‑ t_Surfaces_read_OpticalSurfaces
t_box_shape_build_type ‑ t_box_shape_build_type
t_ddsimUserActions ‑ t_ddsimUserActions
t_ddsimUserPlugins ‑ t_ddsimUserPlugins
t_import_geo_place_det_elements ‑ t_import_geo_place_det_elements
t_minitel_config_plugins_include_command_line ‑ t_minitel_config_plugins_include_command_line
t_minitel_config_plugins_include_command_xml ‑ t_minitel_config_plugins_include_command_xml
t_minitel_config_region_subdet_geant4 ‑ t_minitel_config_region_subdet_geant4
t_minitel_config_region_world_geant4 ‑ t_minitel_config_region_world_geant4
t_minitel_config_world ‑ t_minitel_config_world
t_minitel_config_world_material ‑ t_minitel_config_world_material
t_minitel_config_world_volume ‑ t_minitel_config_world_volume
t_test_DetType ‑ t_test_DetType
t_test_Evaluator ‑ t_test_Evaluator
t_test_EventReaders ‑ t_test_EventReaders
t_test_PolarGridRPhi2 ‑ t_test_PolarGridRPhi2
t_test_bitfield64 ‑ t_test_bitfield64
t_test_bitfieldcoder ‑ t_test_bitfieldcoder
t_test_cellDimensions ‑ t_test_cellDimensions
t_test_cellDimensionsRPhi2 ‑ t_test_cellDimensionsRPhi2
t_test_ddsim_.root ‑ t_test_ddsim_.root
t_test_ddsim_.slcio ‑ t_test_ddsim_.slcio
t_test_ddsim_edm4hep.root ‑ t_test_ddsim_edm4hep.root
t_test_ddsim_hepmc3_Pythia_output_hepmc ‑ t_test_ddsim_hepmc3_Pythia_output_hepmc
t_test_example ‑ t_test_example
t_test_python_import ‑ t_test_python_import
t_test_python_import_ddg4 ‑ t_test_python_import_ddg4
t_test_segmentationHandles ‑ t_test_segmentationHandles
t_test_surface ‑ t_test_surface
t_test_units ‑ t_test_units