File indexing completed on 2024-09-07 04:35:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef CalibTracker_SiStripHitResolution_SiStripOverlapHit_H
0019 #define CalibTracker_SiStripHitResolution_SiStripOverlapHit_H
0020
0021 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h"
0022 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0023 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0024 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0025 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0026
0027 class SiStripOverlapHit {
0028 public:
0029 using RecHitPointer = TrackingRecHit::RecHitPointer;
0030 using ConstRecHitPointer = TrackingRecHit::ConstRecHitPointer;
0031
0032
0033 explicit SiStripOverlapHit(TrajectoryMeasurement const& measA, TrajectoryMeasurement const& measB);
0034
0035 virtual ~SiStripOverlapHit() {}
0036
0037
0038 inline ConstRecHitPointer const& hitA() const { return measA_.recHit(); }
0039 inline ConstRecHitPointer const& hitB() const { return measB_.recHit(); }
0040 inline ConstRecHitPointer const& hit(unsigned int hit) const { return hit ? hitB() : hitA(); }
0041 TrajectoryStateOnSurface const& trajectoryStateOnSurface(unsigned int hit = 0, bool updated = true) const;
0042
0043
0044
0045
0046 double getTrackLocalAngle(unsigned int hit) const;
0047
0048 double offset(unsigned int hit) const;
0049
0050 double shift() const;
0051
0052 double distance(bool fromTrajectory = false) const;
0053
0054 GlobalPoint position() const;
0055
0056 private:
0057 TrajectoryMeasurement measA_;
0058 TrajectoryMeasurement measB_;
0059 };
0060
0061 #endif