1 #ifndef __L1Trigger_L1THGCal_HGCalTriggerFECodecBase_h__
2 #define __L1Trigger_L1THGCal_HGCalTriggerFECodecBase_h__
30 codec_idx_(static_cast<unsigned
char>(conf.getParameter<uint32_t>(
"CodecIndex")))
64 namespace HGCalTriggerFE {
65 template<
typename Impl,
typename DATA>
78 <<
"No data payload was set for HGCTriggerFECodec: "
81 digi.encode(static_cast<const Impl&>(*
this),
data_);
86 <<
"Data payload was already set for HGCTriggerFECodec: "
87 << this->
name() <<
" overwriting current data!";
89 digi.decode(static_cast<const Impl&>(*
this),
data_);
99 <<
"Data payload was already set for HGCTriggerFECodec: "
100 << this->
name() <<
" overwriting current data!";
102 static_cast<Impl&
>(*this).setDataPayloadImpl(
geom,ee,fh,bh);
110 <<
"Data payload was already set for HGCTriggerFECodec: "
111 << this->
name() <<
" overwriting current data!";
113 static_cast<Impl&
>(*this).setDataPayloadImpl(
geom,digi);
127 digi.
print(static_cast<const Impl&>(*
this),
out);
131 return static_cast<const Impl&
>(*this).encodeImpl(data);
135 return static_cast<const Impl&
>(*this).decodeImpl(data);
virtual void decode(const l1t::HGCFETriggerDigi &digi) overridefinal
virtual ~HGCalTriggerFECodecBase()
virtual std::vector< bool > getDataPayload() const =0
Codec(const edm::ParameterSet &conf)
virtual void print(const l1t::HGCFETriggerDigi &digi, std::ostream &out=std::cout) const =0
virtual void encode(l1t::HGCFETriggerDigi &digi) overridefinal
std::vector< bool > encode(const DATA &data) const
DATA decode(const std::vector< bool > &data) const
virtual void unSetDataPayload()=0
edmplugin::PluginFactory< HGCalTriggerFECodecBase *(const edm::ParameterSet &) > HGCalTriggerFECodecFactory
HGCalTriggerFECodecBase(const edm::ParameterSet &conf)
const unsigned char getCodecType() const
virtual void unSetDataPayload() overridefinal
virtual void decode(const l1t::HGCFETriggerDigi &)=0
virtual void print(const l1t::HGCFETriggerDigi &digi, std::ostream &out=std::cout) const overridefinal
void print(std::ostream &out) const
virtual void setDataPayload(const HGCalTriggerGeometryBase &geom, const l1t::HGCFETriggerDigi &digi) overridefinal
char data[epos_bytes_allocation]
virtual void setDataPayload(const HGCalTriggerGeometryBase &, const HGCEEDigiCollection &, const HGCHEDigiCollection &, const HGCHEDigiCollection &)=0
const std::string & name() const
std::vector< bool > getDataPayload() const overridefinal
volatile std::atomic< bool > shutdown_flag false
virtual void setDataPayload(const HGCalTriggerGeometryBase &geom, const HGCEEDigiCollection &ee, const HGCHEDigiCollection &fh, const HGCHEDigiCollection &bh) overridefinal
virtual void encode(l1t::HGCFETriggerDigi &)=0