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

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