Skip to content

Commit 01cb9e9

Browse files
nicolovalleshahor02
authored andcommitted
[WIP] ITS Fix for online dead map builder
1 parent 7f0abfb commit 01cb9e9

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/RUDecodeData.h

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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
};

Detectors/ITSMFT/common/reconstruction/src/RawPixelDecoder.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ int RawPixelDecoder<Mapping>::decodeNextTrigger()
111111
ru.ROFRampUpStage = mROFRampUpStage;
112112
mNPixelsFiredROF += ru.decodeROF(mMAP, mInteractionRecord);
113113
mNChipsFiredROF += ru.nChipsFired;
114+
} else {
115+
ru.clearSeenChipIDs();
114116
}
115117
}
116118

0 commit comments

Comments
 (0)