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.