diff --git a/Detectors/MUON/MID/GlobalMapping/exe/global-mapper.cxx b/Detectors/MUON/MID/GlobalMapping/exe/global-mapper.cxx index 0086bf6b4caa5..f8efd6fddb79d 100644 --- a/Detectors/MUON/MID/GlobalMapping/exe/global-mapper.cxx +++ b/Detectors/MUON/MID/GlobalMapping/exe/global-mapper.cxx @@ -57,6 +57,8 @@ void stripsInfo2json(const std::vector& infos, con writer.Int(infos[idx].locId); writer.Key("locIdDcs"); writer.String(infos[idx].locIdDcs.c_str()); + writer.Key("locIdHw"); + writer.String(infos[idx].locIdHw.c_str()); writer.EndObject(); } writer.EndArray(); diff --git a/Detectors/MUON/MID/GlobalMapping/include/MIDGlobalMapping/ExtendedMappingInfo.h b/Detectors/MUON/MID/GlobalMapping/include/MIDGlobalMapping/ExtendedMappingInfo.h index f05b2d6acba1f..1153f75c774ba 100644 --- a/Detectors/MUON/MID/GlobalMapping/include/MIDGlobalMapping/ExtendedMappingInfo.h +++ b/Detectors/MUON/MID/GlobalMapping/include/MIDGlobalMapping/ExtendedMappingInfo.h @@ -34,6 +34,7 @@ struct ExtendedMappingInfo { int cathode; ///< Bending (0) or Non-bending (1) planes int locId; ///< Local board ID std::string locIdDcs; ///< Local board ID for DCS + std::string locIdHw; /// Local board ID in the hardware int xpos; ///< Position X int ypos; ///< Position Y int xwidth; ///< Width X (signed) diff --git a/Detectors/MUON/MID/GlobalMapping/src/GlobalMapper.cxx b/Detectors/MUON/MID/GlobalMapping/src/GlobalMapper.cxx index aebaade01f963..eeb17759197c9 100644 --- a/Detectors/MUON/MID/GlobalMapping/src/GlobalMapper.cxx +++ b/Detectors/MUON/MID/GlobalMapping/src/GlobalMapper.cxx @@ -79,7 +79,10 @@ std::array GlobalMapper::getStripGeom(int deId, int columnId, int lineId ExtendedMappingInfo GlobalMapper::buildExtendedInfo(int deId, int columnId, int lineId, int stripId, int cathode) const { ExtendedMappingInfo info; + std::array boards{"12", "34", "56", "78"}; info.id = getStripId(deId, columnId, lineId, stripId, cathode); + int irpc = detparams::getRPCLine(deId); + int iline = (irpc == 5 && columnId == 0) ? lineId - 1 : lineId; auto locId = static_cast(mCrateMapper.deLocalBoardToRO(deId, columnId, lineId)); info.locId = locId; std::string side = detparams::isRightSide(deId) ? "R" : "L"; @@ -92,6 +95,7 @@ ExtendedMappingInfo GlobalMapper::buildExtendedInfo(int deId, int columnId, int info.stripId = stripId; info.cathode = cathode; info.locIdDcs = fmt::format("{}{}{}{}", crateId, side, (locInCrate >= 8 ? "1" : "0"), locInCrate); + info.locIdHw = fmt::format("{}{}C{}L{}B{}", detparams::getChamber(deId) + 1, side, columnId + 1, irpc + 1, boards[iline]); auto geom = getStripGeom(deId, columnId, lineId, stripId, cathode); info.xpos = geom[0]; info.ypos = geom[1];