00001 #ifndef CSCRecHitD_CSCMake2DRecHit_h 00002 #define CSCRecHitD_CSCMake2DRecHit_h 00003 00012 //---- Possible changes from Stoyan Stoynev - NU 00013 00014 #include <RecoLocalMuon/CSCRecHitD/src/CSCWireHit.h> 00015 #include <RecoLocalMuon/CSCRecHitD/src/CSCStripHit.h> 00016 #include <RecoLocalMuon/CSCRecHitD/src/CSCRecoConditions.h> 00017 #include <RecoLocalMuon/CSCRecHitD/src/CSCFindPeakTime.h> 00018 00019 #include <DataFormats/CSCRecHit/interface/CSCRecHit2D.h> 00020 00021 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00022 00023 class CSCDetId; 00024 class CSCLayer; 00025 class CSCChamberSpecs; 00026 class CSCLayerGeometry; 00027 class CSCRecoConditions; 00028 class CSCXonStrip_MatchGatti; 00029 00030 class CSCMake2DRecHit 00031 { 00032 public: 00033 00034 explicit CSCMake2DRecHit(const edm::ParameterSet& ); 00035 00036 ~CSCMake2DRecHit(); 00037 00039 CSCRecHit2D hitFromStripAndWire(const CSCDetId& id, const CSCLayer* layer, const CSCWireHit& wHit, const CSCStripHit& sHit); 00040 00041 00043 bool isHitInFiducial( const CSCLayer* layer, const CSCRecHit2D& rh ); 00044 00046 void setConditions( const CSCRecoConditions* reco ); 00047 00048 // Determine wire time using tpeak as initial estimate 00049 float findWireBx(std::vector <int> timeBinsOn, float tpeak, const CSCDetId& id); 00050 00051 const CSCLayer* layer_; 00052 const CSCLayerGeometry* layergeom_; 00053 const CSCChamberSpecs* specs_; 00054 CSCDetId id_; 00055 00056 private: 00057 00058 bool useCalib; 00059 bool useTimingCorrections; 00060 bool useGasGainCorrections; 00061 int stripWireDeltaTime; 00062 bool useGatti; 00063 float maxGattiChi2; 00064 00065 CSCXonStrip_MatchGatti* xMatchGatti_; 00066 00067 // Cache pointer to conditions for current event 00068 const CSCRecoConditions* recoConditions_; 00069 00070 const std::auto_ptr<CSCFindPeakTime> peakTimeFinder_; 00071 00072 00073 }; 00074 00075 #endif 00076