Commit in hps-java/src/main/java/org/lcsim/hps/recon/ecal on MAIN | |||
HPSFADCTriggerDriver.java | +2 | -1 | 1.6 -> 1.7 |
HPSEcalClusterer.java | +13 | -14 | 1.22 -> 1.23 |
HPSTriggerDriver.java | +6 | -8 | 1.12 -> 1.13 |
HPSEcalReadoutDriver.java | +11 | -3 | 1.17 -> 1.18 |
HPS1BitTriggerDriver.java | +3 | -2 | 1.1 -> 1.2 |
TestRunTriggerDriver.java | +14 | -3 | 1.2 -> 1.3 |
HPSEcalConverterDriver.java | +69 | -70 | 1.2 -> 1.3 |
HPSEcalCTPClusterer.java | +34 | -35 | 1.5 -> 1.6 |
+152 | -136 |
readout drivers only make hit collections on readout cycles
diff -u -r1.6 -r1.7 --- HPSFADCTriggerDriver.java 1 May 2012 15:06:39 -0000 1.6 +++ HPSFADCTriggerDriver.java 2 Aug 2012 20:32:15 -0000 1.7 @@ -7,6 +7,7 @@
import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster;
+import org.lcsim.event.EventHeader;
import org.lcsim.hps.util.ClockSingleton; /**
@@ -15,7 +16,7 @@
* * @author Omar Moreno <[log in to unmask]> * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSFADCTriggerDriver.java,v 1.6 2012/05/01 15:06:39 meeg Exp $
+ * @version $Id: HPSFADCTriggerDriver.java,v 1.7 2012/08/02 20:32:15 meeg Exp $
*/ public class HPSFADCTriggerDriver extends HPSTriggerDriver {
diff -u -r1.22 -r1.23 --- HPSEcalClusterer.java 21 Jun 2012 18:49:52 -0000 1.22 +++ HPSEcalClusterer.java 2 Aug 2012 20:32:15 -0000 1.23 @@ -23,7 +23,7 @@
* @author Jeremy McCormick <[log in to unmask]> * @author Tim Nelson <[log in to unmask]> *
- * @version $Id: HPSEcalClusterer.java,v 1.22 2012/06/21 18:49:52 meeg Exp $
+ * @version $Id: HPSEcalClusterer.java,v 1.23 2012/08/02 20:32:15 meeg Exp $
*/ public class HPSEcalClusterer extends Driver {
@@ -95,21 +95,20 @@
public void process(EventHeader event) { //System.out.println(this.getClass().getCanonicalName() + " - process");
- // Get the list of raw ECal hits. - List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName); - if (hits == null) { - throw new RuntimeException("Event is missing ECal raw hits collection!"); - }
+ if (event.hasCollection(CalorimeterHit.class, ecalCollectionName)) { + // Get the list of raw ECal hits. + List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName); + + // Make a hit map for quick lookup by ID. + Map<Long, CalorimeterHit> hitMap = new HashMap<Long, CalorimeterHit>(); + for (CalorimeterHit hit : hits) { + hitMap.put(hit.getCellID(), hit); + }
- // Make a hit map for quick lookup by ID. - Map<Long, CalorimeterHit> hitMap = new HashMap<Long, CalorimeterHit>(); - for (CalorimeterHit hit : hits) { - hitMap.put(hit.getCellID(), hit);
+ // Put Cluster collection into event. + int flag = 1 << LCIOConstants.CLBIT_HITS; + event.put(clusterCollectionName, createClusters(hitMap), HPSEcalCluster.class, flag);
}
- - // Put Cluster collection into event. - int flag = 1 << LCIOConstants.CLBIT_HITS; - event.put(clusterCollectionName, createClusters(hitMap), HPSEcalCluster.class, flag);
} public List<HPSEcalCluster> createClusters(Map<Long, CalorimeterHit> map) {
diff -u -r1.12 -r1.13 --- HPSTriggerDriver.java 31 Jul 2012 00:08:40 -0000 1.12 +++ HPSTriggerDriver.java 2 Aug 2012 20:32:15 -0000 1.13 @@ -21,13 +21,13 @@
* Applies SVT trigger latency and sends trigger signal to SVT * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSTriggerDriver.java,v 1.12 2012/07/31 00:08:40 meeg Exp $
+ * @version $Id: HPSTriggerDriver.java,v 1.13 2012/08/02 20:32:15 meeg Exp $
*/ public abstract class HPSTriggerDriver extends Driver { protected Subdetector ecal; private String ecalName = "Ecal";
- private String clusterCollectionName = "EcalClusters";
+ protected String clusterCollectionName = "EcalClusters";
protected IDDecoder dec = null; private String outputFileName; protected PrintWriter outputStream = null;
@@ -155,18 +155,16 @@
// Send a trigger signal to the ECal HPSEcalReadoutDriver.triggerBit = true; ecalTriggerTimestamps.remove();
- -
} } protected boolean triggerDecision(EventHeader event) { // Get the list of raw ECal hits.
- List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); - if (clusters == null) { - throw new RuntimeException("Event is missing ECal clusters collection!");
+ if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + return testTrigger(event.get(HPSEcalCluster.class, clusterCollectionName)); + } else { + return false;
}
- return testTrigger(clusters);
} public abstract boolean testTrigger(List<HPSEcalCluster> clusters);
diff -u -r1.17 -r1.18 --- HPSEcalReadoutDriver.java 21 Jun 2012 18:49:52 -0000 1.17 +++ HPSEcalReadoutDriver.java 2 Aug 2012 20:32:15 -0000 1.18 @@ -15,7 +15,7 @@
* Performs readout of ECal hits. * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalReadoutDriver.java,v 1.17 2012/06/21 18:49:52 meeg Exp $
+ * @version $Id: HPSEcalReadoutDriver.java,v 1.18 2012/08/02 20:32:15 meeg Exp $
*/ public abstract class HPSEcalReadoutDriver<T> extends Driver {
@@ -112,22 +112,30 @@
putHits(hits); }
- ArrayList<T> newHits = new ArrayList<T>();
+ ArrayList<T> newHits = null;
//if at the end of a readout cycle, write buffers to hits if (readoutCycle > 0) { if ((ClockSingleton.getClock() + 1) % readoutCycle == 0) {
+ if (newHits == null) { + newHits = new ArrayList<T>(); + }
readHits(newHits); readoutCounter++; } } else { while (ClockSingleton.getTime() - readoutTime() + ClockSingleton.getDt() >= readoutPeriod) {
+ if (newHits == null) { + newHits = new ArrayList<T>(); + }
readHits(newHits); readoutCounter++; } }
- event.put(ecalRawCollectionName, newHits, hitClass, flags, ecalReadoutName);
+ if (newHits != null) { + event.put(ecalRawCollectionName, newHits, hitClass, flags, ecalReadoutName); + }
if (triggerBit) { processTrigger(event);
diff -u -r1.1 -r1.2 --- HPS1BitTriggerDriver.java 17 Nov 2011 01:43:26 -0000 1.1 +++ HPS1BitTriggerDriver.java 2 Aug 2012 20:32:15 -0000 1.2 @@ -1,13 +1,14 @@
package org.lcsim.hps.recon.ecal; import java.util.List;
+import org.lcsim.event.EventHeader;
/** * Reads clusters and makes trigger decision using opposite quadrant criterion. * Prints triggers to file if file path specified. * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPS1BitTriggerDriver.java,v 1.1 2011/11/17 01:43:26 meeg Exp $
+ * @version $Id: HPS1BitTriggerDriver.java,v 1.2 2012/08/02 20:32:15 meeg Exp $
*/ public class HPS1BitTriggerDriver extends HPSTriggerDriver { public HPS1BitTriggerDriver() {
@@ -39,4 +40,4 @@
} return (quadrants[0] && quadrants[2]) || (quadrants[1] && quadrants[3]); }
-}
\ No newline at end of file
+}
diff -u -r1.2 -r1.3 --- TestRunTriggerDriver.java 21 Jun 2012 18:49:52 -0000 1.2 +++ TestRunTriggerDriver.java 2 Aug 2012 20:32:15 -0000 1.3 @@ -2,6 +2,7 @@
import java.util.LinkedList; import java.util.List;
+import org.lcsim.event.EventHeader;
/** * Reads clusters and makes trigger decision using opposite quadrant criterion.
@@ -9,7 +10,7 @@
* * @author Omar Moreno <[log in to unmask]> * @author Sho Uemura <[log in to unmask]>
- * @version $Id: TestRunTriggerDriver.java,v 1.2 2012/06/21 18:49:52 meeg Exp $
+ * @version $Id: TestRunTriggerDriver.java,v 1.3 2012/08/02 20:32:15 meeg Exp $
*/ public class TestRunTriggerDriver extends HPSTriggerDriver {
@@ -32,14 +33,24 @@
} @Override
+ protected boolean triggerDecision(EventHeader event) { + // Get the list of raw ECal hits. + if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) { + return testTrigger(event.get(HPSEcalCluster.class, clusterCollectionName)); + } else { + return false; + } + } + + @Override
public boolean testTrigger(List<HPSEcalCluster> clusters) { boolean trigger = false; for (HPSEcalCluster cluster : clusters) { if (cluster.getEnergy() > clusterEnergyLow) {
- trigger = true; - }
+ trigger = true;
}
+ }
if (trigger) { deadtimelessTriggerCount++; }
diff -u -r1.2 -r1.3 --- HPSEcalConverterDriver.java 11 Jan 2012 18:45:13 -0000 1.2 +++ HPSEcalConverterDriver.java 2 Aug 2012 20:32:15 -0000 1.3 @@ -16,77 +16,76 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalConverterDriver.java,v 1.2 2012/01/11 18:45:13 meeg Exp $
+ * @version $Id: HPSEcalConverterDriver.java,v 1.3 2012/08/02 20:32:15 meeg Exp $
*/ public class HPSEcalConverterDriver extends Driver {
- HPSEcalConverter converter = null; - Subdetector ecal; - String rawCollectionName; - String ecalName; - String ecalReadoutName = "EcalHits"; - String ecalCollectionName = "EcalCorrectedHits"; - int flags; - - public HPSEcalConverterDriver() { - flags = 0; - flags += 1 << LCIOConstants.CHBIT_LONG; //store position - flags += 1 << LCIOConstants.RCHBIT_ID1; //store cell ID - converter = new HPSEcalConverter(null); - } - - public void setPedestal(double pedestal) { - converter.setPedestal(pedestal); - } - - public void setScale(double scale) { - converter.setScale(scale); - } - - public void setEcalCollectionName(String ecalCollectionName) { - this.ecalCollectionName = ecalCollectionName; - } - - public void setEcalName(String ecalName) { - this.ecalName = ecalName; - } - - public void setRawCollectionName(String rawCollectionName) { - this.rawCollectionName = rawCollectionName; - } - - @Override - public void startOfData() { - if (ecalCollectionName == null) { - throw new RuntimeException("The parameter ecalCollectionName was not set!"); - } - - if (ecalName == null) { - throw new RuntimeException("The parameter ecalName was not set!"); - } - } - - @Override - public void detectorChanged(Detector detector) { - // Get the Subdetector. - ecal = (Subdetector) detector.getSubdetector(ecalName); - converter.setIDDecoder(ecal.getIDDecoder()); - } - - @Override - public void process(EventHeader event) { - // Get the list of ECal hits. - List<HPSFADCCalorimeterHit> hits = event.get(HPSFADCCalorimeterHit.class, rawCollectionName); - if (hits == null) { - throw new RuntimeException("Event is missing ECal hits collection!"); - } - - ArrayList<CalorimeterHit> newHits = new ArrayList<CalorimeterHit>(); - - for (HPSFADCCalorimeterHit hit : hits) { - newHits.add(converter.HitDtoA(hit)); - } - - event.put(ecalCollectionName, newHits, CalorimeterHit.class, flags, ecalReadoutName); - }
+ HPSEcalConverter converter = null; + Subdetector ecal; + String rawCollectionName; + String ecalName; + String ecalReadoutName = "EcalHits"; + String ecalCollectionName = "EcalCorrectedHits"; + int flags; + + public HPSEcalConverterDriver() { + flags = 0; + flags += 1 << LCIOConstants.CHBIT_LONG; //store position + flags += 1 << LCIOConstants.RCHBIT_ID1; //store cell ID + converter = new HPSEcalConverter(null); + } + + public void setPedestal(double pedestal) { + converter.setPedestal(pedestal); + } + + public void setScale(double scale) { + converter.setScale(scale); + } + + public void setEcalCollectionName(String ecalCollectionName) { + this.ecalCollectionName = ecalCollectionName; + } + + public void setEcalName(String ecalName) { + this.ecalName = ecalName; + } + + public void setRawCollectionName(String rawCollectionName) { + this.rawCollectionName = rawCollectionName; + } + + @Override + public void startOfData() { + if (ecalCollectionName == null) { + throw new RuntimeException("The parameter ecalCollectionName was not set!"); + } + + if (ecalName == null) { + throw new RuntimeException("The parameter ecalName was not set!"); + } + } + + @Override + public void detectorChanged(Detector detector) { + // Get the Subdetector. + ecal = (Subdetector) detector.getSubdetector(ecalName); + converter.setIDDecoder(ecal.getIDDecoder()); + } + + @Override + public void process(EventHeader event) { + if (event.hasCollection(HPSFADCCalorimeterHit.class, rawCollectionName)) { + // Get the list of ECal hits. + List<HPSFADCCalorimeterHit> hits = event.get(HPSFADCCalorimeterHit.class, rawCollectionName); + + ArrayList<CalorimeterHit> newHits = new ArrayList<CalorimeterHit>(); + + for (HPSFADCCalorimeterHit hit : hits) { + newHits.add(converter.HitDtoA(hit)); + } + + event.put(ecalCollectionName, newHits, CalorimeterHit.class, flags, ecalReadoutName); + } + }
}
diff -u -r1.5 -r1.6 --- HPSEcalCTPClusterer.java 21 Jun 2012 18:49:52 -0000 1.5 +++ HPSEcalCTPClusterer.java 2 Aug 2012 20:32:15 -0000 1.6 @@ -29,7 +29,7 @@
* @author Jeremy McCormick <[log in to unmask]> * @author Tim Nelson <[log in to unmask]> * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalCTPClusterer.java,v 1.5 2012/06/21 18:49:52 meeg Exp $
+ * @version $Id: HPSEcalCTPClusterer.java,v 1.6 2012/08/02 20:32:15 meeg Exp $
*/ public class HPSEcalCTPClusterer extends Driver {
@@ -121,45 +121,44 @@
public void process(EventHeader event) { //System.out.println(this.getClass().getCanonicalName() + " - process");
- // Get the list of raw ECal hits. - List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName); - if (hits == null) { - throw new RuntimeException("Event is missing ECal raw hits collection!"); - } - - List<HPSEcalCluster> clusters; - - if (clusterWindow >= 0) { - PriorityQueue<CalorimeterHit> futureHits = new PriorityQueue<CalorimeterHit>(10, new TimeComparator()); - PriorityQueue<CalorimeterHit> pastHits = new PriorityQueue<CalorimeterHit>(10, new TimeComparator()); - clusters = new ArrayList<HPSEcalCluster>(); - - for (CalorimeterHit hit : hits) { - if (hit.getRawEnergy() > addEMin) { - futureHits.add(hit);
+ if (event.hasCollection(CalorimeterHit.class, ecalCollectionName)) { + // Get the list of raw ECal hits. + List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName); + + List<HPSEcalCluster> clusters; + + if (clusterWindow >= 0) { + PriorityQueue<CalorimeterHit> futureHits = new PriorityQueue<CalorimeterHit>(10, new TimeComparator()); + PriorityQueue<CalorimeterHit> pastHits = new PriorityQueue<CalorimeterHit>(10, new TimeComparator()); + clusters = new ArrayList<HPSEcalCluster>(); + + for (CalorimeterHit hit : hits) { + if (hit.getRawEnergy() > addEMin) { + futureHits.add(hit); + }
}
- }
- while (!futureHits.isEmpty()) { - CalorimeterHit nextHit = futureHits.poll(); - pastHits.add(nextHit); - while (!futureHits.isEmpty() && futureHits.peek().getTime() == nextHit.getTime()) { - pastHits.add(futureHits.poll()); - } - while (pastHits.peek().getTime() < nextHit.getTime() - clusterWindow) { - pastHits.poll();
+ while (!futureHits.isEmpty()) { + CalorimeterHit nextHit = futureHits.poll(); + pastHits.add(nextHit); + while (!futureHits.isEmpty() && futureHits.peek().getTime() == nextHit.getTime()) { + pastHits.add(futureHits.poll()); + } + while (pastHits.peek().getTime() < nextHit.getTime() - clusterWindow) { + pastHits.poll(); + } + sumHits(pastHits); + clusters.addAll(createClusters());
}
- sumHits(pastHits); - clusters.addAll(createClusters());
+ } else { + sumHits(hits); + clusters = createClusters();
}
- } else { - sumHits(hits); - clusters = createClusters(); - }
- // Put Cluster collection into event. - int flag = 1 << LCIOConstants.CLBIT_HITS; - event.put(clusterCollectionName, clusters, HPSEcalCluster.class, flag);
+ // Put Cluster collection into event. + int flag = 1 << LCIOConstants.CLBIT_HITS; + event.put(clusterCollectionName, clusters, HPSEcalCluster.class, flag); + }
} public void sumHits(Collection<CalorimeterHit> hits) {
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1