Author: [log in to unmask]
Date: Tue Sep 15 09:22:33 2015
New Revision: 3601
Log:
Updated event display to load hit and cluster time-stamps. Cluster time stamps are displayed in stand-alone mode.
Modified:
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/Cluster.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/EcalHit.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/TextManager.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/FileViewer.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java
java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/Cluster.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/Cluster.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/Cluster.java Tue Sep 15 09:22:33 2015
@@ -13,43 +13,46 @@
public final class Cluster {
private final Point center;
private final double energy;
+ private final double time;
private ArrayList<Point> hitList = new ArrayList<Point>();
private ArrayList<Point> shareList = new ArrayList<Point>();
/**
- * <b>Cluster</b><br/><br/>
- * <code>public <b>Cluster</b>(int ix, int iy)</code><br/><br/>
* Creates a new cluster. All clusters are required to have a
* cluster center.
* @param ix - The cluster center's x-index.
* @param iy - The cluster center's y-index.
*/
- public Cluster(int ix, int iy) { this(new Point(ix, iy), Double.NaN); }
+ public Cluster(int ix, int iy) { this(new Point(ix, iy), Double.NaN, Double.NaN); }
/**
- * <b>Cluster</b><br/><br/>
- * <code>public <b>Cluster</b>(Point clusterCenter)</code><br/><br/>
* Creates a new cluster. All clusters are required to have a seed
* hit.
* @param clusterCenter - The <code>Point</code> object indicating in
* which crystal the seed hit occurred.
*/
- public Cluster(Point clusterCenter) { this(clusterCenter, Double.NaN); }
+ public Cluster(Point clusterCenter) { this(clusterCenter, Double.NaN, Double.NaN); }
/**
- * <b>Cluster</b><br/><br/>
- * <code>public <b>Cluster</b>(int ix, int iy)</code><br/><br/>
* Creates a new cluster. All clusters are required to have a
* cluster center.
* @param ix - The cluster center's x-index.
* @param iy - The cluster center's y-index.
* @param energy - The cluster's energy.
*/
- public Cluster(int ix, int iy, double energy) { this(new Point(ix, iy), energy); }
+ public Cluster(int ix, int iy, double energy) { this(new Point(ix, iy), energy, Double.NaN); }
/**
- * <b>Cluster</b><br/><br/>
- * <code>public <b>Cluster</b>(Point clusterCenter)</code><br/><br/>
+ * Creates a new cluster. All clusters are required to have a
+ * cluster center.
+ * @param ix - The cluster center's x-index.
+ * @param iy - The cluster center's y-index.
+ * @param energy - The cluster's energy.
+ * @param time - The cluster's time-stamp.
+ */
+ public Cluster(int ix, int iy, double energy, double time) { this(new Point(ix, iy), energy, time); }
+
+ /**
* Creates a new cluster. All clusters are required to have a seed
* hit.
* @param clusterCenter - The <code>Point</code> object indicating in
@@ -57,13 +60,24 @@
* @param energy - The cluster's energy.
*/
public Cluster(Point clusterCenter, double energy) {
- center = clusterCenter;
- this.energy = energy;
+ this(clusterCenter, energy, Double.NaN);
}
/**
- * <b>addComponentHit</b><br/><br/>
- * <code>public void <b>addComponentHit</b>(int ix, int iy)</code><br/><br/>
+ * Creates a new cluster. All clusters are required to have a seed
+ * hit.
+ * @param clusterCenter - The <code>Point</code> object indicating in
+ * which crystal the seed hit occurred.
+ * @param energy - The cluster's energy.
+ * @param time - The cluster's time-stamp.
+ */
+ public Cluster(Point clusterCenter, double energy, double time) {
+ center = clusterCenter;
+ this.energy = energy;
+ this.time = time;
+ }
+
+ /**
* Adds an <code>Point</code> to the list of this cluster's
* component hits.
* @param ix - The component hit's x-coordinate.
@@ -72,8 +86,6 @@
public void addComponentHit(int ix, int iy) { hitList.add(new Point(ix, iy)); }
/**
- * <b>addComponentHit</b><br/><br/>
- * <code>public void <b>addComponentHit</b>(Point eHit)</code><br/><br/>
* Adds an <code>Point</code> to the list of this cluster's
* component hits.
* @param eHit - The <code>Point</code> object indicating in which
@@ -82,8 +94,6 @@
public void addComponentHit(Point eHit) { hitList.add(eHit); }
/**
- * <b>addSharedHit</b><br/><br/>
- * <code>public void <b>addSharedHit</b>(int ix, int iy)</code><br/><br/>
* Adds an <code>Point</code> to the list of this cluster's shared
* hits.
* @param ix - The shared hit's x-coordinate.
@@ -92,8 +102,6 @@
public void addSharedHit(int ix, int iy) { shareList.add(new Point(ix, iy)); }
/**
- * <b>addSharedHit</b><br/><br/>
- * <code>public void <b>addSharedHit</b>(Point eHit)</code><br/><br/>
* Adds an <code>Point</code> to the list of this cluster's shared
* hits.
* @param eHit - The <code>Point</code> object indicating in which
@@ -102,16 +110,12 @@
public void addSharedHit(Point eHit) { shareList.add(eHit); }
/**
- * <b>getClusterCenter</b><br/><br/>
- * <code>public Point <b>getClusterCenter</b>()</code><br/><br/>
* Gets the hit representing the cluster center.
* @return Returns the cluster center hit as an <code>Point</code>.
*/
public Point getClusterCenter() { return center; }
/**
- * <b>getClusterEnergy</b><br/><br/>
- * <code>public double <b>getClusterEnergy</b>()</code><br/><br/>
* Gets the cluster's energy, if it was defined when the cluster
* was constructed.
* @return Returns the energy of the cluster if it was defined,
@@ -120,8 +124,12 @@
public double getClusterEnergy() { return energy; }
/**
- * <b>getComponentHitCount</b><br/><br/>
- * <code>public int <b>getComponentHitCount</b>()</code><br/><br/>
+ * Gets the time stamp for the cluster in nanoseconds.
+ * @return Returns the cluster's time stamp.
+ */
+ public double getClusterTime() { return time; }
+
+ /**
* Indicates how many component hits compose this cluster. Note
* that this does not include the seed hit or shared hits.
* @return Returns the number of component hits in the cluster
@@ -130,8 +138,6 @@
public int getComponentHitCount() { return hitList.size(); }
/**
- * <b>getComponentHits</b><br/><br/>
- * <code>public List<Point> <b>getComponentHits</b>()</code><br/><br/>
* Gets the list of hits that make up the cluster, exempting the
* seed hit and shared hits.
* @return Returns the cluster hits as a <code>List</code> object
@@ -140,8 +146,6 @@
public List<Point> getComponentHits() { return hitList; }
/**
- * <b>getHitCount</b><br/><br/>
- * <code>public int <b>getHitCount</b>()</code><br/><br/>
* Indicates how many total hits compose this cluster. This includes
* component hits, shared hits, and the seed hit.
* @return Returns the number of component hits in the cluster
@@ -150,8 +154,6 @@
public int getHitCount() { return hitList.size() + shareList.size() + 1; }
/**
- * <b>getSharedHitCount</b><br/><br/>
- * <code>public int <b>getSharedHitCount</b>()</code><br/><br/>
* Indicates how many shared hits compose this cluster. Note that
* this does not include the seed hit or component hits.
* @return Returns the number of shared hits in the cluster as an
@@ -160,8 +162,6 @@
public int getSharedHitCount() { return shareList.size(); }
/**
- * <b>getSharedHits</b><br/><br/>
- * <code>public List<Point> <b>getSharedHits</b>()</code><br/><br/>
* Gets the list of hits that make up the cluster, exempting the
* seed hit and component hits.
* @return Returns the shared hits as a <code>List</code> object
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/EcalHit.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/EcalHit.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/event/EcalHit.java Tue Sep 15 09:22:33 2015
@@ -11,12 +11,12 @@
public final class EcalHit {
// The coordinate on the calorimeter panel.
protected final Point loc;
- // The (raw) energy of this hit.
+ // The energy of this hit.
private double energy = 0.0;
+ // The time of this hit.
+ private double time = 0.0;
/**
- * <b>EcalHit</b><br/><br/>
- * <code>public <b>EcalHit</b>(int ix, int iy, double energy)</code><br/><br/>
* Initializes a calorimeter hit object.
* @param ix - The x-coordinate of the hit.
* @param iy - The y-coordinate of the hit.
@@ -27,8 +27,6 @@
}
/**
- * <b>EcalHit</b><br/><br/>
- * <code>public <b>EcalHit</b>(Point ixy, double energy)</code><br/><br/>
* Initializes a calorimeter hit object.
* @param ixy - The x/y-coordinates of the hit.
* @param energy - The raw energy of the hit.
@@ -39,16 +37,35 @@
}
/**
- * <b>getEnergy</b><br/><br/>
- * <code>public double <b>getEnergy</b>()</code><br/><br/>
+ * Initializes a calorimeter hit object.
+ * @param ix - The x-coordinate of the hit.
+ * @param iy - The y-coordinate of the hit.
+ * @param energy - The raw energy of the hit.
+ * @param time - The time-stamp for the hit.
+ **/
+ public EcalHit(int ix, int iy, double energy, double time) {
+ this(new Point(ix, iy), energy, time);
+ }
+
+ /**
+ * Initializes a calorimeter hit object.
+ * @param ixy - The x/y-coordinates of the hit.
+ * @param energy - The raw energy of the hit.
+ * @param time - The time-stamp for the hit.
+ **/
+ public EcalHit(Point ixy, double energy, double time) {
+ loc = ixy;
+ this.energy = energy;
+ this.time = time;
+ }
+
+ /**
* Indicates the raw energy of this hit.
* @return Returns the raw energy as a <code>double</code>.
**/
public double getEnergy() { return energy; }
/**
- * <b>getLocation</b><br/><br/>
- * <code>public Point <b>getLocation</b>()</code><br/><br/>
* Indicates the location of the object.
* @return Returns the object's location as a <code>Point
* </code> object.
@@ -56,40 +73,36 @@
public Point getLocation() { return loc; }
/**
- * <b>getX</b><br/><br/>
- * <code>public int <b>getX</b>()</code><br/><br/>
+ * Indicates the time at which the hit occurred.
+ * @return Returns the hit time.
+ */
+ public double getTime() { return time; }
+
+ /**
* Indicates the x-coordinate of the object.
* @return Returns the x-coordinate as an <code>int</code>.
**/
public int getX() { return loc.x; }
/**
- * <b>getY</b><br/><br/>
- * <code>public int <b>getY</b>()</code><br/><br/>
* Indicates the y-coordinate of the object.
* @return Returns the y-coordinate as an <code>int</code>.
**/
public int getY() { return loc.y; }
/**
- * <b>setEnergy</b><br/><br/>
- * <code>public void <b>setEnergy</b>(double energy)</code><br/><br/>
* Sets the energy of the hit to the indicated value.
* @param energy - The new energy of the hit.
**/
public void setEnergy(double energy) { this.energy = energy; }
/**
- * <b>setX</b><br/><br/>
- * <code>public void <b>setX</b>(int x)</code><br/><br/>
* Sets the object's x-coordinate.
* @param x - The new x-coordinate.
**/
public void setX(int x) { loc.x = x; }
/**
- * <b>setY</b><br/><br/>
- * <code>public void <b>setY</b>(int y)</code><br/><br/>
* Sets the obejct's y-coordinate.
* @param y - The new y-coordinate.
**/
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/TextManager.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/TextManager.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/io/TextManager.java Tue Sep 15 09:22:33 2015
@@ -131,14 +131,19 @@
double clusterEnergy = Double.NaN;
if(st.hasMoreTokens()) { clusterEnergy = Double.parseDouble(st.nextToken()); }
+ // Get the cluster time, if it is defined.
+ double clusterTime = Double.NaN;
+ if(st.hasMoreTokens()) { clusterTime = Double.parseDouble(st.nextToken()); }
+
// Add a new cluster.
- clusterList.add(new Cluster(ix, iy, clusterEnergy));
+ clusterList.add(new Cluster(ix, iy, clusterEnergy, clusterTime));
}
// If this is a calorimeter hit, add a new calorimeter hit object.
else if (name.compareTo("EcalHit") == 0) {
double energy = Double.parseDouble(st.nextToken());
- hitList.add(new EcalHit(ix, iy, energy));
+ double time = Double.parseDouble(st.nextToken());
+ hitList.add(new EcalHit(ix, iy, energy, time));
}
// If this is a cluster component hit, add it to the last cluster.
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java Tue Sep 15 09:22:33 2015
@@ -7,7 +7,6 @@
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
-//import org.hps.recon.ecal.HPSEcalCluster;
import org.lcsim.util.Driver;
/**
@@ -28,8 +27,6 @@
private boolean outputClusters = true;
/**
- * <b>endOfData</b><br/><br/>
- * <code>public void <b>endOfData</b>()</code><br/><br/>
* Closes the output file after all events have been processed.
*/
public void endOfData() {
@@ -43,8 +40,6 @@
}
/**
- * <b>process</b><br/><br/>
- * <code>public void <b>process</b>(EventHeader event)</code><br/><br/>
* Writes the event to the output file if it matches the the output
* conditions selected for the driver.
*/
@@ -137,8 +132,6 @@
}
/**
- * <b>startOfData</b><br/><br/>
- * <code>public void <b>startOfData</b>()</code><br/><br/>
* Opens the output file and clears it if it already exists.
*/
public void startOfData() {
@@ -154,8 +147,6 @@
}
/**
- * <b>setEcalCollectionName</b><br/><br/>
- * <code>public void <b>setEcalCollectionName</b>(String ecalCollectionName)</code><br/><br/>
* Sets the name of the LCIO collection containing hits.
* @param ecalCollectionName - The LCIO hit collection name.
*/
@@ -164,8 +155,6 @@
}
/**
- * <b>setClusterCollectionName</b><br/><br/>
- * <code>public void <b>setClusterCollectionName</b>(String clusterCollectionName)</code><br/><br/>
* Sets the name of the LCIO collection containing clusters.
* @param clusterCollectionName - The LCIO cluster collection name.
*/
@@ -174,8 +163,6 @@
}
/**
- * <b>setIgnoreEmptyEvents</b><br/><br/>
- * <code>public void <b>setIgnoreEmptyEvents</b></code><br/><br/>
* Sets whether events with no hits should be output.
* @param ignoreEmptyEvents - <code>true</code> indicates that
* events without hits will be skipped while <code>false</code>
@@ -186,8 +173,6 @@
}
/**
- * <b>setIgnoreNoClusterEvents</b><br/><br/>
- * <code>public void <b>setIgnoreNoClusterEvents</b></code><br/><br/>
* Sets whether events with no clusters should be output.
* @param ignoreNoClusterEvents - <code>true</code> indicates that
* events without clusters will be skipped while <code>false</code>
@@ -198,8 +183,6 @@
}
/**
- * <b>setOutputFileName</b><br/><br/>
- * <code>public void <b>setOutputFileName</b></code><br/><br/>
* Sets the name of the output file containing the event data.
* @param outputFileName - The name of the output file.
*/
@@ -208,8 +191,6 @@
}
/**
- * <b>setOutputClusters</b><br/><br/>
- * <code>public void <b>setOutputClusters</b></code><br/><br/>
* Sets whether clusters should be output to data file,
* @param outputClusters - <code>true</code> indicates that clusters
* will be written and <code>false</code> that they will not.
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/FileViewer.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/FileViewer.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/FileViewer.java Tue Sep 15 09:22:33 2015
@@ -44,13 +44,14 @@
private HashMap<Point, Cluster> clusterMap = new HashMap<Point, Cluster>();
// Additional status display field names for this data type.
- private static final String[] fieldNames = { "Event Number", "Shared Hits", "Component Hits", "Cluster Energy" };
+ private static final String[] fieldNames = { "Event Number", "Shared Hits", "Component Hits", "Cluster Energy", "Cluster Time" };
// Indices for the field values.
- private static final int EVENT_NUMBER = 0;
- private static final int SHARED_HITS = 1;
+ private static final int EVENT_NUMBER = 0;
+ private static final int SHARED_HITS = 1;
private static final int COMPONENT_HITS = 2;
private static final int CLUSTER_ENERGY = 3;
+ private static final int CLUSTER_TIME = 4;
/**
* Constructs a new <code>Viewer</code> for displaying data read
@@ -77,7 +78,7 @@
fileChooser = new JFileChooser(new File("D:\\cygwin64\\home\\Kyle\\background\\compiled\\output\\"));
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Text Files", "txt"));
- fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("LCIO Files", "lcio", "slcio"));
+ //fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("LCIO Files", "lcio", "slcio"));
// Add an open file option to the file menu.
JMenuItem menuOpen = new JMenuItem("Open File", KeyEvent.VK_O);
@@ -160,6 +161,16 @@
}
else { energy = "---"; }
setStatusField(fieldNames[CLUSTER_ENERGY], energy);
+
+ // Format the cluster time, or account for it if it
+ // doesn't exist.
+ String time;
+ if(activeCluster.getClusterTime() != Double.NaN) {
+ DecimalFormat formatter = new DecimalFormat("0.####E0");
+ time = formatter.format(activeCluster.getClusterEnergy());
+ }
+ else { time = "---"; }
+ setStatusField(fieldNames[CLUSTER_TIME], time);
}
}
// Otherwise, clear the field values.
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/PEventViewer.java Tue Sep 15 09:22:33 2015
@@ -87,14 +87,12 @@
// Add component hits to the calorimeter panel.
for (final Point ch : cluster.getComponentHits()) {
- this.ecalPanel.addAssociation(new Association(clusterCenter, toPanelPoint(ch),
- HIGHLIGHT_CLUSTER_COMPONENT));
+ this.ecalPanel.addAssociation(new Association(clusterCenter, toPanelPoint(ch), HIGHLIGHT_CLUSTER_COMPONENT));
}
// Add shared hits to the calorimeter panel.
for (final Point sh : cluster.getSharedHits()) {
- this.ecalPanel
- .addAssociation(new Association(clusterCenter, toPanelPoint(sh), HIGHLIGHT_CLUSTER_SHARED));
+ this.ecalPanel.addAssociation(new Association(clusterCenter, toPanelPoint(sh), HIGHLIGHT_CLUSTER_SHARED));
}
}
Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java
=============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java (original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java Tue Sep 15 09:22:33 2015
@@ -63,7 +63,7 @@
private final JRadioButtonMenuItem[] menuScaling;
// The default field names.
- private static final String[] defaultFields = { "x Index", "y Index", "Cell Value" };
+ private static final String[] defaultFields = { "x Index", "y Index", "Energy" };
// The default crystal color.
private static final Color DEFAULT_CRYSTAL_COLOR = Color.GRAY;
|