8 modified files
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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 {
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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) {
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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);
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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);
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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++;
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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);
+ }
+ }
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
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) {
CVSspam 0.2.12