11 std::array<std::vector<ap_uint<96>>, 18> trackWords;
13 edm::LogInfo(
"l1t::demo::codecs") <<
"encodeTrack::Encoding " <<
tracks.size() <<
" tracks";
18 std::array<std::vector<ap_uint<64>>, 18> linkData;
21 for (
size_t i = 0;
i < linkData.size();
i++) {
23 trackWords.at(
i).resize(104, 0);
24 linkData.at(
i).resize(156, {0});
26 for (
size_t j = 0; (
j < trackWords.at(
i).size());
j += 2) {
27 linkData.at(
i).at(3 *
j / 2) = trackWords.at(
i).at(
j)(63, 0);
28 linkData.at(
i).at(3 *
j / 2 + 1) =
29 (ap_uint<32>(trackWords.at(
i).at(
j + 1)(31, 0)), ap_uint<32>(trackWords.at(
i).at(
j)(95, 64)));
30 linkData.at(
i).at(3 *
j / 2 + 2) = trackWords.at(
i).at(
j + 1)(95, 32);
31 counter += trackWords.at(
i).at(
j)(95, 95) + trackWords.at(
i).at(
j + 1)(95, 95);
42 std::vector<TTTrack_TrackWord>
tracks;
44 if ((frames.size() % 3) != 0) {
45 std::stringstream message;
46 message <<
"The number of track frames (" << frames.size() <<
") is not evenly divisible by 3";
47 throw std::runtime_error(message.str());
50 for (
size_t i = 0;
i < frames.size();
i += 3) {
92 std::array<std::vector<TTTrack_TrackWord>, 18>
tracks;
94 for (
size_t i = 0;
i <
tracks.size();
i++) {
ap_uint< TrackBitWidths::kTrackWordSize > tkword_t
ap_uint< 96 > encodeTrack(const TTTrack_TrackWord &t)
ap_uint< TrackBitWidths::kMVAQualitySize > qualityMVA_t
std::array< std::vector< ap_uint< 64 > >, 18 > encodeTracks(const edm::View< TTTrack< Ref_Phase2TrackerDigi_ >> &, int debug=0)
ap_uint< TrackBitWidths::kZ0Size > z0_t
void setTrackWord(unsigned int valid, const GlobalVector &momentum, const GlobalPoint &POCA, double rInv, double chi2RPhi, double chi2RZ, double bendChi2, unsigned int hitPattern, unsigned int mvaQuality, unsigned int mvaOther, unsigned int sector)
ap_uint< TrackBitWidths::kMVAOtherSize > otherMVA_t
std::vector< TTTrack_TrackWord > decodeTracks(const std::vector< ap_uint< 64 >> &frames)
ap_uint< TrackBitWidths::kValidSize > valid_t
ap_uint< TrackBitWidths::kRinvSize > rinv_t
ap_uint< TrackBitWidths::kHitPatternSize > hit_t
ap_uint< TrackBitWidths::kChi2RZSize > chi2rz_t
Log< level::Info, false > LogInfo
Class to store the L1 Track Trigger tracks.
deadvectors [0] push_back({0.0175431, 0.538005, 6.80997, 13.29})
ap_uint< TrackBitWidths::kTanlSize > tanl_t
ap_uint< TrackBitWidths::kD0Size > d0_t
ap_uint< TrackBitWidths::kChi2RPhiSize > chi2rphi_t
ap_uint< TrackBitWidths::kBendChi2Size > bendChi2_t
ap_uint< TrackBitWidths::kPhiSize > phi_t