Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:20

0001 #ifndef SiStripRecHit1D_H
0002 #define SiStripRecHit1D_H
0003 
0004 #include "DataFormats/TrackerRecHit2D/interface/TrackerSingleRecHit.h"
0005 
0006 #include "TkCloner.h"
0007 
0008 class SiStripRecHit1D final : public TrackerSingleRecHit {
0009 public:
0010   SiStripRecHit1D() {}
0011 
0012   typedef OmniClusterRef::ClusterStripRef ClusterRef;
0013 
0014   template <typename CluRef>
0015   SiStripRecHit1D(const LocalPoint& p, const LocalError& e, GeomDet const& idet, CluRef const& clus)
0016       : TrackerSingleRecHit(p, e, idet, clus) {}
0017 
0018   ClusterRef cluster() const { return cluster_strip(); }
0019   void setClusterRef(ClusterRef const& ref) { setClusterStripRef(ref); }
0020 
0021   SiStripRecHit1D* clone() const override { return new SiStripRecHit1D(*this); }
0022 #ifndef __GCCXML__
0023   RecHitPointer cloneSH() const override { return std::make_shared<SiStripRecHit1D>(*this); }
0024 #endif
0025 
0026   int dimension() const override { return 1; }
0027   void getKfComponents(KfComponentsHolder& holder) const override { getKfComponents1D(holder); }
0028 
0029   bool canImproveWithTrack() const override { return true; }
0030 
0031 private:
0032   // double dispatch
0033   SiStripRecHit1D* clone_(TkCloner const& cloner, TrajectoryStateOnSurface const& tsos) const override {
0034     return cloner(*this, tsos).release();
0035   }
0036 #ifndef __GCCXML__
0037   RecHitPointer cloneSH_(TkCloner const& cloner, TrajectoryStateOnSurface const& tsos) const override {
0038     return cloner.makeShared(*this, tsos);
0039   }
0040 #endif
0041 };
0042 
0043 #endif