ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/TrackingTools/PatternTools/interface/ClosestApproachOnHelices.h
Revision: 1.1
Committed: Fri Nov 25 16:38:23 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 _ClosestApproachOnHelices_H_
2 #define _ClosestApproachOnHelices_H_
3
4 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
5 #include <utility>
6
7 /** \class ClosestApproachOnHelices
8 * Abstract interface for classes which compute the points of closest
9 * approach of 2 helices. <br>
10 * For a pair of states, the calculate methods have to be called before any of
11 * the other methods. This will do all calculations needed to get the result.
12 * It returns a status which says whether the calculation was successful.
13 * This should be checked before getting the result. If the status is false
14 * and the results querried, an exception will be thrown.
15 */
16
17 class FreeTrajectoryState;
18 class TrajectoryStateOnSurface;
19
20 class ClosestApproachOnHelices {
21
22 public:
23
24 ClosestApproachOnHelices() {}
25
26 virtual ~ClosestApproachOnHelices() {}
27
28
29 virtual bool calculate(const TrajectoryStateOnSurface & sta,
30 const TrajectoryStateOnSurface & stb) = 0;
31
32 virtual bool calculate(const FreeTrajectoryState & sta,
33 const FreeTrajectoryState & stb) = 0;
34
35 virtual bool status() const = 0;
36
37 /** Points of closest approach on the 2 helices */
38 virtual std::pair<GlobalPoint, GlobalPoint> points() const = 0;
39
40 /** Crossing point of the 2 helices, computed as an average
41 * of the points of closest approach.
42 * The average can be weighted or not, depending on the implementation.
43 */
44 virtual GlobalPoint crossingPoint() const = 0;
45
46 /** Distance between the points of closest approach */
47 virtual float distance() const = 0;
48
49 virtual ClosestApproachOnHelices * clone() const = 0;
50
51 };
52
53 #endif