Print

Print


Author: [log in to unmask]
Date: Sat Apr 25 00:46:16 2015
New Revision: 2818

Log:
When plotting the occupancy as a function of position from the beam, don't take the absolute value of the position.  Fix the labels of the position 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	Sat Apr 25 00:46:16 2015
@@ -29,8 +29,8 @@
 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 SVT sensor occupancies across a run.
+ *
  * 
  * @author Omar Moreno <[log in to unmask]>
  */
@@ -40,7 +40,7 @@
    static {
         hep.aida.jfree.AnalysisFactory.register();
     } 
-   
+  
     ITree tree; 
     IHistogramFactory histogramFactory;
     IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
@@ -128,7 +128,6 @@
         // strip position
         for(ChargeCarrier carrier : ChargeCarrier.values()){
             for(HpsSiSensor sensor : sensors){ 
-                //System.out.println("HpsSiSensor: " + sensor.toString());
                 if(sensor.hasElectrodesOnSide(carrier)){ 
                     stripPositions.put(sensor, new HashMap<Integer, Hep3Vector>());
                     SiStrips strips = (SiStrips) sensor.getReadoutElectrodes(carrier);     
@@ -138,9 +137,6 @@
                         Hep3Vector localStripPosition = strips.getCellPosition(physicalChannel);
                         Hep3Vector stripPosition = parentToLocal.transformed(localStripPosition);
                         Hep3Vector globalStripPosition = localToGlobal.transformed(stripPosition);
-                        //System.out.println("Channel: " + physicalChannel + " localStripPosition: " + localStripPosition.toString());
-                        //System.out.println("Channel: " + physicalChannel + " stripPosition: " + stripPosition.toString());
-                        //System.out.println("Channel: " + physicalChannel + " globalStripPosition: " + globalStripPosition.toString());
                         stripPositions.get(sensor).put(physicalChannel, globalStripPosition);
                     }
                 }
@@ -161,14 +157,20 @@
         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), this.createOccupancyPlotStyle(sensor));
+                                     .plot(occupancyPlots.get(sensor), this.createOccupancyPlotStyle("Physical Channel", sensor));
         
             if (enablePositionPlots) {
-                occupancyVPositionPlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Occupancy vs Position", 1000, 0, 60));
+                if (sensor.isTopLayer()) {
+                    occupancyVPositionPlots.put(sensor, 
+                            histogramFactory.createHistogram1D(sensor.getName() + " - Occupancy vs Position", 1000, 0, 60));
+                } else { 
+                    occupancyVPositionPlots.put(sensor, 
+                            histogramFactory.createHistogram1D(sensor.getName() + " - Occupancy vs Position", 1000, -60, 0));
+                }
+                
                 plotters.get("Occupancy vs Position").region(this.computePlotterRegion(sensor))
-                                                     .plot(occupancyVPositionPlots.get(sensor), this.createOccupancyPlotStyle(sensor));
-            }
-            
+                                                     .plot(occupancyVPositionPlots.get(sensor), this.createOccupancyPlotStyle("Distance from Beam [mm]", sensor));
+            }
             occupancyMap.put(sensor, new int[640]);
         }
 
@@ -183,16 +185,16 @@
 
     public void process(EventHeader event) {
 
+        // Get the run number from the event and store it.  This will be used 
+        // when writing the plots out to a ROOT file
         if (runNumber == -1) runNumber = event.getRunNumber();
-        
-        if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName))
-            return;
-
-        eventCount++;
-
+       
+        // If the event doesn't have a collection of RawTrackerHit's, skip it.
+        if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) return;
         // Get RawTrackerHit collection from event.
         List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
 
+        eventCount++;
         // Increment strip hit count.
         for (RawTrackerHit rawHit : rawHits) {
             
@@ -230,7 +232,6 @@
               
                     if (enablePositionPlots) {
                         double stripPosition = this.getStripPosition(sensor, channel).y();
-                        stripPosition = Math.abs(stripPosition);
                         occupancyVPositionPlots.get(sensor).fill(stripPosition, stripOccupancy);
                     }
                 }
@@ -258,12 +259,12 @@
         return stripPositions.get(sensor).get(physicalChannel);
     }
 
-    IPlotterStyle createOccupancyPlotStyle(HpsSiSensor sensor) {
+    IPlotterStyle createOccupancyPlotStyle(String xAxisTitle, HpsSiSensor sensor) {
         // Create a default style
         IPlotterStyle style = this.plotterFactory.createPlotterStyle();
         
         // Set the style of the X axis
-        style.xAxisStyle().setLabel("Channel");
+        style.xAxisStyle().setLabel(xAxisTitle);
         style.xAxisStyle().labelStyle().setFontSize(14);
         style.xAxisStyle().setVisible(true);