Skip to content

Commit 1360d47

Browse files
dstoccodavidrohr
authored andcommitted
Use a consistent unique FEE ID for MID
1 parent 506db6b commit 1360d47

8 files changed

Lines changed: 103 additions & 100 deletions

File tree

Detectors/MUON/MID/Base/include/MIDBase/DetectorParameters.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,27 +59,27 @@ int getDEId(bool isRight, int chamber, int rpc);
5959
/// \param deId The detection element ID
6060
std::string getDEName(int deId);
6161

62-
/// Gets the unique Front-End Electronics ID
62+
/// Makes the unique Front-End Electronics ID
6363
/// \param deId The detection element ID
6464
/// \param columnId Column ID
6565
/// \param lineId Line in column
6666
/// \return unique FEE ID
67-
inline int getUniqueFEEId(int deId, int columnId, int lineId) { return lineId | (columnId << 4) | (deId << 8); }
67+
inline uint16_t makeUniqueFEEId(int deId, int columnId, int lineId) { return lineId | (columnId << 4) | (deId << 8); }
6868

6969
/// Gets the detection element ID from the unique FEE ID
7070
/// \param uniqueFEEId Unique FEE ID
7171
/// \return Detection element ID
72-
inline int getDEIdFromFEEId(int uniqueFEEId) { return (uniqueFEEId >> 8) & 0x7F; }
72+
inline int getDEIdFromFEEId(uint16_t uniqueFEEId) { return (uniqueFEEId >> 8) & 0x7F; }
7373

7474
/// Gets the column ID from the unique FEE ID
7575
/// \param uniqueFEEId Unique FEE ID
7676
/// \return Column ID
77-
inline int getColumnIdFromFEEId(int uniqueFEEId) { return (uniqueFEEId >> 4) & 0x7; }
77+
inline int getColumnIdFromFEEId(uint16_t uniqueFEEId) { return (uniqueFEEId >> 4) & 0x7; }
7878

7979
/// Gets the line ID from the unique FEE ID
8080
/// \param uniqueFEEId Unique FEE ID
8181
/// \return Line ID
82-
inline int getLineIdFromFEEId(int uniqueFEEId) { return uniqueFEEId & 0x3; }
82+
inline int getLineIdFromFEEId(uint16_t uniqueFEEId) { return uniqueFEEId & 0x3; }
8383

8484
} // namespace detparams
8585
} // namespace mid

Detectors/MUON/MID/Efficiency/include/MIDEfficiency/ChamberEfficiency.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class ChamberEfficiency
6464
/// \param type Efficiency type
6565
/// \return Efficiency counter type
6666
EffCountType convert(EffType type) const;
67-
std::unordered_map<int, ChEffCounter> mCounters; ///< Efficiency counters
67+
std::unordered_map<uint16_t, ChEffCounter> mCounters; ///< Efficiency counters
6868
};
6969

7070
ChamberEfficiency createDefaultChamberEfficiency();

Detectors/MUON/MID/Efficiency/src/ChamberEfficiency.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void ChamberEfficiency::setFromCounters(const std::vector<ChEffCounter>& counter
2929
{
3030
mCounters.clear();
3131
for (auto& count : counters) {
32-
mCounters[detparams::getUniqueFEEId(count.deId, count.columnId, count.lineId)] = count;
32+
mCounters[detparams::makeUniqueFEEId(count.deId, count.columnId, count.lineId)] = count;
3333
}
3434
}
3535

@@ -57,7 +57,7 @@ EffCountType ChamberEfficiency::convert(EffType type) const
5757

5858
double ChamberEfficiency::getEfficiency(int deId, int columnId, int lineId, EffType type) const
5959
{
60-
auto idx = detparams::getUniqueFEEId(deId, columnId, lineId);
60+
auto idx = detparams::makeUniqueFEEId(deId, columnId, lineId);
6161
auto entryTot = mCounters.find(idx);
6262
if (entryTot == mCounters.end()) {
6363
std::cerr << "Warning: no efficiency found for deId: " << deId << " column: " << columnId << " line: " << lineId << " type: " << static_cast<int>(type) << "\n";
@@ -69,7 +69,7 @@ double ChamberEfficiency::getEfficiency(int deId, int columnId, int lineId, EffT
6969
//______________________________________________________________________________
7070
void ChamberEfficiency::addEntry(bool isEfficientBP, bool isEfficientNBP, int deId, int columnId, int lineId)
7171
{
72-
auto& entry = mCounters[detparams::getUniqueFEEId(deId, columnId, lineId)];
72+
auto& entry = mCounters[detparams::makeUniqueFEEId(deId, columnId, lineId)];
7373
entry.deId = deId;
7474
entry.columnId = columnId;
7575
entry.lineId = lineId;

Detectors/MUON/MID/Raw/include/MIDRaw/CrateMapper.h

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,37 +31,42 @@ class CrateMapper
3131
CrateMapper();
3232
~CrateMapper() = default;
3333

34-
/// Builds the local board ID in the detection element
35-
static uint16_t deBoardId(uint8_t rpcLineId, uint8_t columnId, uint8_t lineId) { return (rpcLineId | (columnId << 4) | (lineId << 7)); }
36-
/// Gets the RPC line from the DE board ID
37-
static uint8_t getRPCLine(uint16_t deBoardId) { return deBoardId & 0xF; }
38-
/// Gets the column ID from the DE board ID
39-
static uint8_t getColumnId(uint16_t deBoardId) { return (deBoardId >> 4) & 0x7; }
40-
/// Gets the line ID from the DE board ID
41-
static uint8_t getLineId(uint16_t deBoardId) { return (deBoardId >> 7) & 0x3; }
34+
/// @brief Converts the LOC ID expressed in the offline convention into the readout convention
35+
/// @param deId Detection element ID
36+
/// @param columnId Column ID
37+
/// @param lineId Line ID
38+
/// @return LOC ID for readout electronics
4239
uint8_t deLocalBoardToRO(uint8_t deId, uint8_t columnId, uint8_t lineId) const;
4340

41+
/// @brief Converts the LOC ID expressed in readout convention into the LOC ID in MT11 right in the offline convention
42+
/// @param uniqueLocId LOC ID for the readout electronics
43+
/// @return LOC ID in the offline way
4444
uint16_t roLocalBoardToDE(uint8_t uniqueLocId) const;
4545

46-
/// Checks if local board ID has direct input from FEE y strips
46+
/// @brief Checks if local board ID (RO convention) has direct input from FEE y strips
47+
/// @param uniqueLocId LOC ID in the RO convention
48+
/// @returns true if local board ID has direct input from FEE y strips
4749
bool hasDirectInputY(uint8_t uniqueLocId) const { return mLocIdsWithDirectInputY.find(getROBoardIdRight(uniqueLocId)) != mLocIdsWithDirectInputY.end(); }
4850

49-
/// Gets the local boards with a direct input from FEE y strips
51+
/// @brief Gets the local boards with a direct input from FEE y strips
52+
/// @return An unordered set with the local boards IDs (offline convention) with a direct input from FEE y strips
5053
std::unordered_set<uint8_t> getLocalBoardsWithDirectInputY() const { return mLocIdsWithDirectInputY; }
5154

52-
/// Returns the list of readout local board IDs
53-
/// \param gbtUniqueId Limit the query to the links belonging to the specified gbtUniqueId. If gbtUniqueId is 0xFFFF, return all
54-
/// \return Sorted vector of local board unique IDs
55+
/// @brief Returns the list of local board IDs (RO convention)
56+
/// @param gbtUniqueId Limit the query to the links belonging to the specified gbtUniqueId. If gbtUniqueId is 0xFFFF, return all
57+
/// @return Sorted vector of local board unique IDs (offline convention)
5558
std::vector<uint8_t> getROBoardIds(uint16_t gbtUniqueId = 0xFFFF) const;
5659

5760
private:
58-
/// Initializes the crate mapping
61+
/// @brief Initializes the crate mapping
5962
void init();
60-
/// Returns the unique Loc ID in the right side
63+
64+
/// @brief Returns the unique Loc ID in the right side (offline convention)
6165
uint8_t getROBoardIdRight(uint8_t uniqueLocId) const { return uniqueLocId % 0x80; }
62-
std::unordered_map<uint8_t, uint16_t> mROToDEMap; /// Correspondence between RO and DE board
63-
std::unordered_map<uint16_t, uint8_t> mDEToROMap; /// Correspondence between DE and RO board
64-
std::unordered_set<uint8_t> mLocIdsWithDirectInputY; /// IDs of the local board with direct input from FEE y strips
66+
67+
std::unordered_map<uint8_t, uint16_t> mROToDEMap; /// Correspondence between boards in the RO and Offline convention
68+
std::unordered_map<uint16_t, uint8_t> mDEToROMap; /// Correspondence between boards in the Offline and RO convention
69+
std::unordered_set<uint8_t> mLocIdsWithDirectInputY; /// IDs of the local board (offline convention) with direct input from FEE y strips
6570
};
6671
} // namespace mid
6772
} // namespace o2

Detectors/MUON/MID/Raw/src/CrateMapper.cxx

Lines changed: 64 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -40,94 +40,94 @@ void CrateMapper::init()
4040
/// Initalizes the inner mapping
4141
// Crate 0
4242
// link 0
43-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 0), deBoardId(0, 0, 0));
44-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 1), deBoardId(1, 0, 0));
45-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 2), deBoardId(1, 0, 1));
46-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 3), deBoardId(2, 0, 0));
47-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 4), deBoardId(2, 0, 1));
48-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 5), deBoardId(3, 0, 0));
49-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 6), deBoardId(3, 0, 1));
50-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 7), deBoardId(3, 0, 2));
43+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 0), detparams::makeUniqueFEEId(0, 0, 0));
44+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 1), detparams::makeUniqueFEEId(1, 0, 0));
45+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 2), detparams::makeUniqueFEEId(1, 0, 1));
46+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 3), detparams::makeUniqueFEEId(2, 0, 0));
47+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 4), detparams::makeUniqueFEEId(2, 0, 1));
48+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 5), detparams::makeUniqueFEEId(3, 0, 0));
49+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 6), detparams::makeUniqueFEEId(3, 0, 1));
50+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 7), detparams::makeUniqueFEEId(3, 0, 2));
5151
// link 1
52-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 8), deBoardId(5, 0, 1));
53-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 9), deBoardId(5, 0, 2));
54-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 10), deBoardId(5, 0, 3));
55-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 11), deBoardId(6, 0, 0));
56-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 12), deBoardId(6, 0, 1));
57-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 13), deBoardId(7, 0, 0));
58-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 14), deBoardId(7, 0, 1));
59-
mROToDEMap.emplace(raw::makeUniqueLocID(0, 15), deBoardId(8, 0, 0));
52+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 8), detparams::makeUniqueFEEId(5, 0, 1));
53+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 9), detparams::makeUniqueFEEId(5, 0, 2));
54+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 10), detparams::makeUniqueFEEId(5, 0, 3));
55+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 11), detparams::makeUniqueFEEId(6, 0, 0));
56+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 12), detparams::makeUniqueFEEId(6, 0, 1));
57+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 13), detparams::makeUniqueFEEId(7, 0, 0));
58+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 14), detparams::makeUniqueFEEId(7, 0, 1));
59+
mROToDEMap.emplace(raw::makeUniqueLocID(0, 15), detparams::makeUniqueFEEId(8, 0, 0));
6060

6161
// Crate 1, 3
6262
for (int icrate = 0; icrate < 2; ++icrate) {
6363
uint8_t crateId = (icrate == 0) ? 1 : 3;
6464
uint8_t columnId = (icrate == 0) ? 1 : 2;
6565
// link 0
66-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 0), deBoardId(0, columnId, 0));
67-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 1), deBoardId(1, columnId, 0));
68-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 2), deBoardId(1, columnId, 1));
69-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 3), deBoardId(2, columnId, 0));
70-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 4), deBoardId(2, columnId, 1));
71-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 5), deBoardId(3, columnId, 0));
72-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 6), deBoardId(3, columnId, 1));
73-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 7), deBoardId(3, columnId, 2));
66+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 0), detparams::makeUniqueFEEId(0, columnId, 0));
67+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 1), detparams::makeUniqueFEEId(1, columnId, 0));
68+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 2), detparams::makeUniqueFEEId(1, columnId, 1));
69+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 3), detparams::makeUniqueFEEId(2, columnId, 0));
70+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 4), detparams::makeUniqueFEEId(2, columnId, 1));
71+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 5), detparams::makeUniqueFEEId(3, columnId, 0));
72+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 6), detparams::makeUniqueFEEId(3, columnId, 1));
73+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 7), detparams::makeUniqueFEEId(3, columnId, 2));
7474

7575
// link 1
76-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 8), deBoardId(3, columnId, 3));
77-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 9), deBoardId(4, columnId, 0));
78-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 10), deBoardId(4, columnId, 1));
79-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 11), deBoardId(4, columnId, 2));
80-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 12), deBoardId(4, columnId, 3));
81-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 13), deBoardId(5, columnId, 0));
82-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 14), deBoardId(5, columnId, 1));
76+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 8), detparams::makeUniqueFEEId(3, columnId, 3));
77+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 9), detparams::makeUniqueFEEId(4, columnId, 0));
78+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 10), detparams::makeUniqueFEEId(4, columnId, 1));
79+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 11), detparams::makeUniqueFEEId(4, columnId, 2));
80+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 12), detparams::makeUniqueFEEId(4, columnId, 3));
81+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 13), detparams::makeUniqueFEEId(5, columnId, 0));
82+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 14), detparams::makeUniqueFEEId(5, columnId, 1));
8383
}
8484

8585
// Crate 2
8686
// link 0
87-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 0), deBoardId(5, 1, 2));
88-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 1), deBoardId(5, 1, 3));
89-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 2), deBoardId(6, 1, 0));
90-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 3), deBoardId(6, 1, 1));
91-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 4), deBoardId(7, 1, 0));
92-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 5), deBoardId(7, 1, 1));
93-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 6), deBoardId(8, 1, 0));
87+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 0), detparams::makeUniqueFEEId(5, 1, 2));
88+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 1), detparams::makeUniqueFEEId(5, 1, 3));
89+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 2), detparams::makeUniqueFEEId(6, 1, 0));
90+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 3), detparams::makeUniqueFEEId(6, 1, 1));
91+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 4), detparams::makeUniqueFEEId(7, 1, 0));
92+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 5), detparams::makeUniqueFEEId(7, 1, 1));
93+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 6), detparams::makeUniqueFEEId(8, 1, 0));
9494
// link 1
95-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 8), deBoardId(5, 2, 2));
96-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 9), deBoardId(5, 2, 3));
97-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 10), deBoardId(6, 2, 0));
98-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 11), deBoardId(6, 2, 1));
99-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 12), deBoardId(7, 2, 0));
100-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 13), deBoardId(7, 2, 1));
101-
mROToDEMap.emplace(raw::makeUniqueLocID(2, 14), deBoardId(8, 2, 0));
95+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 8), detparams::makeUniqueFEEId(5, 2, 2));
96+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 9), detparams::makeUniqueFEEId(5, 2, 3));
97+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 10), detparams::makeUniqueFEEId(6, 2, 0));
98+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 11), detparams::makeUniqueFEEId(6, 2, 1));
99+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 12), detparams::makeUniqueFEEId(7, 2, 0));
100+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 13), detparams::makeUniqueFEEId(7, 2, 1));
101+
mROToDEMap.emplace(raw::makeUniqueLocID(2, 14), detparams::makeUniqueFEEId(8, 2, 0));
102102

103103
// Crate 4, 5, 6
104104
for (int icrate = 0; icrate < 3; ++icrate) {
105105
uint16_t crateId = icrate + 4;
106106
uint8_t columnId = icrate + 3;
107107
// link 0
108-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 0), deBoardId(0, columnId, 0));
109-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 1), deBoardId(1, columnId, 0));
110-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 2), deBoardId(1, columnId, 1));
111-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 3), deBoardId(2, columnId, 0));
112-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 4), deBoardId(2, columnId, 1));
113-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 5), deBoardId(3, columnId, 0));
114-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 6), deBoardId(3, columnId, 1));
115-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 7), deBoardId(4, columnId, 0));
108+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 0), detparams::makeUniqueFEEId(0, columnId, 0));
109+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 1), detparams::makeUniqueFEEId(1, columnId, 0));
110+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 2), detparams::makeUniqueFEEId(1, columnId, 1));
111+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 3), detparams::makeUniqueFEEId(2, columnId, 0));
112+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 4), detparams::makeUniqueFEEId(2, columnId, 1));
113+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 5), detparams::makeUniqueFEEId(3, columnId, 0));
114+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 6), detparams::makeUniqueFEEId(3, columnId, 1));
115+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 7), detparams::makeUniqueFEEId(4, columnId, 0));
116116
// link 1
117-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 8), deBoardId(4, columnId, 1));
118-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 9), deBoardId(5, columnId, 0));
119-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 10), deBoardId(5, columnId, 1));
120-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 11), deBoardId(6, columnId, 0));
121-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 12), deBoardId(6, columnId, 1));
122-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 13), deBoardId(7, columnId, 0));
123-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 14), deBoardId(7, columnId, 1));
124-
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 15), deBoardId(8, columnId, 0));
117+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 8), detparams::makeUniqueFEEId(4, columnId, 1));
118+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 9), detparams::makeUniqueFEEId(5, columnId, 0));
119+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 10), detparams::makeUniqueFEEId(5, columnId, 1));
120+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 11), detparams::makeUniqueFEEId(6, columnId, 0));
121+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 12), detparams::makeUniqueFEEId(6, columnId, 1));
122+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 13), detparams::makeUniqueFEEId(7, columnId, 0));
123+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 14), detparams::makeUniqueFEEId(7, columnId, 1));
124+
mROToDEMap.emplace(raw::makeUniqueLocID(crateId, 15), detparams::makeUniqueFEEId(8, columnId, 0));
125125
}
126126

127127
// Crate 7
128128
uint8_t rpcLineId = 0;
129129
for (uint8_t iboard = 0; iboard < 9; ++iboard) {
130-
mROToDEMap.emplace(raw::makeUniqueLocID(7, iboard), deBoardId(rpcLineId++, 6, 0));
130+
mROToDEMap.emplace(raw::makeUniqueLocID(7, iboard), detparams::makeUniqueFEEId(rpcLineId++, 6, 0));
131131
}
132132

133133
/// Build the inverse map
@@ -138,7 +138,7 @@ void CrateMapper::init()
138138
/// Build the map of the local boards with direct Y input from FEE
139139
for (auto& item : mROToDEMap) {
140140
bool hasDirectInputY = false;
141-
auto lineId = getLineId(item.second);
141+
auto lineId = detparams::getLineIdFromFEEId(item.second);
142142
if (lineId == 0) { // First loc in the RPC
143143
hasDirectInputY = true;
144144
} else {
@@ -157,8 +157,7 @@ void CrateMapper::init()
157157

158158
uint8_t CrateMapper::deLocalBoardToRO(uint8_t deId, uint8_t columnId, uint8_t lineId) const
159159
{
160-
/// Converts the local board ID in in MT11 right to the local board ID in FEE
161-
auto item = mDEToROMap.find(deBoardId(detparams::getRPCLine(deId), columnId, lineId));
160+
auto item = mDEToROMap.find(detparams::makeUniqueFEEId(detparams::getRPCLine(deId), columnId, lineId));
162161
if (item == mDEToROMap.end()) {
163162
throw std::runtime_error(fmt::format("Non-existent deId: {:d} columnId: {:d} lineId: {:d}", deId, columnId, lineId));
164163
}
@@ -167,7 +166,6 @@ uint8_t CrateMapper::deLocalBoardToRO(uint8_t deId, uint8_t columnId, uint8_t li
167166

168167
uint16_t CrateMapper::roLocalBoardToDE(uint8_t uniqueLocId) const
169168
{
170-
/// Converts the local board ID in FEE to the local board ID in MT11 right
171169
auto item = mROToDEMap.find(getROBoardIdRight(uniqueLocId));
172170
if (item == mROToDEMap.end()) {
173171
throw std::runtime_error(fmt::format("Non-existent crateId: {:d} boardId: {:d}", raw::getCrateId(uniqueLocId), raw::getLocId(uniqueLocId)));

0 commit comments

Comments
 (0)