From 619ae8724b095c586d578e4c7f218cede2e87f66 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:02:33 -0400 Subject: [PATCH 01/13] add multi-hit fadc option --- .../detector/decode/ExtendedFADCFitter.java | 57 ++++++++++++++++++- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 245c5c84d8..e4c486fdc6 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -1,5 +1,8 @@ package org.jlab.detector.decode; +import java.util.ArrayList; +import java.util.List; + /** * * @author gavalian @@ -17,9 +20,7 @@ public class ExtendedFADCFitter implements IFADCFitter { public double baseline, rms; private int tcourse, tfine; - public ExtendedFADCFitter(){ - - } + public ExtendedFADCFitter(){} public void fitCourseTime(int nsa, int nsb, int tet, int pedr, short[] pulse) { pedsum=0;adc=0;mmsum=0;summing_in_progress=0; @@ -162,4 +163,54 @@ public void fit(DetectorDataDgtz.ADCData data) { } } + public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int ped, short[] pulse) { + List hits = new ArrayList<>(); + fit(nsa, nsb, tet, ped, pulse); + boolean belowThreshold = false; + for (int bin=pulsePeakPosition+1; bin halfMax) { + int a0 = pulse[halfBinUp]; + int a1 = pulse[halfBinUp+1]; + f.tcourse = halfBinUp; + f.tfine = ((int) ((halfMax - a0)/(a1-a0) * 64)); + f.t0 = (tcourse << 6) + tfine; + // find the half-max crossing downwards: + for (int halfBinDown = halfBinUp; halfBinDown halfMax && pulse[halfBinDown+1] <= halfMax) { + f.pulseWidth = halfBinDown - halfBinUp; + break; + } + } + break; + } + } + hits.add(f); + // move search bin forward: + bin = hits.getLast().pulsePeakPosition; + break; + } + } + // if we didn't generate a hit, stop: + if (hits.isEmpty()) break; + } + } + return hits.stream().toArray(ExtendedFADCFitter[]::new); + } } From 655f2b04deaa205ff2a13d6da4a5060cd0dec048 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:06:06 -0400 Subject: [PATCH 02/13] finish it --- .../detector/decode/ExtendedFADCFitter.java | 77 ++++++++++--------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index e4c486fdc6..53fd249100 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -166,49 +166,52 @@ public void fit(DetectorDataDgtz.ADCData data) { public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int ped, short[] pulse) { List hits = new ArrayList<>(); fit(nsa, nsb, tet, ped, pulse); - boolean belowThreshold = false; - for (int bin=pulsePeakPosition+1; bin halfMax) { - int a0 = pulse[halfBinUp]; - int a1 = pulse[halfBinUp+1]; - f.tcourse = halfBinUp; - f.tfine = ((int) ((halfMax - a0)/(a1-a0) * 64)); - f.t0 = (tcourse << 6) + tfine; - // find the half-max crossing downwards: - for (int halfBinDown = halfBinUp; halfBinDown halfMax && pulse[halfBinDown+1] <= halfMax) { - f.pulseWidth = halfBinDown - halfBinUp; - break; + hits.add(this); + if (pulsePeakPosition > 0) { + boolean belowThreshold = false; + for (int bin=pulsePeakPosition+1; bin halfMax) { + int a0 = pulse[halfBinUp]; + int a1 = pulse[halfBinUp+1]; + f.tcourse = halfBinUp; + f.tfine = ((int) ((halfMax - a0)/(a1-a0) * 64)); + f.t0 = (tcourse << 6) + tfine; + // find the half-max crossing downwards: + for (int halfBinDown = halfBinUp; halfBinDown halfMax && pulse[halfBinDown+1] <= halfMax) { + f.pulseWidth = halfBinDown - halfBinUp; + break; + } } + break; } - break; } + hits.add(f); + // move search bin forward: + bin = hits.getLast().pulsePeakPosition; + break; } - hits.add(f); - // move search bin forward: - bin = hits.getLast().pulsePeakPosition; - break; } + // if we didn't generate a hit, stop: + if (hits.isEmpty()) break; } - // if we didn't generate a hit, stop: - if (hits.isEmpty()) break; } } return hits.stream().toArray(ExtendedFADCFitter[]::new); From f24282f849780fca017fbefc64a58d17301d8873 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:15:38 -0400 Subject: [PATCH 03/13] use multi-hit fadcs --- .../detector/decode/DetectorEventDecoder.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index 20a2a64739..cc48775051 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -217,19 +217,29 @@ private void fitPulses(DetectorDataDgtz data, IndexedTable cfg) { final int nadc = data.getADCSize(); for (int i = 0; i < nadc; i++) { ADCData adc = data.getADCData(i); - if(adc.getPulseSize()>0){ + if (adc.getPulseSize() > 0) { + adc.setADC(nsa, nsb); try { - extendedFitter.fit(nsa, nsb, tet, ped, adc.getPulseArray()); + ExtendedFADCFitter[] f = extendedFitter.multiFit(nsa, nsb, tet, ped, adc.getPulseArray()); + adc.setIntegral(f[0].adc + f[0].ped*(nsa+nsb)); + adc.setHeight((short) f[0].pulsePeakValue); + adc.setTimeWord(f[0].t0); + adc.setPedestal((short) f[0].ped); + for (int j = 0; j < f.length; j++) { + ADCData a = new ADCData(); + a.setOrder(adc.getOrder()); + a.setIntegral(f[j].adc + f[j].ped*(nsa+nsb)); + a.setHeight((short) f[j].pulsePeakValue); + a.setTimeWord(f[j].t0); + a.setPedestal((short) f[j].ped); + a.setADC(nsa, nsb); + data.addADC(a); + } } catch (Exception e) { System.err.println(">>>> error : fitting pulse "+dd.getCrate()+ " / "+dd.getSlot()+" / "+dd.getChannel()); } - adc.setIntegral(extendedFitter.adc + extendedFitter.ped*(nsa+nsb)); - adc.setHeight((short) this.extendedFitter.pulsePeakValue); - adc.setTimeWord(this.extendedFitter.t0); - adc.setPedestal((short) this.extendedFitter.ped); } - data.getADCData(i).setADC(nsa, nsb); } } From bdb152770d15d5ca5bae8317250f35227ad3c140 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:19:04 -0400 Subject: [PATCH 04/13] cleanup --- .../detector/decode/DetectorEventDecoder.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index cc48775051..bc72c0b16c 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -218,21 +218,21 @@ private void fitPulses(DetectorDataDgtz data, IndexedTable cfg) { for (int i = 0; i < nadc; i++) { ADCData adc = data.getADCData(i); if (adc.getPulseSize() > 0) { - adc.setADC(nsa, nsb); try { - ExtendedFADCFitter[] f = extendedFitter.multiFit(nsa, nsb, tet, ped, adc.getPulseArray()); - adc.setIntegral(f[0].adc + f[0].ped*(nsa+nsb)); - adc.setHeight((short) f[0].pulsePeakValue); - adc.setTimeWord(f[0].t0); - adc.setPedestal((short) f[0].ped); - for (int j = 0; j < f.length; j++) { + ExtendedFADCFitter[] hits = extendedFitter.multiFit(nsa, nsb, tet, ped, adc.getPulseArray()); + adc.setADC(nsa, nsb); + adc.setIntegral(hits[0].adc + hits[0].ped*(nsa+nsb)); + adc.setHeight((short) hits[0].pulsePeakValue); + adc.setTimeWord(hits[0].t0); + adc.setPedestal((short) hits[0].ped); + for (int j = 0; j < hits.length; j++) { ADCData a = new ADCData(); - a.setOrder(adc.getOrder()); - a.setIntegral(f[j].adc + f[j].ped*(nsa+nsb)); - a.setHeight((short) f[j].pulsePeakValue); - a.setTimeWord(f[j].t0); - a.setPedestal((short) f[j].ped); a.setADC(nsa, nsb); + a.setOrder(adc.getOrder()); + a.setIntegral(hits[j].adc + hits[j].ped*(nsa+nsb)); + a.setHeight((short) hits[j].pulsePeakValue); + a.setTimeWord(hits[j].t0); + a.setPedestal((short) hits[j].ped); data.addADC(a); } } catch (Exception e) { From 220b7aae5716ef7f3a14f4276cedd5a8b48597a1 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:22:34 -0400 Subject: [PATCH 05/13] cleanup --- .../java/org/jlab/detector/decode/ExtendedFADCFitter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 53fd249100..991d34f461 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -203,13 +203,14 @@ else if (belowThreshold) { break; } } + // add the new hit we just made: hits.add(f); // move search bin forward: - bin = hits.getLast().pulsePeakPosition; + bin = f.pulsePeakPosition; break; } } - // if we didn't generate a hit, stop: + // if we didn't generate a new hit, stop: if (hits.isEmpty()) break; } } From ba6966ab436ec44a0ea277ee5e81e90db7919f98 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:42:41 -0400 Subject: [PATCH 06/13] fix --- .../java/org/jlab/detector/decode/ExtendedFADCFitter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 991d34f461..87b5c1c1a7 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -163,9 +163,9 @@ public void fit(DetectorDataDgtz.ADCData data) { } } - public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int ped, short[] pulse) { + public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int pedr, short[] pulse) { List hits = new ArrayList<>(); - fit(nsa, nsb, tet, ped, pulse); + fit(nsa, nsb, tet, pedr, pulse); hits.add(this); if (pulsePeakPosition > 0) { boolean belowThreshold = false; From ee56cbbc7f5480927f6ab0eca06bfd153706a429 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:45:36 -0400 Subject: [PATCH 07/13] cleanup --- .../org/jlab/detector/decode/ExtendedFADCFitter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 87b5c1c1a7..b366fdd8d2 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -170,29 +170,38 @@ public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int pedr, short[ if (pulsePeakPosition > 0) { boolean belowThreshold = false; for (int bin=pulsePeakPosition+1; bin halfMax) { + + // define timing: int a0 = pulse[halfBinUp]; int a1 = pulse[halfBinUp+1]; f.tcourse = halfBinUp; f.tfine = ((int) ((halfMax - a0)/(a1-a0) * 64)); f.t0 = (tcourse << 6) + tfine; + // find the half-max crossing downwards: for (int halfBinDown = halfBinUp; halfBinDown halfMax && pulse[halfBinDown+1] <= halfMax) { @@ -203,6 +212,7 @@ else if (belowThreshold) { break; } } + // add the new hit we just made: hits.add(f); // move search bin forward: From adbc35935c35b7cbf23b928d2112b2fb796f329a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 17:53:23 -0400 Subject: [PATCH 08/13] comments --- .../java/org/jlab/detector/decode/ExtendedFADCFitter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index b366fdd8d2..45997a31ee 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -164,9 +164,14 @@ public void fit(DetectorDataDgtz.ADCData data) { } public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int pedr, short[] pulse) { + List hits = new ArrayList<>(); + + // start with our conventional pulse fitting: fit(nsa, nsb, tet, pedr, pulse); hits.add(this); + + // and look for more later pulses: if (pulsePeakPosition > 0) { boolean belowThreshold = false; for (int bin=pulsePeakPosition+1; bin Date: Thu, 3 Sep 2026 19:44:41 -0400 Subject: [PATCH 09/13] fix --- .../detector/decode/DetectorEventDecoder.java | 5 +++- .../detector/decode/ExtendedFADCFitter.java | 28 ++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index bc72c0b16c..d93b507e6d 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -220,12 +220,14 @@ private void fitPulses(DetectorDataDgtz data, IndexedTable cfg) { if (adc.getPulseSize() > 0) { try { ExtendedFADCFitter[] hits = extendedFitter.multiFit(nsa, nsb, tet, ped, adc.getPulseArray()); + // the first hit is treated conventionally: adc.setADC(nsa, nsb); adc.setIntegral(hits[0].adc + hits[0].ped*(nsa+nsb)); adc.setHeight((short) hits[0].pulsePeakValue); adc.setTimeWord(hits[0].t0); adc.setPedestal((short) hits[0].ped); - for (int j = 0; j < hits.length; j++) { + // and extra hits get a new object here: + for (int j = 1; j < hits.length; j++) { ADCData a = new ADCData(); a.setADC(nsa, nsb); a.setOrder(adc.getOrder()); @@ -236,6 +238,7 @@ private void fitPulses(DetectorDataDgtz data, IndexedTable cfg) { data.addADC(a); } } catch (Exception e) { + e.printStackTrace(); System.err.println(">>>> error : fitting pulse "+dd.getCrate()+ " / "+dd.getSlot()+" / "+dd.getChannel()); } diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 45997a31ee..09208b3aeb 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -167,37 +167,44 @@ public ExtendedFADCFitter[] multiFit(int nsa, int nsb, int tet, int pedr, short[ List hits = new ArrayList<>(); - // start with our conventional pulse fitting: + // initialize with our conventional pulse fitting: fit(nsa, nsb, tet, pedr, pulse); hits.add(this); // and look for more later pulses: if (pulsePeakPosition > 0) { + + // start at the first pulse's maximum and look forward: boolean belowThreshold = false; - for (int bin=pulsePeakPosition+1; bin halfMax) { // define timing: @@ -220,8 +227,9 @@ else if (belowThreshold) { // add the new hit we just made: hits.add(f); + // move search bin forward: - bin = f.pulsePeakPosition; + crossBin = f.pulsePeakPosition; break; } } From a709edacf2a2d314e02a5d651cc83725d1450b70 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 20:08:46 -0400 Subject: [PATCH 10/13] bugfix --- .../main/java/org/jlab/detector/decode/ExtendedFADCFitter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java index 09208b3aeb..b18138b44c 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/ExtendedFADCFitter.java @@ -234,7 +234,7 @@ else if (belowThreshold) { } } // if we didn't generate a new hit, stop: - if (hits.isEmpty()) break; + if (hits.size() < 2) break; } } } From fb5c110def962025c7a9ad77e64c89fa0c285774 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 20:09:11 -0400 Subject: [PATCH 11/13] gotta "setADC" afterwards --- .../java/org/jlab/detector/decode/DetectorEventDecoder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java index d93b507e6d..2265b36259 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorEventDecoder.java @@ -221,20 +221,20 @@ private void fitPulses(DetectorDataDgtz data, IndexedTable cfg) { try { ExtendedFADCFitter[] hits = extendedFitter.multiFit(nsa, nsb, tet, ped, adc.getPulseArray()); // the first hit is treated conventionally: - adc.setADC(nsa, nsb); adc.setIntegral(hits[0].adc + hits[0].ped*(nsa+nsb)); adc.setHeight((short) hits[0].pulsePeakValue); adc.setTimeWord(hits[0].t0); adc.setPedestal((short) hits[0].ped); + adc.setADC(nsa, nsb); // and extra hits get a new object here: for (int j = 1; j < hits.length; j++) { ADCData a = new ADCData(); - a.setADC(nsa, nsb); a.setOrder(adc.getOrder()); a.setIntegral(hits[j].adc + hits[j].ped*(nsa+nsb)); a.setHeight((short) hits[j].pulsePeakValue); a.setTimeWord(hits[j].t0); a.setPedestal((short) hits[j].ped); + a.setADC(nsa, nsb); data.addADC(a); } } catch (Exception e) { From e71d668daa97d669056c2f58acbd9d1353253662 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 3 Sep 2026 20:18:07 -0400 Subject: [PATCH 12/13] actually write out the extra hits to banks --- .../org/jlab/detector/decode/CLASDecoder.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java index 45af4c9293..4298dd1764 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java @@ -217,34 +217,36 @@ public Bank getDataBankADC(String name, DetectorType type){ List adcDGTZ = this.getEntriesADC(type); if (adcDGTZ.isEmpty()) return null; - Bank adcBANK = new Bank(schemaFactory.getSchema(name), adcDGTZ.size()); - + Bank adcBANK = new Bank(schemaFactory.getSchema(name), + adcDGTZ.stream().mapToInt(b -> b.getADCSize()).sum()); + for(int i = 0; i < adcDGTZ.size(); i++){ - adcBANK.putByte( 0, i, (byte) adcDGTZ.get(i).getDescriptor().getSector()); - adcBANK.putByte( 1, i, (byte) adcDGTZ.get(i).getDescriptor().getLayer()); - adcBANK.putShort(2, i, (short) adcDGTZ.get(i).getDescriptor().getComponent()); - adcBANK.putByte( 3, i, (byte) adcDGTZ.get(i).getDescriptor().getOrder()); - adcBANK.putInt( 4, i, adcDGTZ.get(i).getADCData(0).getADC()); - if (type == DetectorType.BMT || type == DetectorType.FMT || type == DetectorType.FTTRK) { - adcBANK.putInt( 4, i, adcDGTZ.get(i).getADCData(0).getHeight()); - adcBANK.putInt( 7, i, adcDGTZ.get(i).getADCData(0).getIntegral()); - adcBANK.putLong(8, i, adcDGTZ.get(i).getADCData(0).getTimeStamp()); - } - if(type == DetectorType.BAND) { - adcBANK.putInt( 5, i, adcDGTZ.get(i).getADCData(0).getHeight()); - adcBANK.putFloat(6, i, (float) adcDGTZ.get(i).getADCData(0).getTime()); - adcBANK.putShort(7, i, (short) adcDGTZ.get(i).getADCData(0).getPedestal()); - } - else { - adcBANK.putFloat(5, i, (float) adcDGTZ.get(i).getADCData(0).getTime()); - adcBANK.putShort(6, i, (short) adcDGTZ.get(i).getADCData(0).getPedestal()); + for (int j = 0; j tdcDGTZ = this.getEntriesTDC(type); From 4740b63a335fd9c34057eb3c0b9a667ae1cfd370 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Fri, 4 Sep 2026 10:57:07 -0400 Subject: [PATCH 13/13] actually fill all the rows ... --- .../org/jlab/detector/decode/CLASDecoder.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java index 4298dd1764..372dce61cb 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java @@ -219,29 +219,31 @@ public Bank getDataBankADC(String name, DetectorType type){ Bank adcBANK = new Bank(schemaFactory.getSchema(name), adcDGTZ.stream().mapToInt(b -> b.getADCSize()).sum()); - + + int row = 0; for(int i = 0; i < adcDGTZ.size(); i++){ for (int j = 0; j