CMS 3D CMS Logo

TkPixelMeasurementDet.h

Go to the documentation of this file.
00001 #ifndef TkPixelMeasurementDet_H
00002 #define TkPixelMeasurementDet_H
00003 
00004 #include "TrackingTools/MeasurementDet/interface/MeasurementDet.h"
00005 #include "RecoLocalTracker/ClusterParameterEstimator/interface/PixelClusterParameterEstimator.h"
00006 //#include "DataFormats/SiPixelCluster/interface/SiPixelClusterFwd.h"
00007 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
00008 #include "DataFormats/Common/interface/Handle.h"
00009 #include "DataFormats/Common/interface/DetSetVector.h"
00010 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
00011 
00012 class TransientTrackingRecHit;
00013 class LocalTrajectoryParameters;
00014 
00015 class TkPixelMeasurementDet : public MeasurementDet {
00016 public:
00017 
00018   typedef edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> SiPixelClusterRef;
00019   
00020   typedef edmNew::DetSet<SiPixelCluster> detset;
00021   typedef detset::const_iterator const_iterator;
00022   typedef PixelClusterParameterEstimator::LocalValues    LocalValues;
00023 
00024   TkPixelMeasurementDet( const GeomDet* gdet,
00025                          const PixelClusterParameterEstimator* cpe);
00026 
00027   void update( const detset & detSet, 
00028                const edm::Handle<edmNew::DetSetVector<SiPixelCluster> > h,
00029                unsigned int id ) { 
00030     detSet_ = detSet; 
00031     handle_ = h;
00032     id_ = id;
00033     empty = false;
00034   }
00035   void setEmpty(){empty = true;}
00036 
00037   virtual ~TkPixelMeasurementDet() { }
00038 
00039   virtual RecHitContainer recHits( const TrajectoryStateOnSurface& ) const;
00040 
00041   virtual std::vector<TrajectoryMeasurement> 
00042   fastMeasurements( const TrajectoryStateOnSurface& stateOnThisDet, 
00043                     const TrajectoryStateOnSurface& startingState, 
00044                     const Propagator&, 
00045                     const MeasurementEstimator&) const;
00046 
00047   const PixelGeomDetUnit& specificGeomDet() const {return *thePixelGDU;}
00048 
00049   TransientTrackingRecHit::RecHitPointer 
00050   buildRecHit( const SiPixelClusterRef & cluster,
00051                const LocalTrajectoryParameters & ltp) const;
00052 
00054   void setActive(bool active) { active_ = active; if (!active) empty = true; }
00056   bool isActive() const { return active_; }
00057 
00058 private:
00059 
00060   const PixelGeomDetUnit*               thePixelGDU;
00061   const PixelClusterParameterEstimator* theCPE;
00062   detset detSet_;
00063   edm::Handle<edmNew::DetSetVector<SiPixelCluster> > handle_;
00064   unsigned int id_;
00065   bool empty;
00066   bool active_;
00067 };
00068 
00069 #endif

Generated on Tue Jun 9 17:45:28 2009 for CMSSW by  doxygen 1.5.4