00001 #ifndef MeasurementTracker_H 00002 #define MeasurementTracker_H 00003 00004 #include "TrackingTools/MeasurementDet/interface/MeasurementDetSystem.h" 00005 #include "DataFormats/DetId/interface/DetId.h" 00006 00007 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00008 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" 00009 00010 #include "FWCore/Framework/interface/Event.h" 00011 #include "DataFormats/Common/interface/Handle.h" 00012 00013 // backward compatibility 00014 #include "FWCore/Framework/interface/ESHandle.h" 00015 00016 class SiStripRecHitMatcher; 00017 00018 00019 class MeasurementTracker : public MeasurementDetSystem { 00020 public: 00021 enum QualityFlags { BadModules=1, // for everybody 00022 /* Strips: */ BadAPVFibers=2, BadStrips=4, MaskBad128StripBlocks=8, 00023 /* Pixels: */ BadROCs=2 }; 00024 00025 MeasurementTracker(TrackerGeometry const * trackerGeom, 00026 GeometricSearchTracker const * geometricSearchTracker) : 00027 theTrackerGeom(trackerGeom), theGeometricSearchTracker(geometricSearchTracker) {} 00028 00029 00030 00031 virtual ~MeasurementTracker(); 00032 00033 virtual void update( const edm::Event&) const =0; 00034 virtual void updatePixels( const edm::Event&) const =0; 00035 virtual void updateStrips( const edm::Event&) const =0; 00036 00037 const TrackingGeometry* geomTracker() const { return theTrackerGeom;} 00038 00039 const GeometricSearchTracker* geometricSearchTracker() const {return theGeometricSearchTracker;} 00040 00042 virtual const MeasurementDet* idToDet(const DetId& id) const =0; 00043 00044 00045 virtual void setClusterToSkip(const edm::InputTag & cluster, const edm::Event& event) const=0; 00046 virtual void unsetClusterToSkip() const=0; 00047 00048 00049 protected: 00050 const TrackerGeometry* theTrackerGeom; 00051 const GeometricSearchTracker* theGeometricSearchTracker; 00052 00053 00054 }; 00055 00056 #endif // MeasurementTracker_H