ATLAS Offline Software
CTP_Decoder.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 // this header file
8 
9 // tdaq-common includes for format definition
10 #include "CTPfragment/CTPdataformat.h"
11 
12 #include "GaudiKernel/MsgStream.h"
14 
16  AthMessaging(Athena::getMessageSvc(), "CTP_Decoder")
17 {
18 }
19 
20 void CTP_Decoder::setRDO(const CTP_RDO* rdo)
21 {
22  m_rdo = rdo;
23  unsigned int ctpVersionNumber = m_rdo->getCTPVersionNumber();
24  CTPdataformatVersion ctpVersion(ctpVersionNumber);
25 
26  unsigned int nBunches = rdo->getNumberOfBunches();
27  ATH_MSG_DEBUG("setRDO> #bunches: " << nBunches << ", ctp version (found in RDO): " << ctpVersionNumber);
28  ATH_MSG_VERBOSE(ctpVersion.dump());
29 
30  m_BCs.clear();
31  m_BCs.resize(nBunches);
32  for (CTP_BC& bc : m_BCs) {
33  bc.setCTPVersion(ctpVersionNumber);
34  }
35 
36  //std::vector<uint32_t> PITs = rdo->getPITWords();
37  //std::vector<uint32_t> FPIs = rdo->getFPIWords();
38  const std::vector<uint32_t> & TIPs = rdo->getTIPWords();
39  const std::vector<uint32_t> & TBPs = rdo->getTBPWords();
40  const std::vector<uint32_t> & TAPs = rdo->getTAPWords();
41  const std::vector<uint32_t> & TAVs = rdo->getTAVWords();
42 
43  if( nBunches * ctpVersion.getTIPwords() != TIPs.size() ) {
44  ATH_MSG_FATAL("Expected " << nBunches * ctpVersion.getTIPwords() << " TIP words, but TIP vector has size " << TIPs.size());
45  } else {
46  ATH_MSG_DEBUG(TIPs.size() << " TIP words as expected");
47  }
48  if( nBunches * ctpVersion.getTBPwords() != TBPs.size() ) {
49  ATH_MSG_FATAL(nBunches * ctpVersion.getTBPwords() << " TBP words, but TBP vector has size " << TBPs.size());
50  } else {
51  ATH_MSG_DEBUG(TBPs.size() << " TBP words as expected");
52  }
53  if( nBunches * ctpVersion.getTAPwords() != TAPs.size() ) {
54  ATH_MSG_FATAL(nBunches * ctpVersion.getTAPwords() << " TAP words, but TAP vector has size " << TAPs.size());
55  } else {
56  ATH_MSG_DEBUG(TAPs.size() << " TAP words as expected");
57  }
58  if( nBunches * ctpVersion.getTAVwords() != TAVs.size() ) {
59  ATH_MSG_FATAL(nBunches * ctpVersion.getTAVwords() << " TAV words, but TAV vector has size " << TAVs.size());
60  } else {
61  ATH_MSG_DEBUG(TAVs.size() << " TAV words as expected");
62  }
63 
64 
65  for(unsigned int i = 0 ; i < nBunches ; ++i) {
66 
67  ATH_MSG_DEBUG(i << " from CTP_RDO to internal bitsets");
68 
69  for(unsigned int tip = 0; tip < ctpVersion.getTIPwords(); ++tip) {
70  unsigned int index = i*ctpVersion.getTIPwords() + tip;
71  if(index >= TIPs.size()) {
72  ATH_MSG_FATAL("Invalid TIP position " << index);
73  return;
74  }
75  m_BCs[i].setTIPWord(TIPs[index],tip); //sets m_tip
76  }
77 
78  for(unsigned int tbp = 0; tbp < ctpVersion.getTBPwords(); ++tbp) {
79  unsigned int index = i * ctpVersion.getTBPwords() + tbp;
80  if(index >= TBPs.size()) {
81  ATH_MSG_FATAL("Invalid TBP position " << index);
82  return;
83  }
84  m_BCs[i].setTBPWord(TBPs[index],tbp); //sets m_tbp
85  }
86 
87  for(unsigned int tap = 0; tap < ctpVersion.getTAPwords(); ++tap) {
88  unsigned int index = i * ctpVersion.getTAPwords() + tap;
89  if(index >= TAPs.size()) {
90  ATH_MSG_FATAL("Invalid TAP position " << index);
91  return;
92  }
93  m_BCs[i].setTAPWord(TAPs[index],tap); //sets m_tap
94  }
95 
96  for(unsigned int tav = 0; tav < ctpVersion.getTAVwords(); ++tav) {
97  unsigned int index = i * ctpVersion.getTAVwords() + tav;
98  if(index >= TAVs.size()) {
99  ATH_MSG_FATAL("Invalid TAV position " << index);
100  return;
101  }
102  m_BCs[i].setTAVWord(TAVs[index],tav); //set m_tav
103  }
104  }
105 }
106 
108 {
109  unsigned int nBunches = m_rdo->getNumberOfBunches();
110  unsigned int vecSize = m_BCs.size();
111 
112  if(nBunches == 0) {
113  ATH_MSG_DEBUG("CTP_RDO empty");
114  return;
115  }
116 
117  if(nBunches != vecSize) {
118  ATH_MSG_ERROR("mismatch: " << nBunches << " bunches, but vector size is " << vecSize);
119  }
120 
121  if( msgLvl(MSG::DEBUG) ){
122  msg() << MSG::DEBUG << "=================================================" << endmsg;
123  msg() << MSG::DEBUG << "Event dump" << endmsg;
124  msg() << MSG::DEBUG << "Time " << m_rdo->getTimeSec() << "s "
125  << std::setw(10) << std::setiosflags(std::ios_base::right) << std::setfill(' ')
126  << m_rdo->getTimeNanoSec() << std::resetiosflags(std::ios_base::right)
127  << "ns" << endmsg;
128  msg() << MSG::DEBUG << "Number of bunches: " << nBunches
129  << " (BC vector size " << vecSize << ")" << endmsg;
130  msg() << MSG::DEBUG << "L1A position: " << m_rdo->getL1AcceptBunchPosition() << endmsg;
131  }
132 
133  for(unsigned int i = 0; i<vecSize; ++i) {
134  ATH_MSG_DEBUG("Now dumping BC " << i);
135  m_BCs[i].dumpData(msg());
136  }
137 
138  ATH_MSG_DEBUG("=================================================");
139 }
140 
141 
142 
143 bool CTP_Decoder::checkTrigger(unsigned int itemNo,unsigned int pos)
144 {
145  if(pos >= m_BCs.size()) {
146  ATH_MSG_WARNING("Trying to access bunch crossing no "
147  << pos << ", but in the event are only " << m_BCs.size());
148  }
149  if(itemNo >= getBunchCrossing(pos).getTAV().size()) {
150  ATH_MSG_WARNING("Checking item no " << itemNo
151  << ", which is more than the maximum : "
152  << getBunchCrossing(pos).getTAV().size());
153  }
154  return getBunchCrossing(pos).getTAV().test(itemNo);
155 }
156 
157 bool CTP_Decoder::checkTriggerAfterPrescale(unsigned int itemNo,unsigned int pos) {
158  if(pos >= m_BCs.size()) {
159  ATH_MSG_WARNING("Trying to access bunch crossing no "
160  << pos << ", but in the event are only " << m_BCs.size());
161  }
162  if(itemNo >= getBunchCrossing(pos).getTAP().size()) {
163  ATH_MSG_WARNING("Checking item no " << itemNo
164  << ", which is more than the maximum : "
165  << getBunchCrossing(pos).getTAP().size());
166  }
167  return getBunchCrossing(pos).getTAP().test(itemNo);
168 }
169 
170 
171 
172 std::vector<unsigned int> CTP_Decoder::getAllTriggers(unsigned int pos) {
173  if(pos >= m_BCs.size()) {
174  ATH_MSG_WARNING("Trying to access bunch crossing no "
175  << pos << ", but in the event are only " << m_BCs.size());
176  return std::vector<unsigned int>();
177  }
178  std::vector<unsigned int> triggers;
179  const CTP_BC& bc = getBunchCrossing(pos);
180  if(bc.getTAV().any()) {
181  for(unsigned int i = 0; i < bc.getTAV().size() ; ++i) {
182  if(bc.getTAV().test(i)) {
183  triggers.push_back(i+1);
184  }
185  }
186  }
187  return triggers;
188 }
189 
190 
191 
192 
199 void CTP_BC::dumpData(MsgStream& msglog) const
200 {
201  if( msglog.level() > MSG::DEBUG )
202  return;
203 
204  msglog << MSG::DEBUG << "-------------- BC dump for " << getBCID() << " ------------------------------------" << endmsg;
205  msglog << MSG::DEBUG << "PITWordAux : " << printPITWordAux() << endmsg;
206  msglog << MSG::DEBUG << "BCID : " << getBCID() << endmsg;
207  msglog << MSG::DEBUG << "Random trig : " << getRandomTrig() << " (binary: " << printRandomTrig() << ")" << endmsg;
208  msglog << MSG::DEBUG << "Prescaled clock : " << getPrescaledClock() << " (binary: " << printPrescaledClock() << ")" << endmsg;
209 
210  if(m_tip.any()) {
211  int count(0);
212  std::ostringstream outstream;
213  for(unsigned int i = 0; i<m_tip.size() ; ++i) {
214  if(m_tip.test(i)) {
215  outstream << std::setw(3) << std::setfill('0') << (i+1) << " ";
216  ++count;
217  }
218  }
219  msglog << MSG::DEBUG << "TIP with input (" << count << " items): " << outstream.str() << endmsg;
220  } else {
221  msglog << MSG::DEBUG << "No TIP!" << endmsg;
222  }
223 
224 
225  if(m_tbp.any()) {
226  int count(0);
227  std::ostringstream outstream;
228  for(unsigned int i = 0; i<m_tbp.size() ; ++i) {
229  if(m_tbp.test(i)) {
230  outstream << i << " ";
231  ++count;
232  }
233  }
234  msglog << MSG::DEBUG << "Fired TBP (" << count << " items): " << outstream.str() << endmsg;
235  } else {
236  msglog << MSG::DEBUG << "No TBP fired!" << endmsg;
237  }
238 
239 
240  if(m_tap.any()) {
241  int count(0);
242  std::ostringstream outstream;
243  for(unsigned int i = 0; i<m_tap.size() ; ++i) {
244  if(m_tap.test(i)) {
245  outstream << i << " ";
246  ++count;
247  }
248  }
249  msglog << MSG::DEBUG << "Fired TAP (" << count << " items): " << outstream.str() << endmsg;
250  } else {
251  msglog << MSG::DEBUG << "No TAP fired!" << endmsg;
252  }
253 
254 
255  if(m_tav.any()) {
256  int count(0);
257  std::ostringstream outstream;
258  for(unsigned int i = 0; i<m_tav.size() ; ++i) {
259  if(m_tav.test(i)) {
260  outstream << i << " ";
261  ++count;
262  }
263  }
264  msglog << MSG::DEBUG << "Fired TAV (" << count << " items): " << outstream.str() << endmsg;
265  } else {
266  msglog << MSG::DEBUG << "No TAV fired!" << endmsg;
267  }
268 
269  msglog << MSG::VERBOSE << "TIP - total size: " << m_tip.size() << ", with input: "
270  << m_tip.count() << ", pattern:" << std::endl << printTIP() << endmsg;
271  msglog << MSG::VERBOSE << "TBP " << std::endl << printTBP() << endmsg;
272  msglog << MSG::VERBOSE << "TAP " << std::endl << printTAP() << endmsg;
273  msglog << MSG::VERBOSE << "TAV " << std::endl << printTAV() << endmsg;
274 }
275 
276 
277 std::bitset<32> CTP_BC::getBCIDBitSet() const
278 {
279  std::bitset<32> bcid = (m_pitAux >> m_ctpVersion.getBcidShift());
280 
281  // the bcid mask is wrong in CTPfragment/CTPdataformatVersion.h (0xF000)
282  // so we set it here
283  uint32_t bcidMask = 0xFFF;
284  if(m_ctpVersion.getVersionNumber()>=1 && m_ctpVersion.getVersionNumber()<=3) {
285  bcidMask = 0xF;
286  }
287  //bcid &= m_ctpVersion.getBcidMask();
288  bcid &= bcidMask;
289  return bcid;
290 }
291 
293 {
294  return getBCIDBitSet().to_ulong();
295 }
296 
297 std::string CTP_BC::printBCID() const
298 {
299  std::bitset<32> bcid = getBCIDBitSet();
300  return bcid.to_string<char,
301  std::char_traits<char>, std::allocator<char> >();
302 }
303 
304 std::bitset<32> CTP_BC::getRandomTrigBitSet() const
305 {
306  std::bitset<32> rnd = (m_pitAux >> m_ctpVersion.getRandomTrigShift());
307  rnd &= m_ctpVersion.getRandomTrigMask();
308  return rnd;
309 }
310 
312 {
313  return getRandomTrigBitSet().to_ulong();
314 }
315 
316 std::string CTP_BC::printRandomTrig() const
317 {
318  std::bitset<32> rnd = getRandomTrigBitSet();
319  return rnd.to_string<char,
320  std::char_traits<char>, std::allocator<char> >();
321 }
322 
323 std::bitset<32> CTP_BC::getPrescaledClockBitSet() const
324 {
325  std::bitset<32> prcl;
326 
327  if (!m_ctpVersion.getNumPrescaledClocks()) {
328  return prcl;
329  }
330 
331  prcl = (m_pitAux >> m_ctpVersion.getPrescaledClockShift());
332  prcl &= m_ctpVersion.getPrescaledClockMask();
333  return prcl;
334 }
335 
337 {
338  return getPrescaledClockBitSet().to_ulong();
339 }
340 
341 std::string CTP_BC::printPrescaledClock() const
342 {
343  std::bitset<32> prcl = getPrescaledClockBitSet();
344  return prcl.to_string<char,
345  std::char_traits<char>, std::allocator<char> >();
346 }
347 
348 std::string CTP_BC::printPITWordAux() const
349 {
350  return m_pitAux.to_string<char,
351  std::char_traits<char>, std::allocator<char> >();
352 }
353 
355 {
356  if(pos >= m_ctpVersion.getTIPwords()) {
357  MsgStream log(Athena::getMessageSvc(), "CTP_Decoder");
358  log << MSG::ERROR <<"Invalid TIP position " << pos <<endmsg;
359  return;
360  }
361 
362  std::bitset<512> bs = word;
363 
364  bs <<= (pos * CTP_RDO::SIZEOF_WORDS);
365 
366  if( pos < (m_ctpVersion.getTIPwords()-1) ) m_tip |= bs;
367  else setPITWordAux(word);
368 }
369 
370 void CTP_BC::setTIP(const std::vector<uint32_t>& words)
371 {
372  for(uint32_t i = 0; i<words.size();++i) setTIPWord(words[i],i);
373 }
374 
375 std::string CTP_BC::printTIP() const
376 {
377  return m_tip.to_string<char,
378  std::char_traits<char>, std::allocator<char> >();
379 }
380 
381 
382 
384 {
385  if(pos >= m_ctpVersion.getTBPwords()) {
386  MsgStream log(Athena::getMessageSvc(), "CTP_Decoder");
387  log << MSG::ERROR <<"Invalid TBP position " << pos <<endmsg;
388  return;
389  }
390 
391  std::bitset<512> bs = word;
392  bs <<= (pos * CTP_RDO::SIZEOF_WORDS);
393  m_tbp |= bs;
394 }
395 
396 void CTP_BC::setTBP(const std::vector<uint32_t>& words)
397 {
398  for(uint32_t i = 0; i<words.size();++i) setTBPWord(words[i],i);
399 }
400 
401 std::string CTP_BC::printTBP() const
402 {
403  return m_tbp.to_string<char,
404  std::char_traits<char>, std::allocator<char> >();
405 }
406 
408 {
409  if(pos >= m_ctpVersion.getTAPwords()) {
410  MsgStream log(Athena::getMessageSvc(), "CTP_Decoder");
411  log << MSG::ERROR <<"Invalid TAP position " << pos <<endmsg;
412  return;
413  }
414  std::bitset<512> bs = word;
415  bs <<= (pos * CTP_RDO::SIZEOF_WORDS);
416  m_tap |= bs;
417 }
418 
419 void CTP_BC::setTAP(const std::vector<uint32_t>& words)
420 {
421  for(uint32_t i = 0; i<words.size();++i)
422  setTAPWord(words[i],i);
423 }
424 
425 std::string CTP_BC::printTAP() const
426 {
427  return m_tap.to_string<char,
428  std::char_traits<char>, std::allocator<char> >();
429 }
430 
432 {
433  if(pos >= m_ctpVersion.getTAVwords()) {
434  MsgStream log(Athena::getMessageSvc(), "CTP_Decoder");
435  log << MSG::ERROR <<"Invalid TAV position " << pos <<endmsg;
436  return;
437  }
438  std::bitset<512> bs = word;
439  bs <<= (pos * CTP_RDO::SIZEOF_WORDS);
440  m_tav |= bs;
441 }
442 
443 void CTP_BC::setTAV(const std::vector<uint32_t>& words)
444 {
445  for(uint32_t i = 0; i<words.size();++i)
446  setTAVWord(words[i],i);
447 }
448 
449 std::string CTP_BC::printTAV() const
450 {
451  return m_tav.to_string<char,
452  std::char_traits<char>, std::allocator<char> >();
453 }
CTP_BC::dumpData
void dumpData(MsgStream &) const
Helper class to decode the CTP data for one bunch-crossing.
Definition: CTP_Decoder.cxx:199
CTP_Decoder.h
CTP_BC::setTAPWord
void setTAPWord(uint32_t word, uint32_t pos=0)
Set TAP word number 'pos'.
Definition: CTP_Decoder.cxx:407
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
CTP_Decoder::checkTriggerAfterPrescale
bool checkTriggerAfterPrescale(unsigned int itemNo, unsigned int bcPos)
Test the LVL1 trigger result after pre-scale factors are applied, before the final trigger decision,...
Definition: CTP_Decoder.cxx:157
CTP_BC::setTAVWord
void setTAVWord(uint32_t word, uint32_t pos=0)
Set TAV word number 'pos'.
Definition: CTP_Decoder.cxx:431
getMessageSvc.h
singleton-like access to IMessageSvc via open function and helper
CTP_BC::getRandomTrigBitSet
std::bitset< 32 > getRandomTrigBitSet() const
Accessor to obtain random-trigger input bits.
Definition: CTP_Decoder.cxx:304
CTP_BC::setTBP
void setTBP(const std::vector< uint32_t > &words)
Set TBP (Trigger Before Prescales) words.
Definition: CTP_Decoder.cxx:396
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
CTP_BC::getTAV
const std::bitset< 512 > & getTAV() const
get bitset of TAV words
Definition: CTP_Decoder.h:115
CTP_BC::m_tbp
std::bitset< 512 > m_tbp
Definition: CTP_Decoder.h:129
index
Definition: index.py:1
CTP_BC::m_tav
std::bitset< 512 > m_tav
Definition: CTP_Decoder.h:131
xAOD::char
char
Definition: TrigDecision_v1.cxx:38
CTP_BC::setTBPWord
void setTBPWord(uint32_t word, uint32_t pos=0)
Set TBP word number 'pos'.
Definition: CTP_Decoder.cxx:383
CTP_RDO::SIZEOF_WORDS
static constexpr unsigned int SIZEOF_WORDS
number of bits in one data word (32)
Definition: CTP_RDO.h:90
CTP_Decoder::dumpData
void dumpData() const
Helper to dump data for debugging.
Definition: CTP_Decoder.cxx:107
CTP_Decoder::CTP_Decoder
CTP_Decoder()
Helper class to decode the CTP data fragment.
Definition: CTP_Decoder.cxx:15
CTP_BC::printTBP
std::string printTBP() const
Obtain TBP bitpattern string (binary format)
Definition: CTP_Decoder.cxx:401
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
CTP_RDO::getCTPVersionNumber
unsigned int getCTPVersionNumber() const
Definition: CTP_RDO.h:64
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::tap
setBGCode tap
Definition: TrigDecision_v1.cxx:43
CTP_BC::setTIPWord
void setTIPWord(uint32_t word, uint32_t pos=0)
Set TIP word number 'pos'.
Definition: CTP_Decoder.cxx:354
CTP_BC::printBCID
std::string printBCID() const
Return string with BCID in binary format.
Definition: CTP_Decoder.cxx:297
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
CTP_RDO::getNumberOfBunches
uint32_t getNumberOfBunches() const
Definition: CTP_RDO.cxx:89
CTP_BC::printTIP
std::string printTIP() const
Obtain TIP bitpattern string (binary format)
Definition: CTP_Decoder.cxx:375
CTP_BC::printPrescaledClock
std::string printPrescaledClock() const
Return string with prescaled clock in binary format.
Definition: CTP_Decoder.cxx:341
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CTP_Decoder::getAllTriggers
std::vector< unsigned int > getAllTriggers(unsigned int bcPos)
Function to obtain a vector with the numbers of the trigger items that fired for the current event.
Definition: CTP_Decoder.cxx:172
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthMessaging::msgLvl
bool msgLvl(const MSG::Level lvl) const
Test the output level.
Definition: AthMessaging.h:151
lumiFormat.i
int i
Definition: lumiFormat.py:92
CTP_Decoder::checkTrigger
bool checkTrigger(unsigned int itemNo, unsigned int bcPos)
Test the LVL1 trigger result for a certain trigger item.
Definition: CTP_Decoder.cxx:143
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
CTP_BC::printRandomTrig
std::string printRandomTrig() const
Return string with random trigger in binary format.
Definition: CTP_Decoder.cxx:316
CTP_BC::m_tip
std::bitset< 512 > m_tip
Bitsets containing bit-patterns of trigger inputs and trigger.
Definition: CTP_Decoder.h:128
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CTP_BC
Definition: CTP_Decoder.h:17
CTP_Decoder::setRDO
void setRDO(const CTP_RDO *rdo)
Set RDO and fill internal variables from the data object.
Definition: CTP_Decoder.cxx:20
CTP_BC::setTAP
void setTAP(const std::vector< uint32_t > &words)
Set TAP (Trigger After Prescales) words.
Definition: CTP_Decoder.cxx:419
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
CTP_BC::setPITWordAux
void setPITWordAux(uint32_t word)
Set auxiliary PIT word, which is the one containing the 12-bit BCID (bit.
Definition: CTP_Decoder.h:70
CTP_BC::setTIP
void setTIP(const std::vector< uint32_t > &words)
Set TIP words.
Definition: CTP_Decoder.cxx:370
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
CTP_BC::getTAP
const std::bitset< 512 > & getTAP() const
get bitset of TAP words
Definition: CTP_Decoder.h:106
CTP_Decoder::m_BCs
std::vector< CTP_BC > m_BCs
Vector of BCs for the current event.
Definition: CTP_Decoder.h:226
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
CTP_BC::getBCID
uint32_t getBCID() const
Get BCID as unsigned integer.
Definition: CTP_Decoder.cxx:292
CTP_Decoder::m_rdo
const CTP_RDO * m_rdo
The RDO member.
Definition: CTP_Decoder.h:224
CTP_RDO::getL1AcceptBunchPosition
uint32_t getL1AcceptBunchPosition() const
Definition: CTP_RDO.cxx:94
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
CTP_BC::getPrescaledClockBitSet
std::bitset< 32 > getPrescaledClockBitSet() const
Accessor to obtain prescaled-clock input bits.
Definition: CTP_Decoder.cxx:323
CTP_RDO
Definition: CTP_RDO.h:20
CTP_RDO::getTAVWords
std::vector< uint32_t > getTAVWords() const
Definition: CTP_RDO.cxx:216
CTP_RDO::getTBPWords
std::vector< uint32_t > getTBPWords() const
Definition: CTP_RDO.cxx:206
CTP_BC::setTAV
void setTAV(const std::vector< uint32_t > &words)
Set TAV (Trigger After Veto) words.
Definition: CTP_Decoder.cxx:443
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CTP_BC::getPrescaledClock
uint32_t getPrescaledClock() const
Prescaled-clock inputs as uint32_t.
Definition: CTP_Decoder.cxx:336
CTP_BC::m_tap
std::bitset< 512 > m_tap
Definition: CTP_Decoder.h:130
CTP_BC::getBCIDBitSet
std::bitset< 32 > getBCIDBitSet() const
Accessor to obtain std::bitset containing the bunch-crossing.
Definition: CTP_Decoder.cxx:277
CTP_BC::printPITWordAux
std::string printPITWordAux() const
Get auxiliary PIT word as string in binary format.
Definition: CTP_Decoder.cxx:348
CTP_BC::m_pitAux
std::bitset< 32 > m_pitAux
Contains BCID, random trigger and prescaled clock.
Definition: CTP_Decoder.h:133
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
CTP_BC::printTAP
std::string printTAP() const
Obtain TAP bitpattern string (binary format)
Definition: CTP_Decoder.cxx:425
CTP_Decoder::getBunchCrossing
const CTP_BC & getBunchCrossing(unsigned int pos)
Get data of a single bunch-crossing.
Definition: CTP_Decoder.h:185
CTP_BC::printTAV
std::string printTAV() const
Obtain TAV bitpattern string (binary format)
Definition: CTP_Decoder.cxx:449
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
CTP_BC::m_ctpVersion
CTPdataformatVersion m_ctpVersion
Definition: CTP_Decoder.h:135
checkFileSG.words
words
Definition: checkFileSG.py:76
CTP_BC::getRandomTrig
uint32_t getRandomTrig() const
Random-trigger inputs as uint32_t.
Definition: CTP_Decoder.cxx:311
CTP_RDO::getTIPWords
std::vector< uint32_t > getTIPWords() const
Definition: CTP_RDO.cxx:201
CTP_RDO::getTimeNanoSec
uint32_t getTimeNanoSec() const
Definition: CTP_RDO.cxx:83
CTP_RDO::getTAPWords
std::vector< uint32_t > getTAPWords() const
Definition: CTP_RDO.cxx:211
CTP_RDO::getTimeSec
uint32_t getTimeSec() const
Definition: CTP_RDO.cxx:77