Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:44

0001 #ifndef EventFilter_HGCalRawToDigi_HGCalECONDEmulator_h
0002 #define EventFilter_HGCalRawToDigi_HGCalECONDEmulator_h
0003 
0004 #include <cstddef>
0005 
0006 #include "EventFilter/HGCalRawToDigi/interface/HGCalECONDEmulatorParameters.h"
0007 #include "EventFilter/HGCalRawToDigi/interface/SlinkTypes.h"
0008 
0009 namespace hgcal::econd {
0010   /// Pure virtual base class for a ECON-D event emulator implementation
0011   class Emulator {
0012   public:
0013     explicit Emulator(const EmulatorParameters& params) : params_(params) {}
0014     virtual ~Emulator() = default;
0015 
0016     /// Fetch the next ECON-D event
0017     virtual ECONDInput next() = 0;
0018 
0019   protected:
0020     const EmulatorParameters params_;
0021   };
0022 
0023   /// A "trivial" ECON-D emulator emulating non-empty ECON-D events
0024   class TrivialEmulator : public Emulator {
0025   public:
0026     using Emulator::Emulator;
0027 
0028     ECONDInput next() override;
0029 
0030   private:
0031     uint32_t event_id_{1}, bx_id_{2}, orbit_id_{3};
0032   };
0033 }  // namespace hgcal::econd
0034 
0035 #endif