5 added + 2 modified, total 7 files
lcsim/src/org/lcsim/util/lcio
diff -N SIOFloatVecBlockHandler.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SIOFloatVecBlockHandler.java 4 Mar 2009 08:40:11 -0000 1.1
@@ -0,0 +1,28 @@
+package org.lcsim.util.lcio;
+
+import hep.io.sio.SIOInputStream;
+import hep.io.sio.SIOOutputStream;
+import java.io.IOException;
+
+import org.lcsim.event.FloatVec;
+
+/**
+ *
+ * @author tonyj
+ */
+class SIOFloatVecBlockHandler extends AbstractBlockHandler
+{
+ public String getType() { return "LCFloatVec"; }
+ public Class getClassForType() { return FloatVec.class; }
+ LCIOCallback addCollectionElements(LCIOEvent event, LCIOCollection collection, SIOInputStream in, int n, int version) throws IOException
+ {
+ for (int i = 0; i < n; i++)
+ collection.add(new SIOFloatVec(in, collection.getFlags(), version));
+ return null;
+ }
+
+ void writeCollectionElement(Object element, SIOOutputStream out, int flags) throws IOException
+ {
+ SIOFloatVec.write((FloatVec) element, out, flags);
+ }
+}
lcsim/src/org/lcsim/util/lcio
diff -N SIOFloatVec.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SIOFloatVec.java 4 Mar 2009 08:40:11 -0000 1.1
@@ -0,0 +1,34 @@
+package org.lcsim.util.lcio;
+
+import hep.io.sio.SIOInputStream;
+
+import hep.io.sio.SIOOutputStream;
+import java.io.IOException;
+import org.lcsim.event.FloatVec;
+import org.lcsim.event.base.BaseFloatVec;
+
+/**
+ *
+ * @version $Id: SIOFloatVec.java,v 1.1 2009/03/04 08:40:11 tonyj Exp $
+ */
+class SIOFloatVec extends BaseFloatVec
+{
+ SIOFloatVec(SIOInputStream in, int flag, int version) throws IOException
+ {
+ int size = in.readInt();
+ float[] data = new float[size];
+ for (int i = 0; i < size; i++)
+ data[i] = in.readFloat();
+ if(version>1002) in.readPTag(this);
+ setVec(data);
+ }
+
+ static void write(FloatVec vec, SIOOutputStream out, int flags) throws IOException
+ {
+ float[] data = vec.toFloatArray();
+ out.writeInt(data.length);
+ for (int i = 0; i < data.length; i++)
+ out.writeFloat(data[i]);
+ out.writePTag(vec) ;
+ }
+}
lcsim/src/org/lcsim/util/lcio
diff -u -r1.14 -r1.15
--- HandlerManager.java 9 Oct 2007 22:56:22 -0000 1.14
+++ HandlerManager.java 4 Mar 2009 08:40:11 -0000 1.15
@@ -40,6 +40,7 @@
register(new SIOTrackerDataBlockHandler());
register(new SIOTrackerPulseBlockHandler());
register(new SIOVertexBlockHandler());
+ register(new SIOFloatVecBlockHandler());
}
static HandlerManager instance()
{
lcsim/src/org/lcsim/event
diff -N FloatVec.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ FloatVec.java 4 Mar 2009 08:40:11 -0000 1.1
@@ -0,0 +1,11 @@
+package org.lcsim.event;
+
+import java.util.List;
+
+/**
+ *
+ * @author tonyj
+ */
+public interface FloatVec extends List<Float> {
+ float[] toFloatArray();
+}
lcsim/src/org/lcsim/event/base
diff -N BaseFloatVec.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ BaseFloatVec.java 4 Mar 2009 08:40:11 -0000 1.1
@@ -0,0 +1,40 @@
+package org.lcsim.event.base;
+
+import java.util.AbstractList;
+import org.lcsim.event.FloatVec;
+
+/**
+ * Unmodifiable implementation of FloatVec.
+ * @author tonyj
+ */
+public class BaseFloatVec extends AbstractList<Float> implements FloatVec {
+
+ private float[] vec;
+
+ public BaseFloatVec(float[] vec) {
+ this.vec = vec;
+ }
+
+ protected BaseFloatVec() {
+
+ }
+ protected void setVec(float[] vec) {
+ this.vec = vec;
+ }
+
+ @Override
+ public Float get(int index) {
+ return vec[index];
+ }
+
+ @Override
+ public int size() {
+ return vec.length;
+ }
+
+ public float[] toFloatArray() {
+ return vec;
+ }
+
+
+}
lcsim/src/org/lcsim/plugin/browser
diff -N FloatVecTableModel.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ FloatVecTableModel.java 4 Mar 2009 08:40:11 -0000 1.1
@@ -0,0 +1,35 @@
+package org.lcsim.plugin.browser;
+
+import java.util.Arrays;
+import org.lcsim.event.FloatVec;
+
+
+/**
+ *
+ * @author tonyj
+ */
+class FloatVecTableModel extends GenericTableModel
+{
+ private static final String[] columns = {"I","Size","Data"};
+ private static Class klass = FloatVec.class;
+
+ FloatVecTableModel()
+ {
+ super(klass,columns);
+ }
+ public Object getValueAt(int row, int column)
+ {
+ FloatVec vec = (FloatVec) getData(row);
+ switch (column) {
+ case 0: return row;
+ case 1: return vec.size();
+ case 2: return Arrays.toString(vec.toFloatArray());
+ default: return null;
+ }
+ }
+
+ public Class getColumnClass(int column)
+ {
+ return column==2 ? String.class : Integer.class;
+ }
+}
lcsim/src/org/lcsim/plugin/browser
diff -u -r1.12 -r1.13
--- LCSimEventBrowser.java 24 Sep 2007 21:03:00 -0000 1.12
+++ LCSimEventBrowser.java 4 Mar 2009 08:40:11 -0000 1.13
@@ -78,6 +78,7 @@
lookup.add(new TrackerPulseTableModel());
lookup.add(new TrackerDataTableModel());
lookup.add(new VertexTableModel());
+ lookup.add(new FloatVecTableModel());
}
public LCSimEventBrowser(Studio app, SequentialRecordLoop loop)
CVSspam 0.2.8