Print

Print


Author: [log in to unmask]
Date: Tue Mar 31 14:36:51 2015
New Revision: 2637

Log:
Add a plot of the maximum sample number in a sample set.

Modified:
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtTimingInPlots.java

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtTimingInPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtTimingInPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SvtTimingInPlots.java	Tue Mar 31 14:36:51 2015
@@ -37,159 +37,183 @@
         hep.aida.jfree.AnalysisFactory.register();
     } 
     
-	static IHistogramFactory histogramFactory = IAnalysisFactory.create().createHistogramFactory(null);
-	IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
-	protected Map<String, IPlotter> plotters = new HashMap<String, IPlotter>(); 
-	protected Map<SiSensor, IHistogram1D> t0Plots = new HashMap<SiSensor, IHistogram1D>(); 
-	protected Map<SiSensor, IHistogram1D> amplitudePlots = new HashMap<SiSensor, IHistogram1D>(); 
-	protected Map<SiSensor, IHistogram1D> chi2Plots = new HashMap<SiSensor, IHistogram1D>(); 
-	protected Map<SiSensor, IHistogram2D> t0vAmpPlots = new HashMap<SiSensor, IHistogram2D>(); 
-	protected Map<SiSensor, IHistogram2D> t0vChi2Plots = new HashMap<SiSensor, IHistogram2D>(); 
-	protected Map<SiSensor, IHistogram2D> chi2vAmpPlots = new HashMap<SiSensor, IHistogram2D>(); 
-	
-	IPlotterStyle style = null; 
-	
-	
+    static IHistogramFactory histogramFactory = IAnalysisFactory.create().createHistogramFactory(null);
+    IPlotterFactory plotterFactory = IAnalysisFactory.create().createPlotterFactory();
+    protected Map<String, IPlotter> plotters = new HashMap<String, IPlotter>(); 
+    protected Map<SiSensor, IHistogram1D> t0Plots = new HashMap<SiSensor, IHistogram1D>(); 
+    protected Map<SiSensor, IHistogram1D> amplitudePlots = new HashMap<SiSensor, IHistogram1D>(); 
+    protected Map<SiSensor, IHistogram1D> chi2Plots = new HashMap<SiSensor, IHistogram1D>(); 
+    protected Map<SiSensor, IHistogram1D> maxSampleNumberPlots = new HashMap<SiSensor, IHistogram1D>(); 
+    protected Map<SiSensor, IHistogram2D> t0vAmpPlots = new HashMap<SiSensor, IHistogram2D>(); 
+    protected Map<SiSensor, IHistogram2D> t0vChi2Plots = new HashMap<SiSensor, IHistogram2D>(); 
+    protected Map<SiSensor, IHistogram2D> chi2vAmpPlots = new HashMap<SiSensor, IHistogram2D>(); 
+    
+    IPlotterStyle style = null; 
+    
+    
     private int computePlotterRegion(HpsSiSensor sensor) {
 
-		if (sensor.getLayerNumber() < 7) {
-		    if (sensor.isTopLayer()) {
-		        return 2*(sensor.getLayerNumber() - 1); 
-			} else { 
-				return 2*(sensor.getLayerNumber() - 1) + 1;
-			}
-		} else { 
-		
-			if (sensor.isTopLayer()) {
-				if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
-					return 4*(sensor.getLayerNumber() - 7);
-				} else { 
-					return 4*(sensor.getLayerNumber() - 7) + 1;
-				}
-			} else if (sensor.isBottomLayer()) {
-				if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
-					return 4*(sensor.getLayerNumber() - 7) + 2;
-				} else {
-					return 4*(sensor.getLayerNumber() - 7) + 3;
-				}
-				}
-		}
-		
-		return -1; 
+        if (sensor.getLayerNumber() < 7) {
+            if (sensor.isTopLayer()) {
+                return 2*(sensor.getLayerNumber() - 1); 
+            } else { 
+                return 2*(sensor.getLayerNumber() - 1) + 1;
+            }
+        } else { 
+        
+            if (sensor.isTopLayer()) {
+                if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
+                    return 4*(sensor.getLayerNumber() - 7);
+                } else { 
+                    return 4*(sensor.getLayerNumber() - 7) + 1;
+                }
+            } else if (sensor.isBottomLayer()) {
+                if (sensor.getSide() == HpsSiSensor.POSITRON_SIDE) {
+                    return 4*(sensor.getLayerNumber() - 7) + 2;
+                } else {
+                    return 4*(sensor.getLayerNumber() - 7) + 3;
+                }
+                }
+        }
+        
+        return -1; 
     }
-	
-	protected void detectorChanged(Detector detector) {
-	  
-		List<HpsSiSensor> sensors 
-			= detector.getSubdetector("Tracker").getDetectorElement().findDescendants(HpsSiSensor.class);
-	
-		plotters.put("L1-L3 t0", plotterFactory.create("L1-L3 t0"));
-		plotters.get("L1-L3 t0").createRegions(6,2);
-
-		plotters.put("L4-L6 t0", plotterFactory.create("L4-L6 t0"));
-		plotters.get("L4-L6 t0").createRegions(6,4);
-		
-		plotters.put("L1-L3 Amplitude", plotterFactory.create("L1-L3 Amplitude"));
-		plotters.get("L1-L3 Amplitude").createRegions(6,2);
-
-		plotters.put("L4-L6 Amplitude", plotterFactory.create("L4-L6 Amplitude"));
-		plotters.get("L4-L6 Amplitude").createRegions(6,4);
-		
-		plotters.put("L1-L3 Chi^2 Probability", plotterFactory.create("L1-L3 Chi^2 Probability"));
-		plotters.get("L1-L3 Chi^2 Probability").createRegions(6,2);
-
-		plotters.put("L4-L6 Chi^2 Probability", plotterFactory.create("L1-L3 Chi^2 Probability"));
-		plotters.get("L4-L6 Chi^2 Probability").createRegions(6,4);
-	
-		plotters.put("L1-L3 t0 vs Amplitude", plotterFactory.create("L1-L3 t0 vs Amplitude"));
-		plotters.get("L1-L3 t0 vs Amplitude").createRegions(6, 2);
-		
-		plotters.put("L4-L6 t0 vs Amplitude", plotterFactory.create("L4-L6 t0 vs Amplitude"));
-		plotters.get("L4-L6 t0 vs Amplitude").createRegions(6, 4);
-
-		plotters.put("L1-L3 t0 vs Chi^2 Prob.", plotterFactory.create("L1-L3 t0 vs Chi^2 Prob."));
-		plotters.get("L1-L3 t0 vs Chi^2 Prob.").createRegions(6, 2);
-		
-		plotters.put("L4-L6 t0 vs Chi^2 Prob.", plotterFactory.create("L4-L6 t0 vs Chi^2 Prob."));
-		plotters.get("L4-L6 t0 vs Chi^2 Prob.").createRegions(6, 4);
-
-		plotters.put("L1-L3 Chi^2 Prob. vs Amplitude", plotterFactory.create("L1-L3 Chi^2 Prob. vs Amplitude"));
-		plotters.get("L1-L3 Chi^2 Prob. vs Amplitude").createRegions(6, 2);
-		
-		plotters.put("L4-L6 Chi^2 Prob. vs Amplitude", plotterFactory.create("L4-L6 Chi^2 Prob. vs Amplitude"));
-		plotters.get("L4-L6 Chi^2 Prob. vs Amplitude").createRegions(6, 4);
-
-		for (HpsSiSensor sensor : sensors) {
-
-			t0Plots.put(sensor,histogramFactory.createHistogram1D(sensor.getName() + " - t0",75, -50, 100.0));
-			amplitudePlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Amplitude", 200, 0, 2000));
-			chi2Plots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Chi^2 Probability", 20, 0, 1));
-			t0vAmpPlots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - t0 v Amplitude", 75, -50, 100.0, 200, 0, 2000));
-			t0vChi2Plots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - t0 v Chi^2 Probability", 75, -50, 100.0, 20, 0, 1));
-			chi2vAmpPlots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - Chi2 v Amplitude", 20, 0, 1, 200, 0, 2000));
-			
-			if (sensor.getLayerNumber() < 7) {
-			    plotters.get("L1-L3 t0").region(this.computePlotterRegion(sensor))
-			                            .plot(t0Plots.get(sensor));
-			    plotters.get("L1-L3 Amplitude").region(this.computePlotterRegion(sensor))
-			                                   .plot(amplitudePlots.get(sensor));
-			    plotters.get("L1-L3 Chi^2 Probability").region(this.computePlotterRegion(sensor))
-			                                   .plot(chi2Plots.get(sensor));
-			    plotters.get("L1-L3 t0 vs Amplitude").region(this.computePlotterRegion(sensor))
-			                                         .plot(t0vAmpPlots.get(sensor));
-			    plotters.get("L1-L3 t0 vs Chi^2 Prob.").region(this.computePlotterRegion(sensor))
-			                                         .plot(t0vChi2Plots.get(sensor));
-			    plotters.get("L1-L3 Chi^2 Prob. vs Amplitude").region(this.computePlotterRegion(sensor))
-			                                         .plot(chi2vAmpPlots.get(sensor));
-			    
-			} else {
-				plotters.get("L4-L6 t0").region(this.computePlotterRegion(sensor))
-				                        .plot(t0Plots.get(sensor));
-			    plotters.get("L4-L6 Amplitude").region(this.computePlotterRegion(sensor))
-			                                   .plot(amplitudePlots.get(sensor));
-			    plotters.get("L4-L6 Chi^2 Probability").region(this.computePlotterRegion(sensor))
-			                                   .plot(chi2Plots.get(sensor));
-			    plotters.get("L4-L6 t0 vs Amplitude").region(this.computePlotterRegion(sensor))
-			                                         .plot(t0vAmpPlots.get(sensor));
-			    plotters.get("L4-L6 t0 vs Chi^2 Prob.").region(this.computePlotterRegion(sensor))
-			                                         .plot(t0vChi2Plots.get(sensor));
-			    plotters.get("L4-L6 Chi^2 Prob. vs Amplitude").region(this.computePlotterRegion(sensor))
-			                                         .plot(chi2vAmpPlots.get(sensor));
-			}
-		}
-		
-		for (IPlotter plotter : plotters.values()) { 
-			plotter.show();
-		}
-	}
-	
-	public void process(EventHeader event) { 
-		
-		if (!event.hasCollection(LCRelation.class, "SVTFittedRawTrackerHits"))
-			return;
-		
-		List<LCRelation> fittedHits = event.get(LCRelation.class, "SVTFittedRawTrackerHits");
-		
-		for (LCRelation fittedHit : fittedHits) { 
-			
-		    RawTrackerHit rawHit = (RawTrackerHit) fittedHit.getFrom();
-		    
-			HpsSiSensor sensor 
-				= (HpsSiSensor) rawHit.getDetectorElement();
-			
-			double t0 = FittedRawTrackerHit.getT0(fittedHit);
-			t0Plots.get(sensor).fill(t0);
-			
-			double amplitude = FittedRawTrackerHit.getAmp(fittedHit);
-			amplitudePlots.get(sensor).fill(amplitude);
-			
-			double chi2Prob = ShapeFitParameters.getChiProb(FittedRawTrackerHit.getShapeFitParameters(fittedHit));
-			chi2Plots.get(sensor).fill(chi2Prob);
-	
-			t0vAmpPlots.get(sensor).fill(t0, amplitude);
-			t0vChi2Plots.get(sensor).fill(t0, chi2Prob);
-			chi2vAmpPlots.get(sensor).fill(chi2Prob, amplitude);
-			
-		}	
-	}
+    
+    protected void detectorChanged(Detector detector) {
+      
+        List<HpsSiSensor> sensors 
+            = detector.getSubdetector("Tracker").getDetectorElement().findDescendants(HpsSiSensor.class);
+    
+        plotters.put("L1-L3 t0", plotterFactory.create("L1-L3 t0"));
+        plotters.get("L1-L3 t0").createRegions(6,2);
+
+        plotters.put("L4-L6 t0", plotterFactory.create("L4-L6 t0"));
+        plotters.get("L4-L6 t0").createRegions(6,4);
+        
+        plotters.put("L1-L3 Amplitude", plotterFactory.create("L1-L3 Amplitude"));
+        plotters.get("L1-L3 Amplitude").createRegions(6,2);
+
+        plotters.put("L4-L6 Amplitude", plotterFactory.create("L4-L6 Amplitude"));
+        plotters.get("L4-L6 Amplitude").createRegions(6,4);
+        
+        plotters.put("L1-L3 Chi^2 Probability", plotterFactory.create("L1-L3 Chi^2 Probability"));
+        plotters.get("L1-L3 Chi^2 Probability").createRegions(6,2);
+
+        plotters.put("L4-L6 Chi^2 Probability", plotterFactory.create("L1-L3 Chi^2 Probability"));
+        plotters.get("L4-L6 Chi^2 Probability").createRegions(6,4);
+        
+        plotters.put("L1-L3 Max Sample Number", plotterFactory.create("L1-L3 Max Sample Number"));
+        plotters.get("L1-L3 Max Sample Number").createRegions(6,2);
+
+        plotters.put("L4-L6 Max Sample Number", plotterFactory.create("L4-L6 Max Sample Number"));
+        plotters.get("L4-L6 Max Sample Number").createRegions(6,4);
+    
+        plotters.put("L1-L3 t0 vs Amplitude", plotterFactory.create("L1-L3 t0 vs Amplitude"));
+        plotters.get("L1-L3 t0 vs Amplitude").createRegions(6, 2);
+        
+        plotters.put("L4-L6 t0 vs Amplitude", plotterFactory.create("L4-L6 t0 vs Amplitude"));
+        plotters.get("L4-L6 t0 vs Amplitude").createRegions(6, 4);
+
+        plotters.put("L1-L3 t0 vs Chi^2 Prob.", plotterFactory.create("L1-L3 t0 vs Chi^2 Prob."));
+        plotters.get("L1-L3 t0 vs Chi^2 Prob.").createRegions(6, 2);
+        
+        plotters.put("L4-L6 t0 vs Chi^2 Prob.", plotterFactory.create("L4-L6 t0 vs Chi^2 Prob."));
+        plotters.get("L4-L6 t0 vs Chi^2 Prob.").createRegions(6, 4);
+
+        plotters.put("L1-L3 Chi^2 Prob. vs Amplitude", plotterFactory.create("L1-L3 Chi^2 Prob. vs Amplitude"));
+        plotters.get("L1-L3 Chi^2 Prob. vs Amplitude").createRegions(6, 2);
+        
+        plotters.put("L4-L6 Chi^2 Prob. vs Amplitude", plotterFactory.create("L4-L6 Chi^2 Prob. vs Amplitude"));
+        plotters.get("L4-L6 Chi^2 Prob. vs Amplitude").createRegions(6, 4);
+
+        for (HpsSiSensor sensor : sensors) {
+
+            t0Plots.put(sensor,histogramFactory.createHistogram1D(sensor.getName() + " - t0",75, -50, 100.0));
+            amplitudePlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Amplitude", 200, 0, 2000));
+            chi2Plots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Chi^2 Probability", 20, 0, 1));
+            t0vAmpPlots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - t0 v Amplitude", 75, -50, 100.0, 200, 0, 2000));
+            t0vChi2Plots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - t0 v Chi^2 Probability", 75, -50, 100.0, 20, 0, 1));
+            chi2vAmpPlots.put(sensor, histogramFactory.createHistogram2D(sensor.getName() + " - Chi2 v Amplitude", 20, 0, 1, 200, 0, 2000));
+            maxSampleNumberPlots.put(sensor, histogramFactory.createHistogram1D(sensor.getName() + " - Max Sample Number", 6, 0, 6));
+            
+            if (sensor.getLayerNumber() < 7) {
+                plotters.get("L1-L3 t0").region(this.computePlotterRegion(sensor))
+                                        .plot(t0Plots.get(sensor));
+                plotters.get("L1-L3 Amplitude").region(this.computePlotterRegion(sensor))
+                                               .plot(amplitudePlots.get(sensor));
+                plotters.get("L1-L3 Chi^2 Probability").region(this.computePlotterRegion(sensor))
+                                               .plot(chi2Plots.get(sensor));
+                plotters.get("L1-L3 t0 vs Amplitude").region(this.computePlotterRegion(sensor))
+                                                     .plot(t0vAmpPlots.get(sensor));
+                plotters.get("L1-L3 t0 vs Chi^2 Prob.").region(this.computePlotterRegion(sensor))
+                                                     .plot(t0vChi2Plots.get(sensor));
+                plotters.get("L1-L3 Chi^2 Prob. vs Amplitude").region(this.computePlotterRegion(sensor))
+                                                     .plot(chi2vAmpPlots.get(sensor));
+               plotters.get("L1-L3 Max Sample Number").region(this.computePlotterRegion(sensor))
+                                                      .plot(maxSampleNumberPlots.get(sensor));
+            } else {
+                plotters.get("L4-L6 t0").region(this.computePlotterRegion(sensor))
+                                        .plot(t0Plots.get(sensor));
+                plotters.get("L4-L6 Amplitude").region(this.computePlotterRegion(sensor))
+                                               .plot(amplitudePlots.get(sensor));
+                plotters.get("L4-L6 Chi^2 Probability").region(this.computePlotterRegion(sensor))
+                                                       .plot(chi2Plots.get(sensor));
+                plotters.get("L4-L6 t0 vs Amplitude").region(this.computePlotterRegion(sensor))
+                                                     .plot(t0vAmpPlots.get(sensor));
+                plotters.get("L4-L6 t0 vs Chi^2 Prob.").region(this.computePlotterRegion(sensor))
+                                                       .plot(t0vChi2Plots.get(sensor));
+                plotters.get("L4-L6 Chi^2 Prob. vs Amplitude").region(this.computePlotterRegion(sensor))
+                                                              .plot(chi2vAmpPlots.get(sensor));
+                plotters.get("L4-L6 Max Sample Number").region(this.computePlotterRegion(sensor))
+                                                       .plot(maxSampleNumberPlots.get(sensor));
+            }
+        }
+        
+        for (IPlotter plotter : plotters.values()) { 
+            plotter.show();
+        }
+    }
+    
+    public void process(EventHeader event) { 
+        
+        if (!event.hasCollection(LCRelation.class, "SVTFittedRawTrackerHits"))
+            return;
+        
+        List<LCRelation> fittedHits = event.get(LCRelation.class, "SVTFittedRawTrackerHits");
+        
+        for (LCRelation fittedHit : fittedHits) { 
+            
+            RawTrackerHit rawHit = (RawTrackerHit) fittedHit.getFrom();
+            
+            HpsSiSensor sensor 
+                = (HpsSiSensor) rawHit.getDetectorElement();
+    
+            
+            short[] adcValues = rawHit.getADCValues();
+           
+            int maxAmplitude = 0;
+            int maxSampleNumber = -1;
+            for (int sampleN = 0; sampleN < 6; sampleN++) { 
+                if (adcValues[sampleN] > maxAmplitude) { 
+                    maxAmplitude = adcValues[sampleN];
+                    maxSampleNumber = sampleN; 
+                }
+            }
+            maxSampleNumberPlots.get(sensor).fill(maxSampleNumber);
+            
+            double t0 = FittedRawTrackerHit.getT0(fittedHit);
+            t0Plots.get(sensor).fill(t0);
+            
+            double amplitude = FittedRawTrackerHit.getAmp(fittedHit);
+            amplitudePlots.get(sensor).fill(amplitude);
+            
+            double chi2Prob = ShapeFitParameters.getChiProb(FittedRawTrackerHit.getShapeFitParameters(fittedHit));
+            chi2Plots.get(sensor).fill(chi2Prob);
+    
+            t0vAmpPlots.get(sensor).fill(t0, amplitude);
+            t0vChi2Plots.get(sensor).fill(t0, chi2Prob);
+            chi2vAmpPlots.get(sensor).fill(chi2Prob, amplitude);
+            
+        }   
+    }
 }