Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // can be needed to set starting cap ID
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