@@ -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
158158uint8_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
168167uint16_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