CMS 3D CMS Logo

TCDSRecord.cc
Go to the documentation of this file.
1 #include <iomanip>
2 
6 
7 
9  orbitNr_(0),
10  triggerCount_(0),
11  eventNumber_(0),
12  macAddress_(0),
13  swVersion_(0),
14  fwVersion_(0),
15  recordVersion_(0),
16  runNumber_(0),
17  bstReceptionStatus_(0),
18  nibble_(0),
19  lumiSection_(0),
20  nibblesPerLumiSection_(0),
21  eventType_(0),
22  triggerTypeFlags_(0),
23  inputs_(0),
24  bxid_(0)
25 {}
26 
27 
28 TCDSRecord::TCDSRecord(const unsigned char* rawData)
29 {
30  tcds::Raw_v1 const* tcdsRaw =
31  reinterpret_cast<tcds::Raw_v1 const*>(rawData + FEDHeader::length);
32  const FEDHeader fedHeader(rawData);
33 
34  orbitNr_ = (tcdsRaw->header.orbitHigh << 16) | tcdsRaw->header.orbitLow;
36  eventNumber_ = tcdsRaw->header.eventNumber;
37  macAddress_ = tcdsRaw->header.macAddress;
38  swVersion_ = tcdsRaw->header.swVersion;
39  fwVersion_ = tcdsRaw->header.fwVersion;
41  runNumber_ = tcdsRaw->header.runNumber;
43  nibble_ = tcdsRaw->header.nibble;
44  lumiSection_ = tcdsRaw->header.lumiSection;
46  eventType_ = fedHeader.triggerType();
48  inputs_ = tcdsRaw->header.inputs;
49  bxid_ = tcdsRaw->header.bxid;
50 
54 
55  bst_ = BSTRecord(tcdsRaw->bst);
56 
57  for (auto i = 0; i < tcds::l1aHistoryDepth_v1; ++i)
58  {
59  l1aHistory_.emplace_back(L1aInfo(tcdsRaw->l1aHistory.l1aInfo[i]));
60  }
61 
62  for (auto i = 0; i < tcds::bgoCount_v1; ++i)
63  {
64  lastBgos_.emplace_back(((uint64_t)(tcdsRaw->bgoHistory.lastBGo[i].orbithigh)<<32) | tcdsRaw->bgoHistory.lastBGo[i].orbitlow);
65  }
66 }
67 
68 
70 
71 
72 std::ostream& operator<<(std::ostream& s, const TCDSRecord& record)
73 {
74  s << "MacAddress: 0x" << std::hex << record.getMacAddress() << std::dec << std::endl;
75  s << "SwVersion: 0x" << std::hex << record.getSwVersion() << std::dec << std::endl;
76  s << "FwVersion: 0x" << std::hex << record.getFwVersion() << std::dec << std::endl;
77  s << "RecordVersion: " << record.getRecordVersion() << std::endl;
78  s << "RunNumber: " << record.getRunNumber() << std::endl;
79  s << "BstReceptionStatus: 0x" << std::hex << record.getBstReceptionStatus() << std::dec << std::endl;
80  s << "Nibble: " << record.getNibble() << std::endl;
81  s << "LumiSection: " << record.getLumiSection() << std::endl;
82  s << "NibblesPerLumiSection: " << record.getNibblesPerLumiSection() << std::endl;
83  s << "EventType: " << record.getEventType() << std::endl;
84  s << "TriggerTypeFlags: 0x" << std::hex << record.getTriggerTypeFlags() << std::dec << std::endl;
85  s << "Inputs: " << record.getInputs() << std::endl;
86  s << "OrbitNr: " << record.getOrbitNr() << std::endl;
87  s << "BXID: " << record.getBXID() << std::endl;
88  s << "TriggerCount: " << record.getTriggerCount() << std::endl;
89  s << "EventNumber: " << record.getEventNumber() << std::endl;
90  s << "ActivePartitions: " << record.getActivePartitions() << std::endl;
91  s << std::endl;
92 
93  s << "L1aHistory:" << std::endl;
94  for (auto l1Info : record.getFullL1aHistory())
95  s << l1Info;
96  s << std::endl;
97 
98  s << record.getBST() << std::endl;
99  s << "LastOrbitCounter0: " << record.getLastOrbitCounter0() << std::endl;
100  s << "LastTestEnable: " << record.getLastTestEnable() << std::endl;
101  s << "LastResync: " << record.getLastResync() << std::endl;
102  s << "LastStart: " << record.getLastStart() << std::endl;
103  s << "LastEventCounter0: " << record.getLastEventCounter0() << std::endl;
104  s << "LastHardReset: " << record.getLastHardReset() << std::endl;
105 
106  for (auto i = 0; i < tcds::bgoCount_v1; ++i)
107  s << "Last BGo " << std::setw(2) << i << ": " << record.getOrbitOfLastBgo(i) << std::endl;
108 
109  return s;
110 }
uint16_t triggerTypeFlags_
Definition: TCDSRecord.h:152
static const char runNumber_[]
uint32_t getRecordVersion() const
Definition: TCDSRecord.h:63
const BSTRecord & getBST() const
Definition: TCDSRecord.h:104
const uint16_t nibblesPerLumiSection
Definition: TCDSRaw.h:45
const uint16_t orbitLow
Definition: TCDSRaw.h:50
uint8_t triggerType() const
Event Trigger type identifier.
Definition: FEDHeader.cc:17
uint32_t getLastResync() const
Definition: TCDSRecord.h:125
uint16_t getNibblesPerLumiSection() const
Definition: TCDSRecord.h:75
JetCorrectorParameters::Record record
Definition: classes.h:7
uint32_t getLastOrbitCounter0() const
Definition: TCDSRecord.h:119
static const uint32_t length
Definition: FEDHeader.h:54
const uint64_t macAddress
Definition: TCDSRaw.h:32
const uint32_t lumiSection
Definition: TCDSRaw.h:44
L1aHistory l1aHistory_
Definition: TCDSRecord.h:157
const uint16_t bxid
Definition: TCDSRaw.h:49
uint64_t getOrbitNr() const
Definition: TCDSRecord.h:92
const uint32_t activePartitions1
Definition: TCDSRaw.h:42
uint32_t getNibble() const
Definition: TCDSRecord.h:72
uint64_t triggerCount_
Definition: TCDSRecord.h:140
uint32_t bstReceptionStatus_
Definition: TCDSRecord.h:147
const uint8_t bgoCount_v1
Definition: TCDSRaw.h:106
uint32_t getLastTestEnable() const
Definition: TCDSRecord.h:122
uint32_t lumiSection_
Definition: TCDSRecord.h:149
const uint32_t bstReceptionStatus
Definition: TCDSRaw.h:40
uint16_t inputs_
Definition: TCDSRecord.h:153
uint64_t orbitNr_
Definition: TCDSRecord.h:139
uint32_t runNumber_
Definition: TCDSRecord.h:146
Class to contain L1 accept history information from TCDS FED.
Definition: L1aInfo.h:17
const uint64_t eventNumber
Definition: TCDSRaw.h:53
Class to contain information from TCDS FED.
Definition: TCDSRecord.h:21
BSTRecord bst_
Definition: TCDSRecord.h:159
std::bitset< 96 > ActivePartitions
Definition: TCDSRecord.h:107
const uint32_t recordVersion
Definition: TCDSRaw.h:36
std::ostream & operator<<(std::ostream &s, const TCDSRecord &record)
Pretty-print operator for TCDSRecord.
Definition: TCDSRecord.cc:72
uint64_t getTriggerCount() const
Definition: TCDSRecord.h:95
uint16_t eventType_
Definition: TCDSRecord.h:151
uint16_t bxid_
Definition: TCDSRecord.h:154
Class representing the Beam Synchronous Timing (BST) information included in the TCDS record...
Definition: BSTRecord.h:23
const uint32_t orbitHigh
Definition: TCDSRaw.h:51
const uint32_t activePartitions0
Definition: TCDSRaw.h:41
ActivePartitions activePartitions_
Definition: TCDSRecord.h:156
const struct BST_v1 bst
Definition: TCDSRaw.h:118
uint32_t getBstReceptionStatus() const
Definition: TCDSRecord.h:101
uint16_t nibblesPerLumiSection_
Definition: TCDSRecord.h:150
const struct LastBGo_v1 lastBGo[bgoCount_v1]
Definition: TCDSRaw.h:110
uint16_t getInputs() const
Definition: TCDSRecord.h:86
std::vector< uint32_t > lastBgos_
Definition: TCDSRecord.h:161
const uint32_t fwVersion
Definition: TCDSRaw.h:34
ActivePartitions getActivePartitions() const
Definition: TCDSRecord.h:108
uint32_t getFwVersion() const
Definition: TCDSRecord.h:60
virtual ~TCDSRecord()
Definition: TCDSRecord.cc:69
const uint8_t l1aHistoryDepth_v1
Definition: TCDSRaw.h:69
const uint32_t nibble
Definition: TCDSRaw.h:43
unsigned long long uint64_t
Definition: Time.h:15
const uint16_t inputs
Definition: TCDSRaw.h:48
L1aInfo_v1 l1aInfo[l1aHistoryDepth_v1]
Definition: TCDSRaw.h:72
uint16_t getTriggerTypeFlags() const
Definition: TCDSRecord.h:83
uint32_t fwVersion_
Definition: TCDSRecord.h:144
uint32_t getLastHardReset() const
Definition: TCDSRecord.h:134
uint64_t getMacAddress() const
Definition: TCDSRecord.h:54
uint16_t getBXID() const
Definition: TCDSRecord.h:89
uint32_t nibble_
Definition: TCDSRecord.h:148
uint32_t getOrbitOfLastBgo(const uint16_t bgo) const
Definition: TCDSRecord.h:116
const L1aHistory & getFullL1aHistory() const
Definition: TCDSRecord.h:112
const uint32_t orbitlow
Definition: TCDSRaw.h:101
uint32_t recordVersion_
Definition: TCDSRecord.h:145
const uint32_t activePartitions2
Definition: TCDSRaw.h:39
const struct L1aHistory_v1 l1aHistory
Definition: TCDSRaw.h:117
const uint64_t triggerCount
Definition: TCDSRaw.h:52
const uint16_t triggerTypeFlags
Definition: TCDSRaw.h:46
uint32_t getLastEventCounter0() const
Definition: TCDSRecord.h:131
uint64_t getEventNumber() const
Definition: TCDSRecord.h:98
uint16_t getEventType() const
Definition: TCDSRecord.h:78
const struct BGoHistory_v1 bgoHistory
Definition: TCDSRaw.h:119
uint32_t getSwVersion() const
Definition: TCDSRecord.h:57
const uint16_t orbithigh
Definition: TCDSRaw.h:102
const struct Header_v1 header
Definition: TCDSRaw.h:116
const uint32_t runNumber
Definition: TCDSRaw.h:37
const uint32_t swVersion
Definition: TCDSRaw.h:33
uint32_t getLastStart() const
Definition: TCDSRecord.h:128
uint64_t macAddress_
Definition: TCDSRecord.h:142
uint32_t swVersion_
Definition: TCDSRecord.h:143
uint32_t getRunNumber() const
Definition: TCDSRecord.h:66
uint32_t getLumiSection() const
Definition: TCDSRecord.h:69
uint64_t eventNumber_
Definition: TCDSRecord.h:141