View Javadoc

1   package org.lcsim.recon.tracking.vsegment.transform;
2   
3   import hep.physics.matrix.SymmetricMatrix;
4   import hep.physics.vec.Hep3Vector;
5   
6   /**
7    * An object of this type defines a reference frame transformation in 3D space.
8    * The origins of the two frames are assumed to be at the same point.
9    *
10   * @author D.Onoprienko
11   * @version $Id: Transformation3D.java,v 1.1 2008/12/06 21:53:44 onoprien Exp $
12   */
13  public interface Transformation3D {
14    
15    /**
16     * Returns coordinates of a point in the transformed reference frame given its 
17     * coordinates in the original reference frame. 
18     */
19    public Hep3Vector transformTo(Hep3Vector vector);
20    
21    /**
22     * Returns coordinates of a point in the original reference frame given its 
23     * coordinates in the transformed reference frame. 
24     */
25    public Hep3Vector transformFrom(Hep3Vector vector);
26    
27    /**
28     * Returns covariance matrix in the transformed reference frame given the 
29     * covariance matrix in the original reference frame. 
30     * Throws <tt>RuntimeException</tt> if transformed covariance matrix cannot be
31     * computed based on the original covariance matrix alone.
32     */
33    public SymmetricMatrix transformTo(SymmetricMatrix covMatrix);
34    
35    /**
36     * Returns covariance matrix in the original reference frame given the 
37     * covariance matrix in the transformed reference frame. 
38     * Throws <tt>RuntimeException</tt> if original covariance matrix cannot be
39     * computed based on the transformed covariance matrix alone.
40     */
41    public SymmetricMatrix transformFrom(SymmetricMatrix covMatrix);
42    
43    /**
44     * Returns covariance matrix in the transformed reference frame given the 
45     * covariance matrix and position in the original reference frame. 
46     */
47    public SymmetricMatrix transformTo(SymmetricMatrix covMatrix, Hep3Vector vector);
48    
49    /**
50     * Returns covariance matrix in the original reference frame given the 
51     * covariance matrix and position in the transformed reference frame. 
52     */
53    public SymmetricMatrix transformFrom(SymmetricMatrix covMatrix, Hep3Vector vector);
54    
55  }