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;
+ }
+}
|