Author: [log in to unmask]
Date: Sun Mar 15 11:25:02 2015
New Revision: 2458
Log:
Add plotter style to occupancy plots.
Modified:
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java Sun Mar 15 11:25:02 2015
@@ -1,15 +1,17 @@
package org.hps.monitoring.drivers.svt;
-
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import hep.aida.IAnalysisFactory;
import hep.aida.IHistogram1D;
import hep.aida.IHistogramFactory;
import hep.aida.IPlotter;
import hep.aida.IPlotterFactory;
+import hep.aida.IPlotterStyle;
+import hep.aida.ref.plotter.style.registry.StyleRegistry;
+
+import java.awt.Color;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.EventHeader;
@@ -18,32 +20,34 @@
import org.lcsim.util.Driver;
/**
- * This Driver makes plots of sensor occupancies across a run. It is intended to
- * be used with the monitoring system.
+ * This Driver makes plots of sensor occupancies across a run. It is intended to be used with the
+ * monitoring system.
*
- * @author Jeremy McCormick <[log in to unmask]>
- * @author Omar Moreno <[log in to unmask]>
+ * @author Jeremy McCormick <[log in to unmask]>
+ * @author Omar Moreno <[log in to unmask]>
*/
public class SensorOccupancyPlotsDriver extends Driver {
// TODO: Add documentation
// TODO: Set plot styles
-
- static IHistogramFactory histogramFactory = IAnalysisFactory.create().createHistogramFactory(null);
- IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
-
- protected Map<String, IPlotter> plotters = new HashMap<String, IPlotter>();
- protected Map<HpsSiSensor, IHistogram1D> occupancyPlots = new HashMap<HpsSiSensor, IHistogram1D>();
- protected Map<HpsSiSensor, int[]> occupancyMap = new HashMap<HpsSiSensor, int[]>();
+
+ static IHistogramFactory histogramFactory = IAnalysisFactory.create().createHistogramFactory(null);
+ IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
+ static StyleRegistry styleRegistry = StyleRegistry.getStyleRegistry();
+
+ protected Map<String, IPlotter> plotters = new HashMap<String, IPlotter>();
+ protected Map<HpsSiSensor, IHistogram1D> occupancyPlots = new HashMap<HpsSiSensor, IHistogram1D>();
+ protected Map<HpsSiSensor, int[]> occupancyMap = new HashMap<HpsSiSensor, int[]>();
private List<HpsSiSensor> sensors;
-
+
private static final String SUBDETECTOR_NAME = "Tracker";
private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
private int eventCount = 0;
private int eventRefreshRate = 1;
- public SensorOccupancyPlotsDriver() {}
+ public SensorOccupancyPlotsDriver() {
+ }
public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
@@ -55,83 +59,92 @@
private int computePlotterRegion(HpsSiSensor sensor) {
- if (sensor.getLayerNumber() < 7) {
- if (sensor.isTopLayer()) {
- return 6*(sensor.getLayerNumber() - 1);
- } else {
- return 6*(sensor.getLayerNumber() - 1) + 1;
- }
- } else {
-
- if (sensor.isTopLayer()) {
- if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
- return 6*(sensor.getLayerNumber() - 7) + 2;
- } else {
- return 6*(sensor.getLayerNumber() - 7) + 3;
- }
- } else if (sensor.isBottomLayer()) {
- if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
- return 6*(sensor.getLayerNumber() - 7) + 4;
- } else {
- return 6*(sensor.getLayerNumber() - 7) + 5;
- }
- }
- }
-
- return -1;
+ if (sensor.getLayerNumber() < 7) {
+ if (sensor.isTopLayer()) {
+ return 6 * (sensor.getLayerNumber() - 1);
+ } else {
+ return 6 * (sensor.getLayerNumber() - 1) + 1;
+ }
+ } else {
+
+ if (sensor.isTopLayer()) {
+ if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
+ return 6 * (sensor.getLayerNumber() - 7) + 2;
+ } else {
+ return 6 * (sensor.getLayerNumber() - 7) + 3;
+ }
+ } else if (sensor.isBottomLayer()) {
+ if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
+ return 6 * (sensor.getLayerNumber() - 7) + 4;
+ } else {
+ return 6 * (sensor.getLayerNumber() - 7) + 5;
+ }
+ }
+ }
+
+ return -1;
}
protected void detectorChanged(Detector detector) {
-
- sensors
- = detector.getSubdetector(SUBDETECTOR_NAME).getDetectorElement().findDescendants(HpsSiSensor.class);
-
+
+ sensors = detector.getSubdetector(SUBDETECTOR_NAME).getDetectorElement().findDescendants(HpsSiSensor.class);
+
if (sensors.size() == 0) {
throw new RuntimeException("No sensors were found in this detector.");
}
plotters.put("Occupancy", plotterFactory.create("Occupancy"));
- plotters.get("Occupancy").createRegions(6,6);
-
- for (HpsSiSensor sensor : sensors) {
- occupancyPlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Occupancy", 640, 0, 640));
- plotters.get("Occupancy").region(this.computePlotterRegion(sensor))
- .plot(occupancyPlots.get(sensor));
+ plotters.get("Occupancy").createRegions(6, 6);
+
+ for (HpsSiSensor sensor : sensors) {
+ occupancyPlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Occupancy", 640, 0, 640));
+ plotters.get("Occupancy").region(this.computePlotterRegion(sensor)).plot(occupancyPlots.get(sensor), createPlotterStyle());
occupancyMap.put(sensor, new int[640]);
- }
-
- for (IPlotter plotter : plotters.values()) {
- plotter.show();
- }
+ }
+
+ for (IPlotter plotter : plotters.values()) {
+ plotter.show();
+ }
}
public void process(EventHeader event) {
-
- if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName))
- return;
- eventCount++;
-
+ if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName))
+ return;
+
+ eventCount++;
+
// Get RawTrackerHit collection from event.
List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
- // Increment strip hit count.
- for (RawTrackerHit rawHit : rawHits) {
- int[] strips = occupancyMap.get((HpsSiSensor) rawHit.getDetectorElement());
- strips[rawHit.getIdentifierFieldValue("strip")] += 1;
- }
+ // Increment strip hit count.
+ for (RawTrackerHit rawHit : rawHits) {
+ int[] strips = occupancyMap.get((HpsSiSensor) rawHit.getDetectorElement());
+ strips[rawHit.getIdentifierFieldValue("strip")] += 1;
+ }
- // Plot strip occupancies.
- if (eventCount % eventRefreshRate == 0) {
- for (HpsSiSensor sensor : sensors) {
- int[] strips = occupancyMap.get(sensor);
- for (int i = 0; i < strips.length; i++) {
- double stripOccupancy = (double) strips[i] / (double) eventCount;
- if (stripOccupancy != 0) {
- occupancyPlots.get(sensor).fill(i, stripOccupancy);
- }
- }
- }
- }
+ // Plot strip occupancies.
+ if (eventCount % eventRefreshRate == 0) {
+ for (HpsSiSensor sensor : sensors) {
+ int[] strips = occupancyMap.get(sensor);
+ for (int i = 0; i < strips.length; i++) {
+ double stripOccupancy = (double) strips[i] / (double) eventCount;
+ if (stripOccupancy != 0) {
+ occupancyPlots.get(sensor).fill(i, stripOccupancy);
+ }
+ }
+ }
+ }
+ }
+
+ static IPlotterStyle createPlotterStyle() {
+ IPlotterStyle style = styleRegistry.getStore("DefaultStyleStore").getStyle("DefaultHistogram1DStyle");
+ style.dataStyle().lineStyle().setVisible(false);
+ style.dataStyle().outlineStyle().setVisible(false);
+ style.dataStyle().fillStyle().setVisible(true);
+ style.dataStyle().fillStyle().setColor("blue");
+ style.legendBoxStyle().setVisible(false);
+ style.dataStyle().errorBarStyle().setVisible(false);
+ return style;
}
}
|