41 produces<FEDRawDataCollection>();
52 auto producedData = std::make_unique<FEDRawDataCollection>();
57 std::vector<int> selFEDs;
64 if ( fedData.
size() < 24 )
continue ;
66 if ( calibType < 0 ) {
69 if ( calibType != value )
70 edm::LogWarning(
"HcalCalibFEDSelector") <<
"Conflicting calibration types found: " 71 << calibType <<
" vs. " << value
72 <<
". Staying with " << calibType ;
79 bool duplicate =
false ;
80 for (
unsigned int j=0; j<selFEDs.size(); j++) {
86 if ( !duplicate ) selFEDs.push_back(
extraFEDs_.at(
i) ) ;
95 for (uint32_t
k=0;
k<selFEDs.size();
k++)
102 if (!rightFED)
continue;
109 FEDRawData & fedDataProd = producedData->FEDData(j);
110 if ( fedDataProd.
size() != 0 ) {
114 unsigned char *dataProd=fedDataProd.
data();
115 const unsigned char *
data=fedData.
data();
117 memcpy(dataProd, data, size);
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HcalCalibFEDSelector(const edm::ParameterSet &)
size_t size() const
Lenght of the data buffer in bytes.
std::vector< int > extraFEDs_
void produce(edm::Event &, const edm::EventSetup &) override
#define DEFINE_FWK_MODULE(type)
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void resize(size_t newsize)
edm::EDGetTokenT< FEDRawDataCollection > tok_fed_
~HcalCalibFEDSelector() override
char data[epos_bytes_allocation]
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
static constexpr int lastFEDId()
std::vector< int > getListOfFEDs()