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("%===============================================================================%"); } }