CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TSiStripRecHit1D.h
Go to the documentation of this file.
1 #ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripRecHit1D_H
2 #define RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripRecHit1D_H
3 
9 
10 class TSiStripRecHit1D GCC11_FINAL : public TValidTrackingRecHit {
11 public:
12 
13  typedef SiStripRecHit1D::ClusterRef SiStripClusterRef;
14 
16 
17  virtual ~TSiStripRecHit1D() {}
18 
19 
20  virtual void getKfComponents( KfComponentsHolder & holder ) const {
21  HelpertRecHit2DLocalPos().getKfComponents(holder, theHitData, *det());
22  }
23 
24 
25  virtual AlgebraicVector parameters() const {return theHitData.parameters();}
26 
27 
29  return HelpertRecHit2DLocalPos().parError( theHitData.localPositionError(), *det());
30  // return theHitData->parametersError();
31  }
32 
33 
34  virtual AlgebraicMatrix projectionMatrix() const {return theHitData.projectionMatrix();}
35  virtual int dimension() const {return theHitData.dimension();}
36 
37  virtual LocalPoint localPosition() const {return theHitData.localPosition();}
38  virtual LocalError localPositionError() const {return theHitData.localPositionError();}
39 
40  virtual const TrackingRecHit * hit() const {return &theHitData;};
41 
42  virtual std::vector<const TrackingRecHit*> recHits() const {
43  return hit()->recHits();
44  }
45  virtual std::vector<TrackingRecHit*> recHits() {
46  return theHitData.recHits();
47  }
48 
49  virtual const GeomDetUnit* detUnit() const;
50 
51  virtual bool canImproveWithTrack() const {return true;}
52 
53  //RC virtual TSiStripRecHit2DLocalPos* clone(const TrajectoryStateOnSurface& ts) const;
54  virtual RecHitPointer clone(const TrajectoryStateOnSurface& ts) const;
55 
56  // Extension of the TransientTrackingRecHit interface
57 
58  const SiStripRecHit1D* specificHit() const {return &theHitData;};
59  const StripClusterParameterEstimator* cpe() const {return theCPE;}
60 
61  static RecHitPointer build( const GeomDet * geom, const SiStripRecHit1D* rh,
63  bool computeCoarseLocalPosition=false) {
64  return RecHitPointer( new TSiStripRecHit1D( geom, rh, cpe,computeCoarseLocalPosition));
65  }
66 
67  static RecHitPointer build( const LocalPoint& pos, const LocalError& err,
68  const GeomDet* det,
69  const OmniClusterRef & clust,
70  const StripClusterParameterEstimator* cpe) {
71  return RecHitPointer( new TSiStripRecHit1D( pos, err, det, clust, cpe));
72  }
73 
74  static RecHitPointer build( const LocalPoint& pos, const LocalError& err,
75  const GeomDet* det,
76  const SiStripClusterRef & clust,
77  const StripClusterParameterEstimator* cpe) {
78  return RecHitPointer( new TSiStripRecHit1D( pos, err, det, OmniClusterRef(clust), cpe));
79  }
80 
81  static RecHitPointer build( const LocalPoint& pos, const LocalError& err,
82  const GeomDet* det,
83  const SiStripRegionalClusterRef & clust,
84  const StripClusterParameterEstimator* cpe) {
85  return RecHitPointer( new TSiStripRecHit1D( pos, err, det, OmniClusterRef(clust), cpe));
86  }
87 
88 
89 
90 private:
91 
92  const StripClusterParameterEstimator* theCPE;
93  SiStripRecHit1D theHitData;
94 
95  TSiStripRecHit1D (const GeomDet * geom, const SiStripRecHit1D* rh,
97  bool computeCoarseLocalPosition);
98 
100  TSiStripRecHit1D( const LocalPoint& pos, const LocalError& err,
101  const GeomDet* det,
102  const OmniClusterRef & clust,
103  const StripClusterParameterEstimator* cpe) :
104  TValidTrackingRecHit(det),
105  theCPE(cpe), theHitData(pos, err, det->geographicalId(), clust){}
106 
107 
108 
109 
110  virtual TSiStripRecHit1D* clone() const {
111  return new TSiStripRecHit1D(*this);
112  }
113 
114 };
115 
116 #endif
virtual LocalError localPositionError() const
virtual void getKfComponents(KfComponentsHolder &holder) const
virtual ~TSiStripRecHit1D()
virtual AlgebraicSymMatrix parametersError() const
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe)
virtual TSiStripRecHit1D * clone() const
static void getKfComponents(KfComponentsHolder &holder, const TrackingRecHit &hit2dLocalPos, const GeomDet &det)
virtual const TrackingRecHit * hit() const =0
SiStripRecHit1D theHitData
virtual const GeomDet * det() const GCC11_FINAL
The GomeDet* can be zero for InvalidTransientRecHits and for TConstraintRecHit2Ds.
virtual bool canImproveWithTrack() const
virtual std::vector< TrackingRecHit * > recHits()
Non-const access to component RecHits (if any)
const StripClusterParameterEstimator * cpe() const
ReferenceCountingPointer< TransientTrackingRecHit > RecHitPointer
virtual AlgebraicMatrix projectionMatrix() const
CLHEP::HepMatrix AlgebraicMatrix
virtual const TrackingRecHit * hit() const
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripClusterRef &clust, const StripClusterParameterEstimator *cpe)
virtual std::vector< const TrackingRecHit * > recHits() const =0
Access to component RecHits (if any)
virtual AlgebraicVector parameters() const
SiStripRecHit2D::ClusterRef SiStripClusterRef
TSiStripRecHit1D(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe)
Creates the TrackingRecHit internally, avoids redundent cloning.
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripRegionalClusterRef &clust, const StripClusterParameterEstimator *cpe)
SiStripRecHit1D::ClusterRef SiStripClusterRef
virtual LocalPoint localPosition() const
CLHEP::HepVector AlgebraicVector
virtual TValidTrackingRecHit * clone() const =0
edm::LazyGetter< SiStripCluster >::value_ref SiStripRegionalClusterRef
static RecHitPointer build(const GeomDet *geom, const SiStripRecHit1D *rh, const StripClusterParameterEstimator *cpe, bool computeCoarseLocalPosition=false)
CLHEP::HepSymMatrix AlgebraicSymMatrix
virtual const GeomDetUnit * detUnit() const
const SiStripRecHit1D * specificHit() const
virtual int dimension() const
virtual std::vector< const TrackingRecHit * > recHits() const
Access to component RecHits (if any)
static AlgebraicSymMatrix parError(const LocalError &le, const GeomDet &det)
Unlimited (trivial) bounds.