7 added + 12 modified, total 19 files
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -N EcalClusterPlots.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ EcalClusterPlots.java 8 May 2012 15:49:31 -0000 1.1
@@ -0,0 +1,110 @@
+package org.lcsim.hps.monitoring.ecal;
+
+import hep.aida.IHistogram1D;
+import hep.aida.IPlotter;
+
+import java.util.List;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.Cluster;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.geometry.Detector;
+import org.lcsim.hps.monitoring.AIDAFrame;
+import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+public class EcalClusterPlots extends Driver implements Resettable {
+
+ AIDAFrame plotterFrame;
+ String inputCollection = "EcalClusters";
+ AIDA aida = AIDA.defaultInstance();
+ IPlotter plotter;
+ IPlotter plotter2;
+ IHistogram1D clusterCountPlot;
+ IHistogram1D clusterSizePlot;
+ IHistogram1D clusterEnergyPlot;
+ IHistogram1D clusterMaxEnergyPlot;
+ int eventn = 0;
+
+ public void setInputCollection(String inputCollection) {
+ this.inputCollection = inputCollection;
+ }
+
+ protected void detectorChanged(Detector detector) {
+
+ plotterFrame = new AIDAFrame();
+ plotterFrame.setTitle("HPS ECal Cluster Plots");
+
+ // Setup the plotter.
+ plotter = aida.analysisFactory().createPlotterFactory().create("Cluster Counts");
+ plotter.setTitle("Cluster Counts");
+ plotterFrame.addPlotter(plotter);
+
+ // Setup plots.
+ aida.tree().cd("/");
+ clusterCountPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Cluster Count", 10, -0.5, 9.5);
+ clusterSizePlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Cluster Size", 10, -0.5, 9.5);
+
+ // Create the plotter regions.
+ plotter.createRegions(1, 2);
+ plotter.region(0).plot(clusterCountPlot);
+ plotter.region(1).plot(clusterSizePlot);
+
+
+ // Setup the plotter.
+ plotter2 = aida.analysisFactory().createPlotterFactory().create("Cluster Energies");
+ plotter2.setTitle("Cluster Energies");
+ plotterFrame.addPlotter(plotter2);
+
+ clusterEnergyPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Cluster Energy", 1000, -1000, 10000);
+ clusterMaxEnergyPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Maximum Cluster Energy In Event", 1000, -1000, 10000);
+
+ // Create the plotter regions.
+ plotter2.createRegions(1, 2);
+ plotter2.region(0).plot(clusterEnergyPlot);
+ plotter2.region(1).plot(clusterMaxEnergyPlot);
+
+ plotterFrame.setVisible(true);
+ plotterFrame.pack();
+ }
+
+ public void process(EventHeader event) {
+ if (event.hasCollection(Cluster.class, inputCollection)) {
+ List<Cluster> clusters = event.get(Cluster.class, inputCollection);
+ clusterCountPlot.fill(clusters.size());
+ double maxEnergy = 0;
+ for (Cluster cluster : clusters) {
+ clusterEnergyPlot.fill(cluster.getEnergy());
+ if (cluster.getEnergy() > maxEnergy) {
+ maxEnergy = cluster.getEnergy();
+ }
+ int size = 0;
+ for (CalorimeterHit hit : cluster.getCalorimeterHits()) {
+ if (hit.getRawEnergy() != 0) {
+ size++;
+ }
+ }
+ clusterSizePlot.fill(size);
+ }
+ clusterMaxEnergyPlot.fill(maxEnergy);
+ } else {
+ clusterCountPlot.fill(0);
+ }
+ }
+
+ public void endOfData() {
+ if (plotter != null) {
+ plotter.hide();
+ plotter.destroyRegions();
+ }
+ if (clusterCountPlot != null) {
+ clusterCountPlot.reset();
+ }
+ }
+
+ public void reset() {
+ plotter.hide();
+ clusterCountPlot.reset();
+ }
+}
\ No newline at end of file
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -N EcalWindowEventPlots.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ EcalWindowEventPlots.java 8 May 2012 15:49:31 -0000 1.1
@@ -0,0 +1,183 @@
+package org.lcsim.hps.monitoring.ecal;
+
+import hep.aida.*;
+import hep.aida.ref.plotter.PlotterRegion;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import java.util.List;
+import javax.swing.*;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.event.CalorimeterHit;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawCalorimeterHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.hps.monitoring.AIDAFrame;
+import org.lcsim.hps.monitoring.Redrawable;
+import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.ecal.HPSEcalConditions;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+public class EcalWindowEventPlots extends Driver implements Resettable, ActionListener {
+
+ private String inputCollection;
+ private IPlotter plotter;
+ private AIDA aida = AIDA.defaultInstance();
+ private AIDAFrame plotterFrame;
+// private ICloud1D[][] plots = new ICloud1D[47][11];
+ private IHistogram1D[][] plots = new IHistogram1D[47][11];
+ private JLabel xLabel, yLabel;
+ private JComboBox xCombo;
+ private JComboBox yCombo;
+ private JButton blankButton;
+ private static final Integer[] xList = new Integer[46];
+ private static final Integer[] yList = new Integer[10];
+ int eventRefreshRate = 1;
+ int eventn = 0;
+ boolean hide = false;
+ int window = 100;
+
+ public void setWindow(int window) {
+ this.window = window;
+ }
+
+ public EcalWindowEventPlots() {
+ int count = 0;
+ for (int i = -23; i <= 23; i++) {
+ if (i != 0) {
+ xList[count] = i;
+ count++;
+ }
+ }
+ count = 0;
+ for (int i = -5; i <= 5; i++) {
+ if (i != 0) {
+ yList[count] = i;
+ count++;
+ }
+ }
+ }
+
+ public void setHide(boolean hide) {
+ this.hide = hide;
+ }
+
+ public void setInputCollection(String inputCollection) {
+ this.inputCollection = inputCollection;
+ }
+
+ public void detectorChanged(Detector detector) {
+ if (inputCollection == null) {
+ throw new RuntimeException("The inputCollection parameter was not set.");
+ }
+
+ // Setup the plotter.
+ plotter = aida.analysisFactory().createPlotterFactory().create();
+ plotter.setTitle("HPS ECal Window Event Plots");
+ plotterFrame = new AIDAFrame();
+ plotterFrame.addPlotter(plotter);
+
+ aida = AIDA.defaultInstance();
+ aida.tree().cd("/");
+
+ for (int x = -23; x <= 23; x++) { // slot
+ for (int y = -5; y <= 5; y++) { // crate
+ //System.out.println("creating plot: " + "ECAL: Crate " + j + "; Slot " + i + " in region " + region);
+// IHistogram1D hist = aida.histogram1D("ECAL: x=" + i + "; y=" + j, 1000, 0, 16);
+// plots[x + 23][y + 5] = aida.cloud1D("ECAL: x=" + x + "; y=" + y);
+ plots[x + 23][y + 5] = aida.histogram1D("ECAL window: x=" + x + "; y=" + y, window, -0.5, window - 0.5);
+
+ }
+ }
+
+ // Create the plotter regions.
+ plotter.createRegion();
+
+ xCombo = new JComboBox(xList);
+ xCombo.addActionListener(this);
+ xLabel = new JLabel("x");
+ xLabel.setLabelFor(xCombo);
+ plotterFrame.getControlsPanel().add(xLabel);
+ plotterFrame.getControlsPanel().add(xCombo);
+ yCombo = new JComboBox(yList);
+ yCombo.addActionListener(this);
+ yLabel = new JLabel("y");
+ yLabel.setLabelFor(yCombo);
+ plotterFrame.getControlsPanel().add(yLabel);
+ plotterFrame.getControlsPanel().add(yCombo);
+ blankButton = new JButton("Hide histogram");
+ plotterFrame.getControlsPanel().add(blankButton);
+ blankButton.addActionListener(this);
+
+ plotterFrame.pack();
+
+// plotter.style().statisticsBoxStyle().setVisible(false);
+ plotter.style().zAxisStyle().setParameter("allowZeroSuppression", "true");
+ plotter.style().dataStyle().errorBarStyle().setVisible(false);
+
+ IPlotterStyle style = plotter.region(0).style();
+ plotter.region(0).plot(plots[-5 + 23][2 + 5]);
+ xCombo.setSelectedIndex((-5 + 23));
+ yCombo.setSelectedIndex((2 + 5 - 1));
+// ((PlotterRegion) plotter.region(0)).getPlot().setAllowUserInteraction(false);
+// ((PlotterRegion) plotter.region(0)).getPlot().setAllowPopupMenus(false);
+//
+// ((PlotterRegion) plotter.region(1)).getPlot().setAllowUserInteraction(false);
+// ((PlotterRegion) plotter.region(1)).getPlot().setAllowPopupMenus(false);
+
+ if (!hide) {
+ plotterFrame.setVisible(true);
+ }
+ }
+
+ public void endOfData() {
+ if (plotter != null) {
+ plotter.hide();
+ }
+ }
+
+ public void reset() {
+ if (plotter != null) {
+ plotter.hide();
+ plotter.destroyRegions();
+ for (int x = -23; x <= 23; x++) { // slot
+ for (int y = -5; y <= 5; y++) { // crate
+ plots[x + 23][y + 5].reset();
+ }
+ }
+ }
+ }
+
+ public void process(EventHeader event) {
+ for (int x = -23; x <= 23; x++) { // slot
+ for (int y = -5; y <= 5; y++) { // crate
+ plots[x + 23][y + 5].reset();
+ }
+ }
+
+ if (event.hasCollection(RawTrackerHit.class, inputCollection)) {
+ List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollection);
+ for (RawTrackerHit hit : hits) {
+ int x = hit.getIdentifierFieldValue("ix");
+ int y = hit.getIdentifierFieldValue("iy");
+ for (int i = 0; i < window; i++) {
+ plots[x + 23][y + 5].fill(i, hit.getADCValues()[i]);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ Integer x, y;
+ x = (Integer) xCombo.getSelectedItem();
+ y = (Integer) yCombo.getSelectedItem();
+ plotter.region(0).clear();
+ plotter.region(0).plot(plots[x + 23][y + 5]);
+ }
+}
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.5 -r1.6
--- EcalPedestalPlots.java 6 May 2012 00:01:13 -0000 1.5
+++ EcalPedestalPlots.java 8 May 2012 15:49:31 -0000 1.6
@@ -1,15 +1,16 @@
package org.lcsim.hps.monitoring.ecal;
-import hep.aida.ICloud1D;
-import hep.aida.IHistogram2D;
-import hep.aida.IPlotter;
-import hep.aida.IPlotterStyle;
+import hep.aida.*;
import hep.aida.ref.plotter.PlotterRegion;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.*;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
@@ -18,6 +19,7 @@
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.monitoring.Redrawable;
import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.ecal.HPSEcalConditions;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -29,7 +31,8 @@
private AIDAFrame plotterFrame;
private IHistogram2D meanPlot;
private IHistogram2D sigmaPlot;
- private ICloud1D[][] plots = new ICloud1D[47][11];
+// private ICloud1D[][] plots = new ICloud1D[47][11];
+ private IHistogram1D[][] plots = new IHistogram1D[47][11];
private JLabel xLabel, yLabel;
private JComboBox xCombo;
private JComboBox yCombo;
@@ -38,6 +41,8 @@
private static final Integer[] yList = new Integer[10];
int eventRefreshRate = 1;
int eventn = 0;
+ boolean hide = false;
+ int calWindow = 0;
public EcalPedestalPlots() {
int count = 0;
@@ -56,6 +61,14 @@
}
}
+ public void setCalWindow(int calWindow) {
+ this.calWindow = calWindow;
+ }
+
+ public void setHide(boolean hide) {
+ this.hide = hide;
+ }
+
public void setInputCollection(String inputCollection) {
this.inputCollection = inputCollection;
}
@@ -70,7 +83,6 @@
plotter.setTitle("HPS ECal Pedestal Plots");
plotterFrame = new AIDAFrame();
plotterFrame.addPlotter(plotter);
- plotterFrame.setVisible(true);
aida = AIDA.defaultInstance();
aida.tree().cd("/");
@@ -81,7 +93,13 @@
for (int y = -5; y <= 5; y++) { // crate
//System.out.println("creating plot: " + "ECAL: Crate " + j + "; Slot " + i + " in region " + region);
// IHistogram1D hist = aida.histogram1D("ECAL: x=" + i + "; y=" + j, 1000, 0, 16);
- plots[x + 23][y + 5] = aida.cloud1D("ECAL: x=" + x + "; y=" + y);
+// plots[x + 23][y + 5] = aida.cloud1D("ECAL: x=" + x + "; y=" + y);
+ if (calWindow == 0) {
+ plots[x + 23][y + 5] = aida.histogram1D("ECAL: x=" + x + "; y=" + y, 500, -1000, 10000);
+ } else {
+ plots[x + 23][y + 5] = aida.histogram1D("ECAL: x=" + x + "; y=" + y, 1024, -0.5, 1023.5);
+ }
+
}
}
@@ -116,18 +134,39 @@
style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
plotter.region(0).plot(sigmaPlot);
plotter.region(1).plot(meanPlot);
- plotter.region(2).plot(plots[17][0]);
- ((PlotterRegion) plotter.region(0)).getPlot().setAllowUserInteraction(false);
- ((PlotterRegion) plotter.region(0)).getPlot().setAllowPopupMenus(false);
+ plotter.region(2).plot(plots[-5 + 23][2 + 5]);
+// ((PlotterRegion) plotter.region(0)).getPlot().setAllowUserInteraction(false);
+// ((PlotterRegion) plotter.region(0)).getPlot().setAllowPopupMenus(false);
+//
+// ((PlotterRegion) plotter.region(1)).getPlot().setAllowUserInteraction(false);
+// ((PlotterRegion) plotter.region(1)).getPlot().setAllowPopupMenus(false);
- ((PlotterRegion) plotter.region(1)).getPlot().setAllowUserInteraction(false);
- ((PlotterRegion) plotter.region(1)).getPlot().setAllowPopupMenus(false);
+ if (!hide) {
+ plotterFrame.setVisible(true);
+ }
}
public void endOfData() {
if (plotter != null) {
plotter.hide();
}
+ if (calWindow > 0) {
+ for (int crate = 1; crate < 3; crate++) {
+ for (short slot = 0; slot < 20; slot++) {
+ for (short ch = 0; ch < 16; ch++) {
+ Long id = HPSEcalConditions.daqToPhysicalID(crate, slot, ch);
+ IIdentifierHelper helper = HPSEcalConditions.getHelper();
+ if (id == null) {
+ continue;
+ }
+ IIdentifier compactId = new Identifier(id);
+ int x = helper.getValue(compactId, "ix");
+ int y = helper.getValue(compactId, "iy");
+ System.out.printf("%d\t%d\t%d\t%f\t%f\n", crate, slot, ch, plots[x + 23][y + 5].mean(), plots[x + 23][y + 5].rms());
+ }
+ }
+ }
+ }
}
public void reset() {
@@ -148,8 +187,14 @@
for (RawTrackerHit hit : hits) {
int x = hit.getIdentifierFieldValue("ix");
int y = hit.getIdentifierFieldValue("iy");
- for (int i = 0; i < hit.getADCValues().length; i++) {
- plots[x + 23][y + 5].fill(hit.getADCValues()[i]);
+ if (calWindow > 0) {
+ for (int i = 0; i < calWindow; i++) {
+ plots[x + 23][y + 5].fill(hit.getADCValues()[i]);
+ }
+ } else {
+ for (int i = 0; i < hit.getADCValues().length; i++) {
+ plots[x + 23][y + 5].fill(hit.getADCValues()[i]);
+ }
}
}
if (eventRefreshRate > 0 && ++eventn % eventRefreshRate == 0) {
@@ -169,6 +214,17 @@
}
}
+ if (event.hasCollection(CalorimeterHit.class, inputCollection)) {
+ List<CalorimeterHit> hits = event.get(CalorimeterHit.class, inputCollection);
+ for (CalorimeterHit hit : hits) {
+ int x = hit.getIdentifierFieldValue("ix");
+ int y = hit.getIdentifierFieldValue("iy");
+ plots[x + 23][y + 5].fill(hit.getRawEnergy());
+ }
+ if (eventRefreshRate > 0 && ++eventn % eventRefreshRate == 0) {
+ redraw();
+ }
+ }
}
@Override
@@ -181,8 +237,8 @@
y = (Integer) yCombo.getSelectedItem();
plotter.region(2).clear();
plotter.region(2).plot(plots[x + 23][y + 5]);
- ((PlotterRegion) plotter.region(2)).getPlot().setAllowUserInteraction(false);
- ((PlotterRegion) plotter.region(2)).getPlot().setAllowPopupMenus(false);
+// ((PlotterRegion) plotter.region(2)).getPlot().setAllowUserInteraction(false);
+// ((PlotterRegion) plotter.region(2)).getPlot().setAllowPopupMenus(false);
}
}
@@ -191,9 +247,11 @@
sigmaPlot.reset();
meanPlot.reset();
for (int x = -23; x <= 23; x++) { // slot
- for (int y = -5; y <= 5; y++) { // crate
- sigmaPlot.fill(x, y, plots[x + 23][y + 5].rms());
- meanPlot.fill(x, y, plots[x + 23][y + 5].mean());
+ for (int y = -5; y <= 5; y++) { // crate
+ if (plots[x + 23][y + 5].entries() > 10) {
+ sigmaPlot.fill(x, y, plots[x + 23][y + 5].rms());
+ meanPlot.fill(x, y, plots[x + 23][y + 5].mean());
+ }
}
}
}
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.3 -r1.4
--- EcalWindowPlots.java 4 May 2012 02:24:43 -0000 1.3
+++ EcalWindowPlots.java 8 May 2012 15:49:31 -0000 1.4
@@ -106,7 +106,7 @@
plotterFrame.setVisible(true);
IPlotterStyle pstyle = plotter.style();
pstyle.dataStyle().errorBarStyle().setVisible(false);
- windowPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Hit Count", window, -0.5, window - 0.5);
+ windowPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Window Mode Data", window, -0.5, window - 0.5);
plotter.region(0).plot(windowPlot);
crateCombo = new JComboBox(crateList);
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.8 -r1.9
--- EcalEventMonitor.java 6 May 2012 00:01:13 -0000 1.8
+++ EcalEventMonitor.java 8 May 2012 15:49:31 -0000 1.9
@@ -85,21 +85,18 @@
}
public void process(EventHeader event) {
+ if (++eventn % eventRefreshRate != 0) {
+ return;
+ }
+ hitPlot.reset();
+ clusterPlot.reset();
if (event.hasCollection(CalorimeterHit.class, inputCollectionName)) {
- if (++eventn % eventRefreshRate != 0) {
- return;
- }
- hitPlot.reset();
List<CalorimeterHit> hits = event.get(CalorimeterHit.class, inputCollectionName);
for (CalorimeterHit hit : hits) {
hitPlot.fill(hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy"), hit.getRawEnergy());
}
}
if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) {
- if (++eventn % eventRefreshRate != 0) {
- return;
- }
- clusterPlot.reset();
List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName);
for (HPSEcalCluster cluster : clusters) {
CalorimeterHit seedHit = cluster.getSeedHit();
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.2 -r1.3
--- EcalEvsX.java 6 May 2012 00:01:13 -0000 1.2
+++ EcalEvsX.java 8 May 2012 15:49:31 -0000 1.3
@@ -1,6 +1,6 @@
package org.lcsim.hps.monitoring.ecal;
-import hep.aida.ICloud2D;
+import hep.aida.IHistogram2D;
import hep.aida.IPlotter;
import hep.aida.IPlotterStyle;
import hep.aida.ref.plotter.PlotterRegion;
@@ -20,7 +20,7 @@
String inputCollection = "EcalClusters";
AIDA aida = AIDA.defaultInstance();
IPlotter plotter;
- ICloud2D EvsXPlot;
+ IHistogram2D EvsXPlot;
Detector detector;
int eventn = 0;
@@ -45,7 +45,7 @@
// Setup plots.
aida.tree().cd("/");
- EvsXPlot = aida.cloud2D(detector.getDetectorName() + " : " + inputCollection + " : E vs X");
+ EvsXPlot = aida.histogram2D(detector.getDetectorName() + " : " + inputCollection + " : E vs X",50,-400.0,400.0,200,-500,10000);
// Create the plotter regions.
plotter.createRegion();
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.3 -r1.4
--- EcalWindowPlotsXY.java 4 May 2012 02:24:43 -0000 1.3
+++ EcalWindowPlotsXY.java 8 May 2012 15:49:31 -0000 1.4
@@ -102,7 +102,7 @@
plotterFrame.setVisible(true);
IPlotterStyle pstyle = plotter.style();
pstyle.dataStyle().errorBarStyle().setVisible(false);
- windowPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Hit Count", window, -0.5, window - 0.5);
+ windowPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Window Mode Data", window, -0.5, window - 0.5);
plotter.region(0).plot(windowPlot);
xCombo = new JComboBox(xList);
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.3 -r1.4
--- EcalMonitoringPlots.java 6 May 2012 00:01:13 -0000 1.3
+++ EcalMonitoringPlots.java 8 May 2012 15:49:31 -0000 1.4
@@ -25,6 +25,7 @@
IHistogram2D hitCountDrawPlot;
int eventRefreshRate = 1;
int eventn = 0;
+ boolean hide = false;
public EcalMonitoringPlots() {
}
@@ -33,6 +34,10 @@
this.inputCollectionName = inputCollectionName;
}
+ public void setHide(boolean hide) {
+ this.hide = hide;
+ }
+
protected void detectorChanged(Detector detector) {
// Setup the plotter.
plotter = aida.analysisFactory().createPlotterFactory().create("HPS ECal Monitoring Plots");
@@ -50,7 +55,9 @@
plotter.region(0).plot(hitCountDrawPlot);
((PlotterRegion) plotter.region(0)).getPlot().setAllowUserInteraction(false);
((PlotterRegion) plotter.region(0)).getPlot().setAllowPopupMenus(false);
- plotter.show();
+ if (!hide) {
+ plotter.show();
+ }
}
public void process(EventHeader event) {
hps-java/src/main/resources/org/lcsim/hps/steering
diff -N ECalTriggerWindowMonitoring.lcsim
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ECalTriggerWindowMonitoring.lcsim 8 May 2012 15:49:32 -0000 1.1
@@ -0,0 +1,76 @@
+
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <control>
+ <numberOfEvents>-1</numberOfEvents>
+ <printInputFiles>true</printInputFiles>
+ <printDriversDetailed>true</printDriversDetailed>
+ </control>
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <driver name="HPSEcalConditions"/>
+ <driver name="FADCConverter"/>
+ <driver name="EcalRawConverter"/>
+ <driver name="EcalClusterer"/>
+ <driver name="EcalIntegralPedestalPlots"/>
+ <driver name="EcalMonitoringPlots"/>
+ <driver name="EcalClusterPlots"/>
+ <driver name="EcalEventMonitor"/>
+ <driver name="EcalWindowEventPlots"/>
+<!--
+ <driver name="EcalPedestalPlots"/>
+ <driver name="EcalEvsX"/>
+ <driver name="EcalWindowPlots"/>
+ <driver name="EcalDaqPlots"/>
+-->
+ </execute>
+ <drivers>
+ <driver name="HPSEcalConditions" type="org.lcsim.hps.recon.ecal.HPSEcalConditions"/>
+ <driver name="FADCConverter" type="org.lcsim.hps.recon.ecal.FADCConverterDriver">
+ <threshold>80</threshold>
+ </driver>
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ <rawCollectionName>EcalIntegralHits</rawCollectionName>
+ <integralWindow>35</integralWindow>
+ </driver>
+ <driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots">
+ </driver>
+ <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots">
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
+ <driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
+ <eventRefreshRate>1</eventRefreshRate>
+ </driver>
+ <driver name="EcalWindowPlots" type="org.lcsim.hps.monitoring.ecal.EcalWindowPlotsXY">
+ <subdetectorName>Ecal</subdetectorName>
+ <inputCollection>EcalReadoutHits</inputCollection>
+ <window>100</window>
+ </driver>
+ <driver name="EcalWindowEventPlots" type="org.lcsim.hps.monitoring.ecal.EcalWindowEventPlots">
+ <inputCollection>EcalReadoutHits</inputCollection>
+ <window>100</window>
+ </driver>
+<!-- <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalCalHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>-->
+ <driver name="EcalIntegralPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalCalHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
+ <driver name="EventMarkerDriver"
+ type="org.lcsim.job.EventMarkerDriver">
+ <eventInterval>1</eventInterval>
+ </driver>
+ <driver name="EcalClusterer"
+ type="org.lcsim.hps.recon.ecal.HPSEcalCTPClusterer">
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+ <driver name="EcalClusterPlots" type="org.lcsim.hps.monitoring.ecal.EcalClusterPlots">
+ </driver>
+ <driver name="EcalEvsX" type="org.lcsim.hps.monitoring.ecal.EcalEvsX">
+ <inputCollection>EcalClusters</inputCollection>
+ </driver>
+ </drivers>
+</lcsim>
hps-java/src/main/resources/org/lcsim/hps/steering
diff -N ECalCalibration.lcsim
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ECalCalibration.lcsim 8 May 2012 15:49:32 -0000 1.1
@@ -0,0 +1,54 @@
+
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <control>
+ <numberOfEvents>-1</numberOfEvents>
+ <printInputFiles>true</printInputFiles>
+ <printDriversDetailed>true</printDriversDetailed>
+ </control>
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <driver name="HPSEcalConditions"/>
+ <driver name="EcalPedestalPlots"/>
+ <driver name="EcalRawConverter"/>
+<!--
+ <driver name="EcalClusterer"/>
+ <driver name="EcalMonitoringPlots"/>
+ <driver name="EcalEventMonitor"/>
+ <driver name="EcalEvsX"/>
+ <driver name="EcalWindowPlots"/>
+ <driver name="EcalDaqPlots"/>
+-->
+ </execute>
+ <drivers>
+ <driver name="HPSEcalConditions" type="org.lcsim.hps.recon.ecal.HPSEcalConditions"/>
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ <integralWindow>30</integralWindow>
+ </driver>
+ <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots">
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
+ <driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
+ <eventRefreshRate>1</eventRefreshRate>
+ </driver>
+ <driver name="EcalWindowPlots" type="org.lcsim.hps.monitoring.ecal.EcalWindowPlotsXY">
+ <subdetectorName>Ecal</subdetectorName>
+ <inputCollection>EcalReadoutHits</inputCollection>
+ <window>100</window>
+ </driver>
+ <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalReadoutHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
+ <calWindow>5</calWindow>
+ </driver>
+ <driver name="EventMarkerDriver"
+ type="org.lcsim.job.EventMarkerDriver">
+ <eventInterval>1</eventInterval>
+ </driver>
+ <driver name="EcalClusterer"
+ type="org.lcsim.hps.recon.ecal.HPSEcalClusterer">
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+ </drivers>
+</lcsim>
hps-java/src/main/resources/org/lcsim/hps/steering
diff -N ECalMonitoringToFile.lcsim
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ECalMonitoringToFile.lcsim 8 May 2012 15:49:32 -0000 1.1
@@ -0,0 +1,60 @@
+
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <control>
+ <numberOfEvents>-1</numberOfEvents>
+ <printInputFiles>true</printInputFiles>
+ <printDriversDetailed>true</printDriversDetailed>
+ </control>
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <driver name="EcalRawConverter"/>
+ <driver name="EcalClusterer"/>
+ <driver name="EcalPedestalPlots"/>
+ <driver name="EcalMonitoringPlots"/>
+<!--
+ <driver name="EcalEventMonitor"/>
+ <driver name="EcalDaqPlots"/
+ <driver name="EcalWindowPlots"/>
+ <driver name="EcalEvsX"/>
+-->
+ <driver name="AidaSaveDriver"/>
+ </execute>
+ <drivers>
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ </driver>
+ <driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots">
+ </driver>
+ <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots">
+ <hide>true</hide>
+ </driver>
+ <driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
+ <eventRefreshRate>1</eventRefreshRate>
+ </driver>
+ <driver name="EcalWindowPlots" type="org.lcsim.hps.monitoring.ecal.EcalWindowPlotsXY">
+ <subdetectorName>Ecal</subdetectorName>
+ <inputCollection>EcalReadoutHits</inputCollection>
+ <window>100</window>
+ </driver>
+ <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalCalHits</inputCollection>
+ <hide>true</hide>
+ </driver>
+ <driver name="EventMarkerDriver"
+ type="org.lcsim.job.EventMarkerDriver">
+ <eventInterval>1000</eventInterval>
+ </driver>
+ <driver name="EcalClusterer"
+ type="org.lcsim.hps.recon.ecal.HPSEcalClusterer">
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+ <driver name="EcalEvsX" type="org.lcsim.hps.monitoring.ecal.EcalEvsX">
+ <inputCollection>EcalClusters</inputCollection>
+ </driver>
+ <driver name="AidaSaveDriver"
+ type="org.lcsim.job.AidaSaveDriver">
+ <outputFileName>ecalPlots</outputFileName>
+ </driver>
+ </drivers>
+</lcsim>
hps-java/src/main/resources/org/lcsim/hps/steering
diff -N ECalTriggerMonitoring.lcsim
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ECalTriggerMonitoring.lcsim 8 May 2012 15:49:32 -0000 1.1
@@ -0,0 +1,59 @@
+
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <control>
+ <numberOfEvents>-1</numberOfEvents>
+ <printInputFiles>true</printInputFiles>
+ <printDriversDetailed>true</printDriversDetailed>
+ </control>
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <driver name="HPSEcalConditions"/>
+ <driver name="EcalRawConverter"/>
+ <driver name="EcalClusterer"/>
+ <driver name="EcalPedestalPlots"/>
+ <driver name="EcalMonitoringPlots"/>
+ <driver name="EcalClusterPlots"/>
+ <driver name="EcalEventMonitor"/>
+<!--
+ <driver name="EcalPedestalPlots"/>
+ <driver name="EcalEvsX"/>
+ <driver name="EcalWindowPlots"/>
+ <driver name="EcalDaqPlots"/>
+-->
+ </execute>
+ <drivers>
+ <driver name="HPSEcalConditions" type="org.lcsim.hps.recon.ecal.HPSEcalConditions"/>
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ <rawCollectionName>EcalReadoutHits</rawCollectionName>
+ <integralWindow>35</integralWindow>
+ </driver>
+ <driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots">
+ </driver>
+ <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots">
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
+ <driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
+ <eventRefreshRate>1</eventRefreshRate>
+ </driver>
+<!-- <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalCalHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>-->
+ <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
+ <inputCollection>EcalCalHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
+ <driver name="EventMarkerDriver"
+ type="org.lcsim.job.EventMarkerDriver">
+ <eventInterval>1</eventInterval>
+ </driver>
+ <driver name="EcalClusterer"
+ type="org.lcsim.hps.recon.ecal.HPSEcalCTPClusterer">
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+ <driver name="EcalClusterPlots" type="org.lcsim.hps.monitoring.ecal.EcalClusterPlots">
+ </driver>
+ </drivers>
+</lcsim>
hps-java/src/main/resources/org/lcsim/hps/steering
diff -u -r1.4 -r1.5
--- ECalMonitoring.lcsim 6 May 2012 00:01:13 -0000 1.4
+++ ECalMonitoring.lcsim 8 May 2012 15:49:32 -0000 1.5
@@ -8,23 +8,28 @@
</control>
<execute>
<driver name="EventMarkerDriver"/>
+ <driver name="HPSEcalConditions"/>
<driver name="EcalRawConverter"/>
<driver name="EcalClusterer"/>
<driver name="EcalPedestalPlots"/>
<driver name="EcalMonitoringPlots"/>
- <driver name="EcalEventMonitor"/>
<!--
- <driver name="EcalDaqPlots"/>
- <driver name="EcalWindowPlots"/>
+ <driver name="EcalEventMonitor"/>
<driver name="EcalEvsX"/>
+ <driver name="EcalWindowPlots"/>
+ <driver name="EcalDaqPlots"/>
-->
</execute>
<drivers>
+ <driver name="HPSEcalConditions" type="org.lcsim.hps.recon.ecal.HPSEcalConditions"/>
<driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.HPSEcalRawConverterDriver">
+ <integralWindow>35</integralWindow>
</driver>
<driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots">
</driver>
- <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots"/>
+ <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots">
+ <eventRefreshRate>100</eventRefreshRate>
+ </driver>
<driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor">
<eventRefreshRate>1</eventRefreshRate>
</driver>
@@ -34,7 +39,8 @@
<window>100</window>
</driver>
<driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots">
- <inputCollection>EcalReadoutHits</inputCollection>
+ <inputCollection>EcalCalHits</inputCollection>
+ <eventRefreshRate>100</eventRefreshRate>
</driver>
<driver name="EventMarkerDriver"
type="org.lcsim.job.EventMarkerDriver">
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -N FADCConverterDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ FADCConverterDriver.java 8 May 2012 15:49:32 -0000 1.1
@@ -0,0 +1,101 @@
+package org.lcsim.hps.recon.ecal;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawCalorimeterHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @version $Id: FADCConverterDriver.java,v 1.1 2012/05/08 15:49:32 meeg Exp $
+ */
+public class FADCConverterDriver extends Driver {
+
+ String rawCollectionName = "EcalReadoutHits";
+ String ecalReadoutName = "EcalHits";
+ String ecalCollectionName = "EcalIntegralHits";
+ boolean debug = false;
+ int numSamplesBefore = 5;
+ int numSamplesAfter = 30;
+ int threshold = 50;
+
+ public FADCConverterDriver() {
+ }
+
+ public void setThreshold(int threshold) {
+ this.threshold = threshold;
+ }
+
+ public void setEcalReadoutName(String ecalReadoutName) {
+ this.ecalReadoutName = ecalReadoutName;
+ }
+
+ public void setNumSamplesAfter(int numSamplesAfter) {
+ this.numSamplesAfter = numSamplesAfter;
+ }
+
+ public void setNumSamplesBefore(int numSamplesBefore) {
+ this.numSamplesBefore = numSamplesBefore;
+ }
+
+ public void setEcalCollectionName(String ecalCollectionName) {
+ this.ecalCollectionName = ecalCollectionName;
+ }
+
+ public void setRawCollectionName(String rawCollectionName) {
+ this.rawCollectionName = rawCollectionName;
+ }
+
+ @Override
+ public void startOfData() {
+ if (ecalCollectionName == null) {
+ throw new RuntimeException("The parameter ecalCollectionName was not set!");
+ }
+ }
+
+ @Override
+ public void detectorChanged(Detector detector) {
+ }
+
+ @Override
+ public void process(EventHeader event) {
+ if (!HPSEcalConditions.pedestalsLoaded()) {
+ HPSEcalConditions.loadPedestals();
+ }
+ ArrayList<BaseRawCalorimeterHit> newHits = new ArrayList<BaseRawCalorimeterHit>();
+
+ // Get the list of ECal hits.
+ if (event.hasCollection(RawTrackerHit.class, rawCollectionName)) {
+ List<RawTrackerHit> hits = event.get(RawTrackerHit.class, rawCollectionName);
+
+ for (RawTrackerHit hit : hits) {
+ short[] window = hit.getADCValues();
+ long id = hit.getCellID();
+ int crystalThreshold = HPSEcalConditions.physicalToPedestal(id) + threshold;
+ int adcSum = 0;
+ int pointerOffset = 0;
+ int numSamplesToRead = 0;
+ int thresholdCrossing = 0;
+ for (int i = 0; i < window.length; i++) {
+ if (numSamplesToRead != 0) {
+ adcSum += window[i - pointerOffset];
+ numSamplesToRead--;
+ if (numSamplesToRead == 0) {
+ newHits.add(new BaseRawCalorimeterHit(id, adcSum, thresholdCrossing));
+ }
+ } else if ((i == 0 || window[i - 1] <= crystalThreshold) && window[i] > crystalThreshold) {
+ thresholdCrossing = i;
+ pointerOffset = Math.min(numSamplesBefore, i);
+ numSamplesToRead = pointerOffset + Math.min(numSamplesAfter, window.length - i - pointerOffset - 1);
+ adcSum = 0;
+ }
+ }
+ }
+ }
+ int flags = 0;
+ event.put(ecalCollectionName, newHits, BaseRawCalorimeterHit.class, flags, ecalReadoutName);
+ }
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.4 -r1.5
--- HPSEcalConditions.java 2 May 2012 20:31:38 -0000 1.4
+++ HPSEcalConditions.java 8 May 2012 15:49:32 -0000 1.5
@@ -11,13 +11,15 @@
import org.lcsim.detector.identifier.ExpandedIdentifier;
import org.lcsim.detector.identifier.IExpandedIdentifier;
import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.geometry.Detector;
+import org.lcsim.util.Driver;
/**
*
* @author meeg
- * @version $Id: HPSEcalConditions.java,v 1.4 2012/05/02 20:31:38 meeg Exp $
+ * @version $Id: HPSEcalConditions.java,v 1.5 2012/05/08 15:49:32 meeg Exp $
*/
-public class HPSEcalConditions {
+public class HPSEcalConditions extends Driver {
//DAQ channel map
private static HashMap<Long, Long> daqToPhysicalMap = new HashMap<Long, Long>();
@@ -30,8 +32,26 @@
//set of bad channels to ignore
private static HashSet<Long> badChannelsSet = new HashSet<Long>();
private static boolean badChannelsLoaded = false;
+ private String subdetectorName = "Ecal";
+ private static IIdentifierHelper helper = null;
- private HPSEcalConditions() {
+ public HPSEcalConditions() {
+ }
+
+ @Override
+ public void detectorChanged(Detector detector) {
+ if (detector.getSubdetector(subdetectorName) == null) {
+ throw new RuntimeException("Subdetector " + subdetectorName + " not found");
+ }
+ helper = detector.getSubdetector(subdetectorName).getDetectorElement().getIdentifierHelper();
+ }
+
+ public void setSubdetectorName(String subdetectorName) {
+ this.subdetectorName = subdetectorName;
+ }
+
+ public static IIdentifierHelper getHelper() {
+ return helper;
}
public static boolean mapLoaded() {
@@ -201,11 +221,11 @@
public static long getDaqID(int crate, short slot, short channel) {
return (((long) crate) << 32) | ((long) slot << 16) | (long) channel;
}
-
+
public static Long daqToPhysicalID(int crate, short slot, short channel) {
return daqToPhysicalMap.get(getDaqID(crate, slot, channel));
}
-
+
public static int getCrate(long physicalID) {
return (int) (physicalID >>> 32);
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.4 -r1.5
--- HPSEcalCluster.java 5 May 2012 00:15:12 -0000 1.4
+++ HPSEcalCluster.java 8 May 2012 15:49:32 -0000 1.5
@@ -11,7 +11,7 @@
* Cluster with position defined by seed hit (for 1-bit trigger)
*
* @author Sho Uemura <[log in to unmask]ord.edu>
- * @version $Id: HPSEcalCluster.java,v 1.4 2012/05/05 00:15:12 meeg Exp $
+ * @version $Id: HPSEcalCluster.java,v 1.5 2012/05/08 15:49:32 meeg Exp $
*/
public class HPSEcalCluster extends BasicCluster {
@@ -35,6 +35,7 @@
throw new RuntimeException("HPSEcalCluster has no hits");
}
seedHit = new HPSRawCalorimeterHit(0.0, null, 0.0, cellID, hit.getType());
+ seedHit.setMetaData(hit.getMetaData());
}
return seedHit;
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.2 -r1.3
--- HPSEcalCTPClusterer.java 21 Mar 2012 23:26:48 -0000 1.2
+++ HPSEcalCTPClusterer.java 8 May 2012 15:49:32 -0000 1.3
@@ -25,7 +25,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.2 2012/03/21 23:26:48 meeg Exp $
+ * @version $Id: HPSEcalCTPClusterer.java,v 1.3 2012/05/08 15:49:32 meeg Exp $
*/
public class HPSEcalCTPClusterer extends Driver {
@@ -119,7 +119,7 @@
// Put Cluster collection into event.
int flag = 1 << LCIOConstants.CLBIT_HITS;
- event.put(clusterCollectionName, createClusters(), Cluster.class, flag);
+ event.put(clusterCollectionName, createClusters(), HPSEcalCluster.class, flag);
}
public void sumHits(List<CalorimeterHit> hits) {
@@ -165,10 +165,10 @@
}
}
- public List<Cluster> createClusters() {
+ public List<HPSEcalCluster> createClusters() {
// boolean printClusters;
// New Cluster list to be added to event.
- List<Cluster> clusters = new ArrayList<Cluster>();
+ List<HPSEcalCluster> clusters = new ArrayList<HPSEcalCluster>();
//System.out.println("New event");
//for each crystal with a nonzero hit count, test for cluster
for (Long possibleCluster : hitSums.keySet()) {
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.6 -r1.7
--- HPSEcalRawConverterDriver.java 6 May 2012 00:01:13 -0000 1.6
+++ HPSEcalRawConverterDriver.java 8 May 2012 15:49:32 -0000 1.7
@@ -27,6 +27,10 @@
converter = new HPSEcalRawConverter();
}
+ public void setIntegralWindow(int integralWindow) {
+ this.integralWindow = integralWindow;
+ }
+
public void setEcalCollectionName(String ecalCollectionName) {
this.ecalCollectionName = ecalCollectionName;
}
hps-java/src/main/java/org/lcsim/hps/evio
diff -u -r1.14 -r1.15
--- ECalEvioReader.java 5 May 2012 00:15:12 -0000 1.14
+++ ECalEvioReader.java 8 May 2012 15:49:32 -0000 1.15
@@ -3,16 +3,20 @@
import java.util.ArrayList;
import java.util.List;
import org.jlab.coda.jevio.*;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.Identifier;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.SimTrackerHit;
import org.lcsim.event.base.BaseRawCalorimeterHit;
import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.geometry.Detector;
import org.lcsim.hps.recon.ecal.HPSEcalConditions;
/**
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: ECalEvioReader.java,v 1.14 2012/05/05 00:15:12 meeg Exp $
+ * @version $Id: ECalEvioReader.java,v 1.15 2012/05/08 15:49:32 meeg Exp $
*/
public class ECalEvioReader extends EvioReader {
// Names of subdetectors.
@@ -20,6 +24,7 @@
private String ecalName = "Ecal";
private int bankTag = EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG;
private Class hitClass = BaseRawCalorimeterHit.class;
+ private Detector detector;
public ECalEvioReader() {
hitCollectionName = "EcalReadoutHits";
@@ -33,6 +38,7 @@
public boolean makeHits(EvioEvent event, EventHeader lcsimEvent) {
boolean foundHits = false;
if (!HPSEcalConditions.mapLoaded()) {
+ detector = lcsimEvent.getDetector();
HPSEcalConditions.fillDaqCellMap(lcsimEvent.getDetector().getSubdetector(ecalName));
}
List<Object> hits = new ArrayList<Object>();
@@ -69,7 +75,6 @@
break;
default:
throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
-
}
// }
}
@@ -81,6 +86,10 @@
}
String readoutName = lcsimEvent.getDetector().getSubdetector(ecalName).getReadout().getName();
lcsimEvent.put(hitCollectionName, hits, hitClass, 0, readoutName);
+// for (Object hit : hits) {
+// System.out.println(((RawTrackerHit) hit).getIDDecoder().getIDDescription().toString());
+// }
+
return foundHits;
}
@@ -96,7 +105,7 @@
System.out.println("cdata.type[" + i + "]=" + cdata.getTypes().get(i));
}
}
- while (cdata.index() < cdata.getItems().size()) {
+ while (cdata.index() + 1 < cdata.getItems().size()) {
short slot = cdata.getByte();
int trigger = cdata.getInt();
long timestamp = cdata.getLong();
@@ -119,7 +128,7 @@
for (int i = 0; i < nSamples; i++) {
adcValues[i] = cdata.getShort();
}
- hits.add(new BaseRawTrackerHit(id, 0, adcValues));
+ hits.add(new BaseRawTrackerHit(0, id, adcValues, new ArrayList<SimTrackerHit>(), detector.getSubdetector(ecalName).getDetectorElement().findDetectorElement(new Identifier(id)).get(0)));
}
}
return hits;
@@ -163,7 +172,7 @@
for (int i = 0; i < sampleCount; i++) {
adcValues[i] = cdata.getShort();
}
- hits.add(new BaseRawTrackerHit(id, pulseNum, adcValues));
+ hits.add(new BaseRawTrackerHit(pulseNum, id, adcValues, new ArrayList<SimTrackerHit>(), detector.getSubdetector(ecalName).getDetectorElement().findDetectorElement(new Identifier(id)).get(0)));
}
}
}
CVSspam 0.2.12