Author: [log in to unmask] Date: Mon Apr 27 14:58:21 2015 New Revision: 2826 Log: Add max sample 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 Mon Apr 27 14:58:21 2015 @@ -14,8 +14,7 @@ import hep.aida.IPlotterStyle; import hep.aida.ITree; import hep.aida.ref.rootwriter.RootFileStore; -import hep.aida.jfree.plotter.Plotter; -import hep.aida.jfree.plotter.PlotterRegion; + import hep.physics.vec.Hep3Vector; import org.lcsim.detector.tracker.silicon.HpsSiSensor; @@ -43,13 +42,14 @@ private static ITree tree = null; private IAnalysisFactory analysisFactory = IAnalysisFactory.create(); private IPlotterFactory plotterFactory = analysisFactory.createPlotterFactory(); - private IHistogramFactory histogramFactory; + private IHistogramFactory histogramFactory = null; // Histogram maps - static protected Map<String, IPlotter> plotters = new HashMap<String, IPlotter>(); - static protected Map<String, IHistogram1D> occupancyPlots = new HashMap<String, IHistogram1D>(); - static protected Map<String, IHistogram1D> positionPlots = new HashMap<String, IHistogram1D>(); - static protected Map<String, int[]> occupancyMap = new HashMap<String, int[]>(); + static private Map<String, IPlotter> plotters = new HashMap<String, IPlotter>(); + static private Map<String, IHistogram1D> occupancyPlots = new HashMap<String, IHistogram1D>(); + static private Map<String, IHistogram1D> positionPlots = new HashMap<String, IHistogram1D>(); + static private Map<String, int[]> occupancyMap = new HashMap<String, int[]>(); + static private Map<String, IHistogram1D> maxSamplePositionPlots = new HashMap<String, IHistogram1D>(); private List<HpsSiSensor> sensors; private Map<HpsSiSensor, Map<Integer, Hep3Vector>> stripPositions = new HashMap<HpsSiSensor, Map<Integer, Hep3Vector>>(); @@ -66,6 +66,7 @@ private int runNumber = -1; private boolean enablePositionPlots = false; + private boolean enableMaxSamplePlots = false; public SensorOccupancyPlotsDriver() { } @@ -80,6 +81,10 @@ public void setEnablePositionPlots(boolean enablePositionPlots) { this.enablePositionPlots = enablePositionPlots; + } + + public void setEnableMaxSamplePlots(boolean enableMaxSamplePlots) { + this.enableMaxSamplePlots = enableMaxSamplePlots; } public void setMaxSamplePosition(int maxSamplePosition) { @@ -184,10 +189,10 @@ // Set the style of the data style.dataStyle().lineStyle().setVisible(false); - style.dataStyle().outlineStyle().setVisible(true); + style.dataStyle().outlineStyle().setVisible(false); style.dataStyle().outlineStyle().setThickness(3); style.dataStyle().fillStyle().setVisible(true); - style.dataStyle().fillStyle().setOpacity(.10); + style.dataStyle().fillStyle().setOpacity(.30); if (sensor.isTopLayer()) { style.dataStyle().fillStyle().setColor("31, 137, 229, 1"); style.dataStyle().outlineStyle().setColor("31, 137, 229, 1"); @@ -200,8 +205,8 @@ // Turn off the legend style.legendBoxStyle().setVisible(false); - style.regionBoxStyle().backgroundStyle().setOpacity(.10); - if (sensor.isAxial()) style.regionBoxStyle().backgroundStyle().setColor("229, 114, 31, 1"); + style.regionBoxStyle().backgroundStyle().setOpacity(.20); + if (sensor.isAxial()) style.regionBoxStyle().backgroundStyle().setColor("246, 246, 34, 1"); return style; } @@ -220,7 +225,14 @@ // Clear the occupancy plots. occupancyPlots.get(sensor.getName()).reset(); - positionPlots.get(sensor.getName()).reset(); + + if (enablePositionPlots) { + positionPlots.get(sensor.getName()).reset(); + } + + if (enableMaxSamplePlots) { + maxSamplePositionPlots.get(sensor.getName()).reset(); + } // Reset the hit counters. occupancyMap.put(sensor.getName(), new int[640]); @@ -259,6 +271,11 @@ if (enablePositionPlots) { plotters.put("Occupancy vs Position", plotterFactory.create("Occupancy vs Position")); plotters.get("Occupancy vs Position").createRegions(6, 6); + } + + if (enableMaxSamplePlots) { + plotters.put("Max Sample Number", plotterFactory.create("Max Sample Number")); + plotters.get("Max Sample Number").createRegions(6, 6); } for (HpsSiSensor sensor : sensors) { @@ -279,10 +296,15 @@ .plot(positionPlots.get(sensor.getName()), this.createOccupancyPlotStyle("Distance from Beam [mm]", sensor)); } occupancyMap.put(sensor.getName(), new int[640]); - } - - System.out.println("Size of occupancyPlots map: " + occupancyPlots.size()); - + + if (enableMaxSamplePlots) { + maxSamplePositionPlots.put(sensor.getName(), histogramFactory.createHistogram1D(sensor.getName() + " - Max Sample Number", 6, 0, 6)); + plotters.get("Max Sample Number").region(this.computePlotterRegion(sensor)) + .plot(maxSamplePositionPlots.get(sensor.getName()), + this.createOccupancyPlotStyle("Max Sample Number", sensor)); + } + } + for (IPlotter plotter : plotters.values()) { /*for (int regionN = 0; regionN < 36; regionN++) { PlotterRegion region = ((PlotterRegion) ((Plotter) plotter).region(regionN)); @@ -325,6 +347,10 @@ if (maxSamplePosition == -1 || maxSamplePosition == maxSamplePositionFound) { occupancyMap.get(((HpsSiSensor) rawHit.getDetectorElement()).getName())[rawHit.getIdentifierFieldValue("strip")]++; + } + + if (enableMaxSamplePlots) { + maxSamplePositionPlots.get(((HpsSiSensor) rawHit.getDetectorElement()).getName()).fill(maxSamplePositionFound); } }