File indexing completed on 2024-04-06 12:29:01
0001 #ifndef RECOTRACKER_TRANSIENTRECHITBUILDER_H
0002 #define RECOTRACKER_TRANSIENTRECHITBUILDER_H
0003
0004 #include "RecoLocalTracker/Phase2TrackerRecHits/interface/Phase2StripCPE.h"
0005 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
0006 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0007
0008 #include "RecoTracker/TransientTrackingRecHit/interface/TkClonerImpl.h"
0009
0010 class SiStripRecHitMatcher;
0011 class PixelClusterParameterEstimator;
0012 class StripClusterParameterEstimator;
0013 class Phase2StripCPE;
0014
0015 class TkTransientTrackingRecHitBuilder final : public TransientTrackingRecHitBuilder {
0016 public:
0017 TkTransientTrackingRecHitBuilder(const TrackingGeometry* trackingGeometry,
0018 const PixelClusterParameterEstimator*,
0019 const StripClusterParameterEstimator*,
0020 const SiStripRecHitMatcher*,
0021 bool computeCoarseLocalPositionFromDisk);
0022 TkTransientTrackingRecHitBuilder(const TrackingGeometry* trackingGeometry,
0023 const PixelClusterParameterEstimator*,
0024 const ClusterParameterEstimator<Phase2TrackerCluster1D>*);
0025
0026 TransientTrackingRecHit::RecHitPointer build(const TrackingRecHit* p) const override;
0027
0028 const PixelClusterParameterEstimator* pixelClusterParameterEstimator() const { return pixelCPE; }
0029 const StripClusterParameterEstimator* stripClusterParameterEstimator() const { return stripCPE; }
0030 const ClusterParameterEstimator<Phase2TrackerCluster1D>* phase2TrackerClusterParameterEstimator() const {
0031 return phase2OTCPE;
0032 }
0033 const SiStripRecHitMatcher* siStripRecHitMatcher() const { return theMatcher; }
0034 const TrackingGeometry* geometry() const { return tGeometry_; }
0035
0036
0037 TkClonerImpl cloner() const {
0038 if (phase2OTCPE == nullptr)
0039 return TkClonerImpl(pixelCPE, stripCPE, theMatcher);
0040 else
0041 return TkClonerImpl(pixelCPE, phase2OTCPE);
0042 }
0043
0044 private:
0045 private:
0046 const TrackingGeometry* tGeometry_;
0047 const PixelClusterParameterEstimator* pixelCPE;
0048 const StripClusterParameterEstimator* stripCPE;
0049 const SiStripRecHitMatcher* theMatcher;
0050 bool theComputeCoarseLocalPosition;
0051 const ClusterParameterEstimator<Phase2TrackerCluster1D>* phase2OTCPE;
0052 };
0053
0054 #endif