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_DIGISYNCHRONIZE_H
0014 #define DDDIGI_DIGISYNCHRONIZE_H
0015 
0016 /// Framework incloude files
0017 #include <DDDigi/DigiEventAction.h>
0018 #include <DDDigi/DigiParallelWorker.h>
0019 
0020 /// Namespace for the AIDA detector description toolkit
0021 namespace dd4hep {
0022 
0023   // Forward declarations
0024 
0025   /// Namespace for the Digitization part of the AIDA detector description toolkit
0026   namespace digi {
0027 
0028     /// 
0029     /**
0030      *
0031      *  \author  M.Frank
0032      *  \version 1.0
0033      *  \ingroup DD4HEP_DIGITIZATION
0034      */
0035     class DigiSynchronize : public DigiEventAction {
0036     protected:
0037       using work_t    = context_t;
0038       using self_t    = DigiSynchronize;
0039       using worker_t  = DigiParallelWorker<DigiEventAction, work_t, std::size_t, self_t&>;
0040       using workers_t = DigiParallelWorkers<worker_t>;
0041       friend class DigiParallelWorker<DigiEventAction, work_t, std::size_t, self_t&>;
0042 
0043       /// The list of action objects to be called
0044       workers_t m_actors;
0045 
0046     protected:
0047       /// Define standard assignments and constructors
0048       DDDIGI_DEFINE_ACTION_CONSTRUCTORS(DigiSynchronize);
0049 
0050     public:
0051       /// Standard constructor
0052       DigiSynchronize(const kernel_t& kernel, const std::string& nam);
0053       /// Default destructor
0054       virtual ~DigiSynchronize();
0055       /// Adopt a new action as part of the sequence. Sequence takes ownership.
0056       virtual void adopt(DigiEventAction* action);
0057       /// Begin-of-event callback
0058       virtual void execute(context_t& context)  const override;
0059     };
0060   }    // End namespace digi
0061 }      // End namespace dd4hep
0062 #endif // DDDIGI_DIGISYNCHRONIZE_H