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
00038 float gain( const CSCDetId& id, int geomStrip ) const;
00039
00041 float averageGain() const {
00042 return theConditions.averageGain(); }
00043
00047 void stripWeights( const CSCDetId& id, short int nstrips, float* weights ) const;
00048
00050 float pedestal(const CSCDetId& id, int channel) const;
00051
00053 float pedestalSigma(const CSCDetId& id, int channel) const;
00054
00057 void noiseMatrix( const CSCDetId& id, int centralStrip, std::vector<float>& nme ) const;
00058
00061 void crossTalk( const CSCDetId& id, int centralStrip, std::vector<float>& xtalks) const;
00062
00063
00064 float chipCorrection( const CSCDetId & detId, int channel ) const;
00065
00066
00067 float chamberTimingCorrection( const CSCDetId& id )const;
00068
00069
00070 float anodeBXoffset( const CSCDetId & detId )const;
00071
00073 float gasGainCorrection( const CSCDetId& id, int strip, int wireGroup ) const;
00074
00076 bool nearBadStrip( const CSCDetId& id, int geomStrip ) const;
00077
00079 bool badStrip( const CSCDetId& id, int geomStrip ) const;
00080
00082 const std::bitset<112>& badWireWord( const CSCDetId& id ) const;
00083
00084 private:
00085
00087
00088 float stripWeight( const CSCDetId& id, int geomStrip ) const;
00089
00090 CSCConditions theConditions;
00091 };
00092
00093 #endif