File indexing completed on 2024-04-06 12:28:43
0001 #include "RecoTracker/SiTrackerMRHTools/interface/GenericProjectedRecHit2D.h"
0002 #include "RecoTracker/TransientTrackingRecHit/interface/TSiPixelRecHit.h"
0003 #include "RecoTracker/TransientTrackingRecHit/interface/TSiStripMatchedRecHit.h"
0004 #include "RecoTracker/TransientTrackingRecHit/interface/TSiStripRecHit2DLocalPos.h"
0005 #include "RecoTracker/TransientTrackingRecHit/interface/ProjectedRecHit2D.h"
0006 #include "FWCore/Utilities/interface/Exception.h"
0007
0008 GenericProjectedRecHit2D::GenericProjectedRecHit2D(const LocalPoint& pos,
0009 const LocalError& err,
0010 const GeomDet* det,
0011 const GeomDet* originalDet,
0012 const TransientTrackingRecHit::ConstRecHitPointer originalHit,
0013 const TrackingRecHitPropagator* propagator)
0014 : TrackingRecHit(*det)
0015 {
0016 theOriginalDet = originalDet;
0017 thePropagator = propagator;
0018 theOriginalTransientHit = originalHit;
0019 theLp = pos;
0020 theLe = err;
0021 theProjectionMatrix = originalHit->projectionMatrix();
0022 theDimension = originalHit->dimension();
0023
0024 }
0025
0026 AlgebraicVector GenericProjectedRecHit2D::parameters() const {
0027 AlgebraicVector result(2);
0028 result[0] = theLp.x();
0029 result[1] = theLp.y();
0030 return result;
0031 }
0032
0033 TransientTrackingRecHit::RecHitPointer GenericProjectedRecHit2D::clone(
0034 const TrajectoryStateOnSurface& ts, const TransientTrackingRecHitBuilder* builder) const {
0035 return thePropagator->project<GenericProjectedRecHit2D>(theOriginalTransientHit, *det(), ts, builder);
0036 }