|
||||
File indexing completed on 2024-04-06 12:31:28
0001 #ifndef HelixPlaneCrossing_H 0002 #define HelixPlaneCrossing_H 0003 0004 #include "DataFormats/GeometryVector/interface/Basic3DVector.h" 0005 0006 #include <utility> 0007 0008 class Plane; 0009 0010 /** Abstract interface for the crossing of a helix with a plane. 0011 */ 0012 0013 class HelixPlaneCrossing { 0014 public: 0015 /// the helix is passed to the constructor and does not appear in the interface 0016 0017 /** The types for position and direction are frame-neutral 0018 * (not global, local, etc.) so this interface can be used 0019 * in any frame. Of course, the helix and the plane must be defined 0020 * in the same frame, which is also the frame of the result. 0021 */ 0022 typedef Basic3DVector<float> PositionType; 0023 typedef Basic3DVector<float> DirectionType; 0024 0025 /** Propagation status (true if valid) and (signed) path length 0026 * along the helix from the starting point to the plane. The 0027 * starting point is given in the constructor. 0028 */ 0029 virtual std::pair<bool, double> pathLength(const Plane&) = 0; 0030 0031 /** Returns the position along the helix that corresponds to path 0032 * length "s" from the starting point. If s is obtained from the 0033 * pathLength method the position is the destination point, i.e. 0034 * the position of the crossing with a plane (if it exists!) 0035 * is given by position( pathLength( plane)). 0036 */ 0037 virtual PositionType position(double s) const = 0; 0038 0039 /** Returns the direction along the helix that corresponds to path 0040 * length "s" from the starting point. As for position, 0041 * the direction of the crossing with a plane (if it exists!) 0042 * is given by direction( pathLength( plane)). 0043 */ 0044 virtual DirectionType direction(double s) const = 0; 0045 0046 virtual ~HelixPlaneCrossing() = default; 0047 }; 0048 0049 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |