5#ifndef TILECONDITIONS_TILEEMSCALE_H
6#define TILECONDITIONS_TILEEMSCALE_H
107 float calibrateChannel(
unsigned int drawerIdx,
unsigned int channel,
unsigned int adc,
float amplitude,
128 float amplitude,
bool applyLasCorr =
true)
const;
170 float amplitude)
const;
182 float amplitude)
const;
194 float amplitude)
const;
232 float amplitude,
bool applyLasCorr =
true)
const;
254 float amplitude)
const;
397 unsigned int getCacheIndex(
unsigned int drawerIdx,
unsigned int channel,
unsigned int adc)
const;
Hold mappings of ranges to condition objects.
#define CONDCONT_DEF(...)
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Condition object to keep calibration factors of TileCal channels.
float getLaserFiberVariation(unsigned int drawerIdx, unsigned int channel) const
Return laser fiber relative variation.
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.
float applyChargLinearCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS linear calibration: ADC counts -> pC.
void setCalibOflLasFib(std::unique_ptr< TileCalibDataFlt > calibData)
void setCalibOflEms(std::unique_ptr< TileCalibDataFlt > calibData)
void setCalibOflCisLin(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.
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,...
void setCalibOflCisNln(std::unique_ptr< TileCalibDataFlt > calibData)
TileRawChannelUnit::UNIT m_onlCacheUnit
void setCalibOnlCes(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOflEms
void setOnlineCacheUnit(TileRawChannelUnit::UNIT onlCacheUnit)
Set online cache unit.
std::unique_ptr< TileCalibDataFlt > m_calibOflCisNln
void setCalibOnlCis(std::unique_ptr< TileCalibDataFlt > calibData)
std::unique_ptr< TileCalibDataFlt > m_calibOnlCes
float applyChargeNonLinearCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS non-linear calibration: ADC counts -> pC.
void setCalibOnlLas(std::unique_ptr< TileCalibDataFlt > calibData)
void setMaxGains(unsigned int maxGains)
std::unique_ptr< TileCalibDataFlt > m_calibOflCes
std::unique_ptr< TileCalibDataFlt > m_calibOnlEms
float getCesiumReferenceHV(unsigned int drawerIdx, unsigned int channel) const
Return the reference PMT HV set in last cesium calibration.
std::unique_ptr< TileCalibDataFlt > m_calibOnlLas
float getLaserReferenceHV(unsigned int drawerIdx, unsigned int channel) const
Returns the reference PMT HV from appropriate laser calibration.
unsigned int m_maxChannels
float applyEMScaleCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Calibrate a Tile channel to EM scale: Equalized pC -> MeV.
float applyLaserNonLinearCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser (PMT nonlinearity) correction.
void setMaxChannels(unsigned int maxChannels)
void setCalibOflCes(std::unique_ptr< TileCalibDataFlt > calibData)
float getLaserPartitionVariation(unsigned int drawerIdx) const
Return laser partition relative variation.
std::unique_ptr< TileCalibDataFlt > m_calibOnlCis
float applyOnlineLaserCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply online laser (PMT linearity) correction.
float applyOnlineChargeCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply online CIS calibration: ADC counts -> pC.
float applyOnlineEMScaleCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Calibrate online chnnel to EM scale: Equalized pC -> MeV.
std::unique_ptr< TileCalibDataFlt > m_calibOflLasNln
float calibrateChannel(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const
Calibrate a Tile channel.
float getCesiumReferenceTemperature(unsigned int drawerIdx, unsigned int channel) const
Return the drawer temperature as measured during last cesium equalization.
std::unique_ptr< TileCalibDataFlt > m_calibOflLasFib
std::vector< float > m_onlCache
float applyLaserLinearCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser (PMT linearity) correction.
float applyOnlineCesiumCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
Apply online cesium calibration constant.
unsigned int getCacheIndex(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Return cache index used for online calibration constants.
void setCalibOflLasNln(std::unique_ptr< TileCalibDataFlt > calibData)
TileRawChannelUnit::UNIT getOnlineCacheUnit() const
Return the unit of cached online calibration constants.
std::unique_ptr< TileCalibDataFlt > m_calibOflLasLin
void resetOnlineCache()
Recache the total online calibration constant applied in ROD.
void setCalibOflLasLin(std::unique_ptr< TileCalibDataFlt > calibData)
void setCalibOnlEms(std::unique_ptr< TileCalibDataFlt > calibData)
bool checkIfOflLaserLinearCalibrationUsed() const
Check if offline linear laser calibration will be used.
float getCesiumReferenceLaserGain(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Return the PMT gain reference as measured by the laser system.
float applyLaserCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser correction.
float applyCesiumCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
Apply cesium calibration constant.
float getOnlineCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, TileRawChannelUnit::UNIT onlUnit) const
Return the calibration constant applied in the DSP.
std::unique_ptr< TileCalibDataFlt > m_calibOflCisLin
bool checkIfOflLaserNonLinearCalibrationUsed() const
Check if offline nonlinear laser calibration will be used.
unsigned int m_drawerCacheSize