models the behavior of the front-end electronics More...
#include <HGCFEElectronics.h>
Public Types | |
enum | HGCFEElectronicsFirmwareVersion { TRIVIAL, SIMPLE, WITHTOT } |
enum | HGCFEElectronicsTOTMode { WEIGHTEDBYE, SIMPLETHRESHOLD } |
Public Member Functions | |
float | getADClsb () |
returns the LSB currently configured More... | |
float | getADCThreshold () |
hgc_digi::FEADCPulseShape & | getDefaultADCPulse () |
getter for the default ADC pulse configured by python More... | |
float | getMaxADC () |
float | getMaxTDC () |
int | getTargetMipValue () |
std::array< float, 3 > | getTDCForToAOnset () |
float | getTDClsb () |
float | getTDCOnset () |
float | getTimeJitter (float totalCharge, int thickness) |
HGCFEElectronics (const edm::ParameterSet &ps) | |
CTOR. More... | |
void | runShaper (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, const hgc_digi::FEADCPulseShape &adcPulse, CLHEP::HepRandomEngine *engine, uint32_t thrADC=0, float lsbADC=-1, uint32_t gainIdx=0, float maxADC=-1, int thickness=1, float tdcOnsetAuto=-1) |
switches according to the firmware version More... | |
void | runShaper (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, CLHEP::HepRandomEngine *engine, uint32_t thrADC=0, float lsbADC=-1, uint32_t gainIdx=0, float maxADC=-1, int thickness=1) |
void | runShaperWithToT (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, CLHEP::HepRandomEngine *engine, uint32_t thrADC, float lsbADC, uint32_t gainIdx, float maxADC, int thickness, float tdcOnsetAuto, const hgc_digi::FEADCPulseShape &adcPulse) |
implements pulse shape and switch to time over threshold including deadtime More... | |
void | runShaperWithToT (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, hgc::HGCSimHitData &toa, CLHEP::HepRandomEngine *engine, uint32_t thrADC, float lsbADC, uint32_t gainIdx, float maxADC, int thickness, float tdcOnsetAuto) |
void | runSimpleShaper (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, uint32_t thrADC, float lsbADC, uint32_t gainIdx, float maxADC, const hgc_digi::FEADCPulseShape &adcPulse) |
applies a shape to each time sample and propagates the tails to the subsequent time samples More... | |
void | runSimpleShaper (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, uint32_t thrADC, float lsbADC, uint32_t gainIdx, float maxADC) |
void | runTrivialShaper (DFr &dataFrame, hgc::HGCSimHitData &chargeColl, uint32_t thrADC, float lsbADC, uint32_t gainIdx, float maxADC) |
converts charge to digis without pulse shape More... | |
void | setADClsb (float newLSB) |
void | SetNoiseValues (const std::vector< float > &noise_fC) |
void | setTDCfsc (float newTDCfsc) |
uint32_t | toaMode () const |
returns how ToT will be computed More... | |
~HGCFEElectronics () | |
DTOR. More... | |
Private Attributes | |
float | adcLSB_fC_ |
hgc_digi::FEADCPulseShape | adcPulse_ |
float | adcSaturation_fC_ |
float | adcThreshold_fC_ |
std::array< bool, hgc::nSamples > | busyFlags |
uint32_t | fwVersion_ |
std::array< float, 3 > | jitterConstant2_ns_ |
std::array< float, 3 > | jitterNoise2_ns_ |
hgc::HGCSimHitData | newCharge |
std::vector< float > | noise_fC_ |
hgc_digi::FEADCPulseShape | pulseAvgT_ |
uint32_t | targetMIPvalue_ADC_ |
std::vector< float > | tdcChargeDrainParameterisation_ |
std::array< float, 3 > | tdcForToAOnset_fC_ |
float | tdcLSB_fC_ |
uint32_t | tdcNbits_ |
float | tdcOnset_fC_ |
float | tdcResolutionInNs_ |
float | tdcSaturation_fC_ |
bool | thresholdFollowsMIP_ |
std::array< bool, hgc::nSamples > | toaFlags |
hgc::HGCSimHitData | toaFromToT |
float | toaLSB_ns_ |
uint32_t | toaMode_ |
std::array< bool, hgc::nSamples > | totFlags |
models the behavior of the front-end electronics
Definition at line 24 of file HGCFEElectronics.h.
enum HGCFEElectronics::HGCFEElectronicsFirmwareVersion |
Enumerator | |
---|---|
TRIVIAL | |
SIMPLE | |
WITHTOT |
Definition at line 26 of file HGCFEElectronics.h.
enum HGCFEElectronics::HGCFEElectronicsTOTMode |
HGCFEElectronics< DFr >::HGCFEElectronics | ( | const edm::ParameterSet & | ps | ) |
CTOR.
Definition at line 12 of file HGCFEElectronics.cc.
References HGCFEElectronics< DFr >::adcLSB_fC_, HGCFEElectronics< DFr >::adcPulse_, HGCFEElectronics< DFr >::adcSaturation_fC_, HGCFEElectronics< DFr >::adcThreshold_fC_, alignCSCRings::e, Exception, edm::ParameterSet::exists(), HGCFEElectronics< DFr >::fwVersion_, edm::ParameterSet::getParameter(), mps_fire::i, HGCFEElectronics< DFr >::jitterConstant2_ns_, HGCFEElectronics< DFr >::jitterNoise2_ns_, HGCFEElectronics< DFr >::noise_fC_, funct::pow(), HGCFEElectronics< DFr >::pulseAvgT_, HGCFEElectronics< DFr >::setTDCfsc(), HGCFEElectronics< DFr >::targetMIPvalue_ADC_, HGCFEElectronics< DFr >::tdcChargeDrainParameterisation_, HGCFEElectronics< DFr >::tdcForToAOnset_fC_, HGCFEElectronics< DFr >::tdcLSB_fC_, HGCFEElectronics< DFr >::tdcNbits_, HGCFEElectronics< DFr >::tdcOnset_fC_, HGCFEElectronics< DFr >::tdcResolutionInNs_, HGCFEElectronics< DFr >::tdcSaturation_fC_, groupFilesInBlocks::temp, HGCFEElectronics< DFr >::toaLSB_ns_, HGCFEElectronics< DFr >::toaMode_, hgcalPerformanceValidation::val, and HGCFEElectronics< DFr >::WEIGHTEDBYE.
|
inline |
|
inline |
returns the LSB currently configured
Definition at line 91 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcLSB_fC_.
|
inline |
Definition at line 94 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcThreshold_fC_.
|
inline |
getter for the default ADC pulse configured by python
Definition at line 165 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcPulse_.
|
inline |
Definition at line 95 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcSaturation_fC_.
|
inline |
Definition at line 96 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::tdcSaturation_fC_.
|
inline |
Definition at line 93 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::targetMIPvalue_ADC_.
|
inline |
Definition at line 98 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::tdcForToAOnset_fC_.
|
inline |
|
inline |
|
inline |
Definition at line 80 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::jitterConstant2_ns_, HGCFEElectronics< DFr >::jitterNoise2_ns_, HGCFEElectronics< DFr >::noise_fC_, funct::pow(), and mathSSE::sqrt().
Referenced by HGCFEElectronics< DFr >::runShaperWithToT().
|
inline |
switches according to the firmware version
Definition at line 37 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::fwVersion_, HGCFEElectronics< DFr >::runShaperWithToT(), HGCFEElectronics< DFr >::runSimpleShaper(), HGCFEElectronics< DFr >::runTrivialShaper(), HGCFEElectronics< DFr >::SIMPLE, TrackerMaterial_cfi::thickness, and HGCFEElectronics< DFr >::WITHTOT.
Referenced by HGCFEElectronics< DFr >::runShaper().
|
inline |
Definition at line 64 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcPulse_, HGCFEElectronics< DFr >::runShaper(), and TrackerMaterial_cfi::thickness.
void HGCFEElectronics< DFr >::runShaperWithToT | ( | DFr & | dataFrame, |
hgc::HGCSimHitData & | chargeColl, | ||
hgc::HGCSimHitData & | toa, | ||
CLHEP::HepRandomEngine * | engine, | ||
uint32_t | thrADC, | ||
float | lsbADC, | ||
uint32_t | gainIdx, | ||
float | maxADC, | ||
int | thickness, | ||
float | tdcOnsetAuto, | ||
const hgc_digi::FEADCPulseShape & | adcPulse | ||
) |
implements pulse shape and switch to time over threshold including deadtime
Definition at line 204 of file HGCFEElectronics.cc.
References gpuClustering::adc, HGCFEElectronics< DFr >::adcLSB_fC_, HGCFEElectronics< DFr >::adcSaturation_fC_, HGCFEElectronics< DFr >::busyFlags, RecoTauCleanerPlugins::charge, debug, alignCSCRings::e, validate-o2o-wbm::f, myMath::fast_expf(), HGCFEElectronics< DFr >::getTimeJitter(), SiStripPI::max, min(), mps_check::msg, HGCFEElectronics< DFr >::newCharge, HGCFEElectronics< DFr >::pulseAvgT_, HGCSample::set(), HGCSample::setToAValid(), command_line::start, HGCFEElectronics< DFr >::tdcChargeDrainParameterisation_, HGCFEElectronics< DFr >::tdcLSB_fC_, HGCFEElectronics< DFr >::tdcOnset_fC_, HGCFEElectronics< DFr >::tdcResolutionInNs_, HGCFEElectronics< DFr >::tdcSaturation_fC_, HGCFEElectronics< DFr >::toaFlags, HGCFEElectronics< DFr >::toaFromToT, HGCFEElectronics< DFr >::toaLSB_ns_, HGCFEElectronics< DFr >::toaMode_, HGCFEElectronics< DFr >::totFlags, and HGCFEElectronics< DFr >::WEIGHTEDBYE.
Referenced by HGCFEElectronics< DFr >::runShaper(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
inline |
Definition at line 143 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcPulse_, and HGCFEElectronics< DFr >::runShaperWithToT().
void HGCFEElectronics< DFr >::runSimpleShaper | ( | DFr & | dataFrame, |
hgc::HGCSimHitData & | chargeColl, | ||
uint32_t | thrADC, | ||
float | lsbADC, | ||
uint32_t | gainIdx, | ||
float | maxADC, | ||
const hgc_digi::FEADCPulseShape & | adcPulse | ||
) |
applies a shape to each time sample and propagates the tails to the subsequent time samples
Definition at line 146 of file HGCFEElectronics.cc.
References gpuClustering::adc, HGCFEElectronics< DFr >::adcThreshold_fC_, RecoTauCleanerPlugins::charge, debug, validate-o2o-wbm::f, min(), mps_check::msg, HGCFEElectronics< DFr >::newCharge, and HGCSample::set().
Referenced by HGCFEElectronics< DFr >::runShaper(), and HGCFEElectronics< DFr >::runSimpleShaper().
|
inline |
Definition at line 124 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::adcPulse_, and HGCFEElectronics< DFr >::runSimpleShaper().
void HGCFEElectronics< DFr >::runTrivialShaper | ( | DFr & | dataFrame, |
hgc::HGCSimHitData & | chargeColl, | ||
uint32_t | thrADC, | ||
float | lsbADC, | ||
uint32_t | gainIdx, | ||
float | maxADC | ||
) |
converts charge to digis without pulse shape
Definition at line 107 of file HGCFEElectronics.cc.
References gpuClustering::adc, HGCFEElectronics< DFr >::adcLSB_fC_, HGCFEElectronics< DFr >::adcSaturation_fC_, HGCFEElectronics< DFr >::adcThreshold_fC_, debug, alignCSCRings::e, min(), mps_check::msg, and HGCSample::set().
Referenced by HGCFEElectronics< DFr >::runShaper().
|
inline |
|
inline |
|
inline |
Definition at line 100 of file HGCFEElectronics.h.
References alignCSCRings::e, funct::pow(), HGCFEElectronics< DFr >::tdcLSB_fC_, HGCFEElectronics< DFr >::tdcNbits_, and HGCFEElectronics< DFr >::tdcSaturation_fC_.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics().
|
inline |
returns how ToT will be computed
Definition at line 160 of file HGCFEElectronics.h.
References HGCFEElectronics< DFr >::toaMode_.
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getADClsb(), HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runShaperWithToT(), HGCFEElectronics< DFr >::runTrivialShaper(), and HGCFEElectronics< DFr >::setADClsb().
|
private |
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getMaxADC(), HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runShaperWithToT(), and HGCFEElectronics< DFr >::runTrivialShaper().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getADCThreshold(), HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runSimpleShaper(), and HGCFEElectronics< DFr >::runTrivialShaper().
|
private |
Definition at line 187 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 174 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaper().
|
private |
Definition at line 181 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTimeJitter(), and HGCFEElectronics< DFr >::HGCFEElectronics().
|
private |
Definition at line 181 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTimeJitter(), and HGCFEElectronics< DFr >::HGCFEElectronics().
|
private |
Definition at line 188 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::runShaperWithToT(), and HGCFEElectronics< DFr >::runSimpleShaper().
|
private |
Definition at line 182 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTimeJitter(), HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::SetNoiseValues().
|
private |
Definition at line 175 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 180 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTargetMipValue(), and HGCFEElectronics< DFr >::HGCFEElectronics().
|
private |
Definition at line 177 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 176 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTDCForToAOnset(), and HGCFEElectronics< DFr >::HGCFEElectronics().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTDClsb(), HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runShaperWithToT(), and HGCFEElectronics< DFr >::setTDCfsc().
|
private |
Definition at line 184 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::setTDCfsc().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getTDCOnset(), HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::getMaxTDC(), HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runShaperWithToT(), and HGCFEElectronics< DFr >::setTDCfsc().
|
private |
Definition at line 185 of file HGCFEElectronics.h.
|
private |
Definition at line 187 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 188 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 178 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), and HGCFEElectronics< DFr >::runShaperWithToT().
|
private |
Definition at line 183 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::HGCFEElectronics(), HGCFEElectronics< DFr >::runShaperWithToT(), and HGCFEElectronics< DFr >::toaMode().
|
private |
Definition at line 187 of file HGCFEElectronics.h.
Referenced by HGCFEElectronics< DFr >::runShaperWithToT().