CMS 3D CMS Logo

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