00001 #ifndef CSCRecHitD_CSCRecHitDBuilder_h 00002 #define CSCRecHitD_CSCRecHitDBuilder_h 00003 00004 00025 #include <DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h> 00026 #include <DataFormats/CSCDigi/interface/CSCStripDigiCollection.h> 00027 #include <DataFormats/CSCDigi/interface/CSCWireDigiCollection.h> 00028 00029 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00030 00031 class CSCLayer; 00032 class CSCGeometry; 00033 class CSCDetId; 00034 class CSCHitFromStripOnly; 00035 class CSCHitFromWireOnly; 00036 class CSCMake2DRecHit; 00037 class CSCRecoConditions; 00038 00039 class CSCRecHitDBuilder 00040 { 00041 public: 00042 00047 explicit CSCRecHitDBuilder( const edm::ParameterSet& ps); 00048 00049 ~CSCRecHitDBuilder(); 00050 00059 void build( const CSCStripDigiCollection* stripds, const CSCWireDigiCollection* wireds, 00060 CSCRecHit2DCollection& oc ); 00061 00065 void setGeometry ( const CSCGeometry* geom ) {geom_ = geom;} 00066 00070 void setConditions ( const CSCRecoConditions* reco ); 00071 00072 const CSCLayer* getLayer( const CSCDetId& detId ); 00073 00074 00075 private: 00076 00077 bool useCalib; 00078 int stripWireDeltaT; 00079 bool makePseudo2DHits; 00080 00086 CSCHitFromStripOnly* hitsFromStripOnly_; 00087 CSCHitFromWireOnly* hitsFromWireOnly_; 00088 00089 CSCMake2DRecHit* make2DHits_; 00090 00091 /* 00092 * Cache geometry for current event 00093 */ 00094 const CSCGeometry* geom_; 00095 }; 00096 00097 #endif