CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
CTPPSPixelDataFormatter Class Reference

#include <CTPPSPixelDataFormatter.h>

Classes

struct  PPSPixelIndex
 

Public Types

typedef edm::DetSetVector< CTPPSPixelDigiCollection
 
typedef std::vector< CTPPSPixelDigiDetDigis
 
typedef std::vector< CTPPSPixelDataErrorDetErrors
 
typedef std::unordered_map< cms_uint32_t, DetDigisDigis
 
typedef std::map< uint32_t, DetErrorsErrors
 
typedef std::unordered_map< int, FEDRawDataRawData
 
typedef uint32_t Word32
 
typedef uint64_t Word64
 

Public Member Functions

 CTPPSPixelDataFormatter (std::map< CTPPSPixelFramePosition, CTPPSPixelROCInfo > const &mapping, CTPPSRawToDigiErrorSummary &)
 
void formatRawData (const bool &isRun3, unsigned int lvl1_ID, RawData &fedRawData, const Digis &digis, std::vector< PPSPixelIndex > v_iDdet2fed)
 
void interpretRawData (const bool &isRun3, bool &errorsInEvent, int fedId, const FEDRawData &data, Collection &digis, Errors &errors)
 
int nDigis () const
 
int nWords () const
 
void printErrorSummary () const
 
void setErrorStatus (bool theErrorStatus)
 

Static Public Member Functions

static bool compare (const PPSPixelIndex &a, const PPSPixelIndex &b)
 

Private Member Functions

int checkError (const Word32 &data) const
 
std::string print (const Word64 &word) const
 

Private Attributes

Word32 m_ADC_mask
 
int m_ADC_shift
 
int m_allDetDigis
 
Word32 m_COL_mask
 
int m_COL_shift
 
Word32 m_DCOL_mask
 
int m_DCOL_shift
 
int m_DigiCounter
 
RPixErrorChecker m_ErrorCheck
 
CTPPSRawToDigiErrorSummarym_ErrorSummary
 
int m_hasDetDigis
 
bool m_IncludeErrors
 
CTPPSPixelIndices m_Indices
 
Word32 m_LINK_mask
 
int m_LINK_shift
 
const std::map< CTPPSPixelFramePosition, CTPPSPixelROCInfo > & m_Mapping
 
Word32 m_PXID_mask
 
int m_PXID_shift
 
Word32 m_ROC_mask
 
int m_ROC_shift
 
Word32 m_ROW_mask
 
int m_ROW_shift
 
int m_WordCounter
 

Detailed Description

Transform CTPPSPixel raw data of a given FED to digi

FED OUTPUT DATA FORMAT (F.Ferro from SiPixel code)

The output is transmitted through a 64 bit S-link connection. The packet format is defined by the CMS RU group to be : 1st packet header, 64 bits, includes a 6 bit FED id. 2nd packet header, 64 bits. .......................... (detector data) packet trailer, 64 bits. of the 64 bit pixel data records consists of 2 32 bit words. Each 32 bit word includes data from 1 pixel, the bit fields are the following:

6 bit link ID (max 36) - this defines the input link within 1 FED. 5 bit ROC ID (max 24) - this defines the readout chip within one link. 5 bit DCOL ID (max 26) - this defines the double column index with 1 chip. 8 bit pixel ID (max 180) - this defines the pixel address within 1 DCOL. 8 bit ADC vales - this has the charge amplitude.

So, 1 pixel occupies 4 bytes. If the number of pixels is odd, one extra 32 bit word is added (value 0) to fill all 64 bits.

The CTPPSPixelDataFormatter interpret/format ONLY detector data words (not FED headers or trailer, which are treated elsewhere).

Definition at line 55 of file CTPPSPixelDataFormatter.h.

Member Typedef Documentation

◆ Collection

Definition at line 57 of file CTPPSPixelDataFormatter.h.

◆ DetDigis

Definition at line 60 of file CTPPSPixelDataFormatter.h.

◆ DetErrors

Definition at line 62 of file CTPPSPixelDataFormatter.h.

◆ Digis

Definition at line 68 of file CTPPSPixelDataFormatter.h.

◆ Errors

typedef std::map<uint32_t, DetErrors> CTPPSPixelDataFormatter::Errors

Definition at line 63 of file CTPPSPixelDataFormatter.h.

◆ RawData

typedef std::unordered_map<int, FEDRawData> CTPPSPixelDataFormatter::RawData

Definition at line 59 of file CTPPSPixelDataFormatter.h.

◆ Word32

Definition at line 65 of file CTPPSPixelDataFormatter.h.

◆ Word64

Definition at line 66 of file CTPPSPixelDataFormatter.h.

Constructor & Destructor Documentation

◆ CTPPSPixelDataFormatter()

CTPPSPixelDataFormatter::CTPPSPixelDataFormatter ( std::map< CTPPSPixelFramePosition, CTPPSPixelROCInfo > const &  mapping,
CTPPSRawToDigiErrorSummary eSummary 
)

Definition at line 40 of file CTPPSPixelDataFormatter.cc.

References m_ADC_mask, m_ADC_shift, m_COL_mask, m_COL_shift, m_DCOL_mask, m_DCOL_shift, m_LINK_mask, m_LINK_shift, m_PXID_mask, m_PXID_shift, m_ROC_mask, m_ROC_shift, m_ROW_mask, and m_ROW_shift.

42  : m_WordCounter(0),
44  m_ErrorSummary(eSummary)
45 
46 {
47  int s32 = sizeof(Word32);
48  int s64 = sizeof(Word64);
49  int s8 = sizeof(char);
50  if (s8 != 1 || s32 != 4 * s8 || s64 != 2 * s32) {
51  LogError("UnexpectedSizes") << " unexpected sizes: "
52  << " size of char is: " << s8 << ", size of Word32 is: " << s32
53  << ", size of Word64 is: " << s64 << ", send exception";
54  }
55 
56  m_ADC_shift = 0;
57  m_PXID_shift = m_ADC_shift + m_ADC_bits;
58  m_DCOL_shift = m_PXID_shift + m_PXID_bits;
59  //Run3 shifts
60  m_ROW_shift = m_ADC_shift + m_ADC_bits;
61  m_COL_shift = m_ROW_shift + m_ROW_bits;
62 
63  m_ROC_shift = m_DCOL_shift + m_DCOL_bits;
64 
65  m_LINK_shift = m_ROC_shift + m_ROC_bits;
66  m_LINK_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_LINK_bits);
67  m_ROC_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_ROC_bits);
68 
69  m_DCOL_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_DCOL_bits);
70  m_PXID_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_PXID_bits);
71  //Run3 masks
72  m_COL_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_COL_bits);
73  m_ROW_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_ROW_bits);
74 
75  m_ADC_mask = ~(~CTPPSPixelDataFormatter::Word32(0) << m_ADC_bits);
76 }
const std::map< CTPPSPixelFramePosition, CTPPSPixelROCInfo > & m_Mapping
Log< level::Error, false > LogError
CTPPSRawToDigiErrorSummary & m_ErrorSummary

Member Function Documentation

◆ checkError()

int CTPPSPixelDataFormatter::checkError ( const Word32 data) const
private

◆ compare()

static bool CTPPSPixelDataFormatter::compare ( const PPSPixelIndex a,
const PPSPixelIndex b 
)
inlinestatic

Definition at line 96 of file CTPPSPixelDataFormatter.h.

References a, and b.

Referenced by formatRawData(), and CTPPSPixelDigiToRaw::produce().

96  {
97  return a.id < b.id || (a.id == b.id && a.roc < b.roc);
98  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

◆ formatRawData()

void CTPPSPixelDataFormatter::formatRawData ( const bool &  isRun3,
unsigned int  lvl1_ID,
RawData fedRawData,
const Digis digis,
std::vector< PPSPixelIndex v_iDdet2fed 
)

Definition at line 260 of file CTPPSPixelDataFormatter.cc.

References compare(), pps::pixel::ElectronicIndex::dcol, CTPPSPixelIndices::DColumn(), Exception, l1tstage2_dqm_sourceclient-live_cfg::fedId, l1t_dqm_sourceclient-live_cfg::fedRawData, mps_fire::i, L1TdeCSCTPG_cfi::isRun3, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, pps::pixel::ElectronicIndex::link, LogDebug, LogTrace, m_ADC_shift, m_allDetDigis, m_COL_shift, m_DCOL_shift, m_hasDetDigis, m_Indices, m_LINK_shift, m_PXID_shift, m_ROC_shift, m_ROW_shift, m_WordCounter, print(), pps::pixel::ElectronicIndex::pxid, FastTimerService_cff::range, l1tstage2_dqm_sourceclient-live_cfg::rawData, nano_mu_digi_cff::rawId, pps::pixel::ElectronicIndex::roc, rpixValues::ROCSizeInX, alignCSCRings::s, FEDHeader::set(), FEDTrailer::set(), and CTPPSPixelIndices::transformToROC().

Referenced by CTPPSPixelDigiToRaw::produce().

264  {
265  std::map<int, vector<Word32> > words;
266  // translate digis into 32-bit raw words and store in map indexed by Fed
267  m_allDetDigis = 0;
268  m_hasDetDigis = 0;
269  for (auto const& im : digis) {
270  m_allDetDigis++;
271  cms_uint32_t rawId = im.first;
272 
273  const DetDigis& detDigis = im.second;
274  for (auto const& it : detDigis) {
275  int nroc = 999, nlink = 999;
276  int rocPixelRow = -1, rocPixelColumn = -1, rocID = -1;
277  int modulePixelColumn = it.column();
278  int modulePixelRow = it.row();
279 
280  m_Indices.transformToROC(modulePixelColumn, modulePixelRow, rocID, rocPixelColumn, rocPixelRow);
281  const int dcol = m_Indices.DColumn(rocPixelColumn);
282  const int pxid = 2 * (rpixValues::ROCSizeInX - rocPixelRow) + (rocPixelColumn % 2);
283 
284  unsigned int urocID = rocID;
285  PPSPixelIndex myTest = {rawId, urocID, 0, 0, 0};
286  // the range has always at most one element
287  auto range = std::equal_range(iDdet2fed.begin(), iDdet2fed.end(), myTest, compare);
288  if (range.first != range.second) {
289  auto i = range.first - iDdet2fed.begin();
290  nlink = iDdet2fed.at(i).fedch;
291  nroc = iDdet2fed.at(i).rocch + 1;
292 
293  pps::pixel::ElectronicIndex cabling = {nlink, nroc, dcol, pxid};
294  if (isRun3) {
295  cms_uint32_t word = (cabling.link << m_LINK_shift) | (cabling.roc << m_ROC_shift) |
296  (rocPixelColumn << m_COL_shift) | (rocPixelRow << m_ROW_shift) |
297  (it.adc() << m_ADC_shift);
298 
299  words[iDdet2fed.at(i).fedid].push_back(word);
300  } else {
301  cms_uint32_t word = (cabling.link << m_LINK_shift) | (cabling.roc << m_ROC_shift) |
302  (cabling.dcol << m_DCOL_shift) | (cabling.pxid << m_PXID_shift) |
303  (it.adc() << m_ADC_shift);
304 
305  words[iDdet2fed.at(i).fedid].push_back(word);
306  }
307  m_WordCounter++;
308  m_hasDetDigis++;
309 
310  } // range
311  } // for DetDigis
312  } // for Digis
313 
314  LogTrace(" allDetDigis/hasDetDigis : ") << m_allDetDigis << "/" << m_hasDetDigis;
315  for (auto const& feddata : words) {
316  int fedId = feddata.first;
317 
318  // since raw words are written in the form of 64-bit packets
319  // add extra 32-bit word to make number of words even if necessary
320  if (words.find(fedId)->second.size() % 2 != 0)
321  words[fedId].emplace_back(0);
322 
323  // size in Bytes; create output structure
324  size_t dataSize = words.find(fedId)->second.size() * sizeof(Word32);
325  int nHeaders = 1;
326  int nTrailers = 1;
327  dataSize += (nHeaders + nTrailers) * sizeof(Word64);
328 
329  FEDRawData rawData{dataSize};
330 
331  // get begining of data;
332  Word64* word = reinterpret_cast<Word64*>(rawData.data());
333 
334  // write one header
335  FEDHeader::set(reinterpret_cast<unsigned char*>(word), 0, lvl1_ID, 0, fedId);
336  word++;
337 
338  // write data
339  unsigned int nWord32InFed = words.find(fedId)->second.size();
340  for (unsigned int i = 0; i < nWord32InFed; i += 2) {
341  *word = (Word64(words.find(fedId)->second[i]) << 32) | words.find(fedId)->second[i + 1];
342  LogDebug("CTPPSPixelDataFormatter") << print(*word);
343  word++;
344  }
345 
346  // write one trailer
347  FEDTrailer::set(reinterpret_cast<unsigned char*>(word), dataSize / sizeof(Word64), 0, 0, 0);
348  word++;
349 
350  // check memory
351  if (word != reinterpret_cast<Word64*>(rawData.data() + dataSize)) {
352  //if (word != reinterpret_cast<Word64* >(rawData->data()+dataSize)) {
353  string s = "** PROBLEM in CTPPSPixelDataFormatter !!!";
354  LogError("CTPPSPixelDataFormatter") << "** PROBLEM in CTPPSPixelDataFormatter!!!";
355  throw cms::Exception(s);
356  } // if (word !=
358  } // for (RI feddata
359 }
std::string print(const Word64 &word) const
static bool compare(const PPSPixelIndex &a, const PPSPixelIndex &b)
Log< level::Error, false > LogError
#define LogTrace(id)
uint64_t word
static void set(unsigned char *trailer, uint32_t lenght, uint16_t crc, uint8_t evt_stat, uint8_t tts, bool moreTrailers=false)
Set all fields in the trailer.
Definition: FEDTrailer.cc:31
int transformToROC(const int col, const int row, int &rocId, int &colROC, int &rowROC) const
unsigned int cms_uint32_t
Definition: typedefs.h:15
std::vector< CTPPSPixelDigi > DetDigis
static void set(unsigned char *header, uint8_t triggerType, uint32_t lvl1ID, uint16_t bxID, uint16_t sourceID, uint8_t version=0, bool moreHeaders=false)
Set all fields in the header.
Definition: FEDHeader.cc:25
static int DColumn(const int colROC)
constexpr int ROCSizeInX
cms_uint64_t Word64
#define LogDebug(id)

◆ interpretRawData()

void CTPPSPixelDataFormatter::interpretRawData ( const bool &  isRun3,
bool &  errorsInEvent,
int  fedId,
const FEDRawData data,
Collection digis,
Errors errors 
)

check CRC bit

check headers

check trailers

data words

Definition at line 83 of file CTPPSPixelDataFormatter.cc.

References gpuClustering::adc, CTPPSRawToDigiErrorSummary::add(), RPixErrorChecker::checkCRC(), RPixErrorChecker::checkHeader(), RPixErrorChecker::checkROC(), RPixErrorChecker::checkTrailer(), cuy::col, RPixErrorChecker::conversionError(), edm::DetSet< T >::data, RPixErrorChecker::dummyDetId, l1tstage2_dqm_sourceclient-live_cfg::fedId, edm::DetSetVector< T >::find_or_insert(), dqm-mbProfile::format, RecoTauValidation_cfi::header, CTPPSPixelROCInfo::iD, InvalidLinkId, InvalidPixelId, InvalidROCId, L1TdeCSCTPG_cfi::isRun3, LogTrace, m_ADC_mask, m_ADC_shift, m_COL_mask, m_COL_shift, m_DCOL_mask, m_DCOL_shift, m_ErrorCheck, m_ErrorSummary, m_LINK_mask, m_LINK_shift, m_Mapping, m_PXID_mask, m_PXID_shift, m_ROC_mask, m_ROC_shift, m_ROW_mask, m_ROW_shift, m_WordCounter, nWords(), print(), l1tstage2_dqm_sourceclient-live_cfg::rawData, CTPPSPixelROC::rawId(), nano_mu_digi_cff::rawId, CTPPSPixelROCInfo::roc, PixelMapPlotter::roc, CTPPSPixelROC::setParameters(), CTPPSPixelROC::toGlobal(), CTPPSPixelROC::toGlobalfromDcol(), Unknown, UNLIKELY, and ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::ww.

Referenced by CTPPSPixelRawToDigi::produce().

84  {
85  int nWords = rawData.size() / sizeof(Word64);
86  if (nWords == 0)
87  return;
88 
90  const Word64* trailer = reinterpret_cast<const Word64*>(rawData.data()) + (nWords - 1);
91  if (!m_ErrorCheck.checkCRC(errorsInEvent, fedId, trailer, errors))
92  return;
93 
95  const Word64* header = reinterpret_cast<const Word64*>(rawData.data());
96  header--;
97  bool moreHeaders = true;
98  while (moreHeaders) {
99  header++;
100  LogTrace("") << "HEADER: " << print(*header);
101  bool headerStatus = m_ErrorCheck.checkHeader(errorsInEvent, fedId, header, errors);
102  moreHeaders = headerStatus;
103  }
104 
106  bool moreTrailers = true;
107  trailer++;
108  while (moreTrailers) {
109  trailer--;
110  LogTrace("") << "TRAILER: " << print(*trailer);
111  bool trailerStatus = m_ErrorCheck.checkTrailer(errorsInEvent, fedId, nWords, trailer, errors);
112  moreTrailers = trailerStatus;
113  }
114 
116  m_WordCounter += 2 * (nWords - 2);
117  LogTrace("") << "data words: " << (trailer - header - 1);
118 
119  int link = -1;
120  int roc = -1;
121 
122  bool skipROC = false;
123 
124  edm::DetSet<CTPPSPixelDigi>* detDigis = nullptr;
125 
126  const Word32* bw = (const Word32*)(header + 1);
127  const Word32* ew = (const Word32*)(trailer);
128  if (*(ew - 1) == 0) {
129  ew--;
130  m_WordCounter--;
131  }
132 
133  for (auto word = bw; word < ew; ++word) {
134  LogTrace("") << "DATA: " << print(*word);
135  auto ww = *word;
136  if UNLIKELY (ww == 0) {
137  m_WordCounter--;
138  continue;
139  }
140 
141  int nlink = (ww >> m_LINK_shift) & m_LINK_mask;
142  int nroc = (ww >> m_ROC_shift) & m_ROC_mask;
143  int FMC = 0;
144  uint32_t iD = RPixErrorChecker::dummyDetId; //0xFFFFFFFF; //dummyDetId
145  int convroc = nroc - 1;
146 
147  CTPPSPixelROC rocp;
148  CTPPSPixelFramePosition fPos(fedId, FMC, nlink, convroc);
149  std::map<CTPPSPixelFramePosition, CTPPSPixelROCInfo>::const_iterator mit;
150  mit = m_Mapping.find(fPos);
151  if (mit != m_Mapping.end()) {
152  CTPPSPixelROCInfo rocInfo = (*mit).second;
153  iD = rocInfo.iD;
154  rocp.setParameters(iD, rocInfo.roc, convroc);
155  }
156 
157  if ((nlink != link) | (nroc != roc)) { // new roc
158  link = nlink;
159  roc = nroc;
160 
161  if ((roc - 1) < maxRocIndex) {
162  skipROC = false;
163  } else {
164  // using dummy detId - recovering of FED channel foreseen in DQM
166  skipROC = !m_ErrorCheck.checkROC(errorsInEvent, fedId, iD, ww, errors);
167  }
168  if (skipROC)
169  continue;
170 
171  if (mit == m_Mapping.end()) {
172  if (nlink >= maxLinkIndex) {
174 
175  m_ErrorSummary.add("Invalid linkId", "");
176  } else if ((nroc - 1) >= maxRocIndex) {
178  m_ErrorSummary.add("Invalid ROC",
179  fmt::format("Id {0}, in link {1}, of FED {2} in DetId {3}", convroc, nlink, fedId, iD));
180 
181  } else {
183  m_ErrorSummary.add("Error unknown");
184  }
185  skipROC = true; // skipping roc due to mapping errors
186  continue;
187  }
188  if (rocp.rawId() == 0) {
189  skipROC = true;
190  continue;
191  }
192 
193  auto rawId = rocp.rawId();
194 
195  detDigis = &digis.find_or_insert(rawId);
196  if ((*detDigis).empty())
197  (*detDigis).data.reserve(32); // avoid the first relocations
198  }
199 
200  if (skipROC || rocp.rawId() == 0)
201  continue;
202 
203  int adc = (ww >> m_ADC_shift) & m_ADC_mask;
204 
205  int dcol = (ww >> m_DCOL_shift) & m_DCOL_mask;
206  int pxid = (ww >> m_PXID_shift) & m_PXID_mask;
207  int col = (ww >> m_COL_shift) & m_COL_mask;
208  int row = (ww >> m_ROW_shift) & m_ROW_mask;
209 
210  if (!isRun3 && (dcol < min_Dcol || dcol > max_Dcol || pxid < min_Pixid || pxid > max_Pixid)) {
212  "unphysical dcol and/or pxid",
213  fmt::format("fedId= {0}, nllink= {1}, convroc= {2}, adc= {3}, dcol= {4}, pxid= {5}, detId= {6}",
214  fedId,
215  nlink,
216  convroc,
217  adc,
218  dcol,
219  pxid,
220  iD));
221 
223 
224  continue;
225  }
226  if (isRun3 && (col < min_COL || col > max_COL || row < min_ROW || row > max_ROW)) {
227  m_ErrorSummary.add("unphysical col and/or row",
228  fmt::format("fedId= {0}, nllink= {1}, convroc= {2}, adc= {3}, col= {4}, row= {5}, detId= {6}",
229  fedId,
230  nlink,
231  convroc,
232  adc,
233  col,
234  row,
235  iD));
236 
238 
239  continue;
240  }
241 
242  std::pair<int, int> rocPixel;
243  std::pair<int, int> modPixel;
244 
245  if (isRun3) {
246  rocPixel = std::make_pair(row, col);
247  modPixel = rocp.toGlobal(rocPixel);
248  } else {
249  rocPixel = std::make_pair(dcol, pxid);
250  modPixel = rocp.toGlobalfromDcol(rocPixel);
251  }
252 
253  CTPPSPixelDigi testdigi(modPixel.first, modPixel.second, adc);
254 
255  if (detDigis)
256  (*detDigis).data.emplace_back(modPixel.first, modPixel.second, adc);
257  }
258 }
Contains mappind data related to a ROC.
bool checkHeader(bool &errorsInEvent, int fedId, const Word64 *header, Errors &errors) const
bool checkCRC(bool &errorsInEvent, int fedId, const Word64 *trailer, Errors &errors) const
std::string print(const Word64 &word) const
void setParameters(uint32_t du, int idInDU, int idLk)
Definition: CTPPSPixelROC.h:29
bool checkTrailer(bool &errorsInEvent, int fedId, unsigned int nWords, const Word64 *trailer, Errors &errors) const
const std::map< CTPPSPixelFramePosition, CTPPSPixelROCInfo > & m_Mapping
bool checkROC(bool &errorsInEvent, int fedId, uint32_t iD, const Word32 &errorWord, Errors &errors) const
#define LogTrace(id)
uint32_t iD
the symbolic id
CTPPSRawToDigiErrorSummary & m_ErrorSummary
uint64_t word
cms_uint32_t Word32
void add(const std::string &message, const std::string &details="")
uint32_t rawId() const
return the DetUnit to which this ROC belongs to.
Definition: CTPPSPixelROC.h:36
void conversionError(int fedId, uint32_t iD, const State &state, const Word32 &errorWord, Errors &errors) const
static constexpr Word32 dummyDetId
collection_type data
Definition: DetSet.h:80
col
Definition: cuy.py:1009
Definition: errors.py:1
#define UNLIKELY(x)
Definition: Likely.h:21
std::pair< int, int > toGlobalfromDcol(const std::pair< int, int > &rocPixel) const
Definition: CTPPSPixelROC.h:71
uint16_t *__restrict__ uint16_t const *__restrict__ adc
cms_uint64_t Word64
std::pair< int, int > toGlobal(const std::pair< int, int > &rocPixel) const
Definition: CTPPSPixelROC.h:57

◆ nDigis()

int CTPPSPixelDataFormatter::nDigis ( ) const
inline

Definition at line 80 of file CTPPSPixelDataFormatter.h.

References m_DigiCounter.

Referenced by CTPPSPixelDigiToRaw::produce().

◆ nWords()

int CTPPSPixelDataFormatter::nWords ( ) const
inline

Definition at line 75 of file CTPPSPixelDataFormatter.h.

References m_WordCounter.

Referenced by interpretRawData(), and CTPPSPixelDigiToRaw::produce().

◆ print()

std::string CTPPSPixelDataFormatter::print ( const Word64 word) const
private

Definition at line 361 of file CTPPSPixelDataFormatter.cc.

References str.

Referenced by formatRawData(), and interpretRawData().

361  {
362  std::ostringstream str;
363  str << "word64: " << reinterpret_cast<const std::bitset<64>&>(word);
364  return str.str();
365 }
uint64_t word
#define str(s)

◆ printErrorSummary()

void CTPPSPixelDataFormatter::printErrorSummary ( ) const
inline

◆ setErrorStatus()

void CTPPSPixelDataFormatter::setErrorStatus ( bool  theErrorStatus)

Member Data Documentation

◆ m_ADC_mask

Word32 CTPPSPixelDataFormatter::m_ADC_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_ADC_shift

int CTPPSPixelDataFormatter::m_ADC_shift
private

◆ m_allDetDigis

int CTPPSPixelDataFormatter::m_allDetDigis
private

Definition at line 118 of file CTPPSPixelDataFormatter.h.

Referenced by formatRawData().

◆ m_COL_mask

Word32 CTPPSPixelDataFormatter::m_COL_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_COL_shift

int CTPPSPixelDataFormatter::m_COL_shift
private

◆ m_DCOL_mask

Word32 CTPPSPixelDataFormatter::m_DCOL_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_DCOL_shift

int CTPPSPixelDataFormatter::m_DCOL_shift
private

◆ m_DigiCounter

int CTPPSPixelDataFormatter::m_DigiCounter
private

Definition at line 117 of file CTPPSPixelDataFormatter.h.

Referenced by nDigis().

◆ m_ErrorCheck

RPixErrorChecker CTPPSPixelDataFormatter::m_ErrorCheck
private

Definition at line 106 of file CTPPSPixelDataFormatter.h.

Referenced by interpretRawData(), and setErrorStatus().

◆ m_ErrorSummary

CTPPSRawToDigiErrorSummary& CTPPSPixelDataFormatter::m_ErrorSummary
private

Definition at line 121 of file CTPPSPixelDataFormatter.h.

Referenced by interpretRawData(), and printErrorSummary().

◆ m_hasDetDigis

int CTPPSPixelDataFormatter::m_hasDetDigis
private

Definition at line 119 of file CTPPSPixelDataFormatter.h.

Referenced by formatRawData().

◆ m_IncludeErrors

bool CTPPSPixelDataFormatter::m_IncludeErrors
private

Definition at line 105 of file CTPPSPixelDataFormatter.h.

Referenced by setErrorStatus().

◆ m_Indices

CTPPSPixelIndices CTPPSPixelDataFormatter::m_Indices
private

Definition at line 120 of file CTPPSPixelDataFormatter.h.

Referenced by formatRawData().

◆ m_LINK_mask

Word32 CTPPSPixelDataFormatter::m_LINK_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_LINK_shift

int CTPPSPixelDataFormatter::m_LINK_shift
private

◆ m_Mapping

const std::map<CTPPSPixelFramePosition, CTPPSPixelROCInfo>& CTPPSPixelDataFormatter::m_Mapping
private

Definition at line 115 of file CTPPSPixelDataFormatter.h.

Referenced by interpretRawData().

◆ m_PXID_mask

Word32 CTPPSPixelDataFormatter::m_PXID_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_PXID_shift

int CTPPSPixelDataFormatter::m_PXID_shift
private

◆ m_ROC_mask

Word32 CTPPSPixelDataFormatter::m_ROC_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_ROC_shift

int CTPPSPixelDataFormatter::m_ROC_shift
private

◆ m_ROW_mask

Word32 CTPPSPixelDataFormatter::m_ROW_mask
private

Definition at line 109 of file CTPPSPixelDataFormatter.h.

Referenced by CTPPSPixelDataFormatter(), and interpretRawData().

◆ m_ROW_shift

int CTPPSPixelDataFormatter::m_ROW_shift
private

◆ m_WordCounter

int CTPPSPixelDataFormatter::m_WordCounter
private

Definition at line 103 of file CTPPSPixelDataFormatter.h.

Referenced by formatRawData(), interpretRawData(), and nWords().