CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DataFormats/TrackerRecHit2D/interface/SiTrackerGSMatchedRecHit2D.h

Go to the documentation of this file.
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;
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