00001 #ifndef CSCRecHitD_CSCHitFromWireOnly_h 00002 #define CSCRecHitD_CSCHitFromWireOnly_h 00003 00021 #include <RecoLocalMuon/CSCRecHitD/src/CSCWireHit.h> 00022 00023 #include <DataFormats/CSCDigi/interface/CSCWireDigiCollection.h> 00024 00025 #include <RecoLocalMuon/CSCRecHitD/src/CSCRecoConditions.h> 00026 00027 #include <FWCore/Framework/interface/Frameworkfwd.h> 00028 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00029 00030 #include <vector> 00031 00032 class CSCLayer; 00033 class CSCLayerGeometry; 00034 class CSCDetId; 00035 00036 00037 class CSCHitFromWireOnly 00038 { 00039 public: 00040 00041 typedef std::vector<int> ChannelContainer; 00042 00043 00044 explicit CSCHitFromWireOnly( const edm::ParameterSet& ps ); 00045 00046 ~CSCHitFromWireOnly(); 00047 00048 std::vector<CSCWireHit> runWire( const CSCDetId& id, const CSCLayer* layer, const CSCWireDigiCollection::Range& rwired ); 00049 void setConditions( const CSCRecoConditions* reco ) { 00050 recoConditions_ = reco; 00051 } 00052 void makeWireCluster(const CSCWireDigi& digi); 00053 bool addToCluster(const CSCWireDigi& digi); 00054 float findWireHitPosition(); 00055 00056 CSCDetId id_; 00057 const CSCLayer * layer_; 00058 const CSCLayerGeometry * layergeom_; 00059 00060 private: 00061 bool isDeadWG(const CSCDetId& id, int WG); 00062 00063 std::vector<CSCWireDigi> wire_cluster; 00064 std::vector<int> wire_in_cluster; 00065 std::vector<float> wire_spacing; 00066 int theTime; 00067 int theLastChannel; 00068 std::vector<int> wire_in_clusterAndBX; 00069 00070 int deltaT; 00071 //int clusterSize; 00072 00074 const CSCRecoConditions* recoConditions_; 00075 }; 00076 00077 #endif 00078 00079