Print

Print


Author: [log in to unmask]
Date: Mon Feb 15 09:31:03 2016
New Revision: 4224

Log: (empty)

Modified:
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java	Mon Feb 15 09:31:03 2016
@@ -56,11 +56,15 @@
     private static Map<String, IHistogram1D> singleHitClusterChargePlots = new HashMap<String, IHistogram1D>();
     private static Map<String, IHistogram1D> clusterTimePlots = new HashMap<String, IHistogram1D>();
     private static Map<String, IHistogram2D> hitTimeTrigTimePlots = new HashMap<String, IHistogram2D>();
-    private static IHistogram1D[] hitTimeTrigTimePlots1D = new IHistogram1D[6];
+    private static IHistogram1D[][] hitTimeTrigTimePlots1D = new IHistogram1D[6][2];
+    private static IHistogram2D[][] hitTimeTrigTimePlots2D = new IHistogram2D[6][2];
+
+    private static final int TOP = 0;
+    private static final int BOTTOM = 1;
 
     private List<HpsSiSensor> sensors;
-    private Map<RawTrackerHit, FittedRawTrackerHit> fittedRawTrackerHitMap
-            = new HashMap<RawTrackerHit, FittedRawTrackerHit>();
+//    private Map<RawTrackerHit, FittedRawTrackerHit> fittedRawTrackerHitMap
+//            = new HashMap<RawTrackerHit, FittedRawTrackerHit>();
 
     // Detector name
     private static final String SUBDETECTOR_NAME = "Tracker";
@@ -85,20 +89,17 @@
             } 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;
-                }
+        } 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;
@@ -159,8 +160,7 @@
     private void resetPlots() {
 
         // Clear the fitted raw hit map of old values
-        fittedRawTrackerHitMap.clear();
-
+//        fittedRawTrackerHitMap.clear();
         // Since all plots are mapped to the name of a sensor, loop 
         // through the sensors, get the corresponding plots and clear them.
         for (HpsSiSensor sensor : sensors) {
@@ -172,34 +172,40 @@
         for (IHistogram2D histogram : hitTimeTrigTimePlots.values()) {
             histogram.reset();
         }
-    }
-
-    /**
-     * Method that creates a map between a fitted raw hit and it's corresponding
-     * raw fit
-     *
-     * @param fittedHits : List of fitted hits to map
-     */
-    private void mapFittedRawHits(List<FittedRawTrackerHit> fittedHits) {
-
-        // Clear the fitted raw hit map of old values
-        fittedRawTrackerHitMap.clear();
-
-        // Loop through all fitted hits and map them to their corresponding raw hits
-        for (FittedRawTrackerHit fittedHit : fittedHits) {
-            fittedRawTrackerHitMap.put(fittedHit.getRawTrackerHit(), fittedHit);
-        }
-    }
-
-    /**
-     *
-     * @param rawHit
-     * @return
-     */
-    private FittedRawTrackerHit getFittedHit(RawTrackerHit rawHit) {
-        return fittedRawTrackerHitMap.get(rawHit);
-    }
-
+
+        for (int i = 0; i < 6; i++) {
+            for (int j = 0; j < 2; j++) {
+                hitTimeTrigTimePlots1D[i][j].reset();
+                hitTimeTrigTimePlots2D[i][j].reset();
+            }
+        }
+    }
+
+//    /**
+//     * Method that creates a map between a fitted raw hit and it's corresponding
+//     * raw fit
+//     *
+//     * @param fittedHits : List of fitted hits to map
+//     */
+//    private void mapFittedRawHits(List<FittedRawTrackerHit> fittedHits) {
+//
+//        // Clear the fitted raw hit map of old values
+//        fittedRawTrackerHitMap.clear();
+//
+//        // Loop through all fitted hits and map them to their corresponding raw hits
+//        for (FittedRawTrackerHit fittedHit : fittedHits) {
+//            fittedRawTrackerHitMap.put(fittedHit.getRawTrackerHit(), fittedHit);
+//        }
+//    }
+//
+//    /**
+//     *
+//     * @param rawHit
+//     * @return
+//     */
+//    private FittedRawTrackerHit getFittedHit(RawTrackerHit rawHit) {
+//        return fittedRawTrackerHitMap.get(rawHit);
+//    }
     protected void detectorChanged(Detector detector) {
 
         // Get the HpsSiSensor objects from the geometry
@@ -237,7 +243,7 @@
                     .plot(singleHitClusterChargePlots.get(sensor.getName()), this.createStyle(null, "Cluster Amplitude [ADC Counts]", ""));
 
             clusterTimePlots.put(sensor.getName(),
-                    histogramFactory.createHistogram1D(sensor.getName() + " - Cluster Time", 100, -50, 50));
+                    histogramFactory.createHistogram1D(sensor.getName() + " - Cluster Time", 100, -75, 50));
             plotters.get("Cluster Time").region(this.computePlotterRegion(sensor))
                     .plot(clusterTimePlots.get(sensor.getName()), this.createStyle(null, "Cluster Time [ns]", ""));
         }
@@ -246,18 +252,25 @@
         plotters.get("SVT-trigger timing top-bottom").createRegions(1, 2);
 
         hitTimeTrigTimePlots.put("Top",
-                histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24));
+                histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -75, 50, 6, 0, 24));
         plotters.get("SVT-trigger timing top-bottom").region(0).plot(hitTimeTrigTimePlots.get("Top"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]"));
         hitTimeTrigTimePlots.put("Bottom",
-                histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24));
+                histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -75, 50, 6, 0, 24));
         plotters.get("SVT-trigger timing top-bottom").region(1).plot(hitTimeTrigTimePlots.get("Bottom"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]"));
 
         plotters.put("SVT-trigger timing by phase", plotterFactory.create("SVT-trigger timing by phase"));
-        plotters.get("SVT-trigger timing by phase").createRegions(1, 6);
+        plotters.get("SVT-trigger timing by phase").createRegions(2, 6);
+
+        plotters.put("SVT-trigger timing and amplitude by phase", plotterFactory.create("SVT-trigger timing and amplitude by phase"));
+        plotters.get("SVT-trigger timing and amplitude by phase").createRegions(2, 6);
 
         for (int i = 0; i < 6; i++) {
-            hitTimeTrigTimePlots1D[i] = histogramFactory.createHistogram1D("Cluster Time for Phase " + i, 100, -50, 50);
-            plotters.get("SVT-trigger timing by phase").region(i).plot(hitTimeTrigTimePlots1D[i], this.createStyle(null, "Cluster Time [ns]", ""));
+            for (int j = 0; j < 2; j++) {
+                hitTimeTrigTimePlots1D[i][j] = histogramFactory.createHistogram1D(String.format("Cluster Time for Phase %d, %s", i, j == TOP ? "Top" : "Bottom"), 100, -75, 50);
+                plotters.get("SVT-trigger timing by phase").region(i + 6 * j).plot(hitTimeTrigTimePlots1D[i][j], this.createStyle(null, "Cluster Time [ns]", ""));
+                hitTimeTrigTimePlots2D[i][j] = histogramFactory.createHistogram2D(String.format("Cluster Amplitude vs. Time for Phase %d, %s", i, j == TOP ? "Top" : "Bottom"), 100, -75, 50, 100, 0, 5000.0);
+                plotters.get("SVT-trigger timing and amplitude by phase").region(i + 6 * j).plot(hitTimeTrigTimePlots2D[i][j], this.createStyle(null, "Cluster Time [ns]", "Cluster Amplitude [ADC Counts]"));
+            }
         }
 
         for (IPlotter plotter : plotters.values()) {
@@ -278,17 +291,15 @@
             runNumber = event.getRunNumber();
         }
 
-        // If the event doesn't contain fitted raw hits, skip it
-        if (!event.hasCollection(FittedRawTrackerHit.class, fittedHitsCollectionName)) {
-            return;
-        }
-
-        // Get the list of fitted hits from the event
-        List<FittedRawTrackerHit> fittedHits = event.get(FittedRawTrackerHit.class, fittedHitsCollectionName);
-
-        // Map the fitted hits to their corresponding raw hits
-        this.mapFittedRawHits(fittedHits);
-
+//        // If the event doesn't contain fitted raw hits, skip it
+//        if (!event.hasCollection(FittedRawTrackerHit.class, fittedHitsCollectionName)) {
+//            return;
+//        }
+//         Get the list of fitted hits from the event
+//        List<FittedRawTrackerHit> fittedHits = event.get(FittedRawTrackerHit.class, fittedHitsCollectionName);
+//
+//        // Map the fitted hits to their corresponding raw hits
+//        this.mapFittedRawHits(fittedHits);
         // If the event doesn't contain any clusters, skip it
         if (!event.hasCollection(SiTrackerHitStrip1D.class, clusterCollectionName)) {
             return;
@@ -319,10 +330,13 @@
             }
 
             clusterTimePlots.get(sensor.getName()).fill(cluster.getTime());
-            hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)].fill(cluster.getTime());
             if (sensor.isTopLayer()) {
+                hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)][TOP].fill(cluster.getTime());
+                hitTimeTrigTimePlots2D[(int) ((event.getTimeStamp() / 4) % 6)][TOP].fill(cluster.getTime(), cluster.getdEdx() / DopedSilicon.ENERGY_EHPAIR);
                 hitTimeTrigTimePlots.get("Top").fill(cluster.getTime(), event.getTimeStamp() % 24);
             } else {
+                hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)][BOTTOM].fill(cluster.getTime());
+                hitTimeTrigTimePlots2D[(int) ((event.getTimeStamp() / 4) % 6)][BOTTOM].fill(cluster.getTime(), cluster.getdEdx() / DopedSilicon.ENERGY_EHPAIR);
                 hitTimeTrigTimePlots.get("Bottom").fill(cluster.getTime(), event.getTimeStamp() % 24);
             }
         }