CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BasicTrajectoryState.h
Go to the documentation of this file.
1 #ifndef BasicTrajectoryState_H
2 #define BasicTrajectoryState_H
3 
7 //#include "CommonDet/DetUtilities/interface/ReferenceCountingPointer.h"
8 
15 
16 #include <vector>
17 
19 class Surface;
21 
27 public:
28 
33 
34 private:
35  friend class ProxyBase< BTSOS, CopyUsingClone<BTSOS> >;
37 public:
38 
39  virtual ~BasicTrajectoryState();
40 
41  virtual BasicTrajectoryState* clone() const = 0;
42 
43  virtual bool isValid() const = 0;
44 
45  virtual bool hasError() const = 0;
46 
47  virtual const GlobalTrajectoryParameters& globalParameters() const = 0;
48 
49  virtual GlobalPoint globalPosition() const = 0;
50 
51  virtual GlobalVector globalMomentum() const = 0;
52 
53  virtual GlobalVector globalDirection() const = 0;
54 
55  virtual TrackCharge charge() const = 0;
56 
57  virtual double signedInverseMomentum() const = 0;
58 
59  virtual double transverseCurvature() const = 0;
60 
61  virtual const CartesianTrajectoryError& cartesianError() const = 0;
62 
63  virtual const CurvilinearTrajectoryError& curvilinearError() const = 0;
64 
65  virtual FreeTrajectoryState* freeTrajectoryState(bool withErrors = true) const = 0;
66 
67  virtual const MagneticField *magneticField() const = 0;
68 
69  virtual const LocalTrajectoryParameters& localParameters() const = 0;
70 
71  virtual LocalPoint localPosition() const = 0;
72 
73  virtual LocalVector localMomentum() const = 0;
74 
75  virtual LocalVector localDirection() const = 0;
76 
77  virtual const LocalTrajectoryError& localError() const = 0;
78 
79  virtual const Surface& surface() const = 0;
80 
81  virtual double weight() const {return 1.;}
82 
83  virtual void rescaleError(double factor) = 0;
84 
85  virtual std::vector<TrajectoryStateOnSurface> components() const;
86  /*
87  virtual std::vector<RCPtr> components() const {
88  std::vector<RCPtr> result(1);
89  result[0] = const_cast<BasicTrajectoryState*>(this);
90  return result;
91  }
92  */
93 
95  virtual SurfaceSide surfaceSide() const = 0;
96 
97  virtual bool canUpdateLocalParameters() const = 0;
98  virtual void update( const LocalTrajectoryParameters& p,
99  const Surface& aSurface,
100  const MagneticField* field,
101  const SurfaceSide side ) = 0;
102  virtual void update( const LocalTrajectoryParameters& p,
103  const LocalTrajectoryError& err,
104  const Surface& aSurface,
105  const MagneticField* field,
106  const SurfaceSide side,
107  double weight ) = 0;
108 };
109 
110 #endif
virtual const CurvilinearTrajectoryError & curvilinearError() const =0
virtual const CartesianTrajectoryError & cartesianError() const =0
SurfaceSideDefinition::SurfaceSide SurfaceSide
virtual double transverseCurvature() const =0
virtual GlobalVector globalDirection() const =0
virtual bool isValid() const =0
virtual const LocalTrajectoryError & localError() const =0
virtual LocalVector localMomentum() const =0
virtual const LocalTrajectoryParameters & localParameters() const =0
virtual LocalPoint localPosition() const =0
virtual bool hasError() const =0
virtual void update(const LocalTrajectoryParameters &p, const Surface &aSurface, const MagneticField *field, const SurfaceSide side)=0
int TrackCharge
Definition: TrackCharge.h:4
virtual double signedInverseMomentum() const =0
virtual SurfaceSide surfaceSide() const =0
Position relative to material, defined relative to momentum vector.
virtual GlobalPoint globalPosition() const =0
virtual bool canUpdateLocalParameters() const =0
virtual const MagneticField * magneticField() const =0
ReferenceCountingPointer< BasicTrajectoryState > RCPtr
ProxyBase< BTSOS, CopyUsingClone< BTSOS > > Proxy
virtual const GlobalTrajectoryParameters & globalParameters() const =0
virtual LocalVector localDirection() const =0
virtual double weight() const
virtual const Surface & surface() const =0
virtual FreeTrajectoryState * freeTrajectoryState(bool withErrors=true) const =0
virtual void rescaleError(double factor)=0
virtual std::vector< TrajectoryStateOnSurface > components() const
virtual BasicTrajectoryState * clone() const =0
virtual TrackCharge charge() const =0
virtual GlobalVector globalMomentum() const =0
BasicTrajectoryState BTSOS