From e833c04e8fd241c4dc71ef47afebad21fcd5430e Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Mon, 12 Jan 2026 21:18:48 -0500 Subject: [PATCH 1/2] add hash-based accessor --- .../java/org/jlab/utils/groups/IndexedList.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java index e23f799f83..6dce281502 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/groups/IndexedList.java @@ -326,11 +326,23 @@ public int getIndex(long hashcode, int order) { return (int) ((hashcode >> this.byteShifts[order]) & mask); } + /** + * Retrieves an array of the requested indices. + * + * @param indices + * @return + */ + public int[] getIndices(long hashcode, int... indices) { + int[] ret = new int[indices.length]; + for (int i=0; i Date: Mon, 12 Jan 2026 21:19:23 -0500 Subject: [PATCH 2/2] add debugging --- .../detector/decode/TranslationTable.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/TranslationTable.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/TranslationTable.java index 9958969083..da1c3512b4 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/TranslationTable.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/TranslationTable.java @@ -1,8 +1,9 @@ package org.jlab.detector.decode; +import java.util.stream.Collectors; +import org.jlab.utils.groups.IndexedTable; import org.jlab.detector.base.DetectorType; import org.jlab.detector.calib.utils.ConstantsManager; -import org.jlab.utils.groups.IndexedTable; /** * @@ -24,6 +25,7 @@ public void add(DetectorType dt, IndexedTable it) { int slot = IndexedTable.DEFAULT_GENERATOR.getIndex(hash, 1); int channel = IndexedTable.DEFAULT_GENERATOR.getIndex(hash, 2); + // first one wins, print error message for loser: if (hasEntryByHash(hash)) { System.err.print("TranslationTable: found CCDB overlap for "); System.err.println(String.format("type %d/%s versus %s and c/s/c=%d/%d/%d", @@ -36,10 +38,8 @@ public void add(DetectorType dt, IndexedTable it) { addEntry(crate, slot, channel); // add each column's entry to the new row: - for (int column=0; column