CMS 3D CMS Logo

TSiStripMatchedRecHit.h

Go to the documentation of this file.
00001 #ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripMatchedRecHit_H
00002 #define RECOTRACKER_TRANSIENTRACKINGRECHIT_TSiStripMatchedRecHit_H
00003 
00004 #include "TrackingTools/TransientTrackingRecHit/interface/GenericTransientTrackingRecHit.h"
00005 #include "TrackingTools/TransientTrackingRecHit/interface/HelpertRecHit2DLocalPos.h"
00006 #include "RecoLocalTracker/SiStripRecHitConverter/interface/SiStripRecHitMatcher.h"
00007 #include "RecoLocalTracker/ClusterParameterEstimator/interface/StripClusterParameterEstimator.h"
00008 #include<memory>
00009 
00010 class TSiStripMatchedRecHit : public GenericTransientTrackingRecHit{
00011 public:
00012 
00013   virtual void getKfComponents( KfComponentsHolder & holder ) const {
00014       HelpertRecHit2DLocalPos().getKfComponents(holder, *hit(), *det()); 
00015   }
00016 
00017   virtual AlgebraicSymMatrix parametersError() const {
00018     return HelpertRecHit2DLocalPos().parError( localPositionError(), *det()); 
00019   }
00020 
00021   const GeomDetUnit* detUnit() const {return 0;}
00022 
00023   static RecHitPointer build( const GeomDet * geom, const TrackingRecHit * rh, 
00024                               const SiStripRecHitMatcher *matcher,
00025                               const StripClusterParameterEstimator* cpe=0,
00026                               float weight=1., float annealing=1.) {
00027     return RecHitPointer( new TSiStripMatchedRecHit( geom, rh, matcher,cpe, weight, annealing));
00028   }
00029 
00030   static RecHitPointer build( const GeomDet * geom, std::auto_ptr<TrackingRecHit> rh, 
00031                               const SiStripRecHitMatcher *matcher,
00032                               const StripClusterParameterEstimator* cpe=0,
00033                               float weight=1., float annealing=1.) {
00034     return RecHitPointer( new TSiStripMatchedRecHit( geom, rh, matcher,cpe,weight, annealing));
00035   }
00036 
00037   virtual RecHitPointer clone( const TrajectoryStateOnSurface& ts) const;
00038   virtual bool canImproveWithTrack() const {return (theMatcher != 0);}
00039   virtual ConstRecHitContainer  transientHits () const;
00040 private:
00041   const SiStripRecHitMatcher* theMatcher; 
00042   const StripClusterParameterEstimator* theCPE;
00043   TSiStripMatchedRecHit (const GeomDet * geom, const TrackingRecHit * rh, 
00044                          const SiStripRecHitMatcher *matcher,
00045                          const StripClusterParameterEstimator* cpe,
00046                          float weight, float annealing) : 
00047      GenericTransientTrackingRecHit(geom, *rh, weight, annealing), theMatcher(matcher),theCPE(cpe) {}
00048 
00049   TSiStripMatchedRecHit (const GeomDet * geom, std::auto_ptr<TrackingRecHit> rh,
00050                          const SiStripRecHitMatcher *matcher,
00051                          const StripClusterParameterEstimator* cpe,
00052                          float weight, float annealing) : 
00053     GenericTransientTrackingRecHit(geom, rh.release(), weight, annealing), theMatcher(matcher),theCPE(cpe) {}
00054 
00055   virtual TSiStripMatchedRecHit* clone() const {
00056     return new TSiStripMatchedRecHit(*this);
00057   }
00058 
00059 };
00060 
00061 
00062 
00063 #endif

Generated on Tue Jun 9 17:46:01 2009 for CMSSW by  doxygen 1.5.4