1 #ifndef _hgcfeelectronics_h_ 2 #define _hgcfeelectronics_h_ 7 #include "CLHEP/Random/RandGauss.h" 8 #include "CLHEP/Random/RandGaussQ.h" 36 hgc::HGCSimHitData& toa,
int thickness, CLHEP::HepRandomEngine* engine,
float cce = 1.0)
41 case WITHTOT : {
runShaperWithToT(dataFrame,chargeColl,toa, thickness, engine, cce);
break; }
54 float X2 =
pow((totalCharge/
noise_fC_.at(thickness-1)), 2.);
55 float jitter2 = A2 / X2 + C2;
83 hgc::HGCSimHitData& toa,
int thickness, CLHEP::HepRandomEngine* engine,
float cce = 1.0);
std::array< float, 3 > tdcForToAOnset_fC_
HGCFEElectronicsFirmwareVersion
void runShaperWithToT(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, int thickness, CLHEP::HepRandomEngine *engine, float cce=1.0)
implements pulse shape and switch to time over threshold including deadtime
std::array< bool, hgc::nSamples > toaFlags
hgc::HGCSimHitData toaFromToT
std::array< bool, hgc::nSamples > totFlags
std::array< HGCSimData_t, nSamples > HGCSimHitData
float getTimeJitter(float totalCharge, int thickness)
HGCFEElectronics(const edm::ParameterSet &ps)
CTOR.
bool thresholdFollowsMIP_
std::array< bool, hgc::nSamples > busyFlags
std::vector< float > noise_fC_
void runSimpleShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, int thickness, float cce=1.0)
applies a shape to each time sample and propagates the tails to the subsequent time samples ...
float getADClsb()
returns the LSB in MIP currently configured
uint32_t toaMode() const
returns how ToT will be computed
void setADClsb(float newLSB)
void SetNoiseValues(const std::vector< float > &noise_fC)
std::array< float, 6 > adcPulse_
std::array< float, 3 > jitterNoise2_ns_
void runTrivialShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, int thickness, float cce=1.0)
converts charge to digis without pulse shape
std::vector< float > tdcChargeDrainParameterisation_
void runShaper(DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, int thickness, CLHEP::HepRandomEngine *engine, float cce=1.0)
switches according to the firmware version
models the behavior of the front-end electronics
std::array< float, 3 > getTDCForToAOnset()
std::array< float, 6 > pulseAvgT_
hgc::HGCSimHitData newCharge
std::array< float, 3 > jitterConstant2_ns_
Power< A, B >::type pow(const A &a, const B &b)