1 #ifndef SimCalorimetry_HGCSimProducers_hgcdigitizerbase 2 #define SimCalorimetry_HGCSimProducers_hgcdigitizerbase 8 #include <unordered_map> 9 #include <unordered_set> 31 const DetId& detid ) {
39 const DetId& detid ) {
46 info.size = (isHalf ? 0.5 : 1.0);
47 info.thickness = dddConst.
waferType(detid);
52 const DetId& detid ) {
87 float keV2fC()
const {
return keV2fC_; }
89 float tdcOnset()
const {
return myFEelectronics_->getTDCOnset(); }
90 std::array<float,3>
tdcForToAOnset()
const {
return myFEelectronics_->getTDCForToAOnset(); }
97 CLHEP::HepRandomEngine* engine);
102 void updateOutput(std::unique_ptr<DColl> &coll,
const DFr& rawDataFrame);
109 uint32_t digitizerType, CLHEP::HepRandomEngine* engine)
111 throw cms::Exception(
"HGCDigitizerBaseException") <<
" Failed to find specialization of runDigitizer";
std::vector< float > noise_fC_
std::array< float, 3 > tdcForToAOnset() const
void addCellMetadata(HGCCellInfo &info, const HcalGeometry *geom, const DetId &detid)
virtual ~HGCDigitizerBase()
DTOR.
std::unordered_map< uint32_t, HGCCellInfo > HGCSimHitDataAccumulator
edm::SortedCollection< DFr > DColl
const HGCalTopology & topology() const
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
float keV2fC() const
getters
std::vector< double > cce_
int waferType(DetId const &id) const
const HGCalDDDConstants & dddConstants() const
virtual void runDigitizer(std::unique_ptr< DColl > &coll, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, uint32_t digitizerType, CLHEP::HepRandomEngine *engine)
to be specialized by top class
models the behavior of the front-end electronics
bool toaModeByEnergy() const
constexpr Detector det() const
get the detector field from this detid