Print

Print


Author: [log in to unmask]
Date: Fri May 22 13:38:21 2015
New Revision: 3010

Log:
Generic object that will be used to persist track data not available through a Track object.

Added:
    java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackData.java   (with props)

Added: java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackData.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackData.java	(added)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackData.java	Fri May 22 13:38:21 2015
@@ -0,0 +1,164 @@
+package org.hps.recon.tracking;
+
+import org.lcsim.event.GenericObject;
+
+/**
+ * Generic object used to persist track data not available through 
+ * a Track object.
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ * @author Sho Uemura <[log in to unmask]>
+ *
+ */
+public class TrackData implements GenericObject {
+    
+    public static final int L1_ISOLATION_INDEX = 0;
+    public static final int L2_ISOLATION_INDEX = 1;
+    public static final int TRACK_TIME_INDEX = 0;
+    public static final int TRACK_VOLUME_INDEX = 0;
+    public static final String TRACK_DATA_COLLECTION = "TrackData";
+    public static final String TRACK_DATA_RELATION_COLLECTION = "TrackDataRelations";
+    
+    private final double[] doubles;
+    private final float[] floats;
+    private final int[] ints;
+    
+    /**
+     * Default constructor
+     */
+    public TrackData() {
+        doubles = new double[2];
+        floats = new float[1];
+        ints = new int[1];
+    }
+        
+    /**
+     * Constructor
+     * 
+     * @param trackVolume : SVT volume associated with the track
+     * @param trackTime : The track time 
+     * @param doubles : an array of doubles containing track data
+     */
+    public TrackData(int trackVolume, float trackTime, double[] doubles) {
+    
+        this.doubles = doubles;
+        this.floats = new float[]{trackTime};
+        this.ints = new int[]{trackVolume};
+    }
+
+    /**
+     * @return The layer 1 isolation value
+     */
+    public double getL1Isolation() {
+        return doubles[L1_ISOLATION_INDEX];
+    }
+
+    /**
+     * @return The layer 2 isolation value
+     */
+    public double getL2Isolation() {
+        return doubles[L2_ISOLATION_INDEX];
+    }
+
+    /**
+     * @return The track time
+     */
+    public float getTrackTime() { 
+        return floats[TRACK_TIME_INDEX];
+    }
+    
+    /**
+     * @return The SVT volume associated with the track
+     */
+    public int getTrackVolume() {
+        return ints[TRACK_VOLUME_INDEX];
+    }
+
+    /**
+     * @param object : The generic object containing the data.
+     * @return The layer 1 isolation value
+     */
+    public static double getL1Isolation(GenericObject object) {
+        return object.getDoubleVal(L1_ISOLATION_INDEX);
+    }
+
+    /**
+     * @param object : The generic object containing the data.
+     * @return The layer 2 isolation value
+     */
+    public static double getL2Isolation(GenericObject object) {
+        return object.getDoubleVal(L2_ISOLATION_INDEX);
+    }
+    
+    /**
+     * @param object : The generic object containing the data.
+     * @return The track time
+     */
+    public static float getTrackTime(GenericObject object) { 
+        return object.getFloatVal(TRACK_TIME_INDEX);
+    }
+    
+    /**
+     * @param object : The generic object containing the data.
+     * @return The SVT volume associated with the track
+     */
+    public static int getTrackVolume(GenericObject object) { 
+        return object.getIntVal(TRACK_VOLUME_INDEX);
+    }
+
+    /**
+     * Returns the double value for the given index.
+     */
+    @Override
+    public double getDoubleVal(int index) {
+        return doubles[index];
+    }
+
+    /**
+     * Returns the float value for the given index.
+     */
+    @Override
+    public float getFloatVal(int index) {
+        return floats[index];
+    }
+
+    /**
+     * Return the integer value for the given index.
+     */
+    @Override
+    public int getIntVal(int index) {
+        return ints[index];
+    }
+
+    /**
+     * Number of double values stored in this object.
+     */
+    @Override
+    public int getNDouble() {
+        return doubles.length;
+    }
+
+    /**
+     * Number of float values stored in this object.
+     */
+    @Override
+    public int getNFloat() {
+        return floats.length;
+    }
+
+    /**
+     * Number of integer values stored in this object.
+     */
+    @Override
+    public int getNInt() {
+        return ints.length;
+    }
+
+    /**
+     * True if objects of the implementation class have a fixed size.
+     */
+    @Override
+    public boolean isFixedSize() {
+        return true;
+    }
+}