Author: [log in to unmask] Date: Mon Feb 15 09:31:03 2016 New Revision: 4224 Log: (empty) Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtClusterPlots.java Mon Feb 15 09:31:03 2016 @@ -56,11 +56,15 @@ private static Map<String, IHistogram1D> singleHitClusterChargePlots = new HashMap<String, IHistogram1D>(); private static Map<String, IHistogram1D> clusterTimePlots = new HashMap<String, IHistogram1D>(); private static Map<String, IHistogram2D> hitTimeTrigTimePlots = new HashMap<String, IHistogram2D>(); - private static IHistogram1D[] hitTimeTrigTimePlots1D = new IHistogram1D[6]; + private static IHistogram1D[][] hitTimeTrigTimePlots1D = new IHistogram1D[6][2]; + private static IHistogram2D[][] hitTimeTrigTimePlots2D = new IHistogram2D[6][2]; + + private static final int TOP = 0; + private static final int BOTTOM = 1; private List<HpsSiSensor> sensors; - private Map<RawTrackerHit, FittedRawTrackerHit> fittedRawTrackerHitMap - = new HashMap<RawTrackerHit, FittedRawTrackerHit>(); +// private Map<RawTrackerHit, FittedRawTrackerHit> fittedRawTrackerHitMap +// = new HashMap<RawTrackerHit, FittedRawTrackerHit>(); // Detector name private static final String SUBDETECTOR_NAME = "Tracker"; @@ -85,20 +89,17 @@ } else { return 6 * (sensor.getLayerNumber() - 1) + 1; } - } else { - - if (sensor.isTopLayer()) { - if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) { - return 6 * (sensor.getLayerNumber() - 7) + 2; - } else { - return 6 * (sensor.getLayerNumber() - 7) + 3; - } - } else if (sensor.isBottomLayer()) { - if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) { - return 6 * (sensor.getLayerNumber() - 7) + 4; - } else { - return 6 * (sensor.getLayerNumber() - 7) + 5; - } + } else if (sensor.isTopLayer()) { + if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) { + return 6 * (sensor.getLayerNumber() - 7) + 2; + } else { + return 6 * (sensor.getLayerNumber() - 7) + 3; + } + } else if (sensor.isBottomLayer()) { + if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) { + return 6 * (sensor.getLayerNumber() - 7) + 4; + } else { + return 6 * (sensor.getLayerNumber() - 7) + 5; } } return -1; @@ -159,8 +160,7 @@ private void resetPlots() { // Clear the fitted raw hit map of old values - fittedRawTrackerHitMap.clear(); - +// fittedRawTrackerHitMap.clear(); // Since all plots are mapped to the name of a sensor, loop // through the sensors, get the corresponding plots and clear them. for (HpsSiSensor sensor : sensors) { @@ -172,34 +172,40 @@ for (IHistogram2D histogram : hitTimeTrigTimePlots.values()) { histogram.reset(); } - } - - /** - * Method that creates a map between a fitted raw hit and it's corresponding - * raw fit - * - * @param fittedHits : List of fitted hits to map - */ - private void mapFittedRawHits(List<FittedRawTrackerHit> fittedHits) { - - // Clear the fitted raw hit map of old values - fittedRawTrackerHitMap.clear(); - - // Loop through all fitted hits and map them to their corresponding raw hits - for (FittedRawTrackerHit fittedHit : fittedHits) { - fittedRawTrackerHitMap.put(fittedHit.getRawTrackerHit(), fittedHit); - } - } - - /** - * - * @param rawHit - * @return - */ - private FittedRawTrackerHit getFittedHit(RawTrackerHit rawHit) { - return fittedRawTrackerHitMap.get(rawHit); - } - + + for (int i = 0; i < 6; i++) { + for (int j = 0; j < 2; j++) { + hitTimeTrigTimePlots1D[i][j].reset(); + hitTimeTrigTimePlots2D[i][j].reset(); + } + } + } + +// /** +// * Method that creates a map between a fitted raw hit and it's corresponding +// * raw fit +// * +// * @param fittedHits : List of fitted hits to map +// */ +// private void mapFittedRawHits(List<FittedRawTrackerHit> fittedHits) { +// +// // Clear the fitted raw hit map of old values +// fittedRawTrackerHitMap.clear(); +// +// // Loop through all fitted hits and map them to their corresponding raw hits +// for (FittedRawTrackerHit fittedHit : fittedHits) { +// fittedRawTrackerHitMap.put(fittedHit.getRawTrackerHit(), fittedHit); +// } +// } +// +// /** +// * +// * @param rawHit +// * @return +// */ +// private FittedRawTrackerHit getFittedHit(RawTrackerHit rawHit) { +// return fittedRawTrackerHitMap.get(rawHit); +// } protected void detectorChanged(Detector detector) { // Get the HpsSiSensor objects from the geometry @@ -237,7 +243,7 @@ .plot(singleHitClusterChargePlots.get(sensor.getName()), this.createStyle(null, "Cluster Amplitude [ADC Counts]", "")); clusterTimePlots.put(sensor.getName(), - histogramFactory.createHistogram1D(sensor.getName() + " - Cluster Time", 100, -50, 50)); + histogramFactory.createHistogram1D(sensor.getName() + " - Cluster Time", 100, -75, 50)); plotters.get("Cluster Time").region(this.computePlotterRegion(sensor)) .plot(clusterTimePlots.get(sensor.getName()), this.createStyle(null, "Cluster Time [ns]", "")); } @@ -246,18 +252,25 @@ plotters.get("SVT-trigger timing top-bottom").createRegions(1, 2); hitTimeTrigTimePlots.put("Top", - histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24)); + histogramFactory.createHistogram2D("Top Cluster Time vs. Trigger Phase", 100, -75, 50, 6, 0, 24)); plotters.get("SVT-trigger timing top-bottom").region(0).plot(hitTimeTrigTimePlots.get("Top"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]")); hitTimeTrigTimePlots.put("Bottom", - histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -50, 50, 6, 0, 24)); + histogramFactory.createHistogram2D("Bottom Cluster Time vs. Trigger Phase", 100, -75, 50, 6, 0, 24)); plotters.get("SVT-trigger timing top-bottom").region(1).plot(hitTimeTrigTimePlots.get("Bottom"), this.createStyle(null, "Cluster Time [ns]", "Trigger Phase[ns]")); plotters.put("SVT-trigger timing by phase", plotterFactory.create("SVT-trigger timing by phase")); - plotters.get("SVT-trigger timing by phase").createRegions(1, 6); + plotters.get("SVT-trigger timing by phase").createRegions(2, 6); + + plotters.put("SVT-trigger timing and amplitude by phase", plotterFactory.create("SVT-trigger timing and amplitude by phase")); + plotters.get("SVT-trigger timing and amplitude by phase").createRegions(2, 6); for (int i = 0; i < 6; i++) { - hitTimeTrigTimePlots1D[i] = histogramFactory.createHistogram1D("Cluster Time for Phase " + i, 100, -50, 50); - plotters.get("SVT-trigger timing by phase").region(i).plot(hitTimeTrigTimePlots1D[i], this.createStyle(null, "Cluster Time [ns]", "")); + for (int j = 0; j < 2; j++) { + hitTimeTrigTimePlots1D[i][j] = histogramFactory.createHistogram1D(String.format("Cluster Time for Phase %d, %s", i, j == TOP ? "Top" : "Bottom"), 100, -75, 50); + plotters.get("SVT-trigger timing by phase").region(i + 6 * j).plot(hitTimeTrigTimePlots1D[i][j], this.createStyle(null, "Cluster Time [ns]", "")); + hitTimeTrigTimePlots2D[i][j] = histogramFactory.createHistogram2D(String.format("Cluster Amplitude vs. Time for Phase %d, %s", i, j == TOP ? "Top" : "Bottom"), 100, -75, 50, 100, 0, 5000.0); + plotters.get("SVT-trigger timing and amplitude by phase").region(i + 6 * j).plot(hitTimeTrigTimePlots2D[i][j], this.createStyle(null, "Cluster Time [ns]", "Cluster Amplitude [ADC Counts]")); + } } for (IPlotter plotter : plotters.values()) { @@ -278,17 +291,15 @@ runNumber = event.getRunNumber(); } - // If the event doesn't contain fitted raw hits, skip it - if (!event.hasCollection(FittedRawTrackerHit.class, fittedHitsCollectionName)) { - return; - } - - // Get the list of fitted hits from the event - List<FittedRawTrackerHit> fittedHits = event.get(FittedRawTrackerHit.class, fittedHitsCollectionName); - - // Map the fitted hits to their corresponding raw hits - this.mapFittedRawHits(fittedHits); - +// // If the event doesn't contain fitted raw hits, skip it +// if (!event.hasCollection(FittedRawTrackerHit.class, fittedHitsCollectionName)) { +// return; +// } +// Get the list of fitted hits from the event +// List<FittedRawTrackerHit> fittedHits = event.get(FittedRawTrackerHit.class, fittedHitsCollectionName); +// +// // Map the fitted hits to their corresponding raw hits +// this.mapFittedRawHits(fittedHits); // If the event doesn't contain any clusters, skip it if (!event.hasCollection(SiTrackerHitStrip1D.class, clusterCollectionName)) { return; @@ -319,10 +330,13 @@ } clusterTimePlots.get(sensor.getName()).fill(cluster.getTime()); - hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)].fill(cluster.getTime()); if (sensor.isTopLayer()) { + hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)][TOP].fill(cluster.getTime()); + hitTimeTrigTimePlots2D[(int) ((event.getTimeStamp() / 4) % 6)][TOP].fill(cluster.getTime(), cluster.getdEdx() / DopedSilicon.ENERGY_EHPAIR); hitTimeTrigTimePlots.get("Top").fill(cluster.getTime(), event.getTimeStamp() % 24); } else { + hitTimeTrigTimePlots1D[(int) ((event.getTimeStamp() / 4) % 6)][BOTTOM].fill(cluster.getTime()); + hitTimeTrigTimePlots2D[(int) ((event.getTimeStamp() / 4) % 6)][BOTTOM].fill(cluster.getTime(), cluster.getdEdx() / DopedSilicon.ENERGY_EHPAIR); hitTimeTrigTimePlots.get("Bottom").fill(cluster.getTime(), event.getTimeStamp() % 24); } }