27 return new SiPixelRecHit(std::get<0>(params), std::get<1>(params), std::get<2>(params), *hit.det(), hit.cluster());
35 return new SiStripRecHit2D(lv.first, lv.second, *hit.det(), hit.omniCluster());
44 return new SiStripRecHit1D(lv.first,
le, *hit.det(), hit.omniCluster());
51 return std::make_shared<SiPixelRecHit>(std::get<0>(params), std::get<1>(params), std::get<2>(params), *hit.det(), hit.cluster());
60 return std::make_shared<SiStripRecHit2D>(lv.first, lv.second, *hit.det(), hit.omniCluster());
70 return std::make_shared<SiStripRecHit1D>(lv.first,
le, *hit.det(), hit.omniCluster());
76 #undef RecoTracker_TransientTrackingRecHit_TSiStripMatchedRecHit_RefitProj
77 #undef RecoTracker_TransientTrackingRecHit_TSiStripMatchedRecHit_RefitLGL
78 #ifdef RecoTracker_TransientTrackingRecHit_TSiStripMatchedRecHit_RefitLGL
86 #elif defined(RecoTracker_TransientTrackingRecHit_TSiStripMatchedRecHit_RefitProj)
104 const GeomDet * det = hit.det();
117 SiStripRecHit2D monoHit = SiStripRecHit2D( lvMono.first, lvMono.second,
119 hit.monoClusterRef());
120 SiStripRecHit2D stereoHit = SiStripRecHit2D( lvStereo.first, lvStereo.second,
122 hit.stereoClusterRef());
125 std::unique_ptr<SiStripMatchedRecHit2D>
temp =
theMatcher->
match(&monoHit,&stereoHit,gdet,tkDir,
false);
126 SiStripMatchedRecHit2D * better = temp.release();
128 return better ? better : hit.clone();
149 const GeomDet & det = *hit.det();
155 auto delta = gluedPlane.localZ( hitPlane.position());
157 LocalPoint lhitPos = gluedPlane.toLocal( hitPlane.toGlobal(lv.first));
158 LocalPoint projectedHitPos = lhitPos - ldir * delta/ldir.
z();
162 if (gluedPlane.normalVector().dot( hitPlane.normalVector()) < 0) {
167 return new ProjectedSiStripRecHit2D(projectedHitPos, rotatedError, *hit.det(), *hit.originalDet(), hit.omniCluster());
172 const GeomDet & det = *hit.det();
194 auto delta = gluedPlane.localZ( hitPlane.position());
196 LocalPoint lhitPos = gluedPlane.toLocal( hitPlane.toGlobal(lv.first));
197 LocalPoint projectedHitPos = lhitPos - ldir * delta/ldir.
z();
201 if (gluedPlane.normalVector().dot( hitPlane.normalVector()) < 0) {
206 return new ProjectedSiStripRecHit2D(projectedHitPos, rotatedError, det, *odet,
207 mono ? hit.monoClusterRef() : hit.stereoClusterRef() );
virtual LocalValues localParameters(const SiStripCluster &, const GeomDetUnit &) const
TrackCharge charge() const
const GeomDetUnit * monoDet() const
virtual SiPixelRecHit * operator()(SiPixelRecHit const &hit, TrajectoryStateOnSurface const &tsos) const
const LocalTrajectoryParameters & localParameters() const
LocalVector localDirection() const
Global3DPoint GlobalPoint
const PixelClusterParameterEstimator * pixelCPE
GlobalPoint globalPosition() const
const Plane & surface() const
The nominal surface of the GeomDet.
virtual ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
const Surface::PositionType & position() const
The position (origin of the R.F.)
const StripClusterParameterEstimator * stripCPE
const T & max(const T &a, const T &b)
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
LocalPoint toLocal(const GlobalPoint &gp) const
GlobalVector momentum() const
ProjectedSiStripRecHit2D * project(SiStripMatchedRecHit2D const &hit, bool mono, TrajectoryStateOnSurface const &tsos) const
const SiStripRecHitMatcher * theMatcher
const GlobalTrajectoryParameters & globalParameters() const
virtual TrackingRecHit::ConstRecHitPointer makeShared(SiPixelRecHit const &hit, TrajectoryStateOnSurface const &tsos) const
std::unique_ptr< SiStripMatchedRecHit2D > match(const SiStripRecHit2D *monoRH, const SiStripRecHit2D *stereoRH, const GluedGeomDet *gluedDet, LocalVector trackdirection, bool force=false) const
std::pair< LocalPoint, LocalError > LocalValues
Pixel cluster – collection of neighboring pixels above threshold.
LocalError rotate(float x, float y) const
Return a new LocalError, rotated by an angle defined by the direction (x,y)
const GeomDetUnit * stereoDet() const