Author: [log in to unmask] Date: Sun May 10 22:45:06 2015 New Revision: 2938 Log: add option to reset occupancy plots periodically; turn off some plots Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim 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 Sun May 10 22:45:06 2015 @@ -70,6 +70,7 @@ private int eventCount = 0; private int eventRefreshRate = 1; private int runNumber = -1; + private int resetPeriod = -1; private boolean enablePositionPlots = false; private boolean enableMaxSamplePlots = false; @@ -89,6 +90,10 @@ public void setEventRefreshRate(int eventRefreshRate) { this.eventRefreshRate = eventRefreshRate; + } + + public void setResetPeriod(int resetPeriod) { + this.resetPeriod = resetPeriod; } public void setEnablePositionPlots(boolean enablePositionPlots) { @@ -386,6 +391,13 @@ List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName); eventCount++; + + if (resetPeriod > 0 && eventCount > resetPeriod) { //reset occupancy numbers after resetPeriod events + eventCount = 1; + for (HpsSiSensor sensor : sensors) { + occupancyMap.put(sensor.getName(), new int[640]); + } + } // Increment strip hit count. for (RawTrackerHit rawHit : rawHits) { @@ -455,33 +467,33 @@ // 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()) { + for (HpsSiSensor sensor : sensors) { + if (sensor.isTopLayer() && sensor.isAxial()) { if (sensor.getSide() == sensor.ELECTRON_SIDE) { - System.out.println("% Top Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[1]); + System.out.println("% Top Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[1]); topActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[1]; } else { - System.out.println("% Top Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[638]); + System.out.println("% Top Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[638]); topActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[638]; } } else if (sensor.isBottomLayer() && sensor.isAxial()) { if (sensor.getSide() == sensor.ELECTRON_SIDE) { - System.out.println("% Bottom Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[1]); + System.out.println("% Bottom Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[1]); bottomActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[1]; } else { - System.out.println("% Bottom Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[638]); + System.out.println("% Bottom Layer " + this.getLayerNumber(sensor) + " Hit Counts: " + occupancyMap.get(sensor.getName())[638]); bottomActiveEdgeStripOccupancy[this.getLayerNumber(sensor) - 1] += occupancyMap.get(sensor.getName())[638]; } } } for (int layerN = 0; layerN < 6; layerN++) { - double topStripOccupancy = (double) topActiveEdgeStripOccupancy[layerN] / (double) eventCount; - topStripOccupancy /= this.timeWindowWeight; - System.out.println("% Top Layer " + (layerN+1) + ": Occupancy in " + (24/this.timeWindowWeight) + " ns window: " + topStripOccupancy); - double botStripOccupancy = (double) bottomActiveEdgeStripOccupancy[layerN] / (double) eventCount; - botStripOccupancy /= this.timeWindowWeight; - System.out.println("% Bottom Layer " + (layerN+1) + ": Occupancy in " + (24/this.timeWindowWeight) + " ns window: " + botStripOccupancy); + double topStripOccupancy = (double) topActiveEdgeStripOccupancy[layerN] / (double) eventCount; + topStripOccupancy /= this.timeWindowWeight; + System.out.println("% Top Layer " + (layerN + 1) + ": Occupancy in " + (24 / this.timeWindowWeight) + " ns window: " + topStripOccupancy); + double botStripOccupancy = (double) bottomActiveEdgeStripOccupancy[layerN] / (double) eventCount; + botStripOccupancy /= this.timeWindowWeight; + System.out.println("% Bottom Layer " + (layerN + 1) + ": Occupancy in " + (24 / this.timeWindowWeight) + " ns window: " + botStripOccupancy); } System.out.println("%===============================================================================%"); System.out.println("%===============================================================================%"); Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim (original) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SvtOnlineMonitoring.lcsim Sun May 10 22:45:06 2015 @@ -6,8 +6,8 @@ <lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd"> <execute> <driver name="SvtHitPlots" /> - <driver name="SamplesPlots" /> - <driver name="PedestalPlots" /> + <!--<driver name="SamplesPlots" /> + <driver name="PedestalPlots" />--> <driver name="SensorOccupancy" /> <driver name="RawTrackerHitFitterDriver" /> <driver name="TrackerHitDriver" /> @@ -21,6 +21,7 @@ <enableMaxSamplePlots>true</enableMaxSamplePlots> <maxSamplePosition>4</maxSamplePosition> <timeWindowWeight>3</timeWindowWeight> + <resetPeriod>50000</resetPeriod> </driver> <driver name="SvtHitPlots" type="org.hps.monitoring.drivers.svt.SvtHitPlots" /> <driver name="SamplesPlots" type="org.hps.monitoring.drivers.svt.SamplesPlots" /> @@ -37,6 +38,7 @@ <debug>false</debug> </driver> <driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver"> + <neighborDeltaT>8.0</neighborDeltaT> <debug>false</debug> </driver> <driver name="ClusterPlots" type="org.hps.monitoring.drivers.svt.SvtClusterPlots" />