00001 #ifndef CSCRecRecHitD_CSCRecoConditions_h
00002 #define CSCRecRecHitD_CSCRecoConditions_h
00003
00019 #include "FWCore/Framework/interface/Frameworkfwd.h"
00020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00021 #include "CondFormats/CSCObjects/interface/CSCConditions.h"
00022 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00023
00024 class CSCRecoConditions
00025 {
00026 public:
00027
00028
00029 explicit CSCRecoConditions(const edm::ParameterSet & pset);
00030 ~CSCRecoConditions();
00031
00033 void initializeEvent(const edm::EventSetup & es);
00034
00036 float gain(const CSCDetId & id, int channel) const;
00037
00039 float averageGain() const {
00040 return theConditions.averageGain(); }
00041
00044 void stripWeights( const CSCDetId& id, float* weights ) const;
00045
00047 float pedestal(const CSCDetId & id, int channel) const;
00048
00050 float pedestalSigma(const CSCDetId & id, int channel) const;
00051
00054 void noiseMatrix( const CSCDetId& id, int centralStrip, std::vector<float>& nme ) const;
00055
00058 void crossTalk( const CSCDetId& id, int centralStrip, std::vector<float>& xtalks) const;
00059
00061 bool nearBadStrip( const CSCDetId& id, int geomStrip ) const;
00062
00064 const std::bitset<112>& badWireWord( const CSCDetId& id ) const;
00065
00066 private:
00067
00072 float stripWeight( const CSCDetId& id, int channel ) const;
00073
00074
00075 CSCConditions theConditions;
00076 };
00077
00078 #endif