Author: [log in to unmask]
Date: Tue Apr 21 13:56:21 2015
New Revision: 2767
Log:
more plots, better plots
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java Tue Apr 21 13:56:21 2015
@@ -5,9 +5,9 @@
import hep.aida.IFitResult;
import hep.aida.IFitter;
import hep.aida.IHistogram1D;
+import hep.aida.IHistogram2D;
import hep.aida.IPlotter;
import hep.aida.IPlotterStyle;
-
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
@@ -15,7 +15,9 @@
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
-
+import org.hps.recon.ecal.triggerbank.AbstractIntData;
+import org.hps.recon.ecal.triggerbank.TDCData;
+import org.hps.recon.ecal.triggerbank.TIData;
import org.hps.recon.tracking.ShapeFitParameters;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.EventHeader;
@@ -78,17 +80,19 @@
sensors = this.detector.getSubdetector(trackerName).getDetectorElement().findDescendants(HpsSiSensor.class);
// Reset the data structure that keeps track of strip occupancies.
- resetOccupancyMap();
+ reset();
// Setup the occupancy plots.
aida.tree().cd("/");
for (HpsSiSensor sensor : sensors) {
//IHistogram1D occupancyPlot = aida.histogram1D(sensor.getName().replaceAll("Tracker_TestRunModule_", ""), 640, 0, 639);
IHistogram1D occupancyPlot = createSensorPlot(plotDir + "occupancy_", sensor, maxChannels, 0, maxChannels - 1);
- IHistogram1D t0Plot = createSensorPlot(plotDir + "t0Hit_", sensor, 50, -50., 50.);
- IHistogram1D amplitudePlot = createSensorPlot(plotDir + "amplitude_", sensor, 50, 0, 2000.0);
+ IHistogram1D t0Plot = createSensorPlot(plotDir + "t0Hit_", sensor, 400, -100., 100.);
+ IHistogram1D amplitudePlot = createSensorPlot(plotDir + "amplitude_", sensor, 50, 0, 4000.0);
+ IHistogram2D t0AmpPlot = createSensorPlot2D(plotDir + "t0AmpHit_", sensor, 200, -100., 100., 50, 0, 4000.0);
IHistogram1D chiProbPlot = createSensorPlot(plotDir + "chiProb_", sensor, 50, 0, 1.0);
- IHistogram1D t0ClusterPlot = createSensorPlot(plotDir + "t0Cluster_", sensor, 50, -50., 50.);
+ IHistogram1D t0ClusterPlot = createSensorPlot(plotDir + "t0Cluster_", sensor, 400, -100., 100.);
+ IHistogram2D t0TrigTimePlot = createSensorPlot2D(plotDir + "t0ClusterTrigTime_", sensor, 400, -100., 100., 6, -2, 22);
IHistogram1D dedxClusterPlot = createSensorPlot(plotDir + "electrons_", sensor, 50, 0., 10.);
occupancyPlot.reset();
}
@@ -122,6 +126,7 @@
double chiProb = ShapeFitParameters.getChiProb(pars);
getSensorPlot(plotDir + "t0Hit_", sensorName).fill(t0);
getSensorPlot(plotDir + "amplitude_", sensorName).fill(amp);
+ getSensorPlot2D(plotDir + "t0AmpHit_", sensorName).fill(t0, amp);
getSensorPlot(plotDir + "chiProb_", sensorName).fill(chiProb);
}
++eventCountFit;
@@ -136,6 +141,7 @@
double dedx = cluster.getdEdx() * 1e6;
// System.out.println("dedx = "+dedx);
getSensorPlot(plotDir + "t0Cluster_", sensorName).fill(t0);
+ getSensorPlot2D(plotDir + "t0ClusterTrigTime_", sensorName).fill(t0, event.getTimeStamp() % 24);
getSensorPlot(plotDir + "electrons_", sensorName).fill(dedx);
}
}
@@ -153,6 +159,26 @@
private IHistogram1D createSensorPlot(String prefix, HpsSiSensor sensor, int nchan, double min, double max) {
String hname = prefix + getNiceSensorName(sensor);
IHistogram1D hist = aida.histogram1D(hname, nchan, min, max);
+ hist.setTitle(sensor.getName().replaceAll(nameStrip, "")
+ .replace("module", "mod")
+ .replace("layer", "lyr")
+ .replace("sensor", "sens"));
+
+ return hist;
+ }
+
+ private IHistogram2D getSensorPlot2D(String prefix, HpsSiSensor sensor) {
+ String hname = prefix + getNiceSensorName(sensor);
+ return aida.histogram2D(hname);
+ }
+
+ private IHistogram2D getSensorPlot2D(String prefix, String sensorName) {
+ return aida.histogram2D(prefix + sensorName);
+ }
+
+ private IHistogram2D createSensorPlot2D(String prefix, HpsSiSensor sensor, int nchanX, double minX, double maxX, int nchanY, double minY, double maxY) {
+ String hname = prefix + getNiceSensorName(sensor);
+ IHistogram2D hist = aida.histogram2D(hname, nchanX, minX, maxX, nchanY, minY, maxY);
hist.setTitle(sensor.getName().replaceAll(nameStrip, "")
.replace("module", "mod")
.replace("layer", "lyr")
@@ -208,8 +234,9 @@
int[] strips = occupancyMap.get(sensor.getName());
for (int i = 0; i < strips.length; i++) {
double stripOccupancy = (double) strips[i] / (double) (eventCountRaw);
- if (stripOccupancy != 0)
+ if (stripOccupancy != 0) {
sensorHist.fill(i, stripOccupancy);
+ }
avg += stripOccupancy;
}
//do the end-of-run quantities here too since we've already done the loop.
|