 |
ATLAS Offline Software
|
Go to the documentation of this file.
18 m_isOflLasLinUsed(true),
19 m_isOflLasNlnUsed(true),
20 m_useOflLasFib(false),
127 if (onlCalib == 0.) {
131 return amplitude / onlCalib;
156 switch (rawDataUnitIn) {
328 float amplitude,
bool applyLasCorr)
const {
456 const float defval = 1.0;
457 const float epsilon = defval *
m_epsilon;
462 if (std::abs(
val - defval) > epsilon) {
473 const float defval = 100.0;
474 const float epsilon = defval *
m_epsilon;
480 if (std::abs(
val - defval) > epsilon) {
void setCalibOnlLas(std::unique_ptr< TileCalibDataFlt > calibData)
std::vector< float > m_onlCache
Generic class for storing a number of floats (Flt) for each channel or ADC.
TileRawChannelUnit::UNIT m_onlCacheUnit
float getCesiumReferenceTemperature(unsigned int drawerIdx, unsigned int channel) const
Return the drawer temperature as measured during last cesium equalization.
bool checkIfOflLaserLinearCalibrationUsed() const
Check if offline linear laser calibration will be used.
float applyOnlineCesiumCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
Apply online cesium calibration constant.
void setCalibOnlEms(std::unique_ptr< TileCalibDataFlt > calibData)
Thrown if an index is out of range.
std::unique_ptr< TileCalibDataFlt > m_calibOnlLas
float getCesiumReferenceLaserGain(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Return the PMT gain reference as measured by the laser system.
float applyOnlineEMScaleCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Calibrate online chnnel to EM scale: Equalized pC -> MeV.
Signals invalid use of TileRawChannelUnit.
float getOnlineCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, TileRawChannelUnit::UNIT onlUnit) const
Return the calibration constant applied in the DSP.
static const unsigned int MAX_DRAWERIDX
Maximal drawer index
static unsigned int getFirstDrawerInPartitionIdx(unsigned int drawerIdx)
Returns the first drawer Idx in a partition of a given input drawer.
float applyLaserCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser correction.
float applyChargeNonLinearCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS non-linear calibration: ADC counts -> pC.
void setCalibOflCes(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOnlCis
float applyChargLinearCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS linear calibration: ADC counts -> pC.
float applyOnlineLaserCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply online laser (PMT linearity) correction.
unsigned int m_drawerCacheSize
void setCalibOflCisNln(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOnlCes
float calibrateChannel(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const
Calibrate a Tile channel.
std::unique_ptr< TileCalibDataFlt > m_calibOflCes
void setCalibOnlCis(std::unique_ptr< TileCalibDataFlt > calibData)
float getLaserReferenceHV(unsigned int drawerIdx, unsigned int channel) const
Returns the reference PMT HV from appropriate laser calibration.
@ OnlineCesiumPicoCoulombs
void setCalibOflLasLin(std::unique_ptr< TileCalibDataFlt > calibData)
float applyChargeCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS calibration: ADC counts -> pC.
std::unique_ptr< TileCalibDataFlt > m_calibOflLasNln
std::unique_ptr< TileCalibDataFlt > m_calibOflEms
float applyLaserLinearCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser (PMT linearity) correction.
void setCalibOnlCes(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOflCisLin
std::unique_ptr< TileCalibDataFlt > m_calibOflLasLin
float applyCesiumCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
Apply cesium calibration constant.
void setCalibOflEms(std::unique_ptr< TileCalibDataFlt > calibData)
float getLaserPartitionVariation(unsigned int drawerIdx) const
Return laser partition relative variation.
float getLaserFiberVariation(unsigned int drawerIdx, unsigned int channel) const
Return laser fiber relative variation.
std::unique_ptr< TileCalibDataFlt > m_calibOflCisNln
void setCalibOflCisLin(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOnlEms
float applyLaserNonLinearCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser (PMT nonlinearity) correction.
float undoOnlineChannelCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT onlUnit) const
Undo the calibration applied in ROD signal reconstruction.
void setCalibOflLasFib(std::unique_ptr< TileCalibDataFlt > calibData)
float applyOnlineChargeCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply online CIS calibration: ADC counts -> pC.
void resetOnlineCache()
Recache the total online calibration constant applied in ROD.
float calibrateOnlineChannel(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT onlUnit) const
Calibrate an online Tile channel from OnlineADCcounts to an arbitrary Online unit,...
static float fixedPointPrecision(float val, unsigned int nBits=16)
Returns the input in fixed point precision.
bool checkIfOflLaserNonLinearCalibrationUsed() const
Check if offline nonlinear laser calibration will be used.
static const unsigned int LAS_PART_CHAN
Empty channel number to store laser partition variation.
static const unsigned int MAX_CHAN
Number of channels in drawer.
unsigned int m_maxChannels
float getCesiumReferenceHV(unsigned int drawerIdx, unsigned int channel) const
Return the reference PMT HV set in last cesium calibration.
float applyEMScaleCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Calibrate a Tile channel to EM scale: Equalized pC -> MeV.
void setCalibOflLasNln(std::unique_ptr< TileCalibDataFlt > calibData)
Thrown to prevent invalid results, eg.
@ OnlineMegaElectronVolts
unsigned int getCacheIndex(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Return cache index used for online calibration constants.
std::unique_ptr< TileCalibDataFlt > m_calibOflLasFib