File indexing completed on 2024-04-06 12:05:21
0001 #ifndef RecHit2DLocalPos_H
0002 #define RecHit2DLocalPos_H
0003
0004 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0005 #include "DataFormats/GeometrySurface/interface/LocalError.h"
0006 #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h"
0007
0008 class RecHit2DLocalPos : public TrackingRecHit {
0009 public:
0010 typedef GloballyPositioned<float>::LocalPoint LocalPoint;
0011
0012 RecHit2DLocalPos(DetId id) : TrackingRecHit(id) {}
0013 RecHit2DLocalPos(TrackingRecHit::id_type id = 0) : TrackingRecHit(id) {}
0014 ~RecHit2DLocalPos() override {}
0015
0016 RecHit2DLocalPos* clone() const override = 0;
0017
0018 AlgebraicVector parameters() const override;
0019
0020 AlgebraicSymMatrix parametersError() const override;
0021
0022 AlgebraicMatrix projectionMatrix() const override { return theProjectionMatrix; }
0023
0024 int dimension() const override { return 2; }
0025
0026 LocalPoint localPosition() const override = 0;
0027
0028 LocalError localPositionError() const override = 0;
0029
0030 std::vector<const TrackingRecHit*> recHits() const override;
0031
0032 std::vector<TrackingRecHit*> recHits() override;
0033
0034 private:
0035 static const AlgebraicMatrix theProjectionMatrix;
0036 };
0037
0038 #endif