1 #ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripRecHit2DLocalPos_H
2 #define RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripRecHit2DLocalPos_H
33 virtual int dimension()
const {
return theHitData.dimension();}
40 virtual std::vector<const TrackingRecHit*>
recHits()
const {
43 virtual std::vector<TrackingRecHit*>
recHits() {
44 return theHitData.recHits();
56 const SiStripRecHit2D*
specificHit()
const {
return &theHitData;};
61 bool computeCoarseLocalPosition=
false) {
62 return RecHitPointer(
new TSiStripRecHit2DLocalPos( geom, rh, cpe,computeCoarseLocalPosition));
70 return RecHitPointer(
new TSiStripRecHit2DLocalPos( pos, err, det, clust, cpe));
98 bool computeCoarseLocalPosition) :
101 if (rh->hasPositionAndError() || !computeCoarseLocalPosition) {
102 theHitData = SiStripRecHit2D(*rh);
106 if (computeCoarseLocalPosition && !cpe){
107 edm::LogError(
"TSiStripRecHit2DLocalPos")<<
" trying to compute coarse local position but CPE is not provided. Not computing local position from disk for the transient tracking rechit.";
108 theHitData = SiStripRecHit2D(*rh);
113 LogDebug(
"TSiStripRecHit2DLocalPos")<<
"calculating coarse position/error.";
116 theHitData = SiStripRecHit2D(lval.first, lval.second, geom->
geographicalId(),rh->omniCluster());
118 edm::LogError(
"TSiStripRecHit2DLocalPos")<<
" geomdet does not cast into geomdet unit. cannot create strip local parameters.";
119 theHitData = SiStripRecHit2D(*rh);
129 theCPE(cpe), theHitData(pos, err, det->geographicalId(), clust) {}
131 virtual TSiStripRecHit2DLocalPos*
clone()
const {
132 return new TSiStripRecHit2DLocalPos(*
this);
ReferenceCountingPointer< TransientTrackingRecHit > RecHitPointer
virtual TransientTrackingRecHit * clone() const =0
static void getKfComponents(KfComponentsHolder &holder, const TrackingRecHit &hit2dLocalPos, const GeomDet &det)
virtual const TrackingRecHit * hit() const =0
std::pair< LocalPoint, LocalError > LocalValues
const SiStripRecHit2D * specificHit() const
static RecHitPointer build(const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, bool computeCoarseLocalPosition=false)
CLHEP::HepMatrix AlgebraicMatrix
virtual const TrackingRecHit * hit() const
virtual std::vector< const TrackingRecHit * > recHits() const =0
Access to component RecHits (if any)
DetId geographicalId() const
The label of this GeomDet.
virtual LocalPoint localPosition() const
virtual void getKfComponents(KfComponentsHolder &holder) const
virtual ~TSiStripRecHit2DLocalPos()
edm::LazyGetter< SiStripCluster >::value_ref SiStripRegionalClusterRef
virtual int dimension() const
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripClusterRef &clust, const StripClusterParameterEstimator *cpe)
CLHEP::HepVector AlgebraicVector
virtual LocalError localPositionError() const
virtual AlgebraicMatrix projectionMatrix() const
TSiStripRecHit2DLocalPos(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe)
Creates the TrackingRecHit internally, avoids redundent cloning.
virtual std::vector< const TrackingRecHit * > recHits() const
Access to component RecHits (if any)
SiStripRecHit1D::ClusterRef SiStripClusterRef
TSiStripRecHit2DLocalPos(const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, bool computeCoarseLocalPosition)
SiStripRecHit2D::ClusterRef SiStripClusterRef
const GeomDet * det() const
The GomeDet* can be zero for InvalidTransientRecHits and for TConstraintRecHit2Ds.
CLHEP::HepSymMatrix AlgebraicSymMatrix
virtual std::vector< TrackingRecHit * > recHits()
Non-const access to component RecHits (if any)
virtual const GeomDetUnit * detUnit() const
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
const StripClusterParameterEstimator * cpe() const
virtual TSiStripRecHit2DLocalPos * clone() const
virtual bool canImproveWithTrack() const
SiStripRecHit2D theHitData
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripRegionalClusterRef &clust, const StripClusterParameterEstimator *cpe)
static RecHitPointer build(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe)
virtual AlgebraicVector parameters() const
virtual AlgebraicSymMatrix parametersError() const
virtual ConstRecHitContainer transientHits() const
Composite interface: returns the component hits, if any.
static AlgebraicSymMatrix parError(const LocalError &le, const GeomDet &det)