CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GenericProjectedRecHit2D.h
Go to the documentation of this file.
1 #ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_GenericProjectedRecHit2D_H
2 #define RECOTRACKER_TRANSIENTRACKINGRECHIT_GenericProjectedRecHit2D_H
3 
7 
9 public:
11  const LocalError& err,
12  const GeomDet* det,
13  const GeomDet* originaldet,
16 
19  }
20 
21  //virtual ~GenericProjectedRecHit2D(){delete theOriginalTransientHit;}
22 
23  AlgebraicVector parameters() const override;
24 
25  LocalPoint localPosition() const override { return theLp; }
26 
27  LocalError localPositionError() const override { return theLe; }
28 
30 
31  virtual DetId geographicalId() const { return det() ? det()->geographicalId() : DetId(); }
32 
33  int dimension() const override { return theDimension; }
34 
35  //this hit lays on the original surface, NOT on the projection surface
36  const TrackingRecHit* hit() const override { return theOriginalTransientHit->hit(); }
37 
38  TrackingRecHit* cloneHit() const override { return theOriginalTransientHit->cloneHit(); }
39 
40  virtual bool isValid() const { return true; }
41 
42  std::vector<const TrackingRecHit*> recHits() const override {
43  //return theOriginalTransientHit->hit()->recHits();
44  return std::vector<const TrackingRecHit*>();
45  }
46 
47  std::vector<TrackingRecHit*> recHits() override {
48  //should it do something different?
49  return std::vector<TrackingRecHit*>();
50  }
51 
53 
54  bool canImproveWithTrack() const override { return true; }
55 
56  const GeomDet* originalDet() const { return theOriginalDet; }
57 
58  static RecHitPointer build(const LocalPoint& pos,
59  const LocalError& err,
60  const GeomDet* det,
61  const GeomDet* originaldet,
63  const TrackingRecHitPropagator* propagator) {
64  return RecHitPointer(new GenericProjectedRecHit2D(pos, err, det, originaldet, originalHit, propagator));
65  }
66 
68 
69 private:
76  //const TrackingRecHit* theOriginalHit;
78 
79  GenericProjectedRecHit2D* clone() const override { return new GenericProjectedRecHit2D(*this); }
80 };
81 
82 #endif
TransientTrackingRecHit::ConstRecHitPointer theOriginalTransientHit
std::vector< TrackingRecHit * > recHits() override
Non-const access to component RecHits (if any)
AlgebraicSymMatrix parametersError() const override
const TrackingRecHitPropagator * thePropagator
static AlgebraicSymMatrix parError(const LocalError &le, const GeomDet &det)
LocalError localPositionError() const override
GenericProjectedRecHit2D * clone() const override
AlgebraicVector parameters() const override
CLHEP::HepMatrix AlgebraicMatrix
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const GeomDet * det() const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
std::shared_ptr< TrackingRecHit const > RecHitPointer
const TrackingRecHitPropagator * propagator() const
Definition: DetId.h:17
CLHEP::HepVector AlgebraicVector
virtual DetId geographicalId() const
const GeomDet * originalDet() const
TrackingRecHit * cloneHit() const override
bool canImproveWithTrack() const override
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const GeomDet *originaldet, const TransientTrackingRecHit::ConstRecHitPointer originalHit, const TrackingRecHitPropagator *propagator)
CLHEP::HepSymMatrix AlgebraicSymMatrix
GenericProjectedRecHit2D(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const GeomDet *originaldet, const TransientTrackingRecHit::ConstRecHitPointer originalHit, const TrackingRecHitPropagator *propagator)
LocalPoint localPosition() const override
AlgebraicMatrix projectionMatrix() const override
const TrackingRecHit * hit() const override