LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  January 2015

HPS-SVN January 2015

Subject:

r1973 - in /java/trunk: analysis/src/main/java/org/hps/analysis/examples/ monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/ tracking/src/main/java/org/hps/svt/alignment/ users/src/main/java/org/hps/users/mgraham/ users/src/main/java/org/hps/users/mgraham/alignment/ users/src/main/java/org/hps/users/mgraham/jlabrotation/ users/src/main/java/org/hps/users/omoreno/ users/src/main/java/org/hps/users/phansson/

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Fri, 23 Jan 2015 00:47:16 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (1441 lines)

Author: [log in to unmask]
Date: Thu Jan 22 16:47:00 2015
New Revision: 1973

Log:
replace deprecated methods

Modified:
    java/trunk/analysis/src/main/java/org/hps/analysis/examples/DetailedAnalysisDriver.java
    java/trunk/analysis/src/main/java/org/hps/analysis/examples/FastTrackAnalysisDriver.java
    java/trunk/analysis/src/main/java/org/hps/analysis/examples/JasAnalysisDriver.java
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java
    java/trunk/tracking/src/main/java/org/hps/svt/alignment/RunAlignment.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/DetailedAnalysisDriver.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/ExamplePlotter.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/FastTrackAnalysisDriver.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/HitTimePlotter.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/JasAnalysisDriver.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/StraightTrackAnalysis.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/TestAnalysisDriver.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/TwoTrackAnalysis.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/alignment/RunAlignment.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/jlabrotation/DetailedAnalysisDriver.java
    java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java
    java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java
    java/trunk/users/src/main/java/org/hps/users/phansson/RunMPAlignment.java
    java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java
    java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
    java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/examples/DetailedAnalysisDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/DetailedAnalysisDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/DetailedAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -406,7 +406,7 @@
             String atrackdir = "TrackInfoAxial/";
             //  Analyze the tracks in the event
             for (Track atrack : axialtracklist) {
-                double apx = atrack.getPX();
+                double apx = atrack.getTrackStates().get(0).getMomentum()[0];
                 aida.cloud1D(atrackdir + "pX").fill(apx);
             }
         }
@@ -414,16 +414,17 @@
         //  Analyze the tracks in the event
         for (Track track : tracklist) {
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
             _nchRec++;
             if (track.getCharge() * flipSign < 0)
                 _neleRec++;
@@ -442,7 +443,7 @@
             double xoca = ht.x0();
             double yoca = ht.y0();
             double[] poca = {xoca, yoca, z0};
-            double mom[] = track.getMomentum();
+            double mom[] = track.getTrackStates().get(0).getMomentum();
             double px = mom[0];
             double py = mom[1];
             double pz = mom[2];
@@ -534,9 +535,9 @@
                 double pzmc = Pmc.z();
                 double ptmc = Math.sqrt(pxmc * pxmc + pymc * pymc);
                 double pmc = Math.sqrt(ptmc * ptmc + pzmc * pzmc);
-                double pxtk = track.getPX();
-                double pytk = track.getPY();
-                double pztk = track.getPZ();
+                double pxtk = track.getTrackStates().get(0).getMomentum()[0];
+                double pytk = track.getTrackStates().get(0).getMomentum()[1];
+                double pztk = track.getTrackStates().get(0).getMomentum()[2];
                 double pttk = Math.sqrt(pxtk * pxtk + pytk * pytk);
                 double ptk = Math.sqrt(pttk * pttk + pztk * pztk);
 
@@ -832,9 +833,9 @@
                 continue;
             if (mcp.getParents().size() == 1 && mcp.getParents().get(0).getPDGID() == 622) {
                 int nhits = tkanal.getNHitsNew();
-                double px = track.getPX();
-                double py = track.getPY();
-                double pz = track.getPZ();
+                double px = track.getTrackStates().get(0).getMomentum()[0];
+                double py = track.getTrackStates().get(0).getMomentum()[1];
+                double pz = track.getTrackStates().get(0).getMomentum()[2];
                 double pt = Math.sqrt(px * px + py * py);
                 double pperp = Math.sqrt(py * py + pz * pz);
                 double p = Math.sqrt(pt * pt + pz * pz);
@@ -1296,9 +1297,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -1310,9 +1311,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -1399,9 +1400,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/examples/FastTrackAnalysisDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/FastTrackAnalysisDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/FastTrackAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -240,9 +240,9 @@
                 continue;
             if (mcp.getParents().size() == 1 && mcp.getParents().get(0).getPDGID() == 622) {
                 int nhits = tkanal.getNHitsNew();
-                double px = track.getPX();
-                double py = track.getPY();
-                double pz = track.getPZ();
+                double px = track.getTrackStates().get(0).getMomentum()[0];
+                double py = track.getTrackStates().get(0).getMomentum()[1];
+                double pz = track.getTrackStates().get(0).getMomentum()[2];
                 double pt = Math.sqrt(px * px + py * py);
                 double pperp = Math.sqrt(py * py + pz * pz);
                 double p = Math.sqrt(pt * pt + pz * pz);
@@ -302,12 +302,12 @@
                     double RP = htPos.R();
                     double slopeP = htPos.slope();
 
-                    double pxE = ele.getPX();
-                    double pyE = ele.getPY();
-                    double pzE = ele.getPZ();
-                    double pxP = pos.getPX();
-                    double pyP = pos.getPY();
-                    double pzP = pos.getPZ();
+                    double pxE = ele.getTrackStates().get(0).getMomentum()[0];
+                    double pyE = ele.getTrackStates().get(0).getMomentum()[1];
+                    double pzE = ele.getTrackStates().get(0).getMomentum()[2];
+                    double pxP = pos.getTrackStates().get(0).getMomentum()[0];
+                    double pyP = pos.getTrackStates().get(0).getMomentum()[1];
+                    double pzP = pos.getTrackStates().get(0).getMomentum()[2];
 
                     List<BilliorTrack> btlist = new ArrayList<BilliorTrack>();
 
@@ -594,9 +594,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -608,9 +608,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -697,9 +697,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/examples/JasAnalysisDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/examples/JasAnalysisDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/JasAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -262,16 +262,17 @@
         for (Track track : tracklist) {
 
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
             double chisq = track.getChi2();
             //plot the helix parameters
             aida.cloud1D("d0").fill(d0);
@@ -281,7 +282,7 @@
             aida.cloud1D("curve").fill(curve);
             aida.cloud1D("chi2").fill(chisq);
 
-            double mom[] = track.getMomentum();
+            double mom[] = track.getTrackStates().get(0).getMomentum();
 
             SeedTrack stEle = (SeedTrack) track;
             SeedCandidate seedEle = stEle.getSeedCandidate();
@@ -349,9 +350,9 @@
                 double pzmc = Pmc.z();
                 double ptmc = Math.sqrt(pxmc * pxmc + pymc * pymc);
                 double pmc = Math.sqrt(ptmc * ptmc + pzmc * pzmc);
-                double pxtk = track.getPX();
-                double pytk = track.getPY();
-                double pztk = track.getPZ();
+                double pxtk = track.getTrackStates().get(0).getMomentum()[0];
+                double pytk = track.getTrackStates().get(0).getMomentum()[1];
+                double pztk = track.getTrackStates().get(0).getMomentum()[2];
                 double pttk = Math.sqrt(pxtk * pxtk + pytk * pytk);
                 double ptk = Math.sqrt(pttk * pttk + pztk * pztk);
 
@@ -877,9 +878,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -892,9 +893,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -982,9 +983,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java	Thu Jan 22 16:47:00 2015
@@ -669,9 +669,9 @@
 
             boolean isSingleHitPerLayerTrack = singleTrackHitPerLayer(trk);
 
-            aida.histogram1D("Track Momentum (Px)").fill(trk.getPY());
-            aida.histogram1D("Track Momentum (Py)").fill(trk.getPZ());
-            aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+            aida.histogram1D("Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+            aida.histogram1D("Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
             aida.histogram1D("Track Chi2").fill(trk.getChi2());
 
             aida.histogram1D("Hits per Track").fill(trk.getTrackerHits().size());
@@ -696,15 +696,15 @@
 //            Hep3Vector posonhelix = HelixUtils.PointOnHelix(ht, sECAL);//position in tracker coordinates!
             aida.histogram1D("X (mm) @ ECAL").fill(posAtEcal.x());
             aida.histogram1D("Y (mm) @ ECAL").fill(posAtEcal.y());
-            if (trk.getPX() > 1.0) {
+            if (trk.getTrackStates().get(0).getMomentum()[0] > 1.0) {
                 aida.histogram1D("X (mm) @ ECAL (Pz>1)").fill(posAtEcal.x());
                 aida.histogram1D("Y (mm) @ ECAL (Pz>1)").fill(posAtEcal.y());
             }
-            aida.histogram1D("d0 ").fill(trk.getTrackParameter(ParameterName.d0.ordinal()));
-            aida.histogram1D("sinphi ").fill(Math.sin(trk.getTrackParameter(ParameterName.phi0.ordinal())));
-            aida.histogram1D("omega ").fill(trk.getTrackParameter(ParameterName.omega.ordinal()));
-            aida.histogram1D("tan(lambda) ").fill(trk.getTrackParameter(ParameterName.tanLambda.ordinal()));
-            aida.histogram1D("z0 ").fill(trk.getTrackParameter(ParameterName.z0.ordinal()));
+            aida.histogram1D("d0 ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.d0.ordinal()));
+            aida.histogram1D("sinphi ").fill(Math.sin(trk.getTrackStates().get(0).getParameter(ParameterName.phi0.ordinal())));
+            aida.histogram1D("omega ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.omega.ordinal()));
+            aida.histogram1D("tan(lambda) ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.tanLambda.ordinal()));
+            aida.histogram1D("z0 ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.z0.ordinal()));
 
             int isTop = -1;
             if (trk.getTrackerHits().get(0).getPosition()[2] > 0) {
@@ -716,14 +716,14 @@
             }//            System.out.println("Charge = " + charge + "; isTop = " + isTop);
             aida.histogram2D("Charge vs Slope").fill(charge, isTop);
             if (isTop == 0) {
-                aida.histogram1D("Top Track Momentum (Px)").fill(trk.getPY());
-                aida.histogram1D("Top Track Momentum (Py)").fill(trk.getPZ());
-                aida.histogram1D("Top Track Momentum (Pz)").fill(trk.getPX());
+                aida.histogram1D("Top Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+                aida.histogram1D("Top Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+                aida.histogram1D("Top Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
                 aida.histogram1D("Top Track Chi2").fill(trk.getChi2());
             } else {
-                aida.histogram1D("Bottom Track Momentum (Px)").fill(trk.getPY());
-                aida.histogram1D("Bottom Track Momentum (Py)").fill(trk.getPZ());
-                aida.histogram1D("Bottom Track Momentum (Pz)").fill(trk.getPX());
+                aida.histogram1D("Bottom Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+                aida.histogram1D("Bottom Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+                aida.histogram1D("Bottom Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
                 aida.histogram1D("Bottom Track Chi2").fill(trk.getChi2());
             }
             List<TrackerHit> hitsOnTrack = trk.getTrackerHits();
@@ -803,7 +803,7 @@
                  double amp = fit.getAmp();
                     
                  aida.histogram1D("Amp (HitOnTrack)").fill(amp);
-                 if (trk.getPX() > 1)
+                 if (trk.getTrackStates().get(0).getMomentum()[0] > 1)
                  aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
                  }                
                  */
@@ -817,12 +817,12 @@
                                 double amp = fit.getAmp();
                                 clusterSum += amp;
                                 aida.histogram1D("Amp (HitOnTrack)").fill(amp);
-                                if (trk.getPX() > 1) {
+                                if (trk.getTrackStates().get(0).getMomentum()[0] > 1) {
                                     aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
                                 }
                             }
                             aida.histogram1D("Amp (CluOnTrack)").fill(clusterSum);
-                            if (trk.getPX() > 1) {
+                            if (trk.getTrackStates().get(0).getMomentum()[0] > 1) {
                                 aida.histogram1D("Amp Pz>1000 (CluOnTrack)").fill(clusterSum);
                             }
                         }
@@ -839,20 +839,20 @@
 
                     posAtEcal = TrackUtils.extrapolateTrack(trk, clust.getPosition()[2]);//.positionAtEcal();
 
-                    aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                    aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                    aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                    aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                     aida.histogram1D("deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                     aida.histogram1D("deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
-                    //                if (trk.getPX() > 1.0) {
+                    //                if (trk.getTrackStates().get(0).getMomentum()[0] > 1.0) {
                     //                    aida.histogram1D("deltaX (Pz>1)").fill(clust.getPosition()[0] - posAtEcal.y());
                     //                    aida.histogram1D("deltaY (Pz>1)").fill(clust.getPosition()[1] - posAtEcal.z());
                     //                }
                     aida.histogram2D("X ECal Vs Track").fill(clust.getPosition()[0], posAtEcal.x());
                     aida.histogram2D("Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
                     if (isTop == 0) {
-                        aida.histogram2D("Top Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                        //                    aida.histogram2D("Top Energy Vs Momentum").fill(posAtEcal.y(), trk.getPX() * 1000.0);
-                        aida.histogram1D("Top Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                        aida.histogram2D("Top Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        //                    aida.histogram2D("Top Energy Vs Momentum").fill(posAtEcal.y(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        aida.histogram1D("Top Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                         aida.histogram1D("Top deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                         aida.histogram1D("Top deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
                         aida.histogram2D("Top deltaX vs X").fill(clust.getPosition()[0], clust.getPosition()[0] - posAtEcal.x());
@@ -860,8 +860,8 @@
                         aida.histogram2D("Top X ECal Vs Track").fill(clust.getPosition()[0], posAtEcal.x());
                         aida.histogram2D("Top Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
                     } else {
-                        aida.histogram2D("Bottom Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                        aida.histogram1D("Bottom Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                        aida.histogram2D("Bottom Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        aida.histogram1D("Bottom Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                         aida.histogram1D("Bottom deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                         aida.histogram1D("Bottom deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
                         aida.histogram2D("Bottom deltaX vs X").fill(clust.getPosition()[0], clust.getPosition()[0] - posAtEcal.x());

Modified: java/trunk/tracking/src/main/java/org/hps/svt/alignment/RunAlignment.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/svt/alignment/RunAlignment.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/svt/alignment/RunAlignment.java	Thu Jan 22 16:47:00 2015
@@ -55,9 +55,9 @@
             ap.PrintResidualsAndDerivatives(trk);
 
             if(1==1){
-                aida.histogram1D("Track d0",50,-0.5,0.5).fill(trk.getTrackParameter(0));
-                aida.histogram1D("Track sin(phi0)",50,-0.5,0.5).fill(Math.sin(trk.getTrackParameter(1)));
-                aida.histogram1D("Track z0",50,-0.1,0.1).fill(Math.sin(trk.getTrackParameter(3)));
+                aida.histogram1D("Track d0",50,-0.5,0.5).fill(trk.getTrackStates().get(0).getParameter(0));
+                aida.histogram1D("Track sin(phi0)",50,-0.5,0.5).fill(Math.sin(trk.getTrackStates().get(0).getParameter(1)));
+                aida.histogram1D("Track z0",50,-0.1,0.1).fill(Math.sin(trk.getTrackStates().get(0).getParameter(3)));
                 aida.histogram1D("Track chi^2",50,0,25).fill(trk.getChi2());
                 for (int i = 1; i < 11; i++) {
                 double[] res = ap.getResidual(trk, i);
@@ -70,11 +70,11 @@
 
                 aida.histogram1D("deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
-                if(i==3&&Math.sin(trk.getTrackParameter(1))>0){
+                if(i==3&&Math.sin(trk.getTrackStates().get(0).getParameter(1))>0){
                     aida.histogram1D("Positive phi0  deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("Positive phi0 deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
                 }
-                if(i==3&&Math.sin(trk.getTrackParameter(1))<0){
+                if(i==3&&Math.sin(trk.getTrackStates().get(0).getParameter(1))<0){
                     aida.histogram1D("Negative phi0  deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("Negative phi0 deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
                 }

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/DetailedAnalysisDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/DetailedAnalysisDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/DetailedAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -448,23 +448,24 @@
 //        String atrackdir = "TrackInfoAxial/";
 //        //  Analyze the tracks in the event
 //        for (Track atrack : axialtracklist) {
-//            double apx = atrack.getPX();
+//            double apx = atrack.getTrackStates().get(0).getMomentum()[0];
 //            aida.cloud1D(atrackdir + "pX").fill(apx);
 //        }
         String trackdir = "TrackInfo/";
         //  Analyze the tracks in the event
         for (Track track : tracklist) {
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
             _nchRec++;
             if (track.getCharge() * flipsign < 0) {
                 _neleRec++;
@@ -485,7 +486,7 @@
             double xoca = ht.x0();
             double yoca = ht.y0();
             double[] poca = {xoca, yoca, z0};
-            double mom[] = track.getMomentum();
+            double mom[] = track.getTrackStates().get(0).getMomentum();
             double px = mom[0];
             double py = mom[1];
             double pz = mom[2];
@@ -590,9 +591,9 @@
                 double pzmc = Pmc.z();
                 double ptmc = Math.sqrt(pxmc * pxmc + pymc * pymc);
                 double pmc = Math.sqrt(ptmc * ptmc + pzmc * pzmc);
-                double pxtk = track.getPX();
-                double pytk = track.getPY();
-                double pztk = track.getPZ();
+                double pxtk = track.getTrackStates().get(0).getMomentum()[0];
+                double pytk = track.getTrackStates().get(0).getMomentum()[1];
+                double pztk = track.getTrackStates().get(0).getMomentum()[2];
                 double pttk = Math.sqrt(pxtk * pxtk + pytk * pytk);
                 double ptk = Math.sqrt(pttk * pttk + pztk * pztk);
 
@@ -914,9 +915,9 @@
             }
             if (mcp.getParents().size() == 1 && mcp.getParents().get(0).getPDGID() == 622) {
                 int nhits = tkanal.getNHitsNew();
-                double px = track.getPX();
-                double py = track.getPY();
-                double pz = track.getPZ();
+                double px = track.getTrackStates().get(0).getMomentum()[0];
+                double py = track.getTrackStates().get(0).getMomentum()[1];
+                double pz = track.getTrackStates().get(0).getMomentum()[2];
                 double pt = Math.sqrt(px * px + py * py);
                 double pperp = Math.sqrt(py * py + pz * pz);
                 double p = Math.sqrt(pt * pt + pz * pz);
@@ -1395,9 +1396,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -1410,9 +1411,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -1500,9 +1501,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/ExamplePlotter.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/ExamplePlotter.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/ExamplePlotter.java	Thu Jan 22 16:47:00 2015
@@ -71,9 +71,9 @@
         aida.tree().cd("/");
         List<Track> tracks = event.get(Track.class, trackCollectionName);
         for (Track trk : tracks) {
-            aida.histogram1D("Track Momentum (Px)").fill(trk.getPY());
-            aida.histogram1D("Track Momentum (Py)").fill(trk.getPZ());
-            aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+            aida.histogram1D("Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+            aida.histogram1D("Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
             aida.histogram1D("Track Chi2").fill(trk.getChi2());
 
             SeedTrack stEle = (SeedTrack) trk;

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/FastTrackAnalysisDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/FastTrackAnalysisDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/FastTrackAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -288,9 +288,9 @@
             }
             if (mcp.getParents().size() == 1 && mcp.getParents().get(0).getPDGID() == 622) {
                 int nhits = tkanal.getNHitsNew();
-                double px = track.getPX();
-                double py = track.getPY();
-                double pz = track.getPZ();
+                double px = track.getTrackStates().get(0).getMomentum()[0];
+                double py = track.getTrackStates().get(0).getMomentum()[1];
+                double pz = track.getTrackStates().get(0).getMomentum()[2];
                 double pt = Math.sqrt(px * px + py * py);
                 double pperp = Math.sqrt(py * py + pz * pz);
                 double p = Math.sqrt(pt * pt + pz * pz);
@@ -350,12 +350,12 @@
                     double RP = htPos.R();
                     double slopeP = htPos.slope();
 
-                    double pxE = ele.getPX();
-                    double pyE = ele.getPY();
-                    double pzE = ele.getPZ();
-                    double pxP = pos.getPX();
-                    double pyP = pos.getPY();
-                    double pzP = pos.getPZ();
+                    double pxE = ele.getTrackStates().get(0).getMomentum()[0];
+                    double pyE = ele.getTrackStates().get(0).getMomentum()[1];
+                    double pzE = ele.getTrackStates().get(0).getMomentum()[2];
+                    double pxP = pos.getTrackStates().get(0).getMomentum()[0];
+                    double pyP = pos.getTrackStates().get(0).getMomentum()[1];
+                    double pzP = pos.getTrackStates().get(0).getMomentum()[2];
 
                     List<BilliorTrack> btlist = new ArrayList<BilliorTrack>();
 
@@ -722,9 +722,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -737,9 +737,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -827,9 +827,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/HitTimePlotter.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/HitTimePlotter.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/HitTimePlotter.java	Thu Jan 22 16:47:00 2015
@@ -235,9 +235,9 @@
         List<Track> tracks = event.get(Track.class, trackCollectionName);
 
         for (Track trk : tracks) {
-            aida.histogram1D("Track Momentum(Px)").fill(trk.getPY());
-            aida.histogram1D("Track Momentum(Py)").fill(trk.getPZ());
-            aida.histogram1D("Track Momentum(Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Momentum(Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+            aida.histogram1D("Track Momentum(Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+            aida.histogram1D("Track Momentum(Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
             aida.histogram1D("TrackChi2").fill(trk.getChi2());
         }
 

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/JasAnalysisDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/JasAnalysisDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/JasAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -252,16 +252,17 @@
         for (Track track : tracklist) {
 
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
             double chisq = track.getChi2();
             //plot the helix parameters
             aida.cloud1D("d0").fill(d0);
@@ -271,7 +272,7 @@
             aida.cloud1D("curve").fill(curve);
             aida.cloud1D("chi2").fill(chisq);
 
-            double mom[] = track.getMomentum();
+            double mom[] = track.getTrackStates().get(0).getMomentum();
 
             SeedTrack stEle = (SeedTrack) track;
             SeedCandidate seedEle = stEle.getSeedCandidate();
@@ -339,9 +340,9 @@
                 double pzmc = Pmc.z();
                 double ptmc = Math.sqrt(pxmc * pxmc + pymc * pymc);
                 double pmc = Math.sqrt(ptmc * ptmc + pzmc * pzmc);
-                double pxtk = track.getPX();
-                double pytk = track.getPY();
-                double pztk = track.getPZ();
+                double pxtk = track.getTrackStates().get(0).getMomentum()[0];
+                double pytk = track.getTrackStates().get(0).getMomentum()[1];
+                double pztk = track.getTrackStates().get(0).getMomentum()[2];
                 double pttk = Math.sqrt(pxtk * pxtk + pytk * pytk);
                 double ptk = Math.sqrt(pttk * pttk + pztk * pztk);
 
@@ -884,9 +885,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -899,9 +900,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -989,9 +990,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/StraightTrackAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/StraightTrackAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/StraightTrackAnalysis.java	Thu Jan 22 16:47:00 2015
@@ -122,10 +122,10 @@
 
         for (Track trk : tracks) {
 //            StraightTrack stght = (StraightTrack) trk;
-            aida.histogram1D("d0", 50, -2, 2).fill(trk.getTrackParameters()[0]);
-            aida.histogram1D("z0", 50, -2, 2).fill(trk.getTrackParameters()[3]);
-            aida.histogram1D("xy slope", 50, -0.2, 0.25).fill(trk.getTrackParameters()[1]);
-            aida.histogram1D("sz slope", 50, -0.25, 0.25).fill(trk.getTrackParameters()[4]);
+            aida.histogram1D("d0", 50, -2, 2).fill(trk.getTrackStates().get(0).getParameters()[0]);
+            aida.histogram1D("z0", 50, -2, 2).fill(trk.getTrackStates().get(0).getParameters()[3]);
+            aida.histogram1D("xy slope", 50, -0.2, 0.25).fill(trk.getTrackStates().get(0).getParameters()[1]);
+            aida.histogram1D("sz slope", 50, -0.25, 0.25).fill(trk.getTrackStates().get(0).getParameters()[4]);
             aida.histogram1D("track chi2 per ndf", 50, 0, 2).fill(trk.getChi2() / trk.getNDF());
             aida.histogram1D("track nhits", 50, 0, 10).fill(trk.getTrackerHits().size());
             TrackAnalysis tkanal = new TrackAnalysis(trk, hittomc);

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/TestAnalysisDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/TestAnalysisDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/TestAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -75,16 +75,17 @@
         //  Analyze the tracks in the event
         for (Track track : tracklist) {
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
              SeedTrack stEle = (SeedTrack) track;
             SeedCandidate seedEle = stEle.getSeedCandidate();
             HelicalTrackFit ht = seedEle.getHelix();

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/TrackExtrapolationAnalysis.java	Thu Jan 22 16:47:00 2015
@@ -80,7 +80,7 @@
 
         List<Track> tracks = event.get(Track.class, trackCollectionName);
         for (Track trk : tracks) {
-            double trackP = trk.getPX();
+            double trackP = trk.getTrackStates().get(0).getMomentum()[0];
             SeedTrack stEle = (SeedTrack) trk;
             SeedCandidate seedEle = stEle.getSeedCandidate();
             HelicalTrackFit ht = seedEle.getHelix();

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/TwoTrackAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/TwoTrackAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/TwoTrackAnalysis.java	Thu Jan 22 16:47:00 2015
@@ -263,9 +263,9 @@
         List<Track> tracks = event.get(Track.class, trackCollectionName);
         System.out.println("Staring TwoTrackAnalysis");
         for (Track trk : tracks) {
-            aida.histogram1D("Track Momentum (Px)").fill(trk.getPY());
-            aida.histogram1D("Track Momentum (Py)").fill(trk.getPZ());
-            aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+            aida.histogram1D("Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+            aida.histogram1D("Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
             aida.histogram1D("Track Chi2").fill(trk.getChi2());
 
             SeedTrack stEle = (SeedTrack) trk;
@@ -740,21 +740,21 @@
                     Hep3Vector[] trkatconvE;
                     Hep3Vector[] trkatconvP;
                     if (trk1.getCharge() > 0) {
-                        pxP = trk1.getPX();
-                        pyP = trk1.getPY();
-                        pzP = trk1.getPZ();
-                        pxE = trk2.getPX();
-                        pyE = trk2.getPY();
-                        pzE = trk2.getPZ();
+                        pxP = trk1.getTrackStates().get(0).getMomentum()[0];
+                        pyP = trk1.getTrackStates().get(0).getMomentum()[1];
+                        pzP = trk1.getTrackStates().get(0).getMomentum()[2];
+                        pxE = trk2.getTrackStates().get(0).getMomentum()[0];
+                        pyE = trk2.getTrackStates().get(0).getMomentum()[1];
+                        pzE = trk2.getTrackStates().get(0).getMomentum()[2];
                         trkatconvP = trkatconver1;
                         trkatconvE = trkatconver2;
                     } else {
-                        pxP = trk2.getPX();
-                        pyP = trk2.getPY();
-                        pzP = trk2.getPZ();
-                        pxE = trk1.getPX();
-                        pyE = trk1.getPY();
-                        pzE = trk1.getPZ();
+                        pxP = trk2.getTrackStates().get(0).getMomentum()[0];
+                        pyP = trk2.getTrackStates().get(0).getMomentum()[1];
+                        pzP = trk2.getTrackStates().get(0).getMomentum()[2];
+                        pxE = trk1.getTrackStates().get(0).getMomentum()[0];
+                        pyE = trk1.getTrackStates().get(0).getMomentum()[1];
+                        pzE = trk1.getTrackStates().get(0).getMomentum()[2];
                         trkatconvP = trkatconver2;
                         trkatconvE = trkatconver1;
                     }
@@ -766,7 +766,7 @@
                     pw.format("%5.5f %5.5f %5.5f %5.5f ",distance,vX,vY,vZ);
                     pw.println();
 
-                    if (trk1.getPX() > 0.25 && trk2.getPX() > 0.25 && Math.abs(C.get(1, 0)) < 6.0) {
+                    if (trk1.getTrackStates().get(0).getMomentum()[0] > 0.25 && trk2.getTrackStates().get(0).getMomentum()[0] > 0.25 && Math.abs(C.get(1, 0)) < 6.0) {
                         aida.histogram1D("XVertex with y cut").fill(C.get(0, 0));
                         aida.histogram1D("YVertex with y cut").fill(C.get(1, 0));
                         aida.histogram1D("ZVertex with y cut").fill(C.get(2, 0));
@@ -846,15 +846,15 @@
                         // aida.histogram1D("Big Bump Track Parity").fill(trksparity);
                     }
                     if (eplustop) { //read Little bump as e+ top
-                        // aida.histogram1D("Little Bump Track Momenta (Px)").fill(trk1.getPX());
-                        // aida.histogram1D("Little Bump Track Momenta (Py)").fill(trk1.getPY());
-                        // aida.histogram1D("Little Bump Track Momenta (Pz)").fill(trk1.getPZ());
+                        // aida.histogram1D("Little Bump Track Momenta (Px)").fill(trk1.getTrackStates().get(0).getMomentum()[0]);
+                        // aida.histogram1D("Little Bump Track Momenta (Py)").fill(trk1.getTrackStates().get(0).getMomentum()[1]);
+                        // aida.histogram1D("Little Bump Track Momenta (Pz)").fill(trk1.getTrackStates().get(0).getMomentum()[2]);
                         // aida.histogram1D("Little Bump Tracks Chi2").fill(trk1.getChi2());
-                        // aida.histogram1D("Little Bump Track Momenta (Px)").fill(trk2.getPX());
-                        // aida.histogram1D("Little Bump Track Momenta (Py)").fill(trk2.getPY());
-                        // aida.histogram1D("Little Bump Track Momenta (Pz)").fill(trk2.getPZ());
+                        // aida.histogram1D("Little Bump Track Momenta (Px)").fill(trk2.getTrackStates().get(0).getMomentum()[0]);
+                        // aida.histogram1D("Little Bump Track Momenta (Py)").fill(trk2.getTrackStates().get(0).getMomentum()[1]);
+                        // aida.histogram1D("Little Bump Track Momenta (Pz)").fill(trk2.getTrackStates().get(0).getMomentum()[2]);
                         // aida.histogram1D("Little Bump Tracks Chi2").fill(trk2.getChi2());
-                        // aida.histogram1D("Little Bump Sum of Track's Momentums").fill(Math.sqrt(Math.pow((trk1.getPY() + trk2.getPY()), 2) + Math.pow((trk1.getPX() + trk2.getPX()), 2) + Math.pow((trk1.getPZ() + trk2.getPZ()), 2)));
+                        // aida.histogram1D("Little Bump Sum of Track's Momentums").fill(Math.sqrt(Math.pow((trk1.getTrackStates().get(0).getMomentum()[1] + trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0] + trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2] + trk2.getTrackStates().get(0).getMomentum()[2]), 2)));
                         double Etrk1sq = (Math.pow(trkatconver1[1].x(), 2) + Math.pow(trkatconver1[1].y(), 2) + Math.pow(trkatconver1[1].z(), 2));
                         double Etrk2sq = (Math.pow(trkatconver2[1].x(), 2) + Math.pow(trkatconver2[1].y(), 2) + Math.pow(trkatconver2[1].z(), 2));
                         double Etrk1 = Math.sqrt(Etrk1sq);
@@ -862,23 +862,23 @@
                         double p1dotp2 = (trkatconver1[1].x() * trkatconver2[1].x() + trkatconver1[1].y() * trkatconver2[1].y() + trkatconver1[1].z() * trkatconver2[1].z());
                         aida.histogram1D("Invariant Mass").fill(Math.sqrt(2 * Etrk1 * Etrk2 - 2 * p1dotp2));
                         if (qtrk1 == 1) {
-                            //       aida.histogram2D("Little Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))), Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))));
+                            //       aida.histogram2D("Little Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))));
                         } else {
-                            //      aida.histogram2D("Little Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))), Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))));
+                            //      aida.histogram2D("Little Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))));
                         }
                         aida.histogram2D("X v Y - e+ Top").fill(C.get(0, 0), C.get(1, 0));
                         aida.histogram2D("X v Z - e+ Top").fill(C.get(0, 0), C.get(2, 0));
                         aida.histogram2D("Y v Z - e+ Top").fill(C.get(1, 0), C.get(2, 0));
                     } else { //read Big bump as e- top
-//                        aida.histogram1D("Big Bump Track Momenta (Px)").fill(trk1.getPX());
-//                        aida.histogram1D("Big Bump Track Momenta (Py)").fill(trk1.getPY());
-//                        aida.histogram1D("Big Bump Track Momenta (Pz)").fill(trk1.getPZ());
+//                        aida.histogram1D("Big Bump Track Momenta (Px)").fill(trk1.getTrackStates().get(0).getMomentum()[0]);
+//                        aida.histogram1D("Big Bump Track Momenta (Py)").fill(trk1.getTrackStates().get(0).getMomentum()[1]);
+//                        aida.histogram1D("Big Bump Track Momenta (Pz)").fill(trk1.getTrackStates().get(0).getMomentum()[2]);
 //                        aida.histogram1D("Big Bump Tracks Chi2").fill(trk1.getChi2());
-//                        aida.histogram1D("Big Bump Track Momenta (Px)").fill(trk2.getPX());
-//                        aida.histogram1D("Big Bump Track Momenta (Py)").fill(trk2.getPY());
-//                        aida.histogram1D("Big Bump Track Momenta (Pz)").fill(trk2.getPZ());
+//                        aida.histogram1D("Big Bump Track Momenta (Px)").fill(trk2.getTrackStates().get(0).getMomentum()[0]);
+//                        aida.histogram1D("Big Bump Track Momenta (Py)").fill(trk2.getTrackStates().get(0).getMomentum()[1]);
+//                        aida.histogram1D("Big Bump Track Momenta (Pz)").fill(trk2.getTrackStates().get(0).getMomentum()[2]);
 //                        aida.histogram1D("Big Bump Tracks Chi2").fill(trk2.getChi2());
-//                        aida.histogram1D("Big Bump Sum of Track's Momentums").fill(Math.sqrt(Math.pow((trk1.getPY() + trk2.getPY()), 2) + Math.pow((trk1.getPX() + trk2.getPX()), 2) + Math.pow((trk1.getPZ() + trk2.getPZ()), 2)));
+//                        aida.histogram1D("Big Bump Sum of Track's Momentums").fill(Math.sqrt(Math.pow((trk1.getTrackStates().get(0).getMomentum()[1] + trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0] + trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2] + trk2.getTrackStates().get(0).getMomentum()[2]), 2)));
                         double Etrk1sq = (Math.pow(trkatconver1[1].x(), 2) + Math.pow(trkatconver1[1].y(), 2) + Math.pow(trkatconver1[1].z(), 2));
                         double Etrk2sq = (Math.pow(trkatconver2[1].x(), 2) + Math.pow(trkatconver2[1].y(), 2) + Math.pow(trkatconver2[1].z(), 2));
                         double Etrk1 = Math.sqrt(Etrk1sq);
@@ -886,9 +886,9 @@
                         double p1dotp2 = (trkatconver1[1].x() * trkatconver2[1].x() + trkatconver1[1].y() * trkatconver2[1].y() + trkatconver1[1].z() * trkatconver2[1].z());
                         aida.histogram1D("Invariant Mass").fill(Math.sqrt(2 * Etrk1 * Etrk2 - 2 * p1dotp2));
                         if (qtrk1 == 1) {
-                            //  aida.histogram2D("Big Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))), Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))));
+                            //  aida.histogram2D("Big Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))));
                         } else {
-                            // aida.histogram2D("Big Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))), Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))));
+                            // aida.histogram2D("Big Bump P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))));
                         }
                         aida.histogram2D("X v Y - e- Top").fill(C.get(0, 0), C.get(1, 0));
                         aida.histogram2D("X v Z - e- Top").fill(C.get(0, 0), C.get(2, 0));
@@ -905,42 +905,42 @@
 
 
                 if ((isTrk2Top + isTrk1Top) == 0) {
-//                    aida.histogram1D("Split Track Momenta (Px)").fill(trk1.getPX());
-//                    aida.histogram1D("Split Track Momenta (Py)").fill(trk1.getPY());
-//                    aida.histogram1D("Split Track Momenta (Pz)").fill(trk1.getPZ());
+//                    aida.histogram1D("Split Track Momenta (Px)").fill(trk1.getTrackStates().get(0).getMomentum()[0]);
+//                    aida.histogram1D("Split Track Momenta (Py)").fill(trk1.getTrackStates().get(0).getMomentum()[1]);
+//                    aida.histogram1D("Split Track Momenta (Pz)").fill(trk1.getTrackStates().get(0).getMomentum()[2]);
 //                    aida.histogram1D("Split Tracks Chi2").fill(trk1.getChi2());
-//                    aida.histogram1D("Split Track Momenta (Px)").fill(trk2.getPX());
-//                    aida.histogram1D("Split Track Momenta (Py)").fill(trk2.getPY());
-//                    aida.histogram1D("Split Track Momenta (Pz)").fill(trk2.getPZ());
+//                    aida.histogram1D("Split Track Momenta (Px)").fill(trk2.getTrackStates().get(0).getMomentum()[0]);
+//                    aida.histogram1D("Split Track Momenta (Py)").fill(trk2.getTrackStates().get(0).getMomentum()[1]);
+//                    aida.histogram1D("Split Track Momenta (Pz)").fill(trk2.getTrackStates().get(0).getMomentum()[2]);
 //                    aida.histogram1D("Split Tracks Chi2").fill(trk2.getChi2());
                     //     aida.histogram1D("Charge Distributions Split Tracks").fill(qtrk1 + qtrk2);
                 }
 
                 if ((isTrk2Top + isTrk1Top) == 2) {
-//                    aida.histogram1D("Top-Top Track Momenta (Px)").fill(trk1.getPX());
-//                    aida.histogram1D("Top-Top Track Momenta (Py)").fill(trk1.getPY());
-//                    aida.histogram1D("Top-Top Track Momenta (Pz)").fill(trk1.getPZ());
+//                    aida.histogram1D("Top-Top Track Momenta (Px)").fill(trk1.getTrackStates().get(0).getMomentum()[0]);
+//                    aida.histogram1D("Top-Top Track Momenta (Py)").fill(trk1.getTrackStates().get(0).getMomentum()[1]);
+//                    aida.histogram1D("Top-Top Track Momenta (Pz)").fill(trk1.getTrackStates().get(0).getMomentum()[2]);
 //                    aida.histogram1D("Top-Top Tracks Chi2").fill(trk1.getChi2());
-//                    aida.histogram1D("Top-Top Track Momenta (Px)").fill(trk2.getPX());
-//                    aida.histogram1D("Top-Top Track Momenta (Py)").fill(trk2.getPY());
-//                    aida.histogram1D("Top-Top Track Momenta (Pz)").fill(trk2.getPZ());
+//                    aida.histogram1D("Top-Top Track Momenta (Px)").fill(trk2.getTrackStates().get(0).getMomentum()[0]);
+//                    aida.histogram1D("Top-Top Track Momenta (Py)").fill(trk2.getTrackStates().get(0).getMomentum()[1]);
+//                    aida.histogram1D("Top-Top Track Momenta (Pz)").fill(trk2.getTrackStates().get(0).getMomentum()[2]);
 //                    aida.histogram1D("Top-Top Tracks Chi2").fill(trk2.getChi2());
                     //     aida.histogram1D("Charge Distributions Non-Split Tracks").fill(qtrk1 + qtrk2);
                 }
 
 
 //                if ((qtrk1 + qtrk2) == 0) {
-//                    aida.histogram1D("Perpendicular Momentum").fill(Math.sqrt(Math.pow((trk1.getPY() + trk2.getPY()), 2) + Math.pow((trk1.getPZ() + trk2.getPZ()), 2)));
+//                    aida.histogram1D("Perpendicular Momentum").fill(Math.sqrt(Math.pow((trk1.getTrackStates().get(0).getMomentum()[1] + trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2] + trk2.getTrackStates().get(0).getMomentum()[2]), 2)));
 //
 //                    if (qtrk1 == 1) {
-//                        aida.histogram2D("Py+ vs. Py-").fill(trk1.getPY(), trk2.getPY());
-//                        aida.histogram2D("Pz+ vs. Pz-").fill(trk1.getPZ(), trk2.getPZ());
-//                        aida.histogram2D("Total P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))), Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))));
+//                        aida.histogram2D("Py+ vs. Py-").fill(trk1.getTrackStates().get(0).getMomentum()[1], trk2.getTrackStates().get(0).getMomentum()[1]);
+//                        aida.histogram2D("Pz+ vs. Pz-").fill(trk1.getTrackStates().get(0).getMomentum()[2], trk2.getTrackStates().get(0).getMomentum()[2]);
+//                        aida.histogram2D("Total P+ vs. P-").fill(Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))));
 //
 //                    } else {
-//                        aida.histogram2D("Py+ vs. Py-").fill(trk2.getPY(), trk1.getPY());
-//                        aida.histogram2D("Pz+ vs. Pz-").fill(trk2.getPZ(), trk1.getPZ());
-//                        aida.histogram2D("Total P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getPY()), 2) + Math.pow((trk2.getPX()), 2) + Math.pow((trk2.getPZ()), 2))), Math.sqrt((Math.pow((trk1.getPY()), 2) + Math.pow((trk1.getPX()), 2) + Math.pow((trk1.getPZ()), 2))));
+//                        aida.histogram2D("Py+ vs. Py-").fill(trk2.getTrackStates().get(0).getMomentum()[1], trk1.getTrackStates().get(0).getMomentum()[1]);
+//                        aida.histogram2D("Pz+ vs. Pz-").fill(trk2.getTrackStates().get(0).getMomentum()[2], trk1.getTrackStates().get(0).getMomentum()[2]);
+//                        aida.histogram2D("Total P+ vs. P-").fill(Math.sqrt((Math.pow((trk2.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk2.getTrackStates().get(0).getMomentum()[2]), 2))), Math.sqrt((Math.pow((trk1.getTrackStates().get(0).getMomentum()[1]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[0]), 2) + Math.pow((trk1.getTrackStates().get(0).getMomentum()[2]), 2))));
 //                    }
 //                }
 

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/alignment/RunAlignment.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/alignment/RunAlignment.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/alignment/RunAlignment.java	Thu Jan 22 16:47:00 2015
@@ -55,9 +55,9 @@
             ap.PrintResidualsAndDerivatives(trk);
 
             if(1==1){
-                aida.histogram1D("Track d0",50,-0.5,0.5).fill(trk.getTrackParameter(0));
-                aida.histogram1D("Track sin(phi0)",50,-0.5,0.5).fill(Math.sin(trk.getTrackParameter(1)));
-                aida.histogram1D("Track z0",50,-0.1,0.1).fill(Math.sin(trk.getTrackParameter(3)));
+                aida.histogram1D("Track d0",50,-0.5,0.5).fill(trk.getTrackStates().get(0).getParameter(0));
+                aida.histogram1D("Track sin(phi0)",50,-0.5,0.5).fill(Math.sin(trk.getTrackStates().get(0).getParameter(1)));
+                aida.histogram1D("Track z0",50,-0.1,0.1).fill(Math.sin(trk.getTrackStates().get(0).getParameter(3)));
                 aida.histogram1D("Track chi^2",50,0,25).fill(trk.getChi2());
                 for (int i = 1; i < 11; i++) {
                 double[] res = ap.getResidual(trk, i);
@@ -70,11 +70,11 @@
 
                 aida.histogram1D("deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
-                if(i==3&&Math.sin(trk.getTrackParameter(1))>0){
+                if(i==3&&Math.sin(trk.getTrackStates().get(0).getParameter(1))>0){
                     aida.histogram1D("Positive phi0  deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("Positive phi0 deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
                 }
-                if(i==3&&Math.sin(trk.getTrackParameter(1))<0){
+                if(i==3&&Math.sin(trk.getTrackStates().get(0).getParameter(1))<0){
                     aida.histogram1D("Negative phi0  deltaU -- Layer " + mylayer,50,-duRange,duRange).fill(res[0]);
                 aida.histogram1D("Negative phi0 deltaU Pull-- Layer " + mylayer,50,-3,3).fill(res[0]/res[3]);
                 }

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/jlabrotation/DetailedAnalysisDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/jlabrotation/DetailedAnalysisDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/jlabrotation/DetailedAnalysisDriver.java	Thu Jan 22 16:47:00 2015
@@ -360,7 +360,7 @@
             aida.cloud1D("Axial Tracks per Event").fill(axialtracklist.size());
             String atrackdir = "TrackInfoAxial/";
             for (Track atrack : axialtracklist) {
-                double apx = atrack.getPX();
+                double apx = atrack.getTrackStates().get(0).getMomentum()[0];
                 aida.cloud1D(atrackdir + "pX").fill(apx);
                 TrackAnalysis tkanal = new TrackAnalysis(atrack, hittomcAxial);
                 MCParticle mcp = tkanal.getMCParticle();
@@ -406,16 +406,17 @@
         //  Analyze the tracks in the event
         for (Track track : tracklist) {
             //  Calculate the track pT and cos(theta)
-            double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-            double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-            double phi0 = track.getTrackParameter(HelicalTrackFit.phi0Index);
-            double slope = track.getTrackParameter(HelicalTrackFit.slopeIndex);
-            double curve = track.getTrackParameter(HelicalTrackFit.curvatureIndex);
-            double d0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
-            double z0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
-            double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
-            double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
-            double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
+            double d0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.dcaIndex);
+            double z0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index);
+            double phi0 = track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index);
+            double slope = track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex);
+            double curve = track.getTrackStates().get(0).getParameter(HelicalTrackFit.curvatureIndex);
+            SymmetricMatrix covMatrix = new SymmetricMatrix(5,track.getTrackStates().get(0).getCovMatrix(),true);
+            double d0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.dcaIndex, HelicalTrackFit.dcaIndex));
+            double z0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.z0Index, HelicalTrackFit.z0Index));
+            double phi0Err = Math.sqrt(covMatrix.e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
+            double slopeErr = Math.sqrt(covMatrix.e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
+            double curveErr = Math.sqrt(covMatrix.e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
             _nchRec++;
             if (track.getCharge() < 0)
                 _neleRec++;
@@ -434,7 +435,7 @@
             double xoca = ht.x0();
             double yoca = ht.y0();
             double[] poca = {xoca, yoca, z0};
-            double mom[] = track.getMomentum();
+            double mom[] = track.getTrackStates().get(0).getMomentum();
             double px = mom[0];
             double py = mom[1];
             double pz = mom[2];
@@ -526,9 +527,9 @@
                 double pzmc = Pmc.z();
                 double ptmc = Math.sqrt(pxmc * pxmc + pymc * pymc);
                 double pmc = Math.sqrt(ptmc * ptmc + pzmc * pzmc);
-                double pxtk = track.getPX();
-                double pytk = track.getPY();
-                double pztk = track.getPZ();
+                double pxtk = track.getTrackStates().get(0).getMomentum()[0];
+                double pytk = track.getTrackStates().get(0).getMomentum()[1];
+                double pztk = track.getTrackStates().get(0).getMomentum()[2];
                 double pttk = Math.sqrt(pxtk * pxtk + pytk * pytk);
                 double ptk = Math.sqrt(pttk * pttk + pztk * pztk);
 
@@ -815,9 +816,9 @@
                 continue;
             if (mcp.getParents().size() == 1 && mcp.getParents().get(0).getPDGID() == 622) {
                 int nhits = tkanal.getNHitsNew();
-                double px = track.getPX();
-                double py = track.getPY();
-                double pz = track.getPZ();
+                double px = track.getTrackStates().get(0).getMomentum()[0];
+                double py = track.getTrackStates().get(0).getMomentum()[1];
+                double pz = track.getTrackStates().get(0).getMomentum()[2];
                 double pt = Math.sqrt(px * px + py * py);
                 double pperp = Math.sqrt(py * py + pz * pz);
                 double p = Math.sqrt(pt * pt + pz * pz);
@@ -1327,9 +1328,9 @@
         double me = 0.000511;
         // Loop over jets
 
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();
@@ -1341,9 +1342,9 @@
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
-        double p2x = track2.getPX();
-        double p2y = track2.getPY();
-        double p2z = track2.getPZ();
+        double p2x = track2.getTrackStates().get(0).getMomentum()[0];
+        double p2y = track2.getTrackStates().get(0).getMomentum()[1];
+        double p2z = track2.getTrackStates().get(0).getMomentum()[2];
         double p2mag2 = p2x * p2x + p2y * p2y + p2z * p2z;
         double e2 = Math.sqrt(p2mag2 + me * me);
 
@@ -1430,9 +1431,9 @@
     private Hep3Vector getTrueMomentum(Track track1, StraightLineTrack slt1) {
         double[] truep = {0, 0, 0};
         double me = 0.000511;
-        double p1x = track1.getPX();
-        double p1y = track1.getPY();
-        double p1z = track1.getPZ();
+        double p1x = track1.getTrackStates().get(0).getMomentum()[0];
+        double p1y = track1.getTrackStates().get(0).getMomentum()[1];
+        double p1z = track1.getTrackStates().get(0).getMomentum()[2];
         double p1mag2 = p1x * p1x + p1y * p1y + p1z * p1z;
         double e1 = Math.sqrt(p1mag2 + me * me);
         double dydx1 = slt1.dydx();

Modified: java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java	Thu Jan 22 16:47:00 2015
@@ -282,7 +282,7 @@
             
         	// Apply a momentum cut? Probably ...
         	// Calculate the track momentum
-        	double momentum = Math.sqrt(track.getPX()*track.getPX() + track.getPY()*track.getPY() + track.getPZ()*track.getPZ());
+        	double momentum = Math.sqrt(track.getTrackStates().get(0).getMomentum()[0]*track.getTrackStates().get(0).getMomentum()[0] + track.getTrackStates().get(0).getMomentum()[1]*track.getTrackStates().get(0).getMomentum()[1] + track.getTrackStates().get(0).getMomentum()[2]*track.getTrackStates().get(0).getMomentum()[2]);
         	if(momentum < 0.5 /* GeV */) continue;
         	if(enableMomentumPlots)
         		aida.histogram1D("Track Momentum - All Tracks").fill(momentum);

Modified: java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/omoreno/SvtTrackAnalysis.java	Thu Jan 22 16:47:00 2015
@@ -286,31 +286,31 @@
     		aida.histogram1D("R").fill((1/TrackUtils.getR(track))*1000);
     		aida.histogram1D("Tan(Lambda)").fill(TrackUtils.getTanLambda(track));
     		
-    		aida.histogram1D("Px").fill(track.getPX());
-    		aida.histogram1D("Py").fill(track.getPY());
-    		aida.histogram1D("Pz").fill(track.getPZ());
+    		aida.histogram1D("Px").fill(track.getTrackStates().get(0).getMomentum()[0]);
+    		aida.histogram1D("Py").fill(track.getTrackStates().get(0).getMomentum()[1]);
+    		aida.histogram1D("Pz").fill(track.getTrackStates().get(0).getMomentum()[2]);
     		aida.histogram1D("ChiSquared").fill(track.getChi2());
     		
     		if(Math.signum(TrackUtils.getR(track)) < 0){
     			aida.histogram2D("Track Position at Ecal: Curvature < 0").fill(positionEcal.y(), positionEcal.z());
     			aida.histogram2D("Track Position at Harp: Curvature < 0").fill(positionConverter.y(), positionConverter.z());
-        		aida.histogram1D("Px: C < 0").fill(track.getPX());
-        		aida.histogram1D("Py: C < 0").fill(track.getPY());
-        		aida.histogram1D("Pz: C < 0").fill(track.getPZ());
+        		aida.histogram1D("Px: C < 0").fill(track.getTrackStates().get(0).getMomentum()[0]);
+        		aida.histogram1D("Py: C < 0").fill(track.getTrackStates().get(0).getMomentum()[1]);
+        		aida.histogram1D("Pz: C < 0").fill(track.getTrackStates().get(0).getMomentum()[2]);
         		nnegative++;
     		} else if(Math.signum(TrackUtils.getR(track)) > 0){
     			aida.histogram2D("Track Position at Ecal: Curvature > 0").fill(positionEcal.y(), positionEcal.z());
     			aida.histogram2D("Track Position at Harp: Curvature > 0").fill(positionConverter.y(), positionConverter.z());
-        		aida.histogram1D("Px: C > 0").fill(track.getPX());
-        		aida.histogram1D("Px: C > 0").fill(track.getPY());
-        		aida.histogram1D("Px: C > 0").fill(track.getPZ());
+        		aida.histogram1D("Px: C > 0").fill(track.getTrackStates().get(0).getMomentum()[0]);
+        		aida.histogram1D("Px: C > 0").fill(track.getTrackStates().get(0).getMomentum()[1]);
+        		aida.histogram1D("Px: C > 0").fill(track.getTrackStates().get(0).getMomentum()[2]);
         		npositive++;
     		}
     		
     		if(tracks.size() > 1){
     			aida.histogram2D("Track Position at Ecal: Two Tracks").fill(positionEcal.y(), positionEcal.z());
     			aida.histogram2D("Track Position at Harp: Two Tracks").fill(positionConverter.y(), positionConverter.z()); 
-    			aida.histogram1D("Px: Two Tracks").fill(track.getPX());
+    			aida.histogram1D("Px: Two Tracks").fill(track.getTrackStates().get(0).getMomentum()[0]);
     			if(tracks.size() == 2) nTwoTracks++;
     		}
     		
@@ -341,7 +341,7 @@
     	for(Map.Entry<SeedTrack, Cluster> entry : trackToCluster.entrySet()){
     		double Energy = entry.getValue().getEnergy();
     		SeedTrack track = entry.getKey();
-    		double pTotal = Math.sqrt(track.getPX()*track.getPX() + track.getPY()*track.getPY() + track.getPZ()*track.getPZ());
+    		double pTotal = Math.sqrt(track.getTrackStates().get(0).getMomentum()[0]*track.getTrackStates().get(0).getMomentum()[0] + track.getTrackStates().get(0).getMomentum()[1]*track.getTrackStates().get(0).getMomentum()[1] + track.getTrackStates().get(0).getMomentum()[2]*track.getTrackStates().get(0).getMomentum()[2]);
     		
     		double ep = Energy/(pTotal*1000);
     		

Modified: java/trunk/users/src/main/java/org/hps/users/phansson/RunMPAlignment.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/RunMPAlignment.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/RunMPAlignment.java	Thu Jan 22 16:47:00 2015
@@ -159,7 +159,7 @@
             }
         }   
         if(hitsOnWrongSide) {
-            System.out.println(this.getClass().getSimpleName() + ": TRACK w/ both halves hit (: chi2 "+track.getChi2()+", pX "+track.getPX()+", pY "+track.getPY()+", pZ "+track.getPZ()+")");
+            System.out.println(this.getClass().getSimpleName() + ": TRACK w/ both halves hit (: chi2 "+track.getChi2()+", pX "+track.getTrackStates().get(0).getMomentum()[0]+", pY "+track.getTrackStates().get(0).getMomentum()[1]+", pZ "+track.getTrackStates().get(0).getMomentum()[2]+")");
             System.out.printf(this.getClass().getSimpleName() + ": Hits: ");
             for (TrackerHit hit : hitsOnTrack) {
                 double[] pos = hit.getPosition();

Modified: java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/SimpleResiduals.java	Thu Jan 22 16:47:00 2015
@@ -555,10 +555,10 @@
     
     
     public void fillTrackInfo( Track track) {
-        aida.histogram1D("phi0").fill(track.getTrackParameter(HelicalTrackFit.phi0Index));    
-        aida.histogram1D("z0").fill(track.getTrackParameter(HelicalTrackFit.z0Index));
-        aida.histogram1D("slope").fill(track.getTrackParameter(HelicalTrackFit.slopeIndex));
-        double theta = Math.atan(1.0/track.getTrackParameter(HelicalTrackFit.slopeIndex));
+        aida.histogram1D("phi0").fill(track.getTrackStates().get(0).getParameter(HelicalTrackFit.phi0Index));    
+        aida.histogram1D("z0").fill(track.getTrackStates().get(0).getParameter(HelicalTrackFit.z0Index));
+        aida.histogram1D("slope").fill(track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex));
+        double theta = Math.atan(1.0/track.getTrackStates().get(0).getParameter(HelicalTrackFit.slopeIndex));
         aida.histogram1D("theta").fill(theta);
     }
     

Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java	Thu Jan 22 16:47:00 2015
@@ -692,9 +692,9 @@
 
             boolean isSingleHitPerLayerTrack = singleTrackHitPerLayer(trk);
 
-            aida.histogram1D("Track Momentum (Px)").fill(trk.getPY());
-            aida.histogram1D("Track Momentum (Py)").fill(trk.getPZ());
-            aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
+            aida.histogram1D("Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+            aida.histogram1D("Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+            aida.histogram1D("Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
             aida.histogram1D("Track Chi2").fill(trk.getChi2());
 
             aida.histogram1D("Hits per Track").fill(trk.getTrackerHits().size());
@@ -719,15 +719,15 @@
 //            Hep3Vector posonhelix = HelixUtils.PointOnHelix(ht, sECAL);//position in tracker coordinates!
             aida.histogram1D("X (mm) @ ECAL").fill(posAtEcal.x());
             aida.histogram1D("Y (mm) @ ECAL").fill(posAtEcal.y());
-            if (trk.getPX() > 1.0) {
+            if (trk.getTrackStates().get(0).getMomentum()[0] > 1.0) {
                 aida.histogram1D("X (mm) @ ECAL (Pz>1)").fill(posAtEcal.x());
                 aida.histogram1D("Y (mm) @ ECAL (Pz>1)").fill(posAtEcal.y());
             }
-            aida.histogram1D("d0 ").fill(trk.getTrackParameter(ParameterName.d0.ordinal()));
-            aida.histogram1D("sinphi ").fill(Math.sin(trk.getTrackParameter(ParameterName.phi0.ordinal())));
-            aida.histogram1D("omega ").fill(trk.getTrackParameter(ParameterName.omega.ordinal()));
-            aida.histogram1D("tan(lambda) ").fill(trk.getTrackParameter(ParameterName.tanLambda.ordinal()));
-            aida.histogram1D("z0 ").fill(trk.getTrackParameter(ParameterName.z0.ordinal()));
+            aida.histogram1D("d0 ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.d0.ordinal()));
+            aida.histogram1D("sinphi ").fill(Math.sin(trk.getTrackStates().get(0).getParameter(ParameterName.phi0.ordinal())));
+            aida.histogram1D("omega ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.omega.ordinal()));
+            aida.histogram1D("tan(lambda) ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.tanLambda.ordinal()));
+            aida.histogram1D("z0 ").fill(trk.getTrackStates().get(0).getParameter(ParameterName.z0.ordinal()));
 
             int isTop = -1;
             if (trk.getTrackerHits().get(0).getPosition()[2] > 0) {
@@ -739,14 +739,14 @@
             }//            System.out.println("Charge = " + charge + "; isTop = " + isTop);
             aida.histogram2D("Charge vs Slope").fill(charge, isTop);
             if (isTop == 0) {
-                aida.histogram1D("Top Track Momentum (Px)").fill(trk.getPY());
-                aida.histogram1D("Top Track Momentum (Py)").fill(trk.getPZ());
-                aida.histogram1D("Top Track Momentum (Pz)").fill(trk.getPX());
+                aida.histogram1D("Top Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+                aida.histogram1D("Top Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+                aida.histogram1D("Top Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
                 aida.histogram1D("Top Track Chi2").fill(trk.getChi2());
             } else {
-                aida.histogram1D("Bottom Track Momentum (Px)").fill(trk.getPY());
-                aida.histogram1D("Bottom Track Momentum (Py)").fill(trk.getPZ());
-                aida.histogram1D("Bottom Track Momentum (Pz)").fill(trk.getPX());
+                aida.histogram1D("Bottom Track Momentum (Px)").fill(trk.getTrackStates().get(0).getMomentum()[1]);
+                aida.histogram1D("Bottom Track Momentum (Py)").fill(trk.getTrackStates().get(0).getMomentum()[2]);
+                aida.histogram1D("Bottom Track Momentum (Pz)").fill(trk.getTrackStates().get(0).getMomentum()[0]);
                 aida.histogram1D("Bottom Track Chi2").fill(trk.getChi2());
             }
             List<TrackerHit> hitsOnTrack = trk.getTrackerHits();
@@ -823,7 +823,7 @@
                  double amp = fit.getAmp();
                     
                  aida.histogram1D("Amp (HitOnTrack)").fill(amp);
-                 if (trk.getPX() > 1)
+                 if (trk.getTrackStates().get(0).getMomentum()[0] > 1)
                  aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
                  }                
                  */
@@ -836,13 +836,13 @@
                                 double amp = fit.getAmp();
                                 clusterSum += amp;
                                 aida.histogram1D("Amp (HitOnTrack)").fill(amp);
-                                if (trk.getPX() > 1) {
+                                if (trk.getTrackStates().get(0).getMomentum()[0] > 1) {
                                     aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
                                 }
                             }
                         }
                         aida.histogram1D("Amp (CluOnTrack)").fill(clusterSum);
-                        if (trk.getPX() > 1) {
+                        if (trk.getTrackStates().get(0).getMomentum()[0] > 1) {
                             aida.histogram1D("Amp Pz>1000 (CluOnTrack)").fill(clusterSum);
                         }
                     }
@@ -858,20 +858,20 @@
 
                     posAtEcal = TrackUtils.extrapolateTrack(trk, clust.getPosition()[2]);//.positionAtEcal();
 
-                    aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                    aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                    aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                    aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                     aida.histogram1D("deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                     aida.histogram1D("deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
-                    //                if (trk.getPX() > 1.0) {
+                    //                if (trk.getTrackStates().get(0).getMomentum()[0] > 1.0) {
                     //                    aida.histogram1D("deltaX (Pz>1)").fill(clust.getPosition()[0] - posAtEcal.y());
                     //                    aida.histogram1D("deltaY (Pz>1)").fill(clust.getPosition()[1] - posAtEcal.z());
                     //                }
                     aida.histogram2D("X ECal Vs Track").fill(clust.getPosition()[0], posAtEcal.x());
                     aida.histogram2D("Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
                     if (isTop == 0) {
-                        aida.histogram2D("Top Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                        //                    aida.histogram2D("Top Energy Vs Momentum").fill(posAtEcal.y(), trk.getPX() * 1000.0);
-                        aida.histogram1D("Top Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                        aida.histogram2D("Top Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        //                    aida.histogram2D("Top Energy Vs Momentum").fill(posAtEcal.y(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        aida.histogram1D("Top Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                         aida.histogram1D("Top deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                         aida.histogram1D("Top deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
                         aida.histogram2D("Top deltaX vs X").fill(clust.getPosition()[0], clust.getPosition()[0] - posAtEcal.x());
@@ -879,8 +879,8 @@
                         aida.histogram2D("Top X ECal Vs Track").fill(clust.getPosition()[0], posAtEcal.x());
                         aida.histogram2D("Top Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
                     } else {
-                        aida.histogram2D("Bottom Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
-                        aida.histogram1D("Bottom Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
+                        aida.histogram2D("Bottom Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] * 1000.0);
+                        aida.histogram1D("Bottom Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0] * 1000.0));
                         aida.histogram1D("Bottom deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
                         aida.histogram1D("Bottom deltaY").fill(clust.getPosition()[1] - posAtEcal.y());
                         aida.histogram2D("Bottom deltaX vs X").fill(clust.getPosition()[0], clust.getPosition()[0] - posAtEcal.x());

Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/TrigRateDriver.java	Thu Jan 22 16:47:00 2015
@@ -327,7 +327,7 @@
                 trkMatchTool.setCluster(cl);
                 trkMatchTool.match(tracks);
                 if(trkMatchTool.isMatchedY(20)) {
-                    eoverp = cl.getEnergy()/(trkMatchTool.getMatchedTrack().getPX()*1000);
+                    eoverp = cl.getEnergy()/(trkMatchTool.getMatchedTrack().getTrackStates().get(0).getMomentum()[0]*1000);
                 }   
             }
             if(eoverp>0) aida.histogram1D("Eoverp " + side).fill(eoverp);

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use