Print

Print


Author: [log in to unmask]
Date: Thu Apr 30 13:56:40 2015
New Revision: 2867

Log:
Print out the active edge occupancies at the end of the run.

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	Thu Apr 30 13:56:40 2015
@@ -274,6 +274,10 @@
             occupancyMap.put(sensor.getName(), new int[640]);
         }
     }
+    
+	private int getLayerNumber(HpsSiSensor sensor) {
+	   return (int) Math.ceil(((double) sensor.getLayerNumber())/2); 
+	}
     
     protected void detectorChanged(Detector detector) {
 
@@ -457,5 +461,36 @@
         } catch (IOException e) {
             e.printStackTrace();
         }
+       
+        // Calculate the occupancies at the sensor edge
+        int[] topActiveEdgeStripOccupancy = new int[6]; 
+        int[] bottomActiveEdgeStripOccupancy = new int[6];
+        for (HpsSiSensor sensor : sensors) { 
+            if (sensor.isTopLayer() && sensor.isAxial()) { 
+                if (sensor.getSide() == sensor.ELECTRON_SIDE) { 
+                    topActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[1];
+                } else { 
+                    topActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[637];
+                }
+            } else if (sensor.isBottomLayer() && sensor.isAxial()) {
+                if (sensor.getSide() == sensor.ELECTRON_SIDE) { 
+                    bottomActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[1];
+                } else { 
+                    bottomActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[637];
+                }
+            }
+        }
+        
+        System.out.println("%===============================================================================%");
+        System.out.println("%======================== Active Edge Sensor Occupancies =======================%");
+        System.out.println("%===============================================================================%");
+        for (int layerN = 0; layerN < 6; layerN++) {
+           System.out.println("% Top Layer " + (layerN+1) + ": Occupancy: " + topActiveEdgeStripOccupancy[layerN] + " / " + eventCount + " = " 
+                           + ((double) topActiveEdgeStripOccupancy[layerN] / (double) eventCount)); 
+           System.out.println("% Bottom Layer " + (layerN+1) + ": Occupancy: " + bottomActiveEdgeStripOccupancy[layerN] + " / " + eventCount + " = " 
+                           + ((double) bottomActiveEdgeStripOccupancy[layerN] / (double) eventCount)); 
+        }
+        System.out.println("%===============================================================================%");
+        System.out.println("%===============================================================================%");
     }
 }