diff --git a/etc/bankdefs/hipo4/alert.json b/etc/bankdefs/hipo4/alert.json index dd57254c5c..bc3bab59ef 100644 --- a/etc/bankdefs/hipo4/alert.json +++ b/etc/bankdefs/hipo4/alert.json @@ -103,6 +103,62 @@ "info": "id of cluster to which the hit was associated" } ] + },{ + "name": "ATOF::calibhits", + "group": 22500, + "item": 23, + "info": "ATOF hits in single sipm channels", + "entries": [ + { + "name": "id", + "type": "S", + "info": "hit id" + }, { + "name": "sector", + "type": "I", + "info": "atof sector" + }, { + "name": "layer", + "type": "I", + "info": "atof layer" + },{ + "name": "component", + "type": "I", + "info": "atof component" + },{ + "name": "order", + "type": "I", + "info": "atof order" + },{ + "name": "time", + "type": "F", + "info": "time in ns" + },{ + "name": "x", + "type": "F", + "info": "x position in mm" + }, { + "name": "y", + "type": "F", + "info": "y position in mm" + }, { + "name": "z", + "type": "F", + "info": "z position in mm" + },{ + "name": "energy", + "type": "F", + "info": "deposited energy in MeV" + },{ + "name": "clusterid", + "type": "S", + "info": "id of cluster in which the hit was associated" + },{ + "name": "tdcid", + "type": "S", + "info": "id of tdc entry corresponding to the hit" + } + ] },{ "name": "ATOF::clusters", "group": 22500, diff --git a/etc/data/test/atof.hipo b/etc/data/test/atof.hipo index 8f55b52ae4..b06b1cdf2f 100644 Binary files a/etc/data/test/atof.hipo and b/etc/data/test/atof.hipo differ diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/atof/banks/RecoBankWriter.java b/reconstruction/alert/src/main/java/org/jlab/rec/atof/banks/RecoBankWriter.java index 6209275942..b12eb170d0 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/atof/banks/RecoBankWriter.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/atof/banks/RecoBankWriter.java @@ -18,6 +18,7 @@ public class RecoBankWriter { /** * Writes the bank of atof hits. + * Hits represent hits in the scintillators. * * @param event the {@link DataEvent} in which to add the bank * @param wedgeHits the {@link ArrayList} of {@link ATOFHit} containing the @@ -55,6 +56,52 @@ public static DataBank fillATOFHitBank(DataEvent event, ArrayList wedge } return bank; } + + /** + * Writes the bank of atof hits in single sipm channels. + * + * @param event the {@link DataEvent} in which to add the bank + * @param wedgeHits the {@link ArrayList} of {@link ATOFHit} containing the + * wedge hits to be added to the bank + * @param barHits the {@link ArrayList} of {@link BarHit} containing the bar + * hits that are an association of single sipm hits to be added to the bank. + * @return {@link DataBank} the bank with all the hits read in the event. + * + */ + public static DataBank fillATOFChannelHitBank(DataEvent event, ArrayList wedgeHits, ArrayList barHits) { + + ArrayList hitList = new ArrayList<>(); + hitList.addAll(wedgeHits); + for(int i_bar_hits=0; i_bar_hits wedgeHits, ArrayL } else { return 1; } + + DataBank calibHitBank = this.fillATOFChannelHitBank(event, wedgeHits, barHits); + if (calibHitBank != null) { + event.appendBank(calibHitBank); + } else { + return 1; + } return 0; } diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/ATOFHit.java b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/ATOFHit.java index 8277987701..32f75637c0 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/ATOFHit.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/ATOFHit.java @@ -25,7 +25,7 @@ public class ATOFHit { private String type; private boolean isInACluster; private int associatedClusterIndex; - int idTDC; + private int idTDC; public int getSector() { return sector; diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/BarHit.java b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/BarHit.java index 87b186eb50..65b761ff6e 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/BarHit.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/BarHit.java @@ -30,6 +30,13 @@ public ATOFHit getHitDown() { public void setHitDown(ATOFHit hit_down) { this.hitDown = hit_down; } + + @Override + public void setAssociatedClusterIndex(int index) { + super.setAssociatedClusterIndex(index); + this.hitDown.setAssociatedClusterIndex(index); + this.hitUp.setAssociatedClusterIndex(index); + } /** * Computes bar hit z coordinate from up/downstream hit times. diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java index e7bd0ef38b..b94e7a2c43 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java @@ -86,10 +86,11 @@ public void findHits(DataEvent event, Detector atof) { //Building a Hit ATOFHit hit = new ATOFHit(sector, layer, component, order, tdc, tot, atof); + hit.setIdTDC(i); if (hit.getEnergy() < 0.01) { continue; //energy threshold } - + //Sorting the hits into wedge, upstream and downstream bar hits //Lists are built for up/down bar to match them after //Wedge hits are mayched to ahdc tracks and listed diff --git a/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java b/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java index c409355a04..1e1ffc5664 100644 --- a/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java +++ b/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java @@ -103,7 +103,7 @@ public boolean processDataEvent(DataEvent event) { clusterFinder.makeClusters(event,hitfinder); ArrayList Clusters = clusterFinder.getClusters(); - if (WedgeHits.size() != 0 || BarHits.size() != 0) { + if (!WedgeHits.isEmpty() || !BarHits.isEmpty()) { rbc.appendATOFBanks(event, WedgeHits, BarHits, Clusters); } return true;