CMS 3D CMS Logo

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:
10 
12  const GeomDet* det, const GeomDet* originaldet,
15 
18  }
19 
20  //virtual ~GenericProjectedRecHit2D(){delete theOriginalTransientHit;}
21 
22  AlgebraicVector parameters() const override ;
23 
24  LocalPoint localPosition() const override {return theLp;}
25 
26  LocalError localPositionError() const override {return theLe;}
27 
29 
30  virtual DetId geographicalId() const {return det() ? det()->geographicalId() : DetId();}
31 
32  int dimension() const override {return theDimension;}
33 
34  //this hit lays on the original surface, NOT on the projection surface
35  const TrackingRecHit * hit() const override { return theOriginalTransientHit->hit(); }
36 
37  TrackingRecHit * cloneHit() const override { return theOriginalTransientHit->cloneHit(); }
38 
39  virtual bool isValid() const{return true;}
40 
41  std::vector<const TrackingRecHit*> recHits() const override {
42  //return theOriginalTransientHit->hit()->recHits();
43  return std::vector<const TrackingRecHit*>();
44  }
45 
46  std::vector<TrackingRecHit*> recHits() override {
47  //should it do something different?
48  return std::vector<TrackingRecHit*>();
49  }
50 
52 
53  bool canImproveWithTrack() const override {return true;}
54 
55  const GeomDet* originalDet() const {return theOriginalDet;}
56 
57  static RecHitPointer build( const LocalPoint& pos, const LocalError& err,
58  const GeomDet* det, const GeomDet* originaldet,
60  const TrackingRecHitPropagator* propagator) {
61  return RecHitPointer( new GenericProjectedRecHit2D( pos, err, det, originaldet, originalHit, propagator));
62  }
63 
65 
66 private:
67 
74  //const TrackingRecHit* theOriginalHit;
76 
77  GenericProjectedRecHit2D* clone() const override {
78  return new GenericProjectedRecHit2D(*this);
79  }
80 
81 };
82 
83 
84 
85 #endif
TransientTrackingRecHit::ConstRecHitPointer theOriginalTransientHit
LocalError localPositionError() const override
std::vector< TrackingRecHit * > recHits() override
Non-const access to component RecHits (if any)
const TrackingRecHitPropagator * thePropagator
static AlgebraicSymMatrix parError(const LocalError &le, const GeomDet &det)
GenericProjectedRecHit2D * clone() const override
bool canImproveWithTrack() const override
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
CLHEP::HepMatrix AlgebraicMatrix
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const GeomDet * det() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
LocalPoint localPosition() const override
std::shared_ptr< TrackingRecHit const > RecHitPointer
AlgebraicMatrix projectionMatrix() const override
const TrackingRecHitPropagator * propagator() const
Definition: DetId.h:18
CLHEP::HepVector AlgebraicVector
AlgebraicSymMatrix parametersError() const override
virtual DetId geographicalId() const
const GeomDet * originalDet() const
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
AlgebraicVector parameters() const override
const TrackingRecHit * hit() const override
GenericProjectedRecHit2D(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const GeomDet *originaldet, const TransientTrackingRecHit::ConstRecHitPointer originalHit, const TrackingRecHitPropagator *propagator)
TrackingRecHit * cloneHit() const override