CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
sistrip::FEDBufferPayloadCreator Class Reference

#include <SiStripFEDBufferGenerator.h>

Public Member Functions

FEDBufferPayload createPayload (FEDReadoutMode mode, uint8_t packetCode, const FEDStripData &data) const
 
 FEDBufferPayloadCreator (const std::vector< bool > &enabledFEUnits, const std::vector< bool > &enabledChannels)
 
FEDBufferPayload operator() (FEDReadoutMode mode, uint8_t packetCode, const FEDStripData &data) const
 

Private Member Functions

void fillChannelBuffer (std::vector< uint8_t > *channelBuffer, FEDReadoutMode mode, uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled) const
 
void fillClusterData (std::vector< uint8_t > *channelBuffer, uint8_t packetCode, const FEDStripData::ChannelData &data, const FEDReadoutMode mode) const
 
void fillClusterDataPreMixMode (std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data) const
 
void fillPreMixRawChannelBuffer (std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data, const bool channelEnabled) const
 
void fillRawChannelBuffer (std::vector< uint8_t > *channelBuffer, const uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled, const bool reorderData) const
 
void fillZeroSuppressedChannelBuffer (std::vector< uint8_t > *channelBuffer, const uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled) const
 
void fillZeroSuppressedLiteChannelBuffer (std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data, const bool channelEnabled, const FEDReadoutMode mode) const
 

Private Attributes

std::vector< bool > channelsEnabled_
 
std::vector< bool > feUnitsEnabled_
 

Detailed Description

Definition at line 81 of file SiStripFEDBufferGenerator.h.

Constructor & Destructor Documentation

◆ FEDBufferPayloadCreator()

sistrip::FEDBufferPayloadCreator::FEDBufferPayloadCreator ( const std::vector< bool > &  enabledFEUnits,
const std::vector< bool > &  enabledChannels 
)
inline

Definition at line 290 of file SiStripFEDBufferGenerator.h.

292  : feUnitsEnabled_(feUnitsEnabled), channelsEnabled_(channelsEnabled) {}

Member Function Documentation

◆ createPayload()

FEDBufferPayload sistrip::FEDBufferPayloadCreator::createPayload ( FEDReadoutMode  mode,
uint8_t  packetCode,
const FEDStripData data 
) const

Definition at line 102 of file SiStripFEDBufferGenerator.cc.

References data, sistrip::FEDCH_PER_FED, sistrip::FEDCH_PER_FEUNIT, and ALCARECOPromptCalibProdSiPixelAli0T_cff::mode.

Referenced by operator()().

104  {
105  std::vector<std::vector<uint8_t> > channelBuffers(FEDCH_PER_FED, std::vector<uint8_t>());
106  for (size_t iCh = 0; iCh < FEDCH_PER_FED; iCh++) {
107  if (!feUnitsEnabled_[iCh / FEDCH_PER_FEUNIT])
108  continue;
109  fillChannelBuffer(&channelBuffers[iCh], mode, packetCode, data.channel(iCh), channelsEnabled_[iCh]);
110  }
111  return FEDBufferPayload(channelBuffers);
112  }
void fillChannelBuffer(std::vector< uint8_t > *channelBuffer, FEDReadoutMode mode, uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled) const
static const uint16_t FEDCH_PER_FEUNIT
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static const uint16_t FEDCH_PER_FED

◆ fillChannelBuffer()

void sistrip::FEDBufferPayloadCreator::fillChannelBuffer ( std::vector< uint8_t > *  channelBuffer,
FEDReadoutMode  mode,
uint8_t  packetCode,
const FEDStripData::ChannelData data,
const bool  channelEnabled 
) const
private

Definition at line 114 of file SiStripFEDBufferGenerator.cc.

References data, Exception, ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, sistrip::PACKET_CODE_PROC_RAW, sistrip::PACKET_CODE_SCOPE, sistrip::PACKET_CODE_VIRGIN_RAW, sistrip::PACKET_CODE_VIRGIN_RAW10, sistrip::PACKET_CODE_VIRGIN_RAW8_BOTBOT, sistrip::PACKET_CODE_VIRGIN_RAW8_TOPBOT, sistrip::READOUT_MODE_PREMIX_RAW, sistrip::READOUT_MODE_PROC_RAW, sistrip::READOUT_MODE_SCOPE, sistrip::READOUT_MODE_VIRGIN_RAW, sistrip::READOUT_MODE_ZERO_SUPPRESSED, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE, and contentValuesCheck::ss.

118  {
119  switch (mode) {
120  case READOUT_MODE_SCOPE:
121  fillRawChannelBuffer(channelBuffer, PACKET_CODE_SCOPE, data, channelEnabled, false);
122  break;
124  switch (packetCode) {
126  fillRawChannelBuffer(channelBuffer, PACKET_CODE_VIRGIN_RAW, data, channelEnabled, true);
127  break;
129  fillRawChannelBuffer(channelBuffer, PACKET_CODE_VIRGIN_RAW10, data, channelEnabled, true);
130  break;
132  fillRawChannelBuffer(channelBuffer, PACKET_CODE_VIRGIN_RAW8_BOTBOT, data, channelEnabled, true);
133  break;
135  fillRawChannelBuffer(channelBuffer, PACKET_CODE_VIRGIN_RAW8_TOPBOT, data, channelEnabled, true);
136  break;
137  }
138  break;
140  fillRawChannelBuffer(channelBuffer, PACKET_CODE_PROC_RAW, data, channelEnabled, false);
141  break;
143  //case READOUT_MODE_ZERO_SUPPRESSED_CMOVERRIDE:
144  fillZeroSuppressedChannelBuffer(channelBuffer, packetCode, data, channelEnabled);
145  break;
154  fillZeroSuppressedLiteChannelBuffer(channelBuffer, data, channelEnabled, mode);
155  break;
157  fillPreMixRawChannelBuffer(channelBuffer, data, channelEnabled);
158  break;
159  default:
160  std::ostringstream ss;
161  ss << "Invalid readout mode " << mode;
162  throw cms::Exception("FEDBufferGenerator") << ss.str();
163  break;
164  }
165  }
static const uint8_t PACKET_CODE_SCOPE
void fillZeroSuppressedChannelBuffer(std::vector< uint8_t > *channelBuffer, const uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled) const
static const uint8_t PACKET_CODE_VIRGIN_RAW10
static const uint8_t PACKET_CODE_VIRGIN_RAW8_TOPBOT
void fillPreMixRawChannelBuffer(std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data, const bool channelEnabled) const
void fillRawChannelBuffer(std::vector< uint8_t > *channelBuffer, const uint8_t packetCode, const FEDStripData::ChannelData &data, const bool channelEnabled, const bool reorderData) const
static const uint8_t PACKET_CODE_PROC_RAW
static const uint8_t PACKET_CODE_VIRGIN_RAW8_BOTBOT
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
void fillZeroSuppressedLiteChannelBuffer(std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data, const bool channelEnabled, const FEDReadoutMode mode) const
static const uint8_t PACKET_CODE_VIRGIN_RAW

◆ fillClusterData()

void sistrip::FEDBufferPayloadCreator::fillClusterData ( std::vector< uint8_t > *  channelBuffer,
uint8_t  packetCode,
const FEDStripData::ChannelData data,
const FEDReadoutMode  mode 
) const
private

Definition at line 321 of file SiStripFEDBufferGenerator.cc.

References gpuClustering::adc, data, ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, PresampleTask_cfi::nSamples, sistrip::PACKET_CODE_ZERO_SUPPRESSED, sistrip::PACKET_CODE_ZERO_SUPPRESSED10, sistrip::PACKET_CODE_ZERO_SUPPRESSED8_BOTBOT, sistrip::PACKET_CODE_ZERO_SUPPRESSED8_TOPBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE, digitizers_cfi::strip, and sistrip::STRIPS_PER_APV.

324  {
325  // ZS lite: retrieve "packet code"
326  switch (mode) {
328  packetCode = PACKET_CODE_ZERO_SUPPRESSED;
329  break;
333  break;
337  break;
340  packetCode = PACKET_CODE_ZERO_SUPPRESSED10;
341  break;
342  default:;
343  }
344  const bool is10Bit = (packetCode == PACKET_CODE_ZERO_SUPPRESSED10);
345  const uint16_t bShift = (packetCode == PACKET_CODE_ZERO_SUPPRESSED8_BOTBOT
346  ? 2
347  : (packetCode == PACKET_CODE_ZERO_SUPPRESSED8_TOPBOT ? 1 : 0));
348 
349  uint16_t clusterSize = 0; // counter
350  std::size_t size_pos = 0; // index of cluster size
351  uint16_t adc_pre = 0;
352  const uint16_t nSamples = data.size();
353  for (uint16_t strip = 0; strip < nSamples; ++strip) {
354  const uint16_t adc = is10Bit ? data.get10BitSample(strip) : data.get8BitSample(strip, bShift);
355  if (adc) {
356  if (clusterSize == 0 || strip == STRIPS_PER_APV) {
357  if (clusterSize) {
358  if (is10Bit && (clusterSize % 4)) {
359  channelBuffer->push_back(adc_pre);
360  }
361  (*channelBuffer)[size_pos] = clusterSize;
362  clusterSize = 0;
363  }
364  // cluster header: first strip and size
365  channelBuffer->push_back(strip);
366  size_pos = channelBuffer->size();
367  channelBuffer->push_back(0); // for clustersize
368  }
369  if (!is10Bit) {
370  channelBuffer->push_back(adc & 0xFF);
371  } else {
372  if (clusterSize % 4 == 0) {
373  channelBuffer->push_back((adc & 0x3FC) >> 2);
374  adc_pre = ((adc & 0x3) << 6);
375  } else if (clusterSize % 4 == 1) {
376  channelBuffer->push_back(adc_pre | ((adc & 0x3F0) >> 4));
377  adc_pre = ((adc & 0xF) << 4);
378  } else if (clusterSize % 4 == 2) {
379  channelBuffer->push_back(adc_pre | ((adc & 0x3C0) >> 6));
380  adc_pre = ((adc & 0x3F) << 2);
381  } else if (clusterSize % 4 == 3) {
382  channelBuffer->push_back(adc_pre | ((adc & 0x300) >> 8));
383  channelBuffer->push_back(adc & 0xFF);
384  adc_pre = 0;
385  }
386  }
387  ++clusterSize;
388  } else if (clusterSize) {
389  if (is10Bit && (clusterSize % 4)) {
390  channelBuffer->push_back(adc_pre);
391  }
392  (*channelBuffer)[size_pos] = clusterSize;
393  clusterSize = 0;
394  }
395  }
396  if (clusterSize) {
397  (*channelBuffer)[size_pos] = clusterSize;
398  if (is10Bit && (clusterSize % 4)) {
399  channelBuffer->push_back(adc_pre);
400  }
401  }
402  }
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED8_BOTBOT
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED8_TOPBOT
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED10
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static const uint16_t STRIPS_PER_APV
uint16_t *__restrict__ uint16_t const *__restrict__ adc

◆ fillClusterDataPreMixMode()

void sistrip::FEDBufferPayloadCreator::fillClusterDataPreMixMode ( std::vector< uint8_t > *  channelBuffer,
const FEDStripData::ChannelData data 
) const
private

Definition at line 404 of file SiStripFEDBufferGenerator.cc.

References gpuClustering::adc, data, PresampleTask_cfi::nSamples, digitizers_cfi::strip, and sistrip::STRIPS_PER_APV.

405  {
406  uint16_t clusterSize = 0;
407  const uint16_t nSamples = data.size();
408  for (uint16_t strip = 0; strip < nSamples; ++strip) {
409  const uint16_t adc = data.get10BitSample(strip);
410 
411  if (adc) {
412  if (clusterSize == 0 || strip == STRIPS_PER_APV) {
413  if (clusterSize) {
414  *(channelBuffer->end() - 2 * clusterSize - 1) = clusterSize;
415  clusterSize = 0;
416  }
417  channelBuffer->push_back(strip);
418  channelBuffer->push_back(0); //clustersize
419  }
420  channelBuffer->push_back(adc & 0xFF);
421  channelBuffer->push_back((adc & 0x0300) >> 8);
422 
423  ++clusterSize;
424  }
425 
426  else if (clusterSize) {
427  *(channelBuffer->end() - 2 * clusterSize - 1) = clusterSize;
428  clusterSize = 0;
429  }
430  }
431  if (clusterSize) {
432  *(channelBuffer->end() - 2 * clusterSize - 1) = clusterSize;
433  }
434  }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static const uint16_t STRIPS_PER_APV
uint16_t *__restrict__ uint16_t const *__restrict__ adc

◆ fillPreMixRawChannelBuffer()

void sistrip::FEDBufferPayloadCreator::fillPreMixRawChannelBuffer ( std::vector< uint8_t > *  channelBuffer,
const FEDStripData::ChannelData data,
const bool  channelEnabled 
) const
private

Definition at line 286 of file SiStripFEDBufferGenerator.cc.

References data, and sistrip::PACKET_CODE_ZERO_SUPPRESSED.

288  {
289  channelBuffer->reserve(50);
290  //if channel is disabled then create empty channel header and return
291  if (!channelEnabled) {
292  //min length 7
293  channelBuffer->push_back(7);
294  channelBuffer->push_back(0);
295  //packet code
296  channelBuffer->push_back(PACKET_CODE_ZERO_SUPPRESSED);
297  //4 bytes of medians
298  channelBuffer->insert(channelBuffer->end(), 4, 0);
299  return;
300  }
301  //if channel is not empty
302  //add space for channel length
303  channelBuffer->push_back(0xFF);
304  channelBuffer->push_back(0xFF);
305  //packet code
306  channelBuffer->push_back(PACKET_CODE_ZERO_SUPPRESSED);
307  //add medians
308  const std::pair<uint16_t, uint16_t> medians = data.getMedians();
309  channelBuffer->push_back(medians.first & 0xFF);
310  channelBuffer->push_back((medians.first & 0x300) >> 8);
311  channelBuffer->push_back(medians.second & 0xFF);
312  channelBuffer->push_back((medians.second & 0x300) >> 8);
313  //clusters
314  fillClusterDataPreMixMode(channelBuffer, data);
315  //set length
316  const uint16_t length = channelBuffer->size();
317  (*channelBuffer)[0] = (length & 0xFF);
318  (*channelBuffer)[1] = ((length & 0x300) >> 8);
319  }
void fillClusterDataPreMixMode(std::vector< uint8_t > *channelBuffer, const FEDStripData::ChannelData &data) const
static const uint8_t PACKET_CODE_ZERO_SUPPRESSED
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

◆ fillRawChannelBuffer()

void sistrip::FEDBufferPayloadCreator::fillRawChannelBuffer ( std::vector< uint8_t > *  channelBuffer,
const uint8_t  packetCode,
const FEDStripData::ChannelData data,
const bool  channelEnabled,
const bool  reorderData 
) const
private

Definition at line 167 of file SiStripFEDBufferGenerator.cc.

References reco::ceil(), data, PresampleTask_cfi::nSamples, sistrip::PACKET_CODE_VIRGIN_RAW, sistrip::PACKET_CODE_VIRGIN_RAW10, sistrip::PACKET_CODE_VIRGIN_RAW8_BOTBOT, sistrip::PACKET_CODE_VIRGIN_RAW8_TOPBOT, and sistrip::FEDStripOrdering::physicalOrderForStripInChannel().

171  {
172  const uint16_t nSamples = data.size();
173  uint16_t channelLength = 0;
174  switch (packetCode) {
176  channelLength = nSamples * 2 + 3;
177  break;
179  channelLength = std::ceil(nSamples * 1.25) + 3;
180  break;
183  channelLength = nSamples * 1 + 3;
184  break;
185  }
186  channelBuffer->reserve(channelLength);
187  //length (max length is 0xFFF)
188  channelBuffer->push_back(channelLength & 0xFF);
189  channelBuffer->push_back((channelLength & 0xF00) >> 8);
190  //packet code
191  channelBuffer->push_back(packetCode);
192  //channel samples
193  uint16_t sampleValue_pre = 0;
194  for (uint16_t sampleNumber = 0; sampleNumber < nSamples; sampleNumber++) {
195  const uint16_t sampleIndex =
196  (reorderData ? FEDStripOrdering::physicalOrderForStripInChannel(sampleNumber) : sampleNumber);
197  const uint16_t sampleValue = (channelEnabled ? data.getSample(sampleIndex) : 0);
198  switch (packetCode) {
200  channelBuffer->push_back(sampleValue & 0xFF);
201  channelBuffer->push_back((sampleValue & 0x300) >> 8);
202  break;
204  if (sampleNumber % 4 == 0) {
205  channelBuffer->push_back((sampleValue & 0x3FC) >> 2);
206  } else if (sampleNumber % 4 == 1) {
207  channelBuffer->push_back(((sampleValue_pre & 0x3) << 6) | ((sampleValue & 0x3F0) >> 4));
208  } else if (sampleNumber % 4 == 2) {
209  channelBuffer->push_back(((sampleValue_pre & 0xF) << 4) | ((sampleValue & 0x3C0) >> 6));
210  } else if (sampleNumber % 4 == 3) {
211  channelBuffer->push_back(((sampleValue_pre & 0x3F) << 2) | ((sampleValue & 0x300) >> 8));
212  channelBuffer->push_back(sampleValue & 0xFF);
213  }
214  sampleValue_pre = sampleValue;
215  break;
217  channelBuffer->push_back((sampleValue & 0x3FC) >> 2);
218  break;
220  channelBuffer->push_back((sampleValue & 0x1FE) >> 1);
221  break;
222  }
223  }
224  }
static uint8_t physicalOrderForStripInChannel(const uint8_t readoutOrderStripIndexInChannel)
constexpr int32_t ceil(float num)
static const uint8_t PACKET_CODE_VIRGIN_RAW10
static const uint8_t PACKET_CODE_VIRGIN_RAW8_TOPBOT
static const uint8_t PACKET_CODE_VIRGIN_RAW8_BOTBOT
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
static const uint8_t PACKET_CODE_VIRGIN_RAW

◆ fillZeroSuppressedChannelBuffer()

void sistrip::FEDBufferPayloadCreator::fillZeroSuppressedChannelBuffer ( std::vector< uint8_t > *  channelBuffer,
const uint8_t  packetCode,
const FEDStripData::ChannelData data,
const bool  channelEnabled 
) const
private

Definition at line 226 of file SiStripFEDBufferGenerator.cc.

References data, and sistrip::READOUT_MODE_ZERO_SUPPRESSED.

229  {
230  channelBuffer->reserve(50);
231  //if channel is disabled then create empty channel header and return
232  if (!channelEnabled) {
233  //min length 7
234  channelBuffer->push_back(7);
235  channelBuffer->push_back(0);
236  //packet code
237  channelBuffer->push_back(packetCode);
238  //4 bytes of medians
239  channelBuffer->insert(channelBuffer->end(), 4, 0);
240  return;
241  }
242  //if channel is not empty
243  //add space for channel length
244  channelBuffer->push_back(0xFF);
245  channelBuffer->push_back(0xFF);
246  //packet code
247  channelBuffer->push_back(packetCode);
248  //add medians
249  const std::pair<uint16_t, uint16_t> medians = data.getMedians();
250  channelBuffer->push_back(medians.first & 0xFF);
251  channelBuffer->push_back((medians.first & 0x300) >> 8);
252  channelBuffer->push_back(medians.second & 0xFF);
253  channelBuffer->push_back((medians.second & 0x300) >> 8);
254  //clusters
255  fillClusterData(channelBuffer, packetCode, data, READOUT_MODE_ZERO_SUPPRESSED);
256  //set length
257  const uint16_t length = channelBuffer->size();
258  (*channelBuffer)[0] = (length & 0xFF);
259  (*channelBuffer)[1] = ((length & 0x300) >> 8);
260  }
void fillClusterData(std::vector< uint8_t > *channelBuffer, uint8_t packetCode, const FEDStripData::ChannelData &data, const FEDReadoutMode mode) const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

◆ fillZeroSuppressedLiteChannelBuffer()

void sistrip::FEDBufferPayloadCreator::fillZeroSuppressedLiteChannelBuffer ( std::vector< uint8_t > *  channelBuffer,
const FEDStripData::ChannelData data,
const bool  channelEnabled,
const FEDReadoutMode  mode 
) const
private

Definition at line 262 of file SiStripFEDBufferGenerator.cc.

References data, and ALCARECOPromptCalibProdSiPixelAli0T_cff::mode.

265  {
266  channelBuffer->reserve(50);
267  //if channel is disabled then create empty channel header and return
268  if (!channelEnabled) {
269  //min length 2
270  channelBuffer->push_back(2);
271  channelBuffer->push_back(0);
272  return;
273  }
274  //if channel is not empty
275  //add space for channel length
276  channelBuffer->push_back(0xFF);
277  channelBuffer->push_back(0xFF);
278  //clusters
279  fillClusterData(channelBuffer, 0, data, mode);
280  //set fibre length
281  const uint16_t length = channelBuffer->size();
282  (*channelBuffer)[0] = (length & 0xFF);
283  (*channelBuffer)[1] = ((length & 0x300) >> 8);
284  }
void fillClusterData(std::vector< uint8_t > *channelBuffer, uint8_t packetCode, const FEDStripData::ChannelData &data, const FEDReadoutMode mode) const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

◆ operator()()

FEDBufferPayload sistrip::FEDBufferPayloadCreator::operator() ( FEDReadoutMode  mode,
uint8_t  packetCode,
const FEDStripData data 
) const
inline

Definition at line 294 of file SiStripFEDBufferGenerator.h.

References createPayload(), data, and ALCARECOPromptCalibProdSiPixelAli0T_cff::mode.

296  {
297  return createPayload(mode, packetCode, data);
298  }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
FEDBufferPayload createPayload(FEDReadoutMode mode, uint8_t packetCode, const FEDStripData &data) const

Member Data Documentation

◆ channelsEnabled_

std::vector<bool> sistrip::FEDBufferPayloadCreator::channelsEnabled_
private

Definition at line 123 of file SiStripFEDBufferGenerator.h.

◆ feUnitsEnabled_

std::vector<bool> sistrip::FEDBufferPayloadCreator::feUnitsEnabled_
private

Definition at line 122 of file SiStripFEDBufferGenerator.h.