From 581f22c795978e4d3520baaab0de89695375fae3 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 3f78ab392ab38a3852692017af5646d65a35d65e 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 1e2534a8f0c7320c3237550d37e83bee4907a56b 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 e80e0f74e8196be58b6404fe06c9991a5ef5273f 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 4c0e7350f55065799dca5bc29091c148d4ec2620 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 33a8cdcbb5e0dd8d53845e7108c48289b6abc921 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 d110d3d09f54fe54072ed0245a490accbb75a765 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 6326d7ede216c5d47a6df583ba83f5f59623eaf3 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 b8ec652833a5c619e2cd131e8ae4f819ca37922f 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 6d5bba9088f5dae0be78e28ca7396642a8e6c2f3 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 636c3326ff83265a020629baa6b85f04e5364d42 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 70d45b60d10df1570b47c74da501d8de4db46266 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