Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:55:21

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 DDDIGI_DIGIMONITORHANDLER_H
0014 #define DDDIGI_DIGIMONITORHANDLER_H
0015 
0016 /// Framework include files
0017 #include <DDDigi/DigiAction.h>
0018 
0019 /// C/C++ include files
0020 class TNamed;
0021 
0022 /// Namespace for the AIDA detector description toolkit
0023 namespace dd4hep {
0024 
0025   /// Namespace for the Digitization part of the AIDA detector description toolkit
0026   namespace digi {
0027 
0028     // Forward declarations
0029     class DigiMonitorHandler;
0030 
0031     /// Class to execute non-reentrant subhandler in wrapped mode
0032     /**
0033      *
0034      *  \author  M.Frank
0035      *  \version 1.0
0036      *  \ingroup DD4HEP_DIGITIZATION
0037      */
0038     class DigiMonitorHandler : public DigiAction {
0039     protected:
0040       /// Property: output file name if monitor saving is desired (delegated to kernel)
0041       std::string m_output_file;
0042 
0043       /// Map of monitoring items
0044       std::map<DigiAction*, std::set<TNamed*> > m_monitors;
0045 
0046     public:
0047       /// Standard constructor
0048       DigiMonitorHandler(const kernel_t& kernel, const std::string& nam);
0049       /// Standard destructor
0050       virtual ~DigiMonitorHandler();
0051       /// Adopt monitor and keep reference for saving
0052       void adopt(DigiAction* source, TNamed* object);
0053       /// Save monitors
0054       void save();
0055     };
0056 
0057   }    // End namespace digi
0058 }      // End namespace dd4hep
0059 #endif // DDDIGI_DIGIMONITORHANDLER_H