00001 #ifndef SiTrackerGSMatchedRecHit2D_H 00002 #define SiTrackerGSMatchedRecHit2D_H 00003 00004 #include "DataFormats/TrackerRecHit2D/interface/GSSiTrackerRecHit2DLocalPos.h" 00005 #include "DataFormats/TrackerRecHit2D/interface/SiTrackerGSRecHit2D.h" 00006 class SiTrackerGSRecHit2D; 00007 00008 class SiTrackerGSMatchedRecHit2D : public GSSiTrackerRecHit2DLocalPos{ 00009 00010 public: 00011 00012 SiTrackerGSMatchedRecHit2D(): GSSiTrackerRecHit2DLocalPos(), 00013 simhitId_(), 00014 simtrackId_(), 00015 eeId_(), 00016 cluster_(), 00017 pixelMultiplicityAlpha_(), 00018 pixelMultiplicityBeta_(), 00019 isMatched_(), 00020 componentMono_(), 00021 componentStereo_() {} 00022 00023 ~SiTrackerGSMatchedRecHit2D() {} 00024 00025 typedef edm::Ref<FastTrackerClusterCollection, FastTrackerCluster > ClusterRef; 00026 typedef edm::RefProd<FastTrackerClusterCollection> ClusterRefProd; 00027 00028 00029 SiTrackerGSMatchedRecHit2D( const LocalPoint&, const LocalError&, 00030 const DetId&, 00031 const int simhitId, 00032 const int simtrackId, 00033 const uint32_t eeId, 00034 ClusterRef const& cluster, 00035 const int pixelMultiplicityX, 00036 const int pixelMultiplicityY, 00037 const bool isMatched, 00038 const SiTrackerGSRecHit2D* rMono, 00039 const SiTrackerGSRecHit2D* rStereo 00040 ); 00041 00042 SiTrackerGSMatchedRecHit2D( const LocalPoint&, const LocalError&, 00043 const DetId&, 00044 const int simhitId, 00045 const int simtrackId, 00046 const uint32_t eeId, 00047 ClusterRef const& cluster, 00048 const int pixelMultiplicityX, 00049 const int pixelMultiplicityY 00050 ); 00051 00052 virtual SiTrackerGSMatchedRecHit2D * clone() const {return new SiTrackerGSMatchedRecHit2D( * this); } 00053 00054 const int& simhitId() const { return simhitId_;} 00055 const int& simtrackId() const { return simtrackId_;} 00056 const uint32_t& eeId() const { return eeId_;} 00057 const int& simMultX() const { return pixelMultiplicityAlpha_;} 00058 const int& simMultY() const { return pixelMultiplicityBeta_;} 00059 const bool& isMatched() const { return isMatched_;} 00060 const SiTrackerGSRecHit2D *monoHit() const { return &componentMono_;} 00061 const SiTrackerGSRecHit2D *stereoHit() const { return &componentStereo_;} 00062 00063 ClusterRef const& cluster() const { return cluster_;} 00064 void setClusterRef(const ClusterRef &ref) { cluster_ = ref; } 00065 00066 00067 virtual bool sharesInput( const TrackingRecHit* other, SharedInputType what) const {return false;} 00068 00069 private: 00070 int const simhitId_; 00071 int const simtrackId_; 00072 uint32_t const eeId_; 00073 ClusterRef cluster_; 00074 int const pixelMultiplicityAlpha_; 00075 int const pixelMultiplicityBeta_; 00076 bool isMatched_; 00077 00078 SiTrackerGSRecHit2D componentMono_; 00079 SiTrackerGSRecHit2D componentStereo_; 00080 }; 00081 00082 00083 00084 #endif