From ad12aafd1e5cf7156b9db562c70801e3d38e4c3e Mon Sep 17 00:00:00 2001 From: Felix Hagemann Date: Wed, 23 Sep 2026 18:35:16 -0700 Subject: [PATCH 1/2] FIX: GR contact handling when loading 4-column strip map files --- src/MStripMap.cxx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/MStripMap.cxx b/src/MStripMap.cxx index 90e4952f..f4ed29a2 100644 --- a/src/MStripMap.cxx +++ b/src/MStripMap.cxx @@ -212,11 +212,21 @@ bool MStripMap::Open(const MString& FileName) } // Infer the rest of the information from the ReadOutID - SM.m_RTB = (SM.m_ReadOutID >> 8) & 0x01; - SM.m_DRM = (SM.m_ReadOutID >> 7) & 0x01; - SM.m_IsPrimary = (SM.m_ReadOutID >> 6) & 0x01; - SM.m_ASICID = (SM.m_ReadOutID >> 5) & 0x01; - SM.m_ChannelID = SM.m_ReadOutID & 0x1F; + if (SM.m_ReadOutID < 2048) { + // Regular strip contacts + SM.m_RTB = (SM.m_ReadOutID >> 8) & 0x01; + SM.m_DRM = (SM.m_ReadOutID >> 7) & 0x01; + SM.m_IsPrimary = (SM.m_ReadOutID >> 6) & 0x01; + SM.m_ASICID = (SM.m_ReadOutID >> 5) & 0x01; + SM.m_ChannelID = SM.m_ReadOutID & 0x1F; + } else { + // Guard ring contacts (always channel 15 on ASIC 2) + SM.m_RTB = (SM.m_ReadOutID >> 4) & 0x01; + SM.m_DRM = (SM.m_ReadOutID >> 1) & 0x07; + SM.m_IsPrimary = SM.m_ReadOutID & 0x01; + SM.m_ASICID = 2; + SM.m_ChannelID = 15; + } m_StripMappings.push_back(SM); } else { From 24770ebd56b256fafb9837ba0d95ed7e9958f07f Mon Sep 17 00:00:00 2001 From: Felix Hagemann Date: Wed, 23 Sep 2026 18:37:23 -0700 Subject: [PATCH 2/2] FIX: RTB and DRM determination when loading 4-column strip map files --- src/MStripMap.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MStripMap.cxx b/src/MStripMap.cxx index f4ed29a2..cdc25ebb 100644 --- a/src/MStripMap.cxx +++ b/src/MStripMap.cxx @@ -214,8 +214,8 @@ bool MStripMap::Open(const MString& FileName) // Infer the rest of the information from the ReadOutID if (SM.m_ReadOutID < 2048) { // Regular strip contacts - SM.m_RTB = (SM.m_ReadOutID >> 8) & 0x01; - SM.m_DRM = (SM.m_ReadOutID >> 7) & 0x01; + SM.m_RTB = (SM.m_ReadOutID >> 10) & 0x01; + SM.m_DRM = (SM.m_ReadOutID >> 7) & 0x07; SM.m_IsPrimary = (SM.m_ReadOutID >> 6) & 0x01; SM.m_ASICID = (SM.m_ReadOutID >> 5) & 0x01; SM.m_ChannelID = SM.m_ReadOutID & 0x1F;