ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h
Revision: 1.1
Committed: Fri Nov 25 16:38:24 2011 UTC (13 years, 5 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: TBD2011, TBD_2011, HEAD
Log Message:
new IPHC alignment

File Contents

# Content
1 #ifndef TransverseImpactPointExtrapolator_h_
2 #define TransverseImpactPointExtrapolator_h_
3
4 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
5 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
6 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
7 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
8 #include "MagneticField/Engine/interface/MagneticField.h"
9
10 class FreeTrajectoryState;
11 class TrajectoryStateOnSurface;
12 // class Propagator;
13 class BoundPlane;
14 template <class T> class ReferenceCountingPointer;
15
16 /** Extrapolate to impact point with respect to vtx,
17 * i.e. point of closest approach to vtx in 2D.
18 * The surface of the returned TrajectoryStateOnSurface
19 * is chosen centred on vtx;
20 * the axes of the local coordinate system (x_loc, y_loc, z_loc) are
21 * z_loc // trajectory direction in transverse plane at impact point;
22 * x_loc normal to trajectory and along impact vector (impact point - vtx);
23 * y_loc forms a right-handed system with the other axes.
24 */
25
26 class TransverseImpactPointExtrapolator {
27
28 public:
29
30 /// constructor with default geometrical propagator
31 TransverseImpactPointExtrapolator();
32
33 /// constructor with default geometrical propagator
34 TransverseImpactPointExtrapolator(const MagneticField* field);
35 /// constructor with user-supplied propagator
36 TransverseImpactPointExtrapolator(const Propagator& u);
37
38 /// extrapolation with default (=geometrical) propagator
39 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
40 const GlobalPoint& vtx) const;
41 /// as above, but from TrajectoryStateOnSurface
42 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
43 const GlobalPoint& vtx) const;
44
45 /// extrapolation with user-supplied propagator
46 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
47 const GlobalPoint& vtx,
48 const Propagator& u) const;
49 /// as above, but from TrajectoryStateOnSurface
50 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
51 const GlobalPoint& vtx,
52 const Propagator& u) const;
53
54 private:
55 /// extrapolation of (multi) TSOS with (internal or user-supplied) propagator
56 TrajectoryStateOnSurface doExtrapolation (const TrajectoryStateOnSurface tsos,
57 const GlobalPoint& vtx,
58 const Propagator& u) const;
59 /// extrapolation of (single) FTS with (internal or user-supplied) propagator
60 TrajectoryStateOnSurface doExtrapolation (const FreeTrajectoryState& fts,
61 const GlobalPoint& vtx,
62 const Propagator& u) const;
63 /// computation of the TIP surface
64 ReferenceCountingPointer<BoundPlane> tipSurface (const GlobalPoint& position,
65 const GlobalVector& momentum,
66 const double& signedTransverseRadius,
67 const GlobalPoint& vtx) const;
68
69 private:
70 DeepCopyPointerByClone<Propagator> thePropagator;
71 };
72
73 #endif