CMS 3D CMS Logo

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

Collection of code to convert TOTEM raw data into digi. More...

#include <RawToDigiConverter.h>

Classes

struct  Record
 

Public Member Functions

void printSummaries () const
 Print error summaries. More...
 
 RawToDigiConverter (const edm::ParameterSet &conf)
 
void run (const VFATFrameCollection &coll, const TotemDAQMapping &mapping, const TotemAnalysisMask &mask, edm::DetSetVector< CTPPSDiamondDigi > &digi, edm::DetSetVector< TotemVFATStatus > &status)
 Creates Diamond digi. More...
 
void run (const VFATFrameCollection &coll, const TotemDAQMapping &mapping, const TotemAnalysisMask &mask, edm::DetSetVector< TotemRPDigi > &digi, edm::DetSetVector< TotemVFATStatus > &status)
 Creates RP digi. More...
 
void run (const VFATFrameCollection &coll, const TotemDAQMapping &mapping, const TotemAnalysisMask &mask, edm::DetSetVector< TotemTimingDigi > &digi, edm::DetSetVector< TotemVFATStatus > &status)
 Creates Totem Timing digi. More...
 

Private Types

enum  TestFlag { tfNoTest, tfWarn, tfErr }
 

Private Member Functions

void runCommon (const VFATFrameCollection &input, const TotemDAQMapping &mapping, std::map< TotemFramePosition, Record > &records)
 Common processing for all VFAT based sub-systems. More...
 

Private Attributes

double BC_fraction
 
unsigned int BC_min
 
double EC_fraction
 the minimal required (relative) occupancy of the most frequent counter value to be accepted More...
 
unsigned int EC_min
 the minimal required number of frames to determine the most frequent counter value More...
 
std::map< TotemFramePosition, std::map< TotemVFATStatus, unsigned int > > errorSummary
 error summaries More...
 
unsigned int printErrorSummary
 
unsigned int printUnknownFrameSummary
 
unsigned int testBCMostFrequent
 
unsigned int testCRC
 
unsigned int testECDAQ
 
unsigned int testECMostFrequent
 
unsigned int testECRaw
 
unsigned int testFootprint
 flags for which tests to run More...
 
unsigned int testID
 
std::map< TotemFramePosition, unsigned int > unknownSummary
 
unsigned char verbosity
 

Detailed Description

Collection of code to convert TOTEM raw data into digi.

Definition at line 25 of file RawToDigiConverter.h.

Member Enumeration Documentation

◆ TestFlag

Enumerator
tfNoTest 
tfWarn 
tfErr 

Definition at line 70 of file RawToDigiConverter.h.

Constructor & Destructor Documentation

◆ RawToDigiConverter()

RawToDigiConverter::RawToDigiConverter ( const edm::ParameterSet conf)

Definition at line 23 of file RawToDigiConverter.cc.

24  : verbosity(conf.getUntrackedParameter<unsigned int>("verbosity", 0)),
25  printErrorSummary(conf.getUntrackedParameter<unsigned int>("printErrorSummary", 1)),
26  printUnknownFrameSummary(conf.getUntrackedParameter<unsigned int>("printUnknownFrameSummary", 1)),
27 
28  testFootprint(conf.getParameter<unsigned int>("testFootprint")),
29  testCRC(conf.getParameter<unsigned int>("testCRC")),
30  testID(conf.getParameter<unsigned int>("testID")),
31  testECMostFrequent(conf.getParameter<unsigned int>("testECMostFrequent")),
32  testBCMostFrequent(conf.getParameter<unsigned int>("testBCMostFrequent")),
33 
34  EC_min(conf.getUntrackedParameter<unsigned int>("EC_min", 10)),
35  BC_min(conf.getUntrackedParameter<unsigned int>("BC_min", 10)),
36 
37  EC_fraction(conf.getUntrackedParameter<double>("EC_fraction", 0.6)),
38  BC_fraction(conf.getUntrackedParameter<double>("BC_fraction", 0.6)) {}

Member Function Documentation

◆ printSummaries()

void RawToDigiConverter::printSummaries ( ) const

Print error summaries.

Definition at line 382 of file RawToDigiConverter.cc.

382  {
383  // print error summary
384  if (printErrorSummary) {
385  if (!errorSummary.empty()) {
386  stringstream ees;
387  for (const auto &vit : errorSummary) {
388  ees << vit.first << endl;
389 
390  for (const auto &it : vit.second)
391  ees << " " << it.first << " : " << it.second << endl;
392  }
393 
394  LogWarning("Totem") << "RawToDigiConverter: error summary (error signature : number of such events)\n"
395  << endl
396  << ees.rdbuf();
397  } else {
398  LogInfo("Totem") << "RawToDigiConverter: no errors to be reported.";
399  }
400  }
401 
402  // print summary of unknown frames (found in data but not in the mapping)
404  if (!unknownSummary.empty()) {
405  stringstream ees;
406  for (const auto &it : unknownSummary)
407  ees << " " << it.first << " : " << it.second << endl;
408 
409  LogWarning("Totem")
410  << "RawToDigiConverter: frames found in data, but not in the mapping (frame position : number of events)\n"
411  << endl
412  << ees.rdbuf();
413  } else {
414  LogInfo("Totem") << "RawToDigiConverter: no unknown frames to be reported.";
415  }
416  }
417 }

References errorSummary, printErrorSummary, printUnknownFrameSummary, and unknownSummary.

Referenced by TotemVFATRawToDigi::endStream().

◆ run() [1/3]

void RawToDigiConverter::run ( const VFATFrameCollection coll,
const TotemDAQMapping mapping,
const TotemAnalysisMask mask,
edm::DetSetVector< CTPPSDiamondDigi > &  digi,
edm::DetSetVector< TotemVFATStatus > &  status 
)

Creates Diamond digi.

Definition at line 234 of file RawToDigiConverter.cc.

238  {
239  // structure merging vfat frame data with the mapping
240  map<TotemFramePosition, Record> records;
241 
242  // common processing - frame validation
243  runCommon(coll, mapping, records);
244 
245  // second loop over data
246  for (auto &p : records) {
247  Record &record = p.second;
248 
249  // calculate ids
250  CTPPSDiamondDetId detId(record.info->symbolicID.symbolicID);
251 
252  if (record.status.isOK()) {
253  // update Event Counter in status
254  record.status.setEC(record.frame->getEC() & 0xFF);
255 
256  // create the digi
257  DetSet<CTPPSDiamondDigi> &digiDetSet = digi.find_or_insert(detId);
263  }
264 
265  // save status
266  DetSet<TotemVFATStatus> &statusDetSet = status.find_or_insert(detId);
267  statusDetSet.push_back(record.status);
268  }
269 }

References edm::DetSet< T >::emplace_back(), edm::DetSetVector< T >::find_or_insert(), pps::diamond::vfat::getHptdcErrorFlag(), pps::diamond::vfat::getLeadingEdgeTime(), pps::diamond::vfat::getMultihit(), pps::diamond::vfat::getThresholdVoltage(), pps::diamond::vfat::getTrailingEdgeTime(), taus_updatedMVAIds_cff::mapping, AlCaHLTBitMon_ParallelJobs::p, edm::DetSet< T >::push_back(), AlCaHarvesting_cff::record, runCommon(), and mps_update::status.

Referenced by Types.EventID::cppID(), and Types.LuminosityBlockID::cppID().

◆ run() [2/3]

void RawToDigiConverter::run ( const VFATFrameCollection coll,
const TotemDAQMapping mapping,
const TotemAnalysisMask mask,
edm::DetSetVector< TotemRPDigi > &  digi,
edm::DetSetVector< TotemVFATStatus > &  status 
)

Creates RP digi.

Definition at line 176 of file RawToDigiConverter.cc.

180  {
181  // structure merging vfat frame data with the mapping
182  map<TotemFramePosition, Record> records;
183 
184  // common processing - frame validation
185  runCommon(input, mapping, records);
186 
187  // second loop over data
188  for (auto &p : records) {
189  Record &record = p.second;
190 
191  // calculate ids
192  TotemRPDetId chipId(record.info->symbolicID.symbolicID);
193  uint8_t chipPosition = chipId.chip();
194  TotemRPDetId detId = chipId.planeId();
195 
196  // update chipPosition in status
197  record.status.setChipPosition(chipPosition);
198 
199  // produce digi only for good frames
200  if (record.status.isOK()) {
201  // find analysis mask (needs a default=no mask, if not in present the mapping)
203  anMa.fullMask = false;
204 
205  auto analysisIter = analysisMask.analysisMask.find(record.info->symbolicID);
206  if (analysisIter != analysisMask.analysisMask.end()) {
207  // if there is some information about masked channels - save it into conversionStatus
208  anMa = analysisIter->second;
209  if (anMa.fullMask)
210  record.status.setFullyMaskedOut();
211  else
212  record.status.setPartiallyMaskedOut();
213  }
214 
215  // create the digi
216  unsigned short offset = chipPosition * 128;
217  const vector<unsigned char> &activeChannels = record.frame->getActiveChannels();
218 
219  for (auto ch : activeChannels) {
220  // skip masked channels
221  if (!anMa.fullMask && anMa.maskedChannels.find(ch) == anMa.maskedChannels.end()) {
222  DetSet<TotemRPDigi> &digiDetSet = rpData.find_or_insert(detId);
223  digiDetSet.emplace_back(offset + ch);
224  }
225  }
226  }
227 
228  // save status
229  DetSet<TotemVFATStatus> &statusDetSet = finalStatus.find_or_insert(detId);
230  statusDetSet.push_back(record.status);
231  }
232 }

References TotemAnalysisMask::analysisMask, TotemRPDetId::chip(), edm::DetSet< T >::emplace_back(), edm::DetSetVector< T >::find_or_insert(), TotemVFATAnalysisMask::fullMask, input, taus_updatedMVAIds_cff::mapping, TotemVFATAnalysisMask::maskedChannels, hltrates_dqm_sourceclient-live_cfg::offset, AlCaHLTBitMon_ParallelJobs::p, TotemRPDetId::planeId(), edm::DetSet< T >::push_back(), AlCaHarvesting_cff::record, and runCommon().

Referenced by Types.EventID::cppID(), Types.LuminosityBlockID::cppID(), and TotemVFATRawToDigi::run().

◆ run() [3/3]

void RawToDigiConverter::run ( const VFATFrameCollection coll,
const TotemDAQMapping mapping,
const TotemAnalysisMask mask,
edm::DetSetVector< TotemTimingDigi > &  digi,
edm::DetSetVector< TotemVFATStatus > &  status 
)

Creates Totem Timing digi.

Definition at line 271 of file RawToDigiConverter.cc.

275  {
276  // structure merging vfat frame data with the mapping
277  map<TotemFramePosition, Record> records;
278 
279  // common processing - frame validation
280  runCommon(coll, mapping, records);
281 
282  // second loop over data
283  for (auto &p : records) {
284  Record &record = p.second;
285  if (!record.status.isOK())
286  continue;
287 
288  const TotemFramePosition *framepos = &p.first;
289 
290  if (((framepos->getIdxInFiber() % 2) == 0) && (framepos->getIdxInFiber() < 14)) {
291  //corresponding channel data are always in the neighbouring idx in fiber
292 
293  TotemFramePosition frameposdata(framepos->getSubSystemId(),
294  framepos->getTOTFEDId(),
295  framepos->getOptoRxId(),
296  framepos->getGOHId(),
297  (framepos->getIdxInFiber() + 1));
298  TotemFramePosition frameposEvtInfo(
299  framepos->getSubSystemId(), framepos->getTOTFEDId(), framepos->getOptoRxId(), framepos->getGOHId(), 0xe);
300 
301  auto channelwaveformPtr = records.find(frameposdata);
302  auto eventInfoPtr = records.find(frameposEvtInfo);
303 
304  if (channelwaveformPtr != records.end() && eventInfoPtr != records.end()) {
305  Record &channelwaveform = records[frameposdata];
306  Record &eventInfo = records[frameposEvtInfo];
307 
308  // Extract all the waveform information from the raw data
309  TotemSampicFrame totemSampicFrame((const uint8_t *)record.frame->getData(),
310  (const uint8_t *)channelwaveform.frame->getData(),
311  (const uint8_t *)eventInfo.frame->getData());
312 
313  if (totemSampicFrame.valid()) {
314  // create the digi
315  TotemTimingEventInfo eventInfoTmp(totemSampicFrame.getEventHardwareId(),
316  totemSampicFrame.getL1ATimestamp(),
317  totemSampicFrame.getBunchNumber(),
318  totemSampicFrame.getOrbitNumber(),
319  totemSampicFrame.getEventNumber(),
320  totemSampicFrame.getChannelMap(),
321  totemSampicFrame.getL1ALatency(),
322  totemSampicFrame.getNumberOfSentSamples(),
323  totemSampicFrame.getOffsetOfSamples(),
324  totemSampicFrame.getPLLInfo());
325  TotemTimingDigi digiTmp(totemSampicFrame.getHardwareId(),
326  totemSampicFrame.getFPGATimestamp(),
327  totemSampicFrame.getTimestampA(),
328  totemSampicFrame.getTimestampB(),
329  totemSampicFrame.getCellInfo(),
330  totemSampicFrame.getSamples(),
331  eventInfoTmp);
332  // calculate ids
333  TotemTimingDetId detId(record.info->symbolicID.symbolicID);
334 
336  mapping.getTimingChannel(totemSampicFrame.getHardwareId());
337  // for FW Version > 0 plane and channel are encoded in the dataframe
338  if (totemSampicFrame.getFWVersion() < 0x30) // Mapping not present in HW, read from SW for FW versions < 3.0
339  {
340  if (SWpair.plane == -1 || SWpair.channel == -1) {
341  if (verbosity > 0)
342  LogWarning("Totem") << "Error in RawToDigiConverter::TotemTiming > "
343  << "HwId not recognized! hwId: " << std::hex
344  << (unsigned int)totemSampicFrame.getHardwareId() << endl;
345  } else {
346  detId.setPlane(SWpair.plane % 4);
347  detId.setChannel(SWpair.channel);
348  detId.setRP(SWpair.plane / 4); // Top:0 or Bottom:1
349  }
350  } else // Mapping read from HW, checked by SW
351  {
352  const int HWplane = totemSampicFrame.getDetPlane() % 16;
353  const int HWchannel = totemSampicFrame.getDetChannel() % 16;
354 
355  if (SWpair.plane == -1 || SWpair.channel == -1) {
356  if (verbosity > 0)
357  LogWarning("Totem") << "Warning in RawToDigiConverter::TotemTiming > "
358  << "HwId not recognized! hwId: " << std::hex
359  << (unsigned int)totemSampicFrame.getHardwareId()
360  << "\tUsing plane and ch from HW without check!" << endl;
361  } else {
362  if (verbosity > 0 && (SWpair.plane != HWplane || SWpair.channel != HWchannel))
363  LogWarning("Totem") << "Warning in RawToDigiConverter::TotemTiming > "
364  << "Hw mapping different from SW mapping. hwId: " << std::hex
365  << (unsigned int)totemSampicFrame.getHardwareId() << "HW: " << std::dec << HWplane
366  << ":" << HWchannel << "\tSW " << SWpair.plane << ":" << SWpair.channel
367  << "\tUsing plane and ch from HW!" << endl;
368  }
369  detId.setPlane(HWplane % 4);
370  detId.setChannel(HWchannel);
371  detId.setRP(HWplane / 4); // Top:0 or Bottom:1
372  }
373 
374  DetSet<TotemTimingDigi> &digiDetSet = digi.find_or_insert(detId);
375  digiDetSet.push_back(digiTmp);
376  }
377  }
378  }
379  }
380 }

References TotemDAQMapping::TotemTimingPlaneChannelPair::channel, TauDecayModes::dec, dumpTauVariables_cfi::eventInfo, edm::DetSetVector< T >::find_or_insert(), RawToDigiConverter::Record::frame, VFATFrame::getData(), TotemFramePosition::getGOHId(), TotemFramePosition::getIdxInFiber(), TotemFramePosition::getOptoRxId(), TotemFramePosition::getSubSystemId(), TotemFramePosition::getTOTFEDId(), createfilelist::int, taus_updatedMVAIds_cff::mapping, AlCaHLTBitMon_ParallelJobs::p, TotemDAQMapping::TotemTimingPlaneChannelPair::plane, edm::DetSet< T >::push_back(), AlCaHarvesting_cff::record, runCommon(), and verbosity.

Referenced by Types.EventID::cppID(), and Types.LuminosityBlockID::cppID().

◆ runCommon()

void RawToDigiConverter::runCommon ( const VFATFrameCollection input,
const TotemDAQMapping mapping,
std::map< TotemFramePosition, Record > &  records 
)
private

Common processing for all VFAT based sub-systems.

Definition at line 40 of file RawToDigiConverter.cc.

42  {
43  // EC and BC checks (wrt. the most frequent value), BC checks per subsystem
46 
47  // initialise structure merging vfat frame data with the mapping
48  for (auto &p : mapping.VFATMapping) {
49  TotemVFATStatus st;
50  st.setMissing(true);
51  records[p.first] = {&p.second, nullptr, st};
52  }
53 
54  // event error message buffer
55  stringstream ees;
56 
57  // associate data frames with records
58  for (VFATFrameCollection::Iterator fr(&input); !fr.IsEnd(); fr.Next()) {
59  // frame error message buffer
60  stringstream fes;
61 
62  bool problemsPresent = false;
63  bool stopProcessing = false;
64 
65  // skip data frames not listed in the DAQ mapping
66  auto records_it = records.find(fr.Position());
67  if (records_it == records.end()) {
68  unknownSummary[fr.Position()]++;
69  continue;
70  }
71 
72  // update record
73  Record &record = records_it->second;
74  record.frame = fr.Data();
75  record.status.setMissing(false);
76  record.status.setNumberOfClustersSpecified(record.frame->isNumberOfClustersPresent());
77  record.status.setNumberOfClusters(record.frame->getNumberOfClusters());
78 
79  // check footprint
80  if (testFootprint != tfNoTest && !record.frame->checkFootprint()) {
81  problemsPresent = true;
82 
83  if (verbosity > 0)
84  fes << " invalid footprint" << endl;
85 
86  if (testFootprint == tfErr) {
87  record.status.setFootprintError();
88  stopProcessing = true;
89  }
90  }
91 
92  // check CRC
93  if (testCRC != tfNoTest && !record.frame->checkCRC()) {
94  problemsPresent = true;
95 
96  if (verbosity > 0)
97  fes << " CRC failure" << endl;
98 
99  if (testCRC == tfErr) {
100  record.status.setCRCError();
101  stopProcessing = true;
102  }
103  }
104  // check the id mismatch
105  if (testID != tfNoTest && record.frame->isIDPresent() &&
106  (record.frame->getChipID() & 0xFFF) != (record.info->hwID & 0xFFF)) {
107  if (verbosity > 0)
108  fes << " ID mismatch (data: 0x" << hex << record.frame->getChipID() << ", mapping: 0x" << record.info->hwID
109  << dec << ", symbId: " << record.info->symbolicID.symbolicID << ")" << endl;
110 
111  if (testID == tfErr) {
112  record.status.setIDMismatch();
113  stopProcessing = true;
114  }
115  }
116 
117  // if there were errors, put the information to ees buffer
118  if (verbosity > 0 && problemsPresent) {
119  string message = (stopProcessing) ? "(and will be dropped)" : "(but will be used though)";
120  if (verbosity > 2) {
121  ees << " Frame at " << fr.Position() << " seems corrupted " << message << ":" << endl;
122  ees << fes.rdbuf();
123  } else
124  ees << " Frame at " << fr.Position() << " seems corrupted " << message << "." << endl;
125  }
126 
127  // if there were serious errors, do not process this frame
128  if (stopProcessing)
129  continue;
130 
131  // fill EC and BC values to the statistics
132  if (fr.Data()->isECPresent())
133  ECChecker.Fill(fr.Data()->getEC(), fr.Position());
134 
135  if (fr.Data()->isBCPresent())
136  BCChecker.Fill(fr.Data()->getBC(), fr.Position());
137  }
138 
139  // analyze EC and BC statistics
141  ECChecker.Analyze(records, (testECMostFrequent == tfErr), ees);
142 
144  BCChecker.Analyze(records, (testBCMostFrequent == tfErr), ees);
145 
146  // add error message for missing frames
147  if (verbosity > 1) {
148  for (const auto &p : records) {
149  if (p.second.status.isMissing())
150  ees << "Frame for VFAT " << p.first << " is not present in the data." << endl;
151  }
152  }
153 
154  // print error message
155  if (verbosity > 0 && !ees.rdbuf()->str().empty()) {
156  if (verbosity > 1)
157  LogWarning("Totem") << "Error in RawToDigiConverter::runCommon > "
158  << "event contains the following problems:" << endl
159  << ees.rdbuf() << endl;
160  else
161  LogWarning("Totem") << "Error in RawToDigiConverter::runCommon > "
162  << "event contains problems." << endl;
163  }
164 
165  // increase error counters
166  if (printErrorSummary) {
167  for (const auto &it : records) {
168  if (!it.second.status.isOK()) {
169  auto &m = errorSummary[it.first];
170  m[it.second.status]++;
171  }
172  }
173  }
174 }

References CounterChecker::Analyze(), BC_fraction, BC_min, CounterChecker::BCChecker, TauDecayModes::dec, EC_fraction, EC_min, CounterChecker::ECChecker, errorSummary, CounterChecker::Fill(), input, VFATFrameCollection::Iterator::IsEnd(), visualization-live-secondInstance_cfg::m, taus_updatedMVAIds_cff::mapping, AlCaHLTBitMon_ParallelJobs::p, printErrorSummary, AlCaHarvesting_cff::record, TotemVFATStatus::setMissing(), testBCMostFrequent, testCRC, testECMostFrequent, testFootprint, testID, tfErr, tfNoTest, unknownSummary, and verbosity.

Referenced by run().

Member Data Documentation

◆ BC_fraction

double RawToDigiConverter::BC_fraction
private

Definition at line 85 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ BC_min

unsigned int RawToDigiConverter::BC_min
private

Definition at line 82 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ EC_fraction

double RawToDigiConverter::EC_fraction
private

the minimal required (relative) occupancy of the most frequent counter value to be accepted

Definition at line 85 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ EC_min

unsigned int RawToDigiConverter::EC_min
private

the minimal required number of frames to determine the most frequent counter value

Definition at line 82 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ errorSummary

std::map<TotemFramePosition, std::map<TotemVFATStatus, unsigned int> > RawToDigiConverter::errorSummary
private

error summaries

Definition at line 88 of file RawToDigiConverter.h.

Referenced by printSummaries(), and runCommon().

◆ printErrorSummary

unsigned int RawToDigiConverter::printErrorSummary
private

Definition at line 67 of file RawToDigiConverter.h.

Referenced by printSummaries(), and runCommon().

◆ printUnknownFrameSummary

unsigned int RawToDigiConverter::printUnknownFrameSummary
private

Definition at line 68 of file RawToDigiConverter.h.

Referenced by printSummaries().

◆ testBCMostFrequent

unsigned int RawToDigiConverter::testBCMostFrequent
private

Definition at line 79 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ testCRC

unsigned int RawToDigiConverter::testCRC
private

Definition at line 74 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ testECDAQ

unsigned int RawToDigiConverter::testECDAQ
private

Definition at line 77 of file RawToDigiConverter.h.

◆ testECMostFrequent

unsigned int RawToDigiConverter::testECMostFrequent
private

Definition at line 78 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ testECRaw

unsigned int RawToDigiConverter::testECRaw
private

Definition at line 76 of file RawToDigiConverter.h.

◆ testFootprint

unsigned int RawToDigiConverter::testFootprint
private

flags for which tests to run

Definition at line 73 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ testID

unsigned int RawToDigiConverter::testID
private

Definition at line 75 of file RawToDigiConverter.h.

Referenced by runCommon().

◆ unknownSummary

std::map<TotemFramePosition, unsigned int> RawToDigiConverter::unknownSummary
private

Definition at line 89 of file RawToDigiConverter.h.

Referenced by printSummaries(), and runCommon().

◆ verbosity

unsigned char RawToDigiConverter::verbosity
private

Definition at line 65 of file RawToDigiConverter.h.

Referenced by run(), and runCommon().

edm::DetSet::push_back
void push_back(const T &t)
Definition: DetSet.h:66
VFATFrameCollection::Iterator
the VFATFrameCollection interator
Definition: VFATFrameCollection.h:49
input
static const std::string input
Definition: EdmProvDump.cc:48
TotemVFATAnalysisMask::fullMask
bool fullMask
whether all channels of the VFAT shall be masked
Definition: TotemAnalysisMask.h:33
RawToDigiConverter::verbosity
unsigned char verbosity
Definition: RawToDigiConverter.h:65
edm::DetSet
Definition: DetSet.h:23
mps_update.status
status
Definition: mps_update.py:68
RawToDigiConverter::testBCMostFrequent
unsigned int testBCMostFrequent
Definition: RawToDigiConverter.h:79
TotemVFATStatus::setMissing
void setMissing(bool val=true)
Definition: TotemVFATStatus.h:37
TotemRPDetId::planeId
TotemRPDetId planeId() const
Definition: TotemRPDetId.h:67
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
RawToDigiConverter::printErrorSummary
unsigned int printErrorSummary
Definition: RawToDigiConverter.h:67
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
RawToDigiConverter::testCRC
unsigned int testCRC
Definition: RawToDigiConverter.h:74
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
TotemFramePosition::getTOTFEDId
unsigned short getTOTFEDId() const
Definition: TotemFramePosition.h:96
TotemFramePosition::getOptoRxId
unsigned short getOptoRxId() const
Definition: TotemFramePosition.h:104
VFATFrameCollection::Iterator::IsEnd
bool IsEnd()
returns whether the iterator points over the end of the collection
Definition: VFATFrameCollection.h:74
RawToDigiConverter::EC_fraction
double EC_fraction
the minimal required (relative) occupancy of the most frequent counter value to be accepted
Definition: RawToDigiConverter.h:85
RawToDigiConverter::testID
unsigned int testID
Definition: RawToDigiConverter.h:75
CounterChecker
Class for finding the most popular both EC and BC counter, and filling the conversion status 'wrong E...
Definition: CounterChecker.h:25
TotemTimingDigi
Definition: TotemTimingDigi.h:19
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:79
TotemFramePosition::getSubSystemId
unsigned short getSubSystemId() const
the getters and setters below are deprecated
Definition: TotemFramePosition.h:88
RawToDigiConverter::EC_min
unsigned int EC_min
the minimal required number of frames to determine the most frequent counter value
Definition: RawToDigiConverter.h:82
TotemDAQMapping::TotemTimingPlaneChannelPair
Hw Id mapping for Totem Timing (dynamical mapping in Sampic)
Definition: TotemDAQMapping.h:44
TotemFramePosition::getIdxInFiber
unsigned short getIdxInFiber() const
Definition: TotemFramePosition.h:78
pps::diamond::vfat::getLeadingEdgeTime
uint32_t getLeadingEdgeTime(const VFATFrame &frame)
get timing information for single leading edge
Definition: DiamondVFATFrame.h:32
TotemSampicFrame
Definition: TotemSampicFrame.h:69
pps::diamond::vfat::getMultihit
VFATFrame::word getMultihit(const VFATFrame &frame)
flag stating whether the HPTDC channel encountered multiple hits
Definition: DiamondVFATFrame.h:46
TotemTimingDetId
Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits ...
Definition: TotemTimingDetId.h:26
CounterChecker::BCChecker
Definition: CounterChecker.h:37
RawToDigiConverter::tfNoTest
Definition: RawToDigiConverter.h:70
CTPPSDiamondDetId
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
Definition: CTPPSDiamondDetId.h:24
TotemFramePosition::getGOHId
unsigned short getGOHId() const
Definition: TotemFramePosition.h:70
edm::DetSet::emplace_back
decltype(auto) emplace_back(Args &&... args)
Definition: DetSet.h:68
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TotemDAQMapping::TotemTimingPlaneChannelPair::plane
int plane
Definition: TotemDAQMapping.h:45
TotemFramePosition
Definition: TotemFramePosition.h:31
RawToDigiConverter::BC_min
unsigned int BC_min
Definition: RawToDigiConverter.h:82
CounterChecker::ECChecker
Definition: CounterChecker.h:37
createfilelist.int
int
Definition: createfilelist.py:10
AlCaHarvesting_cff.record
record
Definition: AlCaHarvesting_cff.py:42
RawToDigiConverter::runCommon
void runCommon(const VFATFrameCollection &input, const TotemDAQMapping &mapping, std::map< TotemFramePosition, Record > &records)
Common processing for all VFAT based sub-systems.
Definition: RawToDigiConverter.cc:40
TotemVFATStatus
Definition: TotemVFATStatus.h:20
TotemTimingEventInfo
Definition: TotemTimingEventInfo.h:17
RawToDigiConverter::tfErr
Definition: RawToDigiConverter.h:70
dumpTauVariables_cfi.eventInfo
eventInfo
add run, event number and lumi section
Definition: dumpTauVariables_cfi.py:12
pps::diamond::vfat::getTrailingEdgeTime
uint32_t getTrailingEdgeTime(const VFATFrame &frame)
get timing information for single trailing edge
Definition: DiamondVFATFrame.h:37
RawToDigiConverter::testFootprint
unsigned int testFootprint
flags for which tests to run
Definition: RawToDigiConverter.h:73
Record
pps::diamond::vfat::getThresholdVoltage
uint32_t getThresholdVoltage(const VFATFrame &frame)
retrieve the threshold voltage for this channel
Definition: DiamondVFATFrame.h:42
RawToDigiConverter::unknownSummary
std::map< TotemFramePosition, unsigned int > unknownSummary
Definition: RawToDigiConverter.h:89
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TotemDAQMapping::TotemTimingPlaneChannelPair::channel
int channel
Definition: TotemDAQMapping.h:46
edm::DetSetVector::find_or_insert
reference find_or_insert(det_id_type id)
Definition: DetSetVector.h:234
pps::diamond::vfat::getHptdcErrorFlag
VFATFrame::word getHptdcErrorFlag(const VFATFrame &frame)
retrieve the list of error/status flags for the HPTDC when the frame was recorded
Definition: DiamondVFATFrame.h:48
RawToDigiConverter::testECMostFrequent
unsigned int testECMostFrequent
Definition: RawToDigiConverter.h:78
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
RawToDigiConverter::printUnknownFrameSummary
unsigned int printUnknownFrameSummary
Definition: RawToDigiConverter.h:68
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:29
TauDecayModes.dec
dec
Definition: TauDecayModes.py:142
TotemRPDetId
Detector ID class for TOTEM Si strip detectors.
Definition: TotemRPDetId.h:29
TotemVFATAnalysisMask
Contains data on masked channels of a VFAT.
Definition: TotemAnalysisMask.h:22
RawToDigiConverter::BC_fraction
double BC_fraction
Definition: RawToDigiConverter.h:85
RawToDigiConverter::errorSummary
std::map< TotemFramePosition, std::map< TotemVFATStatus, unsigned int > > errorSummary
error summaries
Definition: RawToDigiConverter.h:88
TotemVFATAnalysisMask::maskedChannels
std::set< unsigned char > maskedChannels
list of channels to be masked
Definition: TotemAnalysisMask.h:36