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

# User Rev Content
1 econte 1.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