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
0014 float gain(const CSCDetId &detId, int channel) const override;
0015 float gainSigma(const CSCDetId &detId, int channel) const override { return theGainSigma; }
0016
0017
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
0039 float theCapacitiveCrosstalk;
0040
0041 float theResistiveCrosstalk;
0042 };
0043
0044 #endif