diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/banks/FilteredBank.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/banks/FilteredBank.java index 436d49fedb..8b17f3b6b9 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/banks/FilteredBank.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/banks/FilteredBank.java @@ -135,6 +135,51 @@ public float getFloat(String varName, int index ){ return bank.getFloat(varName, indexList.get(index)); } + /** + * @param element + * @param index + * @return value for the filtered index + */ + public int getByte(int element, int index) { + return bank.getByte(element, indexList.get(index)); + } + + /** + * @param element + * @param index + * @return value for the filtered index + */ + public int getShort(int element, int index) { + return bank.getShort(element, indexList.get(index)); + } + + /** + * @param element + * @param index + * @return value for the filtered index + */ + public int getInt(int element, int index) { + return bank.getInt(element, indexList.get(index)); + } + + /** + * @param element + * @param index + * @return value for the filtered index + */ + public long getLong(int element, int index) { + return bank.getLong(element, indexList.get(index)); + } + + /** + * @param element + * @param index + * @return value for the filtered index + */ + public float getFloat(int element, int index) { + return bank.getFloat(element, indexList.get(index)); + } + /** * @param index filtered index to retrieve * @return true bank row index corresponding to the filtered index diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java index e11d0ac1b6..e059e115ca 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/Constants.java @@ -519,14 +519,16 @@ private void addReverseTT(int run, IndexedTable tt) { int crate = tt.getList().getIndexGenerator().getIndex((long)key, 0); int slot = tt.getList().getIndexGenerator().getIndex((long)key, 1); int channel = tt.getList().getIndexGenerator().getIndex((long)key, 2); - int sector = tt.getIntValue("sector", crate,slot,channel); - int layer = tt.getIntValue("layer", crate,slot,channel); - int comp = tt.getIntValue("component", crate,slot,channel); - int order = tt.getIntValue("order", crate,slot,channel); + int sector = tt.getIntValueByHash(0, (long)key); + int layer = tt.getIntValueByHash(1, (long)key); + int comp = tt.getIntValueByHash(2, (long)key); + int order = tt.getIntValueByHash(3, (long)key); reverse.addEntry(sector, layer, comp, order); - reverse.setIntValue(crate, "crate", sector, layer, comp, order); - reverse.setIntValue(slot, "slot", sector, layer, comp, order); - reverse.setIntValue(channel, "channel", sector, layer, comp, order); + long hash = IndexedTable.DEFAULT_GENERATOR.hashCode(sector,layer,comp,order); + reverse.setIntValueByHash(crate, 0, hash); + reverse.setIntValueByHash(crate, 1, hash); + reverse.setIntValueByHash(slot, 2, hash); + reverse.setIntValueByHash(channel, 3, hash); } reverseTTs.put(run, reverse); } diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java index eaa35990c4..b05d424d60 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java @@ -128,9 +128,9 @@ private void getDCRBJitters(boolean swapBits) { DataBank bankTS = event.getBank(bankNames.getTimeStampBank()); for(int i=0; i>24)|((timestamp&0x0000000000ffffffL)<<24)); } @@ -186,12 +186,12 @@ public void fetch_DCHits(DataEvent event) { this.set_NumTDCBankRows(bankFiltered.rows()); for (int i = 0; i < bankFiltered.rows(); i++) { - int sector = bankFiltered.getByte("sector", i); - int layer = (bankFiltered.getByte("layer", i)-1)%6 + 1; - int superlayer = (bankFiltered.getByte("layer", i)-1)/6 + 1; - int wire = bankFiltered.getShort("component", i); + int sector = bankFiltered.getByte(0, i); + int layer = (bankFiltered.getByte(1, i)-1)%6 + 1; + int superlayer = (bankFiltered.getByte(1, i)-1)/6 + 1; + int wire = bankFiltered.getShort(2, i); int order = bankFiltered.trueOrder(i); - int jitter = this.getJitter(sector, bankFiltered.getByte("layer", i), wire, order); + int jitter = this.getJitter(sector, bankFiltered.getByte(1, i), wire, order); int tdc = bankFiltered.getInt("TDC", i) - jitter; int index = bankFiltered.trueIndex(i);