@@ -34,23 +34,23 @@ struct RUDecodeData {
3434 static constexpr int MaxChipsPerRU = 196 ; // max number of chips the RU can readout
3535 static constexpr int MaxLinksPerRU = 3 ; // max number of GBT links per RU
3636
37- std::array<PayLoadCont, MaxCablesPerRU> cableData{}; // cable data in compressed ALPIDE format
38- std::vector<o2::itsmft::ChipPixelData> chipsData{}; // fully decoded data in 1st nChipsFired chips
39- std::vector<uint16_t > seenChipIDs{}; // IDs of all chips seen during ROF decoding, including empty ones
40- std::array<int , MaxLinksPerRU> links{}; // link entry RSTODO: consider removing this and using pointer
41- std::array<uint8_t , MaxCablesPerRU> cableHWID{}; // HW ID of cable whose data is in the corresponding slot of cableData
42- std::array<uint8_t , MaxCablesPerRU> cableLinkID{}; // ID of the GBT link transmitting this cable data
43- std::array<GBTLink*, MaxCablesPerRU> cableLinkPtr{}; // Ptr of the GBT link transmitting this cable data
44- std::unordered_map<uint64_t , uint32_t > linkHBFToDump{}; // FEEID<<32+hbfEntry to dump in case of error
45- int ruSWID = -1 ; // SW (stave) ID
46- int nChipsFired = 0 ; // number of chips with data or with errors
47- int lastChipChecked = 0 ; // last chips checked among nChipsFired
48- int nNonEmptyLinks = 0 ; // number of non-empty links for current ROF
49- int nLinks = 0 ; // number of links seen for this TF
50- int nLinksDone = 0 ; // number of links finished for this TF
51- int verbosity = 0 ; // verbosity level, for -1,0 print only summary data, for 1: print once every error
52- bool ROFRampUpStage = false ; // flag that the data come from the ROF rate ramp-up stage
53- GBTCalibData calibData{}; // calibration info from GBT calibration word
37+ std::array<PayLoadCont, MaxCablesPerRU> cableData{}; // cable data in compressed ALPIDE format
38+ std::vector<o2::itsmft::ChipPixelData> chipsData{}; // fully decoded data in 1st nChipsFired chips
39+ std::vector<uint16_t > seenChipIDs{}; // IDs of all chips seen during ROF decoding, including empty ones
40+ std::array<int , MaxLinksPerRU> links{}; // link entry RSTODO: consider removing this and using pointer
41+ std::array<uint8_t , MaxCablesPerRU> cableHWID{}; // HW ID of cable whose data is in the corresponding slot of cableData
42+ std::array<uint8_t , MaxCablesPerRU> cableLinkID{}; // ID of the GBT link transmitting this cable data
43+ std::array<GBTLink*, MaxCablesPerRU> cableLinkPtr{}; // Ptr of the GBT link transmitting this cable data
44+ std::unordered_map<uint64_t , uint32_t > linkHBFToDump{}; // FEEID<<32+hbfEntry to dump in case of error
45+ int ruSWID = -1 ; // SW (stave) ID
46+ int nChipsFired = 0 ; // number of chips with data or with errors
47+ int lastChipChecked = 0 ; // last chips checked among nChipsFired
48+ int nNonEmptyLinks = 0 ; // number of non-empty links for current ROF
49+ int nLinks = 0 ; // number of links seen for this TF
50+ int nLinksDone = 0 ; // number of links finished for this TF
51+ int verbosity = 0 ; // verbosity level, for -1,0 print only summary data, for 1: print once every error
52+ bool ROFRampUpStage = false ; // flag that the data come from the ROF rate ramp-up stage
53+ GBTCalibData calibData{}; // calibration info from GBT calibration word
5454 std::unordered_map<uint32_t , std::pair<uint32_t , uint32_t >> chipErrorsTF{}; // vector of chip decoding errors seen in the given TF
5555 const RUInfo* ruInfo = nullptr ;
5656
@@ -59,6 +59,10 @@ struct RUDecodeData {
5959 memset (&links[0 ], -1 , MaxLinksPerRU * sizeof (int ));
6060 }
6161 void clear ();
62+ void clearSeenChipIDs ()
63+ {
64+ seenChipIDs.clear ();
65+ }
6266 void setROFInfo (ChipPixelData* chipData, const GBTLink* lnk);
6367 template <class Mapping >
6468 int decodeROF (const Mapping& mp, const o2::InteractionRecord ir);
@@ -90,7 +94,7 @@ int RUDecodeData::decodeROF(const Mapping& mp, const o2::InteractionRecord ir)
9094 }
9195 auto cabHW = cableHWID[icab];
9296 auto chIdGetter = [this , &mp, cabHW](int cid) {
93- // return mp.getGlobalChipID(cid, cabHW, *this->ruInfo);
97+ // return mp.getGlobalChipID(cid, cabHW, *this->ruInfo);
9498 auto chip = mp.getGlobalChipID (cid, cabHW, *this ->ruInfo );
9599 return chip;
96100 };
0 commit comments