Commit in hps-java/src/main on MAIN
java/org/lcsim/hps/users/meeg/EvioFileReader.java+19-61.6 -> 1.7
java/org/lcsim/hps/monitoring/EcalWindowPlots.java+179added 1.1
                             /AIDAFrame.java+57added 1.1
resources/org/lcsim/hps/steering/ECalWindowMonitoring.lcsim+23added 1.1
+278-6
3 added + 1 modified, total 4 files
made ECal window mode plots in a JFrame because stubborn

hps-java/src/main/java/org/lcsim/hps/users/meeg
EvioFileReader.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- EvioFileReader.java	9 Apr 2012 00:03:36 -0000	1.6
+++ EvioFileReader.java	25 Apr 2012 03:57:49 -0000	1.7
@@ -1,5 +1,6 @@
 package org.lcsim.hps.users.meeg;
 
+import java.io.FileInputStream;
 import java.io.InputStream;
 
 import org.freehep.record.loop.event.RecordSuppliedEvent;
@@ -22,18 +23,20 @@
 	private static final String defaultSteeringFile = "/org/lcsim/hps/steering/ecal_print.lcsim";
 	String steeringFile = defaultSteeringFile;
 	String detectorName = defaultDetectorName;
+	InputStream is = null;
 	private JobControlManager jobMgr;
 	boolean debug = false;
 	int ecalMode = EventConstants.ECAL_PULSE_INTEGRAL_MODE;
+	int delay = 0;
 
 	EvioFileReader() {
 	}
 
 	private static void usage() {
 		System.out.println("\nUsage: java Producer -e <evio file> [-s <steering file>] [-d <detector>]\n\n"
-				+ "       -s     steering file\n"
-				+ "       -m     ECal mode\n"
-				+ "       -d     detector name\n");
+			+ "       -s     steering file\n"
+			+ "       -m     ECal mode\n"
+			+ "       -d     detector name\n");
 		System.exit(1);
 	}
 
@@ -50,10 +53,13 @@
 					debug = true;
 				} else if (args[i].equalsIgnoreCase("-s")) {
 					steeringFile = new String(args[++i]);
+					is = new FileInputStream(steeringFile);
 				} else if (args[i].equalsIgnoreCase("-d")) {
 					detectorName = new String(args[++i]);
 				} else if (args[i].equalsIgnoreCase("-m")) {
 					ecalMode = Integer.parseInt(args[++i]);
+				} else if (args[i].equalsIgnoreCase("-w")) {
+					delay = Integer.parseInt(args[++i]);
 				} else {
 					usage();
 					return;
@@ -69,7 +75,9 @@
 			jobMgr = new JobControlManager();
 			//jobMgr.checkInputFiles(false);
 			jobMgr.setPerformDryRun(true);
-			InputStream is = this.getClass().getResourceAsStream(steeringFile);
+			if (is == null) {
+				is = this.getClass().getResourceAsStream(steeringFile);
+			}
 			jobMgr.setup(is);
 
 			// Make a DriverAdapter for wrapping event loop.
@@ -87,19 +95,24 @@
 			// Open EVIO reader.
 			reader = new EvioReader(evioFileName);
 
-			// Print number of events.
-			System.out.println("EVIO file opened with " + reader.getEventCount() + " events");
+//			// Print number of events.
+//			System.out.println("EVIO file opened with " + reader.getEventCount() + " events");
 
 			// Loop until event source is exhausted.
 			//int eventCount = 0;
 			EvioEvent event = reader.parseNextEvent();
 			while (event != null) {
+				if (event.getHeader().getTag() != EventConstants.EVENT_TAG) {
+					event = reader.parseNextEvent();
+					continue;
+				}
 				// Create LCSim event from EVIO data.
 				EventHeader lcsimEvent = eventBuilder.makeLCSimEvent(event);
 
 				// Supply record to Driver Adapter.
 				driverAdapter.recordSupplied(new RecordSuppliedEvent(new Object(), lcsimEvent));
 				event = reader.parseNextEvent();
+				Thread.currentThread().sleep(delay);
 			}
 			// Cleanup.
 			driverAdapter.finish(null);

hps-java/src/main/java/org/lcsim/hps/monitoring
EcalWindowPlots.java added at 1.1
diff -N EcalWindowPlots.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ EcalWindowPlots.java	25 Apr 2012 03:57:49 -0000	1.1
@@ -0,0 +1,179 @@
+package org.lcsim.hps.monitoring;
+
+import hep.aida.IHistogram1D;
+import hep.aida.IPlotter;
+import hep.aida.IPlotterStyle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import java.util.List;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.compact.Subdetector;
+import org.lcsim.hps.recon.ecal.HPSEcalDaqIDConverter;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+public class EcalWindowPlots extends Driver implements Resettable, ActionListener {
+
+	private String subdetectorName;
+	private String inputCollection;
+	private HPSEcalDaqIDConverter idMap;
+	private IPlotter plotter;
+	private AIDAFrame plotterFrame;
+	private AIDA aida;
+	private Detector detector;
+	private IHistogram1D windowPlot;
+	private int window = 10;
+	private JLabel crateLabel, slotLabel, channelLabel;
+	private JComboBox crateCombo;
+	private JComboBox slotCombo;
+	private JComboBox channelCombo;
+	private static final String[] crateList = {"all", "1", "2"};
+	private static final String[] slotList = {"all", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"};
+	private static final String[] channelList = {"all", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"};
+	private boolean testCrate = false;
+	private boolean testSlot = false;
+	private boolean testChannel = false;
+	private int plotCrate, plotSlot, plotChannel;
+
+	public EcalWindowPlots() {
+	}
+
+	public void setSubdetectorName(String subdetectorName) {
+		this.subdetectorName = subdetectorName;
+	}
+
+	public void setInputCollection(String inputCollection) {
+		this.inputCollection = inputCollection;
+	}
+
+	public void setWindow(int window) {
+		this.window = window;
+	}
+
+	public void detectorChanged(Detector detector) {
+
+		this.detector = detector;
+
+		if (subdetectorName == null) {
+			throw new RuntimeException("The subdetectorName parameter was not set.");
+		}
+
+		if (inputCollection == null) {
+			throw new RuntimeException("The inputCollection parameter was not set.");
+		}
+
+		Subdetector subdetector = detector.getSubdetector(subdetectorName);
+		idMap = new HPSEcalDaqIDConverter();
+		idMap.fillDaqCellMap(subdetector);
+
+		setupPlots();
+	}
+
+	private void setupPlots() {
+		if (plotterFrame != null) {
+			plotterFrame.dispose();
+		}
+
+		aida = AIDA.defaultInstance();
+		aida.tree().cd("/");
+		plotter = aida.analysisFactory().createPlotterFactory().create("HPS ECAL DAQ Plots");
+
+		plotterFrame = new AIDAFrame(plotter);
+		plotterFrame.setVisible(true);
+		IPlotterStyle pstyle = plotter.style();
+		pstyle.dataStyle().errorBarStyle().setVisible(false);
+		windowPlot = aida.histogram1D(detector.getDetectorName() + " : " + inputCollection + " : Hit Count", window, -0.5, window - 0.5);
+		plotter.region(0).plot(windowPlot);
+
+		crateCombo = new JComboBox(crateList);
+		crateCombo.addActionListener(this);
+		crateLabel = new JLabel("crate");
+		crateLabel.setLabelFor(crateCombo);
+		plotterFrame.getControlsPanel().add(crateLabel);
+		plotterFrame.getControlsPanel().add(crateCombo);
+		slotCombo = new JComboBox(slotList);
+		slotCombo.addActionListener(this);
+		slotLabel = new JLabel("slot");
+		slotLabel.setLabelFor(slotCombo);
+		plotterFrame.getControlsPanel().add(slotLabel);
+		plotterFrame.getControlsPanel().add(slotCombo);
+		channelCombo = new JComboBox(channelList);
+		channelCombo.addActionListener(this);
+		channelLabel = new JLabel("channel");
+		channelLabel.setLabelFor(channelCombo);
+		plotterFrame.getControlsPanel().add(channelLabel);
+		plotterFrame.getControlsPanel().add(channelCombo);
+		plotterFrame.pack();
+	}
+
+	public void endOfData() {
+	}
+
+	public void reset() {
+		if (plotterFrame != null) {
+			plotterFrame.dispose();
+		}
+	}
+
+	public void process(EventHeader event) {
+		List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollection);
+		for (RawTrackerHit hit : hits) {
+			Long daqId = idMap.physicalToDaqID(hit.getCellID());
+			int crate = HPSEcalDaqIDConverter.getCrate(daqId);
+			int slot = HPSEcalDaqIDConverter.getSlot(daqId);
+			int channel = HPSEcalDaqIDConverter.getChannel(daqId);
+			System.out.println("got hit: crate " + crate + ", slot " + slot + ", channel " + channel);
+			if (hit.getADCValues().length != window) {
+				throw new RuntimeException("Hit has unexpected window length " + hit.getADCValues().length + ", not " + window);
+			}
+			if (testCrate && crate == plotCrate) {
+				continue;
+			}
+			if (testSlot && slot == plotSlot) {
+				continue;
+			}
+			if (testChannel && channel == plotChannel) {
+				continue;
+			}
+			windowPlot.reset();
+			for (int i = 0; i < window; i++) {
+				windowPlot.fill(i, hit.getADCValues()[i]);
+
+			}
+		}
+	}
+
+	@Override
+	public void actionPerformed(ActionEvent ae) {
+		String selItem;
+		selItem = (String) crateCombo.getSelectedItem();
+		if (selItem.equals("all")) {
+			testCrate = false;
+		} else {
+			testCrate = true;
+			plotCrate = Integer.decode(selItem);
+		}
+
+		selItem = (String) slotCombo.getSelectedItem();
+		if (selItem.equals("all")) {
+			testSlot = false;
+		} else {
+			testSlot = true;
+			plotSlot = Integer.decode(selItem);
+		}
+
+		selItem = (String) channelCombo.getSelectedItem();
+		if (selItem.equals("all")) {
+			testChannel = false;
+		} else {
+			testChannel = true;
+			plotChannel = Integer.decode(selItem);
+		}
+	}
+}

hps-java/src/main/java/org/lcsim/hps/monitoring
AIDAFrame.java added at 1.1
diff -N AIDAFrame.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ AIDAFrame.java	25 Apr 2012 03:57:49 -0000	1.1
@@ -0,0 +1,57 @@
+package org.lcsim.hps.monitoring;
+
+import hep.aida.*;
+import hep.aida.ref.plotter.PlotterUtilities;
+import java.awt.BorderLayout;
+import java.util.Random;
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+
+/**
+ *
+ * @author Sho Uemura <[log in to unmask]>
+ * @version $Id: AIDAFrame.java,v 1.1 2012/04/25 03:57:49 meeg Exp $
+ */
+public class AIDAFrame extends JFrame {
+
+	IPlotter plotter;
+	JPanel plotterPanel;
+	JPanel controlsPanel;
+	JMenuBar menubar;
+
+	public AIDAFrame(IPlotter plotter) {
+		this.getContentPane().setLayout(new BorderLayout());
+		plotterPanel = new JPanel(new BorderLayout());
+
+		// Now embed the plotter
+		plotterPanel.add(PlotterUtilities.componentForPlotter(plotter), BorderLayout.CENTER);
+
+
+		menubar = new JMenuBar();
+		JMenu menu = new JMenu("File");
+		JMenuItem item = new JMenuItem("meeg");
+		menu.add(item);
+		menubar.add(menu);
+		this.setJMenuBar(menubar);
+
+		this.add(plotterPanel,BorderLayout.NORTH);
+
+		controlsPanel = new JPanel();
+		controlsPanel.setLayout(new BoxLayout(controlsPanel,BoxLayout.X_AXIS));
+		this.add(controlsPanel,BorderLayout.SOUTH);
+
+		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
+	}
+
+	public IPlotter getPlotter() {
+		return plotter;
+	}
+
+	public JPanel getControlsPanel() {
+		return controlsPanel;
+	}
+
+	public JMenuBar getMenubar() {
+		return menubar;
+	}
+}
\ No newline at end of file

hps-java/src/main/resources/org/lcsim/hps/steering
ECalWindowMonitoring.lcsim added at 1.1
diff -N ECalWindowMonitoring.lcsim
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ECalWindowMonitoring.lcsim	25 Apr 2012 03:57:49 -0000	1.1
@@ -0,0 +1,23 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">       
+    <control>
+        <numberOfEvents>-1</numberOfEvents>
+        <printInputFiles>true</printInputFiles>
+        <printDriversDetailed>true</printDriversDetailed>
+    </control>    
+    <execute>
+        <driver name="EventMarkerDriver"/>
+        <driver name="EcalWindowPlots"/>
+    </execute>    
+    <drivers>
+        <driver name="EcalWindowPlots" type="org.lcsim.hps.monitoring.EcalWindowPlots">
+            <subdetectorName>Ecal</subdetectorName>
+            <inputCollection>EcalReadoutHits</inputCollection>
+	    <window>100</window>
+        </driver>
+        <driver name="EventMarkerDriver"
+                type="org.lcsim.job.EventMarkerDriver">
+            <eventInterval>1</eventInterval>
+        </driver>
+    </drivers>
+</lcsim>
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1