ATLAS Offline Software
Public Member Functions | List of all members
OutputConversionTool Class Reference

#include <OutputConversionTool.h>

Inheritance diagram for OutputConversionTool:
Collaboration diagram for OutputConversionTool:

Public Member Functions

StatusCode initialize () override
 
StatusCode decodePixelEDM (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput &pcAux) const
 
StatusCode decodeStripEDM (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::StripClusterAuxInput &scAux) const
 
StatusCode decodeSpacePoints (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
 
StatusCode decodeSlices (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
 
StatusCode decodeGTracks (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata) const
 
StatusCode decodeFPGAoutput (const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput *pcAux=nullptr, EFTrackingTransient::StripClusterAuxInput *scAux=nullptr, OutputConversion::FSM blockType=OutputConversion::FSM::Unknown) const
 Decode the FPGA output based on the type. More...
 

Detailed Description

Definition at line 35 of file OutputConversionTool.h.

Member Function Documentation

◆ decodeFPGAoutput()

StatusCode OutputConversionTool::decodeFPGAoutput ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata,
EFTrackingTransient::PixelClusterAuxInput pcAux = nullptr,
EFTrackingTransient::StripClusterAuxInput scAux = nullptr,
OutputConversion::FSM  blockType = OutputConversion::FSM::Unknown 
) const

Decode the FPGA output based on the type.

user shouldn't call this function directly They should call the following user-level functions

Definition at line 19 of file OutputConversionTool.cxx.

24 {
25  using namespace FPGADataFormatUtilities;
26  // define the FSM
28 
29  std::vector<uint64_t> header_words;
30  std::vector<uint64_t> footer_words;
31  std::vector<uint64_t> ghits_words;
32  std::vector<uint64_t> gtracks_words;
33  std::vector<uint64_t> slices_words;
34  std::vector<uint64_t> pixel_edm_words;
35  std::vector<uint64_t> strip_edm_words;
36 
37  unsigned int counter = 0;
38 
39  // Loop the bytestream
40  for (const auto &word : bytestream)
41  {
42  ATH_MSG_DEBUG("word: " << std::hex << word << std::dec);
43  switch (state)
44  {
46  {
47  if (get_bitfields_EVT_HDR_w1(word).flag != EVT_HDR_FLAG && header_words.empty())
48  {
49  ATH_MSG_ERROR("The first word is not the event hearder! Something is wrong");
51  break;
52  }
53 
54  header_words.push_back(word);
55  if (header_words.size() == 3)
56  {
57  EVT_HDR_w1 header_w1 = get_bitfields_EVT_HDR_w1(header_words[0]);
58  EVT_HDR_w2 header_w2 = get_bitfields_EVT_HDR_w2(header_words[1]);
59  EVT_HDR_w3 header_w3 = get_bitfields_EVT_HDR_w3(header_words[2]);
60 
61  // The data format has be evloing. The logic here can change dramatically
62  // The block after the event header can be one of the following: Slice, Module, Road, Track, cluster EDM
63  // For now, we only consider the cluster EDM
64  switch (blockType)
65  {
67  {
69  if(pcAux == nullptr)
70  {
71  ATH_MSG_ERROR("The PixelClusterAuxInput is not provided to decode function! Something is wrong");
73  break;
74  }
75  break;
76  }
78  {
80  if(scAux == nullptr)
81  {
82  ATH_MSG_ERROR("The StripClusterAuxInput is not provided to decode function! Something is wrong");
84  break;
85  }
86  break;
87  }
89  {
91  break;
92  }
94  {
96  break;
97  }
98  default:
99  {
100  ATH_MSG_ERROR("The blockType is not recognized! Something is wrong");
102  break;
103  }
104  }
105 
106  // print all bit fileds of the the event header
107  if (msgLvl(MSG::DEBUG))
108  {
109  ATH_MSG_DEBUG("Event Header: ");
110  ATH_MSG_DEBUG("\tflag: 0x" << std::hex << header_w1.flag << std::dec);
111  ATH_MSG_DEBUG("\tl0id: " << header_w1.l0id);
112  ATH_MSG_DEBUG("\tbcid: " << header_w1.bcid);
113  ATH_MSG_DEBUG("\tspare: " << header_w1.spare);
114  ATH_MSG_DEBUG("\trunnumber: " << header_w2.runnumber);
115  ATH_MSG_DEBUG("\ttime: " << header_w2.time);
116  ATH_MSG_DEBUG("\tstatus: " << header_w3.status);
117  ATH_MSG_DEBUG("\tcrc: " << header_w3.crc);
118  }
119  break;
120  }
121  break;
122  }
124  {
125  // Determine if this is a module header or event footer
127  {
128  auto module = get_bitfields_M_HDR_w1(word);
129  // decode the module header
130  // print all bit fileds of the the module header
131  if (msgLvl(MSG::DEBUG))
132  {
133  ATH_MSG_DEBUG("Module Header: ");
134  ATH_MSG_DEBUG("\tflag: 0x" << std::hex << module.flag << std::dec);
135  ATH_MSG_DEBUG("\tmodid: " << module.modid);
136  ATH_MSG_DEBUG("\tmodhash: " << module.modhash);
137  ATH_MSG_DEBUG("\tspare: " << module.spare);
138  }
139 
140  // The following block is determined by the actual content
141  // Right now only the spacepoints are considered. This will likely change in future iteration.
142  switch (blockType)
143  {
145  {
147  break;
148  }
150  {
152  break;
153  }
154  default:
155  {
156  ATH_MSG_ERROR("The blockType is not recognized! Something is wrong");
158  break;
159  }
160  }
161  }
162  // Determine if this is a module header or event footer
164  {
166  gtracks_words.push_back(word);
167  break;
168  }
169  else if (get_bitfields_EVT_FTR_w1(word).flag == EVT_FTR_FLAG)
170  {
172  footer_words.push_back(word);
173  break;
174  }
175  else
176  {
177  ATH_MSG_ERROR("The word after the last cluster is not a module header or event footer! Something is wrong");
179  break;
180  }
181  break;
182  }
184  {
185  ghits_words.push_back(word);
186  if (ghits_words.size() == 2)
187  {
188  auto Ghit_w1 = get_bitfields_GHITZ_w1(ghits_words[0]);
189  auto Ghit_w2 = get_bitfields_GHITZ_w2(ghits_words[1]);
190  ATH_MSG_DEBUG("Global Hits: ");
191  ATH_MSG_DEBUG("GHIT W1: ");
192  ATH_MSG_DEBUG("\tlast: " << Ghit_w1.last/GHITZ_W1_LAST_mf);
193  ATH_MSG_DEBUG("\tlyr: " << Ghit_w1.lyr/GHITZ_W1_LYR_mf);
194  ATH_MSG_DEBUG("\trad: " << Ghit_w1.rad/GHITZ_W1_RAD_mf);
195  ATH_MSG_DEBUG("\tphi: " << Ghit_w1.phi/GHITZ_W1_PHI_mf);
196  ATH_MSG_DEBUG("\tz: " << Ghit_w1.z/GHITZ_W1_Z_mf);
197  ATH_MSG_DEBUG("\tlastofslice: " << Ghit_w1.lastofslice/GHITZ_W1_LASTOFSLICE_mf);
198  ATH_MSG_DEBUG("\tspare: " << Ghit_w1.spare/GHITZ_W1_SPARE_mf);
199  ATH_MSG_DEBUG("GHIT W2: ");
200  ATH_MSG_DEBUG("\tcluster1: " << Ghit_w2.cluster1/GHITZ_W2_CLUSTER1_mf);
201  ATH_MSG_DEBUG("\tcluster2: " << Ghit_w2.cluster2/GHITZ_W2_CLUSTER2_mf);
202  ATH_MSG_DEBUG("\trow: " << Ghit_w2.row/GHITZ_W2_ROW_mf);
203  ATH_MSG_DEBUG("\tspare: " << Ghit_w2.spare/GHITZ_W2_SPARE_mf);
204  ghits_words.clear();
205  if (Ghit_w1.last == 1)
206  {
208  break;
209  }
210  break;
211  }
212  break;
213  }
215  {
216  pixel_edm_words.push_back(word);
217  // Read in 10 consecutive words
218  if (pixel_edm_words.size() == 10)
219  {
220  // decode the pixel EDM
221  // For pixel EDM aux, we need
222  // id, idHash, localPosition, localCovariance, rdoList
223  // channelsInPhi, channelsInEta, width in Eta
224  // global position
225  // totalToT
226  pcAux->idHash.push_back(get_bitfields_EDM_PIXELCLUSTER_w1(pixel_edm_words[0]).id_hash);
227 
228 
229  // check if the rdo list word is empty, there are only 4 words in the pixel EDM
230  auto rdo_w1 = get_bitfields_EDM_PIXELCLUSTER_w2(pixel_edm_words[1]).rdo_list_w1;
231  auto rdo_w2 = get_bitfields_EDM_PIXELCLUSTER_w3(pixel_edm_words[2]).rdo_list_w2;
232  auto rdo_w3 = get_bitfields_EDM_PIXELCLUSTER_w4(pixel_edm_words[3]).rdo_list_w3;
233  auto rdo_w4 = get_bitfields_EDM_PIXELCLUSTER_w5(pixel_edm_words[4]).rdo_list_w4;
234 
235  unsigned short current_rdo_size = 0;
236  if (rdo_w1 != 0)
237  {
238  pcAux->rdoList.push_back(rdo_w1);
239  current_rdo_size++;
240  }
241  if (rdo_w2 != 0)
242  {
243  pcAux->rdoList.push_back(rdo_w2);
244  current_rdo_size++;
245  }
246  if (rdo_w3 != 0)
247  {
248  pcAux->rdoList.push_back(rdo_w3);
249  current_rdo_size++;
250  }
251  if (rdo_w4 != 0)
252  {
253  pcAux->rdoList.push_back(rdo_w4);
254  current_rdo_size++;
255  }
256 
257  pcAux->localPosition.push_back(to_real_EDM_PIXELCLUSTER_w6_localposition_x(get_bitfields_EDM_PIXELCLUSTER_w6(pixel_edm_words[5]).localposition_x));
258  pcAux->localPosition.push_back(to_real_EDM_PIXELCLUSTER_w6_localposition_y(get_bitfields_EDM_PIXELCLUSTER_w6(pixel_edm_words[5]).localposition_y));
259  pcAux->channelsInPhi.push_back(get_bitfields_EDM_PIXELCLUSTER_w6(pixel_edm_words[5]).channels_in_phi);
260  pcAux->channelsInEta.push_back(get_bitfields_EDM_PIXELCLUSTER_w6(pixel_edm_words[5]).channels_in_eta);
261  pcAux->widthInEta.push_back(to_real_EDM_PIXELCLUSTER_w6_width_in_eta(get_bitfields_EDM_PIXELCLUSTER_w6(pixel_edm_words[5]).width_in_eta));
262 
263  pcAux->localCovariance.push_back(to_real_EDM_PIXELCLUSTER_w7_localcovariance_xx(get_bitfields_EDM_PIXELCLUSTER_w7(pixel_edm_words[6]).localcovariance_xx));
264  pcAux->localCovariance.push_back(to_real_EDM_PIXELCLUSTER_w7_localcovariance_yy(get_bitfields_EDM_PIXELCLUSTER_w7(pixel_edm_words[6]).localcovariance_yy));
265 
266  pcAux->globalPosition.push_back(to_real_EDM_PIXELCLUSTER_w8_globalposition_x(get_bitfields_EDM_PIXELCLUSTER_w8(pixel_edm_words[7]).globalposition_x));
267  pcAux->globalPosition.push_back(to_real_EDM_PIXELCLUSTER_w8_globalposition_y(get_bitfields_EDM_PIXELCLUSTER_w8(pixel_edm_words[7]).globalposition_y));
268 
269  pcAux->id.push_back(get_bitfields_EDM_PIXELCLUSTER_w9(pixel_edm_words[8]).identifier);
270 
271  pcAux->globalPosition.push_back(to_real_EDM_PIXELCLUSTER_w10_globalposition_z(get_bitfields_EDM_PIXELCLUSTER_w10(pixel_edm_words[9]).globalposition_z));
272  pcAux->totalToT.push_back(get_bitfields_EDM_PIXELCLUSTER_w10(pixel_edm_words[9]).total_tot);
273 
274 
275  metadata->pcRdoIndex[counter] = current_rdo_size;
276  counter++;
277 
278  // Determine if this is the last cluster
279  if (get_bitfields_EDM_PIXELCLUSTER_w10(pixel_edm_words[9]).lastword == 1)
280  {
281  metadata->pcRdoIndexSize = counter;
282  metadata->numOfPixelClusters = counter;
284  }
285  pixel_edm_words.clear();
286 
287  // print all bit fileds of the the pixel EDM
288  if (msgLvl(MSG::DEBUG))
289  {
290  ATH_MSG_DEBUG("Pixel EDM: ");
291  ATH_MSG_DEBUG("\tid: " << pcAux->id.back());
292  ATH_MSG_DEBUG("\tidHash: " << pcAux->idHash.back());
293  ATH_MSG_DEBUG("\tlocalPosition_x: " << pcAux->localPosition.at(pcAux->localPosition.size() - 2));
294  ATH_MSG_DEBUG("\tlocalPosition_y: " << pcAux->localPosition.back());
295  ATH_MSG_DEBUG("\tlocalCovariance_xx: " << pcAux->localCovariance.at(pcAux->localCovariance.size() - 2));
296  ATH_MSG_DEBUG("\tlocalCovariance_yy: " << pcAux->localCovariance.back());
297  ATH_MSG_DEBUG("\tglobalPosition_x: " << pcAux->globalPosition.at(pcAux->globalPosition.size() - 3));
298  ATH_MSG_DEBUG("\tglobalPosition_y: " << pcAux->globalPosition.at(pcAux->globalPosition.size() - 2));
299  ATH_MSG_DEBUG("\tglobalPosition_z: " << pcAux->globalPosition.back());
300  ATH_MSG_DEBUG("\tchannelsInPhi: " << pcAux->channelsInPhi.back());
301  ATH_MSG_DEBUG("\tchannelsInEta: " << pcAux->channelsInEta.back());
302  ATH_MSG_DEBUG("\twidthInEta: " << pcAux->widthInEta.back());
303  ATH_MSG_DEBUG("\ttotalToT: " << pcAux->totalToT.back());
304  }
305  break;
306  }
307 
308  break;
309  }
311  {
312  strip_edm_words.push_back(word);
313  // Read in 9 consecutive words
314  if (strip_edm_words.size() == 9 and scAux)
315  {
316  scAux->idHash.push_back(get_bitfields_EDM_STRIPCLUSTER_w1(strip_edm_words[0]).id_hash);
317 
318  scAux->id.push_back(get_bitfields_EDM_STRIPCLUSTER_w8(strip_edm_words[7]).identifier);
319 
320  scAux->localPosition.push_back(to_real_EDM_STRIPCLUSTER_w6_localposition_x(get_bitfields_EDM_STRIPCLUSTER_w6(strip_edm_words[5]).localposition_x));
321  scAux->localCovariance.push_back(to_real_EDM_STRIPCLUSTER_w6_localcovariance_xx(get_bitfields_EDM_STRIPCLUSTER_w6(strip_edm_words[5]).localcovariance_xx));
322 
323  scAux->globalPosition.push_back(to_real_EDM_STRIPCLUSTER_w7_globalposition_x(get_bitfields_EDM_STRIPCLUSTER_w7(strip_edm_words[6]).globalposition_x));
324  scAux->globalPosition.push_back(to_real_EDM_STRIPCLUSTER_w7_globalposition_y(get_bitfields_EDM_STRIPCLUSTER_w7(strip_edm_words[6]).globalposition_y));
325  scAux->channelsInPhi.push_back(get_bitfields_EDM_STRIPCLUSTER_w7(strip_edm_words[6]).channels_in_phi);
326 
327  scAux->globalPosition.push_back(to_real_EDM_STRIPCLUSTER_w9_globalposition_z(get_bitfields_EDM_STRIPCLUSTER_w9(strip_edm_words[8]).globalposition_z));
328 
329  // check if the rdo list word is empty, there are only 4 words in the strip EDM
330  auto rdo_w1 = get_bitfields_EDM_STRIPCLUSTER_w2(strip_edm_words[1]).rdo_list_w1;
331  auto rdo_w2 = get_bitfields_EDM_STRIPCLUSTER_w3(strip_edm_words[2]).rdo_list_w2;
332  auto rdo_w3 = get_bitfields_EDM_STRIPCLUSTER_w4(strip_edm_words[3]).rdo_list_w3;
333  auto rdo_w4 = get_bitfields_EDM_STRIPCLUSTER_w5(strip_edm_words[4]).rdo_list_w4;
334 
335  unsigned short current_rdo_size = 0;
336  if (rdo_w1 != 0)
337  {
338  scAux->rdoList.push_back(rdo_w1);
339  current_rdo_size++;
340  }
341  if (rdo_w2 != 0)
342  {
343  scAux->rdoList.push_back(rdo_w2);
344  current_rdo_size++;
345  }
346  if (rdo_w3 != 0)
347  {
348  scAux->rdoList.push_back(rdo_w3);
349  current_rdo_size++;
350  }
351  if (rdo_w4 != 0)
352  {
353  scAux->rdoList.push_back(rdo_w4);
354  current_rdo_size++;
355  }
356 
357  metadata->scRdoIndex[counter] = current_rdo_size;
358  counter++;
359 
360  // Determine if this is the last cluster
361  if (get_bitfields_EDM_STRIPCLUSTER_w9(strip_edm_words[8]).lastword == 1)
362  {
363  metadata->scRdoIndexSize = counter;
364  metadata->numOfStripClusters = counter;
366  }
367  strip_edm_words.clear();
368 
369  // print all bit fileds of the the strip EDM
370  if (msgLvl(MSG::DEBUG))
371  {
372  ATH_MSG_DEBUG("Strip EDM: ");
373  ATH_MSG_DEBUG("\tidHash: " << scAux->idHash.back());
374  ATH_MSG_DEBUG("\tid: " << scAux->id.back());
375  ATH_MSG_DEBUG("\tlocalPosition_x: " << scAux->localPosition.back());
376  ATH_MSG_DEBUG("\tlocalCovariance_xx: " << scAux->localCovariance.back());
377  ATH_MSG_DEBUG("\tglobalPosition_x: " << scAux->globalPosition.at(scAux->globalPosition.size() - 3));
378  ATH_MSG_DEBUG("\tglobalPosition_y: " << scAux->globalPosition.at(scAux->globalPosition.size() - 2));
379  ATH_MSG_DEBUG("\tglobalPosition_z: " << scAux->globalPosition.back());
380  ATH_MSG_DEBUG("\tchannelsInPhi: " << scAux->channelsInPhi.back());
381  ATH_MSG_DEBUG("\trdoList: ");
382  }
383  break;
384  }
385  break;
386  }
388  {
389  footer_words.push_back(word);
390  if (footer_words.size() == 3)
391  {
392  // decode the event footer
393  EVT_FTR_w1 footer_w1 = get_bitfields_EVT_FTR_w1(footer_words[0]);
394  EVT_FTR_w2 footer_w2 = get_bitfields_EVT_FTR_w2(footer_words[1]);
395  EVT_FTR_w3 footer_w3 = get_bitfields_EVT_FTR_w3(footer_words[2]);
396 
397  // print all bit fileds of the the event footer
398  ATH_MSG_DEBUG("Event Footer: ");
399  ATH_MSG_DEBUG("\tflag: 0x" << std::hex << footer_w1.flag << std::dec);
400  ATH_MSG_DEBUG("\tspare: " << footer_w1.spare);
401  ATH_MSG_DEBUG("\thdr_crc: " << footer_w1.hdr_crc);
402  ATH_MSG_DEBUG("\terror_flags: " << footer_w2.error_flags);
403  ATH_MSG_DEBUG("\tword_count: " << footer_w3.word_count);
404  ATH_MSG_DEBUG("\tcrc: " << footer_w3.crc);
405 
406  // clear header and footer words
407  header_words.clear();
408  footer_words.clear();
409  counter = 0;
410 
411  // reset the state to EventHeader
412  // Caveat: this enables continue decoding the next event if TV contains multiple events
414  break;
415  }
416  break;
417  }
419  {
420  gtracks_words.push_back(word);
421  if (gtracks_words.size() == 3)
422  {
423  GTRACK_HDR_w1 gtrack_w1 = get_bitfields_GTRACK_HDR_w1(gtracks_words[0]);
424  GTRACK_HDR_w2 gtrack_w2 = get_bitfields_GTRACK_HDR_w2(gtracks_words[1]);
425  GTRACK_HDR_w3 gtrack_w3 = get_bitfields_GTRACK_HDR_w3(gtracks_words[2]);
426  ATH_MSG_DEBUG("GTrack: ");
427  ATH_MSG_DEBUG("\tflag: 0x" << std::hex << gtrack_w1.flag/GTRACK_HDR_W1_FLAG_mf << std::dec);
428  ATH_MSG_DEBUG("\ttype: " << gtrack_w1.type/GTRACK_HDR_W1_TYPE_mf);
429  ATH_MSG_DEBUG("\tetaregion: " << gtrack_w1.eta_region/GTRACK_HDR_W1_ETA_REGION_mf);
430  ATH_MSG_DEBUG("\tphiregion: " << gtrack_w1.phi_region/GTRACK_HDR_W1_PHI_REGION_mf);
431  ATH_MSG_DEBUG("\tbinphi: " << gtrack_w1.phi_bin/GTRACK_HDR_W1_PHI_BIN_mf);
432  ATH_MSG_DEBUG("\tbinz: " << gtrack_w1.z_bin/GTRACK_HDR_W1_Z_BIN_mf);
433  ATH_MSG_DEBUG("\tsecondstage: " << gtrack_w1.second_stage/GTRACK_HDR_W1_SECOND_STAGE_mf);
434  ATH_MSG_DEBUG("\tlayerbitmask: " << gtrack_w1.layer_bitmask/GTRACK_HDR_W1_LAYER_BITMASK_mf);
435  ATH_MSG_DEBUG("\tscore: " << gtrack_w2.score/GTRACK_HDR_W2_SCORE_mf);
436  ATH_MSG_DEBUG("\td0: " << gtrack_w2.d0/GTRACK_HDR_W2_D0_mf);
437  ATH_MSG_DEBUG("\tz0: " << gtrack_w2.z0/GTRACK_HDR_W2_Z0_mf );
438  ATH_MSG_DEBUG("\tspare: " << gtrack_w2.spare/GTRACK_HDR_W2_SPARE_mf);
439  ATH_MSG_DEBUG("\tqoverpt: " << gtrack_w3.qoverpt/GTRACK_HDR_W3_QOVERPT_mf);
440  ATH_MSG_DEBUG("\tphi: " << gtrack_w3.phi/GTRACK_HDR_W3_PHI_mf);
441  ATH_MSG_DEBUG("\teta: " << gtrack_w3.eta/GTRACK_HDR_W3_ETA_mf);
442  ATH_MSG_DEBUG("\tspare: " << gtrack_w3.spare/GTRACK_HDR_W3_SPARE_mf);
443  gtracks_words.clear();
445  break;
446  }
447  break;
448  }
450  {
451  slices_words.push_back(word);
452  SLICE_HDR_w1 slice_w1 = get_bitfields_SLICE_HDR_w1(slices_words[0]);
453 
454  ATH_MSG_DEBUG("Slices: ");
455  ATH_MSG_DEBUG("\tflag: 0x" << std::hex << slice_w1.flag/GTRACK_HDR_W1_FLAG_mf << std::dec);
456  ATH_MSG_DEBUG("\tsliceid: " << slice_w1.sliceid/SLICE_HDR_W1_SLICEID_mf);
457  ATH_MSG_DEBUG("\tetaregion: " << slice_w1.eta_region/SLICE_HDR_W1_ETA_REGION_mf);
458  ATH_MSG_DEBUG("\tphiregion: " << slice_w1.phi_region/SLICE_HDR_W1_PHI_REGION_mf);
459  ATH_MSG_DEBUG("\tspare: " << slice_w1.spare/SLICE_HDR_W1_SPARE_mf);
460  slices_words.clear();
462  break;
463  }
465  {
466  ATH_MSG_ERROR("FSM is in an error state! Something is wrong");
467  break;
468  }
469  default:
470  ATH_MSG_ERROR("FSM is not in a valid state! Something is wrong");
471  break;
472  }
473  }
474 
475  return StatusCode::SUCCESS;
476 }

◆ decodeGTracks()

StatusCode OutputConversionTool::decodeGTracks ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata 
) const

Definition at line 508 of file OutputConversionTool.cxx.

510 {
511  ATH_MSG_DEBUG("Decoding tracks");
512  return decodeFPGAoutput(bytestream, metadata, nullptr, nullptr, OutputConversion::FSM::GTracks);
513 }

◆ decodePixelEDM()

StatusCode OutputConversionTool::decodePixelEDM ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata,
EFTrackingTransient::PixelClusterAuxInput pcAux 
) const

Definition at line 478 of file OutputConversionTool.cxx.

481 {
482  ATH_MSG_DEBUG("Decoding pixel EDM");
483  return decodeFPGAoutput(bytestream, metadata, &pcAux, nullptr, OutputConversion::FSM::PixelEDM);
484 }

◆ decodeSlices()

StatusCode OutputConversionTool::decodeSlices ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata 
) const

Definition at line 501 of file OutputConversionTool.cxx.

503 {
504  ATH_MSG_DEBUG("Decoding slices");
505  return decodeFPGAoutput(bytestream, metadata, nullptr, nullptr, OutputConversion::FSM::Slices);
506 }

◆ decodeSpacePoints()

StatusCode OutputConversionTool::decodeSpacePoints ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata 
) const

Definition at line 494 of file OutputConversionTool.cxx.

496 {
497  ATH_MSG_DEBUG("Decoding space points");
498  return decodeFPGAoutput(bytestream, metadata, nullptr, nullptr, OutputConversion::FSM::GlobalHits);
499 }

◆ decodeStripEDM()

StatusCode OutputConversionTool::decodeStripEDM ( const std::vector< uint64_t > &  bytestream,
EFTrackingTransient::Metadata metadata,
EFTrackingTransient::StripClusterAuxInput scAux 
) const

Definition at line 486 of file OutputConversionTool.cxx.

489 {
490  ATH_MSG_DEBUG("Decoding strip EDM");
491  return decodeFPGAoutput(bytestream, metadata, nullptr, &scAux, OutputConversion::FSM::StripEDM);
492 }

◆ initialize()

StatusCode OutputConversionTool::initialize ( )
override

Definition at line 13 of file OutputConversionTool.cxx.

14 {
15  ATH_MSG_INFO("Initializing OutputConversionTool tool");
16  return StatusCode::SUCCESS;
17 }

The documentation for this class was generated from the following files:
FPGADataFormatUtilities::SLICE_HDR_w1
Definition: FPGADataFormatUtilities.h:401
EFTrackingTransient::PixelClusterAuxInput::localPosition
std::vector< float > localPosition
Definition: EFTrackingTransient.h:229
FPGADataFormatUtilities::GTRACK_HDR_w3::qoverpt
int64_t qoverpt
Definition: FPGADataFormatUtilities.h:745
FPGADataFormatUtilities::EDM_STRIPCLUSTER_w5::rdo_list_w4
uint64_t rdo_list_w4
Definition: FPGADataFormatUtilities.h:1372
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w10_globalposition_z
double to_real_EDM_PIXELCLUSTER_w10_globalposition_z(const int64_t &in)
Definition: FPGADataFormatUtilities.h:2140
FPGADataFormatUtilities::GHITZ_W1_LYR_mf
const float GHITZ_W1_LYR_mf
Definition: FPGADataFormatUtilities.h:1098
FPGADataFormatUtilities::GTRACK_HDR_W3_PHI_mf
const float GTRACK_HDR_W3_PHI_mf
Definition: FPGADataFormatUtilities.h:716
FPGADataFormatUtilities::EVT_FTR_w1
Definition: FPGADataFormatUtilities.h:205
EFTrackingTransient::PixelClusterAuxInput::channelsInEta
std::vector< int > channelsInEta
Definition: EFTrackingTransient.h:234
FPGADataFormatUtilities::EVT_HDR_w1::l0id
uint64_t l0id
Definition: FPGADataFormatUtilities.h:59
FPGADataFormatUtilities::EDM_STRIPCLUSTER_w4::rdo_list_w3
uint64_t rdo_list_w3
Definition: FPGADataFormatUtilities.h:1368
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w6_width_in_eta
uint64_t to_real_EDM_PIXELCLUSTER_w6_width_in_eta(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:2104
FPGADataFormatUtilities::GTRACK_HDR_w3::phi
int64_t phi
Definition: FPGADataFormatUtilities.h:746
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w1
EDM_STRIPCLUSTER_w1 get_bitfields_EDM_STRIPCLUSTER_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1400
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGADataFormatUtilities::GTRACK_HDR_W2_D0_mf
const float GTRACK_HDR_W2_D0_mf
Definition: FPGADataFormatUtilities.h:699
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w7
EDM_STRIPCLUSTER_w7 get_bitfields_EDM_STRIPCLUSTER_w7(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1441
FPGADataFormatUtilities::EVT_HDR_w3
Definition: FPGADataFormatUtilities.h:69
OutputConversion::FSM::EventFooter
@ EventFooter
FPGADataFormatUtilities::EDM_PIXELCLUSTER_w5::rdo_list_w4
uint64_t rdo_list_w4
Definition: FPGADataFormatUtilities.h:1803
FPGADataFormatUtilities::GTRACK_HDR_W2_SCORE_mf
const float GTRACK_HDR_W2_SCORE_mf
Definition: FPGADataFormatUtilities.h:695
FPGADataFormatUtilities::GTRACK_HDR_w3
Definition: FPGADataFormatUtilities.h:744
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w6_localposition_y
double to_real_EDM_PIXELCLUSTER_w6_localposition_y(const int64_t &in)
Definition: FPGADataFormatUtilities.h:2092
FPGADataFormatUtilities::EVT_HDR_w2::runnumber
uint64_t runnumber
Definition: FPGADataFormatUtilities.h:65
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w8_globalposition_y
double to_real_EDM_PIXELCLUSTER_w8_globalposition_y(const int64_t &in)
Definition: FPGADataFormatUtilities.h:2128
FPGADataFormatUtilities::GTRACK_HDR_W2_Z0_mf
const float GTRACK_HDR_W2_Z0_mf
Definition: FPGADataFormatUtilities.h:703
FPGADataFormatUtilities::EVT_HDR_FLAG
const int EVT_HDR_FLAG
Definition: FPGADataFormatUtilities.h:20
FPGADataFormatUtilities::GHITZ_W2_CLUSTER1_mf
const float GHITZ_W2_CLUSTER1_mf
Definition: FPGADataFormatUtilities.h:1123
FPGADataFormatUtilities::GTRACK_HDR_W1_ETA_REGION_mf
const float GTRACK_HDR_W1_ETA_REGION_mf
Definition: FPGADataFormatUtilities.h:670
FPGADataFormatUtilities::EDM_PIXELCLUSTER_w4::rdo_list_w3
uint64_t rdo_list_w3
Definition: FPGADataFormatUtilities.h:1799
FPGADataFormatUtilities::SLICE_HDR_W1_SLICEID_mf
const float SLICE_HDR_W1_SLICEID_mf
Definition: FPGADataFormatUtilities.h:387
OutputConversion::FSM::GlobalHits
@ GlobalHits
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w2
EDM_PIXELCLUSTER_w2 get_bitfields_EDM_PIXELCLUSTER_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1846
FPGADataFormatUtilities::EVT_HDR_w2::time
uint64_t time
Definition: FPGADataFormatUtilities.h:66
FPGADataFormatUtilities::get_bitfields_EVT_FTR_w2
EVT_FTR_w2 get_bitfields_EVT_FTR_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:228
L1Topo::blockType
L1Topo::BlockTypes blockType(const uint32_t word, uint32_t offset=28, uint32_t size=0x0f)
Function to return the block type of a data word from L1Topo
Definition: BlockTypes.cxx:9
FPGADataFormatUtilities::GTRACK_HDR_w2
Definition: FPGADataFormatUtilities.h:737
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w6_localposition_x
double to_real_EDM_PIXELCLUSTER_w6_localposition_x(const int64_t &in)
Definition: FPGADataFormatUtilities.h:2088
FPGADataFormatUtilities::get_bitfields_EVT_HDR_w3
EVT_HDR_w3 get_bitfields_EVT_HDR_w3(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:90
FPGADataFormatUtilities::to_real_EDM_STRIPCLUSTER_w7_globalposition_x
double to_real_EDM_STRIPCLUSTER_w7_globalposition_x(const int64_t &in)
Definition: FPGADataFormatUtilities.h:1639
FPGADataFormatUtilities::GTRACK_HDR_w1::flag
uint64_t flag
Definition: FPGADataFormatUtilities.h:727
FPGADataFormatUtilities::EVT_HDR_w1
Definition: FPGADataFormatUtilities.h:57
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w8_globalposition_x
double to_real_EDM_PIXELCLUSTER_w8_globalposition_x(const int64_t &in)
Definition: FPGADataFormatUtilities.h:2124
FPGADataFormatUtilities::to_real_EDM_STRIPCLUSTER_w6_localposition_x
double to_real_EDM_STRIPCLUSTER_w6_localposition_x(const int64_t &in)
Definition: FPGADataFormatUtilities.h:1623
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
FPGADataFormatUtilities::GHITZ_W1_LASTOFSLICE_mf
const float GHITZ_W1_LASTOFSLICE_mf
Definition: FPGADataFormatUtilities.h:1114
FPGADataFormatUtilities::get_bitfields_EVT_FTR_w1
EVT_FTR_w1 get_bitfields_EVT_FTR_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:220
FPGADataFormatUtilities::GHITZ_W1_RAD_mf
const float GHITZ_W1_RAD_mf
Definition: FPGADataFormatUtilities.h:1102
FPGADataFormatUtilities::GTRACK_HDR_W1_FLAG_mf
const float GTRACK_HDR_W1_FLAG_mf
Definition: FPGADataFormatUtilities.h:662
OutputConversion::FSM::Unknown
@ Unknown
FPGADataFormatUtilities::SLICE_HDR_w1::spare
uint64_t spare
Definition: FPGADataFormatUtilities.h:406
FPGADataFormatUtilities::get_bitfields_GHITZ_w2
GHITZ_w2 get_bitfields_GHITZ_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1166
FPGADataFormatUtilities::GHITZ_W1_SPARE_mf
const float GHITZ_W1_SPARE_mf
Definition: FPGADataFormatUtilities.h:1118
FPGADataFormatUtilities::GHITZ_W2_SPARE_mf
const float GHITZ_W2_SPARE_mf
Definition: FPGADataFormatUtilities.h:1135
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w4
EDM_PIXELCLUSTER_w4 get_bitfields_EDM_PIXELCLUSTER_w4(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1858
FPGADataFormatUtilities::GTRACK_HDR_W3_SPARE_mf
const float GTRACK_HDR_W3_SPARE_mf
Definition: FPGADataFormatUtilities.h:724
FPGADataFormatUtilities::GTRACK_HDR_w3::eta
int64_t eta
Definition: FPGADataFormatUtilities.h:747
OutputConversion::FSM::GTracks
@ GTracks
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w3
EDM_STRIPCLUSTER_w3 get_bitfields_EDM_STRIPCLUSTER_w3(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1414
FPGADataFormatUtilities::GTRACK_HDR_w2::score
uint64_t score
Definition: FPGADataFormatUtilities.h:738
FPGADataFormatUtilities::GHITZ_W2_CLUSTER2_mf
const float GHITZ_W2_CLUSTER2_mf
Definition: FPGADataFormatUtilities.h:1127
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w3
EDM_PIXELCLUSTER_w3 get_bitfields_EDM_PIXELCLUSTER_w3(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1852
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
FPGADataFormatUtilities::M_HDR_FLAG
const int M_HDR_FLAG
Definition: FPGADataFormatUtilities.h:308
FPGADataFormatUtilities::EVT_HDR_w1::bcid
uint64_t bcid
Definition: FPGADataFormatUtilities.h:60
python.PyAthena.module
module
Definition: PyAthena.py:131
OutputConversion::FSM::EventHeader
@ EventHeader
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w5
EDM_STRIPCLUSTER_w5 get_bitfields_EDM_STRIPCLUSTER_w5(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1426
FPGADataFormatUtilities::SLICE_HDR_w1::sliceid
uint64_t sliceid
Definition: FPGADataFormatUtilities.h:403
FPGADataFormatUtilities::to_real_EDM_STRIPCLUSTER_w6_localcovariance_xx
double to_real_EDM_STRIPCLUSTER_w6_localcovariance_xx(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1631
FPGADataFormatUtilities::EDM_PIXELCLUSTER_w2::rdo_list_w1
uint64_t rdo_list_w1
Definition: FPGADataFormatUtilities.h:1791
FPGADataFormatUtilities::EVT_FTR_w1::spare
uint64_t spare
Definition: FPGADataFormatUtilities.h:207
FPGADataFormatUtilities::GTRACK_HDR_w1
Definition: FPGADataFormatUtilities.h:726
FPGADataFormatUtilities::EVT_FTR_w3::word_count
uint64_t word_count
Definition: FPGADataFormatUtilities.h:216
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
FPGADataFormatUtilities::GTRACK_HDR_w3::spare
uint64_t spare
Definition: FPGADataFormatUtilities.h:748
EFTrackingTransient::PixelClusterAuxInput::rdoList
std::vector< unsigned long long > rdoList
Definition: EFTrackingTransient.h:232
FPGADataFormatUtilities::GHITZ_W2_ROW_mf
const float GHITZ_W2_ROW_mf
Definition: FPGADataFormatUtilities.h:1131
FPGADataFormatUtilities::EVT_FTR_FLAG
const int EVT_FTR_FLAG
Definition: FPGADataFormatUtilities.h:176
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w4
EDM_STRIPCLUSTER_w4 get_bitfields_EDM_STRIPCLUSTER_w4(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1420
EFTrackingTransient::PixelClusterAuxInput::localCovariance
std::vector< float > localCovariance
Definition: EFTrackingTransient.h:230
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w1
EDM_PIXELCLUSTER_w1 get_bitfields_EDM_PIXELCLUSTER_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1838
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
FPGADataFormatUtilities::EVT_HDR_w2
Definition: FPGADataFormatUtilities.h:64
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w8
EDM_PIXELCLUSTER_w8 get_bitfields_EDM_PIXELCLUSTER_w8(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1889
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w10
EDM_PIXELCLUSTER_w10 get_bitfields_EDM_PIXELCLUSTER_w10(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1903
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w5
EDM_PIXELCLUSTER_w5 get_bitfields_EDM_PIXELCLUSTER_w5(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1864
FPGADataFormatUtilities::GTRACK_HDR_W1_LAYER_BITMASK_mf
const float GTRACK_HDR_W1_LAYER_BITMASK_mf
Definition: FPGADataFormatUtilities.h:690
master.flag
bool flag
Definition: master.py:29
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w8
EDM_STRIPCLUSTER_w8 get_bitfields_EDM_STRIPCLUSTER_w8(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1450
EFTrackingTransient::PixelClusterAuxInput::totalToT
std::vector< int > totalToT
Definition: EFTrackingTransient.h:237
FPGADataFormatUtilities::GHITZ_W1_LAST_mf
const float GHITZ_W1_LAST_mf
Definition: FPGADataFormatUtilities.h:1094
FPGADataFormatUtilities::get_bitfields_GHITZ_w1
GHITZ_w1 get_bitfields_GHITZ_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1154
FPGADataFormatUtilities::get_bitfields_GTRACK_HDR_w2
GTRACK_HDR_w2 get_bitfields_GTRACK_HDR_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:764
FPGADataFormatUtilities::EVT_HDR_w1::flag
uint64_t flag
Definition: FPGADataFormatUtilities.h:58
FPGADataFormatUtilities::get_bitfields_SLICE_HDR_w1
SLICE_HDR_w1 get_bitfields_SLICE_HDR_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:409
FPGADataFormatUtilities::GTRACK_HDR_W1_SECOND_STAGE_mf
const float GTRACK_HDR_W1_SECOND_STAGE_mf
Definition: FPGADataFormatUtilities.h:686
FPGADataFormatUtilities::GTRACK_HDR_w2::z0
int64_t z0
Definition: FPGADataFormatUtilities.h:740
OutputConversionTool::decodeFPGAoutput
StatusCode decodeFPGAoutput(const std::vector< uint64_t > &bytestream, EFTrackingTransient::Metadata *metadata, EFTrackingTransient::PixelClusterAuxInput *pcAux=nullptr, EFTrackingTransient::StripClusterAuxInput *scAux=nullptr, OutputConversion::FSM blockType=OutputConversion::FSM::Unknown) const
Decode the FPGA output based on the type.
Definition: OutputConversionTool.cxx:19
FPGADataFormatUtilities::get_bitfields_EVT_FTR_w3
EVT_FTR_w3 get_bitfields_EVT_FTR_w3(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:234
FPGADataFormatUtilities::EVT_HDR_w1::spare
uint64_t spare
Definition: FPGADataFormatUtilities.h:61
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w6
EDM_STRIPCLUSTER_w6 get_bitfields_EDM_STRIPCLUSTER_w6(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1432
FPGADataFormatUtilities::EVT_FTR_w3::crc
uint64_t crc
Definition: FPGADataFormatUtilities.h:217
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w7
EDM_PIXELCLUSTER_w7 get_bitfields_EDM_PIXELCLUSTER_w7(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1880
FPGADataFormatUtilities::GTRACK_HDR_w1::layer_bitmask
uint64_t layer_bitmask
Definition: FPGADataFormatUtilities.h:734
EFTrackingTransient::PixelClusterAuxInput::idHash
std::vector< unsigned int > idHash
Definition: EFTrackingTransient.h:228
FPGADataFormatUtilities::SLICE_HDR_W1_PHI_REGION_mf
const float SLICE_HDR_W1_PHI_REGION_mf
Definition: FPGADataFormatUtilities.h:395
FPGADataFormatUtilities::EVT_FTR_w1::flag
uint64_t flag
Definition: FPGADataFormatUtilities.h:206
FPGADataFormatUtilities::EVT_HDR_w3::crc
uint64_t crc
Definition: FPGADataFormatUtilities.h:71
FPGADataFormatUtilities::GTRACK_HDR_w2::spare
uint64_t spare
Definition: FPGADataFormatUtilities.h:741
OutputConversion::FSM::Error
@ Error
FPGADataFormatUtilities::GTRACK_HDR_w1::second_stage
uint64_t second_stage
Definition: FPGADataFormatUtilities.h:733
FPGADataFormatUtilities::get_bitfields_EVT_HDR_w1
EVT_HDR_w1 get_bitfields_EVT_HDR_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:74
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w9
EDM_PIXELCLUSTER_w9 get_bitfields_EDM_PIXELCLUSTER_w9(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1897
FPGADataFormatUtilities::GTRACK_HDR_W1_Z_BIN_mf
const float GTRACK_HDR_W1_Z_BIN_mf
Definition: FPGADataFormatUtilities.h:682
EFTrackingTransient::PixelClusterAuxInput::channelsInPhi
std::vector< int > channelsInPhi
Definition: EFTrackingTransient.h:233
FPGADataFormatUtilities::GTRACK_HDR_W3_ETA_mf
const float GTRACK_HDR_W3_ETA_mf
Definition: FPGADataFormatUtilities.h:720
FPGADataFormatUtilities::GHITZ_W1_Z_mf
const float GHITZ_W1_Z_mf
Definition: FPGADataFormatUtilities.h:1110
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w2
EDM_STRIPCLUSTER_w2 get_bitfields_EDM_STRIPCLUSTER_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1408
FPGADataFormatUtilities::GTRACK_HDR_W3_QOVERPT_mf
const float GTRACK_HDR_W3_QOVERPT_mf
Definition: FPGADataFormatUtilities.h:712
FPGADataFormatUtilities::GTRACK_HDR_w1::phi_bin
uint64_t phi_bin
Definition: FPGADataFormatUtilities.h:731
FPGADataFormatUtilities::SLICE_HDR_W1_ETA_REGION_mf
const float SLICE_HDR_W1_ETA_REGION_mf
Definition: FPGADataFormatUtilities.h:391
FPGADataFormatUtilities::GHITZ_W1_PHI_mf
const float GHITZ_W1_PHI_mf
Definition: FPGADataFormatUtilities.h:1106
OutputConversion::FSM::PixelEDM
@ PixelEDM
FPGADataFormatUtilities::get_bitfields_EDM_PIXELCLUSTER_w6
EDM_PIXELCLUSTER_w6 get_bitfields_EDM_PIXELCLUSTER_w6(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1870
FPGADataFormatUtilities::GTRACK_HDR_w1::type
uint64_t type
Definition: FPGADataFormatUtilities.h:728
FPGADataFormatUtilities::SLICE_HDR_w1::eta_region
uint64_t eta_region
Definition: FPGADataFormatUtilities.h:404
FPGADataFormatUtilities::GTRACK_HDR_W1_PHI_BIN_mf
const float GTRACK_HDR_W1_PHI_BIN_mf
Definition: FPGADataFormatUtilities.h:678
FPGADataFormatUtilities::SLICE_HDR_W1_SPARE_mf
const float SLICE_HDR_W1_SPARE_mf
Definition: FPGADataFormatUtilities.h:399
FPGADataFormatUtilities::EVT_FTR_w1::hdr_crc
uint64_t hdr_crc
Definition: FPGADataFormatUtilities.h:208
FPGADataFormatUtilities::to_real_EDM_STRIPCLUSTER_w7_globalposition_y
double to_real_EDM_STRIPCLUSTER_w7_globalposition_y(const int64_t &in)
Definition: FPGADataFormatUtilities.h:1643
OutputConversion::FSM
FSM
Definition: OutputConversionTool.h:22
FPGADataFormatUtilities::EVT_FTR_w3
Definition: FPGADataFormatUtilities.h:215
FPGADataFormatUtilities::GTRACK_HDR_w1::phi_region
uint64_t phi_region
Definition: FPGADataFormatUtilities.h:730
FPGADataFormatUtilities::EVT_FTR_w2::error_flags
uint64_t error_flags
Definition: FPGADataFormatUtilities.h:212
EFTrackingTransient::PixelClusterAuxInput::id
std::vector< long unsigned int > id
Definition: EFTrackingTransient.h:227
EFTrackingTransient::PixelClusterAuxInput::widthInEta
std::vector< float > widthInEta
Definition: EFTrackingTransient.h:235
EFTrackingTransient::PixelClusterAuxInput::globalPosition
std::vector< float > globalPosition
Definition: EFTrackingTransient.h:231
FPGADataFormatUtilities::GTRACK_HDR_W2_SPARE_mf
const float GTRACK_HDR_W2_SPARE_mf
Definition: FPGADataFormatUtilities.h:707
FPGADataFormatUtilities::SLICE_HDR_w1::flag
uint64_t flag
Definition: FPGADataFormatUtilities.h:402
DEBUG
#define DEBUG
Definition: page_access.h:11
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w7_localcovariance_yy
double to_real_EDM_PIXELCLUSTER_w7_localcovariance_yy(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:2112
FPGADataFormatUtilities::get_bitfields_EDM_STRIPCLUSTER_w9
EDM_STRIPCLUSTER_w9 get_bitfields_EDM_STRIPCLUSTER_w9(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:1456
FPGADataFormatUtilities::to_real_EDM_PIXELCLUSTER_w7_localcovariance_xx
double to_real_EDM_PIXELCLUSTER_w7_localcovariance_xx(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:2108
FPGADataFormatUtilities::EVT_FTR_w2
Definition: FPGADataFormatUtilities.h:211
FPGADataFormatUtilities::EDM_STRIPCLUSTER_w2::rdo_list_w1
uint64_t rdo_list_w1
Definition: FPGADataFormatUtilities.h:1360
FPGADataFormatUtilities::GTRACK_HDR_W1_TYPE_mf
const float GTRACK_HDR_W1_TYPE_mf
Definition: FPGADataFormatUtilities.h:666
FPGADataFormatUtilities::get_bitfields_GTRACK_HDR_w1
GTRACK_HDR_w1 get_bitfields_GTRACK_HDR_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:751
FPGADataFormatUtilities::GTRACK_HDR_W1_PHI_REGION_mf
const float GTRACK_HDR_W1_PHI_REGION_mf
Definition: FPGADataFormatUtilities.h:674
OutputConversion::FSM::Slices
@ Slices
FPGADataFormatUtilities::GTRACK_HDR_w1::z_bin
uint64_t z_bin
Definition: FPGADataFormatUtilities.h:732
FPGADataFormatUtilities::to_real_EDM_STRIPCLUSTER_w9_globalposition_z
double to_real_EDM_STRIPCLUSTER_w9_globalposition_z(const int64_t &in)
Definition: FPGADataFormatUtilities.h:1659
FPGADataFormatUtilities::SLICE_HDR_w1::phi_region
uint64_t phi_region
Definition: FPGADataFormatUtilities.h:405
FPGADataFormatUtilities::EDM_STRIPCLUSTER_w3::rdo_list_w2
uint64_t rdo_list_w2
Definition: FPGADataFormatUtilities.h:1364
test_pyathena.counter
counter
Definition: test_pyathena.py:15
FPGADataFormatUtilities::get_bitfields_EVT_HDR_w2
EVT_HDR_w2 get_bitfields_EVT_HDR_w2(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:83
OutputConversion::FSM::StripEDM
@ StripEDM
FPGADataFormatUtilities::GTRACK_HDR_FLAG
const int GTRACK_HDR_FLAG
Definition: FPGADataFormatUtilities.h:657
FPGADataFormatUtilities::GTRACK_HDR_w2::d0
int64_t d0
Definition: FPGADataFormatUtilities.h:739
FPGADataFormatUtilities::GTRACK_HDR_w1::eta_region
uint64_t eta_region
Definition: FPGADataFormatUtilities.h:729
FPGADataFormatUtilities::get_bitfields_GTRACK_HDR_w3
GTRACK_HDR_w3 get_bitfields_GTRACK_HDR_w3(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:773
FPGADataFormatUtilities::EDM_PIXELCLUSTER_w3::rdo_list_w2
uint64_t rdo_list_w2
Definition: FPGADataFormatUtilities.h:1795
FPGADataFormatUtilities::EVT_HDR_w3::status
uint64_t status
Definition: FPGADataFormatUtilities.h:70
FPGADataFormatUtilities::get_bitfields_M_HDR_w1
M_HDR_w1 get_bitfields_M_HDR_w1(const uint64_t &in)
Definition: FPGADataFormatUtilities.h:334
FPGADataFormatUtilities
Definition: FPGADataFormatUtilities.h:12