File indexing completed on 2024-04-06 12:29:31
0001 #ifndef HcalSimAlgos_HcalBaseSignalGenerator_h
0002 #define HcalSimAlgos_HcalBaseSignalGenerator_h
0003
0004 #include "SimCalorimetry/CaloSimAlgos/interface/CaloVNoiseSignalGenerator.h"
0005 #include "SimCalorimetry/HcalSimAlgos/interface/HcalSimParameterMap.h"
0006 class HcalElectronicsSim;
0007
0008 class HcalBaseSignalGenerator : public CaloVNoiseSignalGenerator {
0009 public:
0010 HcalBaseSignalGenerator() : theParameterMap(nullptr), theElectronicsSim(nullptr) {}
0011
0012 ~HcalBaseSignalGenerator() override {}
0013
0014 void setParameterMap(HcalSimParameterMap* map) { theParameterMap = map; }
0015
0016
0017 void setElectronicsSim(HcalElectronicsSim* electronicsSim) { theElectronicsSim = electronicsSim; }
0018
0019 protected:
0020 void fC2pe(CaloSamples& samples) const {
0021 assert(theParameterMap != nullptr);
0022 float factor = 1. / theParameterMap->simParameters(samples.id()).photoelectronsToAnalog(samples.id());
0023 samples *= factor;
0024 }
0025
0026 HcalSimParameterMap* theParameterMap;
0027 HcalElectronicsSim* theElectronicsSim;
0028 };
0029
0030 #endif