Author: [log in to unmask] Date: Tue Feb 24 08:13:16 2015 New Revision: 2179 Log: adding new debug plots. Added: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java Added: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java (added) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java Tue Feb 24 08:13:16 2015 @@ -0,0 +1,102 @@ +package org.hps.monitoring.drivers.svt; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import hep.aida.IAnalysisFactory; +import hep.aida.IHistogram1D; +import hep.aida.IPlotter; +import hep.aida.IPlotterStyle; + +import org.lcsim.event.EventHeader; +import org.lcsim.event.Track; +import org.lcsim.geometry.Detector; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; + +public class GblTrackingReconstructionPlots extends Driver { + private Logger logger = getLogger(); + private AIDA aida = AIDA.defaultInstance(); + private String outputPlots = null; + private final String trackCollectionName = "MatchedTracks"; + private final String gblTrackCollectionName = "GblTracks"; + IHistogram1D nTracks; + IHistogram1D nTracksGbl; + IHistogram1D nTracksDiff; + IPlotter plotter1; + + + public GblTrackingReconstructionPlots() { + // TODO Auto-generated constructor stub + logger.setLevel(Level.WARNING); + } + + public void setOutputPlots(String output) { + this.outputPlots = output; + } + + protected void detectorChanged(Detector detector) { + aida.tree().cd("/"); + IAnalysisFactory fac = aida.analysisFactory(); + + nTracks = aida.histogram1D("Seed tracks per event", 3, 0, 3); + nTracksGbl = aida.histogram1D("Gbl tracks per event", 3, 0, 3); + nTracksDiff = aida.histogram1D("Tracks per event Seed-Gbl", 6, -3, 3); + plotter1 = fac.createPlotterFactory().create("Number of tracks per event"); + plotter1.setTitle("Other"); + //plotterFrame.addPlotter(plotter222); + IPlotterStyle style1 = plotter1.style(); + style1.dataStyle().fillStyle().setColor("yellow"); + style1.dataStyle().errorBarStyle().setVisible(false); + plotter1.createRegions(3, 1); + plotter1.region(0).plot(nTracks); + plotter1.region(1).plot(nTracksGbl); + plotter1.region(2).plot(nTracksDiff); + plotter1.show(); + + + } + + protected void process(EventHeader event) { + + List<Track> tracks; + if(event.hasCollection(Track.class, trackCollectionName)) { + tracks = event.get(Track.class, trackCollectionName); + } else { + logger.warning("no seed track collection"); + tracks = new ArrayList<Track>(); + } + List<Track> gblTracks; + if(event.hasCollection(Track.class, gblTrackCollectionName)) { + gblTracks = event.get(Track.class, gblTrackCollectionName); + } else { + logger.warning("no gbl track collection"); + gblTracks = new ArrayList<Track>(); + } + nTracks.fill(tracks.size()); + nTracksGbl.fill(gblTracks.size()); + nTracksDiff.fill(tracks.size()-gblTracks.size()); + + + } + + + public void endOfData() { + if (outputPlots != null) { + try { + aida.saveAs(outputPlots); + } catch (IOException ex) { + logger.log(Level.SEVERE,"aid problem saving file",ex); + } + } + //plotterFrame.dispose(); + //topFrame.dispose(); + //bottomFrame.dispose(); + } + + + +}