1 #ifndef _hgcfeelectronics_h_
2 #define _hgcfeelectronics_h_
7 #include "CLHEP/Random/RandGauss.h"
8 #include "CLHEP/Random/RandGaussQ.h"
17 namespace hgc = hgc_digi;
void runTrivialShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl)
converts charge to digis without pulse shape
std::vector< double > adcPulse_
HGCFEElectronicsFirmwareVersion
hgc::HGCSimHitData toaFromToT
std::array< bool, hgc::nSamples > totFlags
std::array< HGCSimData_t, nSamples > HGCSimHitData
void runSimpleShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl)
applies a shape to each time sample and propagates the tails to the subsequent time samples ...
HGCFEElectronics(const edm::ParameterSet &ps)
CTOR.
void runShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, CLHEP::HepRandomEngine *engine)
switches according to the firmware version
std::array< bool, hgc::nSamples > busyFlags
void runShaperWithToT(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, CLHEP::HepRandomEngine *engine)
implements pulse shape and switch to time over threshold including deadtime
float getADClsb()
returns the LSB in MIP currently configured
uint32_t toaMode() const
returns how ToT will be computed
void setADClsb(float newLSB)
std::vector< double > tdcChargeDrainParameterisation_
std::vector< double > pulseAvgT_
models the behavior of the front-end electronics
hgc::HGCSimHitData newCharge