Print object content in human readable format in a string.
103 {
104
105 std::ostringstream s;
106
107 s << "\n*BEGIN* xAOD::CTPResult" << std::endl;
108
109
111 s << "xAOD::CTPResult empty" << std::endl;
112 s << "*END* xAOD::CTPResult" << std::endl;
113 return s.str();
114 }
115
116
117 std::vector<std::string> ctpResultIssues = ctpRes.
checkForIssues();
118 if (ctpResultIssues.empty()) {
119 s << "xAOD::CTPResult status: Good! " << std::endl;
120 } else {
121 s <<
"xAOD::CTPResult status: Bad! " << std::endl;
122 for (const auto& issue : ctpResultIssues) {
123 s <<
"xAOD::CTPResult status: " << issue << std::endl;
124 }
125 }
126
130
131
132 s <<
"Header information: " << std::endl;
133 s <<
" Header marker : " << std::hex << ctpRes.
headerMarker() << std::dec << std::endl;
134 s <<
" Header size : " << ctpRes.
headerSize() << std::endl;
136 s <<
" Source ID : 0x" << std::hex << ctpRes.
sourceID() << std::dec << std::endl;
137 s <<
" Run number : " << ctpRes.
runNumber() << std::endl;
138 s <<
" Ext. LVL1 ID : " << ctpRes.
L1ID() << std::endl;
139 s <<
" BCID : " << ctpRes.
BCID() << std::endl;
140 s <<
" Trigger type : " << ctpRes.
triggerType() << std::endl;
141 s <<
" Det. event type : " << ctpRes.
eventType() << std::endl;
142
143
144 s <<
"Payload information: " << std::endl;
145 s <<
" Time " << ctpRes.
timeSec() <<
"s "
146 << std::setw(10) << std::setiosflags(std::ios_base::right) << std::setfill(' ')
147 << ctpRes.
timeNanoSec() << std::resetiosflags(std::ios_base::right)
148 << "ns" << std::endl;
149
150
152
153 auto bunch = ctpRes.
getBC(i);
154 s <<
" BC dump for bunch " <<
i << std::endl;
155
156
158 s <<
" TIP word number " <<
j <<
": 0x" << std::hex << std::setw( 8 ) << std::setfill(
'0' ) << ctpRes.
tipWords()[
i][
j] << std::dec << std::endl;
159 }
160 if (ctpRes.
tipWords()[i].size() == 0) {
161 s <<
" No TIP words!" << std::endl;
162 }
163
164
166 s <<
" TBP word number " <<
j <<
": 0x" << std::hex << std::setw( 8 ) << std::setfill(
'0' ) << ctpRes.
tbpWords()[
i][
j] << std::dec << std::endl;
167 }
168 if (ctpRes.
tbpWords()[i].size() == 0) {
169 s <<
" No TBP words!" << std::endl;
170 }
171
172
174 s <<
" TAP word number " <<
j <<
": 0x" << std::hex << std::setw( 8 ) << std::setfill(
'0' ) << ctpRes.
tapWords()[
i][
j] << std::dec << std::endl;
175 }
176 if (ctpRes.
tapWords()[i].size() == 0) {
177 s <<
" No TAP words!" << std::endl;
178 }
179
180
182 s <<
" TAV word number " <<
j <<
": 0x" << std::hex << std::setw( 8 ) << std::setfill(
'0' ) << ctpRes.
tavWords()[
i][
j] << std::dec << std::endl;
183 }
184 if (ctpRes.
tavWords()[i].size() == 0) {
185 s <<
" No TAV words!" << std::endl;
186 }
187 }
188
189
191 s <<
" Additional word number " <<
i <<
": 0x" << std::hex << std::setw( 8 ) << std::setfill(
'0' ) << ctpRes.
additionalWords()[
i] << std::dec << std::endl;
192 }
194 s <<
" No additional words!" << std::endl;
195 }
196
197
198 s <<
"Trailer information: " << std::endl;
199 s <<
" Error status : " << ctpRes.
errorStatus() << std::endl;
200 s <<
" Status info : " << ctpRes.
infoStatus() << std::endl;
201 s <<
" Number of status words : " << ctpRes.
numStatusWords() << std::endl;
202 s <<
" Number of data words : " << ctpRes.
numDataWords() << std::endl;
203 s <<
" Status information position : " << ctpRes.
statusPosition() << std::endl;
204 s <<
"*END* xAOD::CTPResult" << std::endl;
205
207 }
size_t size() const
Number of registered mappings.
uint32_t numDataWords() const
Retrieve the number of data words.
uint32_t L1ID() const
Retrieve the extended LVL1 ID.
const std::vector< std::vector< uint32_t > > & tbpWords() const
Get the TBP words for all bunch crossings.
uint32_t numStatusWords() const
Retrieve the number of status words in the trailer.
const std::vector< std::vector< uint32_t > > & tapWords() const
Get the TAP words for all bunch crossings.
uint32_t infoStatus() const
Retrieve the info status word.
uint32_t headerSize() const
Retrieve the number of words in the header.
uint32_t triggerType() const
Retrieve the LVL1 trigger type.
uint32_t runNumber() const
Retrieve the run number.
uint32_t statusPosition() const
Retrieve the position of status information in the ROD.
uint32_t BCID() const
Retrieve the bunch crossing ID.
const std::vector< uint32_t > & additionalWords() const
Get the additional data words.
uint32_t headerFormatVersion() const
Retrieve the format version of the header.
uint32_t errorStatus() const
Retrieve the error status word.
uint32_t timeSec() const
Get the time in seconds.
const std::vector< std::vector< uint32_t > > & tipWords() const
Get the TIP words for all bunch crossings.
const std::vector< std::vector< uint32_t > > & tavWords() const
Get the TAV words for all bunch crossings.
uint32_t eventType() const
Retrieve the LVL1 event type.
uint32_t headerMarker() const
Retrieve the header marker word.
const CTPResult_v1::CTPBunchCrossing getBC(const int bunch=-1) const
Get the CTPBunchCrossing object for a specific bunch in the readout window.
std::vector< std::string > checkForIssues() const
Get whether the CTPResult object is in a good state (i.e.
uint32_t ctpVersionNumber() const
Get the CTP version number.
uint32_t timeNanoSec() const
Get the time in nanoseconds.
uint32_t sourceID() const
Retrieve the sub-detector source ID.
uint32_t l1AcceptBunchPosition() const
Get the L1 accept bunch position.
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)