Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:42

0001 #ifndef CSCDigitizer_CSCConfigurableStripConditions_h
0002 #define CSCDigitizer_CSCConfigurableStripConditions_h
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "SimGeneral/NoiseGenerators/interface/CorrelatedNoisifier.h"
0006 #include "SimMuon/CSCDigitizer/src/CSCStripConditions.h"
0007 
0008 class CSCConfigurableStripConditions : public CSCStripConditions {
0009 public:
0010   CSCConfigurableStripConditions(const edm::ParameterSet &p);
0011   ~CSCConfigurableStripConditions() override;
0012 
0013   /// channels count from 1
0014   float gain(const CSCDetId &detId, int channel) const override;
0015   float gainSigma(const CSCDetId &detId, int channel) const override { return theGainSigma; }
0016 
0017   /// in ADC counts
0018   float pedestal(const CSCDetId &detId, int channel) const override { return thePedestal; }
0019   float pedestalSigma(const CSCDetId &detId, int channel) const override { return thePedestalSigma; }
0020 
0021   void crosstalk(const CSCDetId &detId,
0022                  int channel,
0023                  double stripLength,
0024                  bool leftRight,
0025                  float &capacitive,
0026                  float &resistive) const override;
0027 
0028 private:
0029   void fetchNoisifier(const CSCDetId &detId, int istrip) override;
0030   void makeNoisifier(int chamberType, const std::vector<double> &correlations);
0031   std::vector<CSCCorrelatedNoisifier *> theNoisifiers;
0032 
0033   float theGain;
0034   float theME11Gain;
0035   float theGainSigma;
0036   float thePedestal;
0037   float thePedestalSigma;
0038   // proportional to slope of neighboring signal, per cm of strip length
0039   float theCapacitiveCrosstalk;
0040   // proportional to neighboring signal
0041   float theResistiveCrosstalk;
0042 };
0043 
0044 #endif