Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-05-11 08:50:05

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 #ifndef DDG4_GEANT4INTERRUPTS_H
0014 #define DDG4_GEANT4INTERRUPTS_H
0015 
0016 /// Framework include files
0017 #include <DD4hep/SignalHandler.h>
0018 
0019 /// System include files
0020 
0021 /// Namespace for the AIDA detector description toolkit
0022 namespace dd4hep {
0023 
0024   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0025   namespace sim {
0026 
0027     /// Forward declarations
0028     class Geant4Kernel;
0029     
0030     /// Interruptsback interface class with argument
0031     /**
0032      *  \author  M.Frank
0033      *  \version 1.0
0034      *  \ingroup DD4HEP_SIMULATION
0035      */
0036     class  Geant4Interrupts : public SignalHandler {
0037     public:
0038       /// Reference to simulation kernel
0039       Geant4Kernel& m_kernel;
0040       Geant4Kernel& kernel()  {  return m_kernel;  }
0041 
0042       /// Default SIGINT handler: trigger end-of-event-loop in Geant4Kernel object
0043       static bool default_sigint_handler(void* user_context, int signum);
0044 
0045     public:
0046       /// Default constructor
0047       Geant4Interrupts(Geant4Kernel& krnl) : m_kernel(krnl) { }
0048       /// Default destructor
0049       virtual ~Geant4Interrupts() = default;
0050       /// Specialized handler for SIGINT
0051       bool registerHandler_SIGINT();
0052     };
0053   }    // End namespace sim
0054 }      // End namespace dd4hep
0055 #endif // DDG4_GEANT4INTERRUPTS_H