File indexing completed on 2025-01-18 03:42:24
0001 #ifndef SimCalorimetry_HGCalSimAlgos_HGCalECONDEmulator_h
0002 #define SimCalorimetry_HGCalSimAlgos_HGCalECONDEmulator_h
0003
0004 #include <cstddef>
0005
0006 #include "SimCalorimetry/HGCalSimAlgos/interface/HGCalECONDEmulatorParameters.h"
0007 #include "SimCalorimetry/HGCalSimAlgos/interface/SlinkTypes.h"
0008
0009 namespace hgcal::econd {
0010
0011 class Emulator {
0012 public:
0013 explicit Emulator(const EmulatorParameters& params) : params_(params) {}
0014 virtual ~Emulator() = default;
0015
0016
0017 virtual ECONDInput next() = 0;
0018
0019 protected:
0020 const EmulatorParameters params_;
0021 };
0022
0023
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 }
0034
0035 #endif