Go to the documentation of this file.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 "CalibMuon/CSCCalibration/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
00060
00061 float chipCorrection( const CSCDetId & detId, int channel ) const;
00062
00063
00064 float chamberTimingCorrection( const CSCDetId & detId )const;
00065
00066
00067 float anodeBXoffset( const CSCDetId & detId )const;
00068
00070 bool nearBadStrip( const CSCDetId& id, int geomStrip ) const;
00071
00073 bool badStrip( const CSCDetId& id, int geomStrip ) const;
00074
00076 const std::bitset<112>& badWireWord( const CSCDetId& id ) const;
00077
00079 float gasGainCorrection( const CSCDetId & detId, int strip, int wire ) const;
00080
00081 private:
00082
00087 float stripWeight( const CSCDetId& id, int channel ) const;
00088
00089
00090 CSCConditions theConditions;
00091 };
00092
00093 #endif