SurfLine.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 ///
3 /// \file SurfLine.h
4 ///
5 /// \brief Base class for Kalman filter line surfaces.
6 ///
7 /// \author H. Greenlee
8 ///
9 /// This class acts as an intermediate layer between abstract surfaces
10 /// (base class Surface), and concrete line surfaces (like SurfYZLine).
11 /// It does not include any data members of its own. It guarantees the
12 /// existence of a right-handed local Cartesian coordinate system (u,v,w),
13 /// in which this line surface corresponds to the v-axis. A track is
14 /// considered to be at this type of surface when it is at its closest
15 /// approach to the v-axis.
16 ///
17 /// Track parameters on this type of surface are:
18 ///
19 /// 1. r
20 /// 2. v
21 /// 3. phi
22 /// 4. eta
23 /// 5. 1/p (nonmagnetic) or q/p (magnetic)
24 ///
25 /// r = Signed impoact parameter. Absolute value of r is the perpendicular
26 /// distance of the track to the v-axis at the point of closest
27 /// approach to v-axis. Sign of r matches sign of L_v (v projection
28 /// of angular momentum).
29 /// v = V-coordinate of track at point of closest approach to v-axis.
30 /// phi = Direction of track in u-w plane (phi = arctan(w/u)).
31 /// eta = Pseudorapidity with respect to v-axis.
32 /// q/p or 1/p = Inverse momentum.
33 ///
34 /// In terms of these parameters, the point of closest approach to the
35 /// v-axis is
36 ///
37 /// u = -r sin(phi)
38 /// v = v
39 /// w = r cos(phi)
40 ///
41 /// The unit direction vector is
42 ///
43 /// du/ds = cos(phi) sech(eta)
44 /// dv/ds = tanh(eta)
45 /// dw/ds = sin(phi) sech(eta)
46 ///
47 ///
48 ////////////////////////////////////////////////////////////////////////
49 
50 #ifndef SURFLINE_H
51 #define SURFLINE_H
52 
55 
56 namespace trkf {
57 
58  class SurfLine : public Surface
59  {
60  public:
61 
62  /// Default constructor.
63  SurfLine();
64 
65  /// Destructor.
66  virtual ~SurfLine();
67 
68  // Overrides.
69 
70  /// Get pointing error of track.
71  double PointingError(const TrackVector& vec, const TrackError& err) const;
72 
73  /// Get starting error matrix for Kalman filter.
74  void getStartingError(TrackError& err) const;
75  };
76 }
77 
78 #endif
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
Base class for Kalman filter surface.
void getStartingError(TrackError &err) const
Get starting error matrix for Kalman filter.
Definition: SurfLine.cxx:92
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
double PointingError(const TrackVector &vec, const TrackError &err) const
Get pointing error of track.
Definition: SurfLine.cxx:36
void err(const char *fmt,...)
Definition: message.cpp:226
Kalman filter linear algebra typedefs.
SurfLine()
Default constructor.
Definition: SurfLine.cxx:17
virtual ~SurfLine()
Destructor.
Definition: SurfLine.cxx:21