CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/SimMuon/CSCDigitizer/src/CSCStripConditions.h

Go to the documentation of this file.
00001 #ifndef CSCDigitizer_CSCStripConditions_h
00002 #define CSCDigitizer_CSCStripConditions_h
00003 
00004 #include "SimGeneral/NoiseGenerators/interface/CorrelatedNoisifier.h"
00005 #include "SimMuon/CSCDigitizer/src/CSCAnalogSignal.h"
00006 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00007 #include "FWCore/Framework/interface/EventSetup.h"
00008 #include "CLHEP/Random/RandGaussQ.h"
00009 
00010 
00011 class CSCStripConditions
00012 {
00013 public:
00014   typedef math::ErrorD<8>::type CSCCorrelatedNoiseMatrix;
00015   typedef CorrelatedNoisifier<CSCCorrelatedNoiseMatrix> CSCCorrelatedNoisifier;
00016   CSCStripConditions();
00017 
00018   virtual ~CSCStripConditions();
00019 
00020   void setRandomEngine(CLHEP::HepRandomEngine& engine);
00021 
00023   void noisify(const CSCDetId & detId, CSCAnalogSignal & signal);
00024 
00025   virtual void initializeEvent(const edm::EventSetup & es) {}
00026 
00029   virtual float gain(const CSCDetId & detId, int channel) const = 0;
00030   virtual float gainSigma(const CSCDetId & detId, int channel) const = 0;
00031   virtual float smearedGain(const CSCDetId & detId, int channel) const;
00032 
00034   virtual float pedestal(const CSCDetId & detId, int channel) const = 0;
00035   virtual float pedestalSigma(const CSCDetId & detId, int channel) const = 0;
00036 
00038   float analogNoise(const CSCDetId & detId, int channel) const;
00039 
00040   virtual void crosstalk(const CSCDetId&detId, int channel,
00041                  double stripLength, bool leftRight, 
00042                  float & capacitive, float & resistive) const = 0;
00043 
00045   virtual bool isInBadChamber( const CSCDetId& id ) const { return false; }
00046   
00047 protected:
00048   virtual void fetchNoisifier(const CSCDetId & detId, int istrip) = 0;
00049 
00050   CSCCorrelatedNoisifier * theNoisifier;
00051   CLHEP::RandGaussQ * theRandGaussQ;
00052 };
00053 
00054 #endif
00055