View Javadoc

1   package org.lcsim.recon.tracking.seedtracker;
2   
3   import hep.physics.vec.Hep3Vector;
4   
5   import java.util.ArrayList;
6   import java.util.List;
7   
8   import org.lcsim.event.GenericObject;
9   
10  /**
11   * Simple implementation of TrackState as an LCIO GenericObject containing 6
12   * floats corresponding to position (x,y,z) and momentum (px,py,pz).
13   * 
14   * @author jeremym
15   */
16  public class TrackState implements GenericObject
17  {
18      List<Float> vals = new ArrayList<Float>();
19  
20      /**
21       * Float constructor.
22       * 
23       * @param x
24       * @param y
25       * @param z
26       * @param px
27       * @param py
28       * @param pz
29       */
30      public TrackState(float x, float y, float z, float px, float py, float pz)
31      {
32          vals.add(x);
33          vals.add(y);
34          vals.add(z);
35          vals.add(px);
36          vals.add(py);
37          vals.add(pz);
38      }
39  
40      /**
41       * Double constructor.
42       * 
43       * @param x
44       * @param y
45       * @param z
46       * @param px
47       * @param py
48       * @param pz
49       */
50      public TrackState(double x, double y, double z, double px, double py, double pz)
51      {
52          vals.add((float) x);
53          vals.add((float) y);
54          vals.add((float) z);
55          vals.add((float) px);
56          vals.add((float) py);
57          vals.add((float) pz);
58      }
59      
60      /**
61       * Constructor using Hep3Vectors
62       * 
63       * @param pos position of the track state
64       * @param p momentum at the position
65       */
66      public TrackState(Hep3Vector pos, Hep3Vector p) {
67      	vals.add((float)pos.x());
68      	vals.add((float)pos.y());
69      	vals.add((float)pos.z());
70      	vals.add((float)p.x());
71      	vals.add((float)p.y());
72      	vals.add((float)p.z());
73      }
74  
75      public double getDoubleVal(int index)
76      {
77          return 0;
78      }
79  
80      public float getFloatVal(int index)
81      {
82          return vals.get(index);
83      }
84  
85      public int getIntVal(int index)
86      {
87          return 0;
88      }
89  
90      public int getNDouble()
91      {
92          return 0;
93      }
94  
95      public int getNFloat()
96      {
97          return 6;
98      }
99  
100     public int getNInt()
101     {
102         return 0;
103     }
104 
105     public boolean isFixedSize()
106     {
107         return true;
108     }
109 
110     public String toString()
111     {
112         StringBuffer sb = new StringBuffer(" TrackState: \n");
113         sb.append(" global cartesian position: "+vals.get(0)+" "+vals.get(1)+" "+vals.get(2));
114         sb.append(" momentum: "+vals.get(3)+" "+vals.get(4)+" "+vals.get(5));
115         return sb.toString();
116     }
117 }