ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TileEMScale Class Reference

Condition object to keep calibration factors of TileCal channels. More...

#include <TileEMScale.h>

Collaboration diagram for TileEMScale:

Public Member Functions

 TileEMScale ()
 
virtual ~TileEMScale ()
 
bool initialize ()
 
float calibrateChannel (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const
 Calibrate a Tile channel. More...
 
float applyEMScaleCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Calibrate a Tile channel to EM scale: Equalized pC -> MeV. More...
 
float applyCesiumCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
 Apply cesium calibration constant. More...
 
float applyLaserCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Apply laser correction. More...
 
float applyLaserLinearCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Apply laser (PMT linearity) correction. More...
 
float applyLaserNonLinearCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Apply laser (PMT nonlinearity) correction. More...
 
float applyChargeCalibration (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
 Apply CIS calibration: ADC counts -> pC. More...
 
float applyChargLinearCalibration (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
 Apply CIS linear calibration: ADC counts -> pC. More...
 
float applyChargeNonLinearCalibration (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
 Apply CIS non-linear calibration: ADC counts -> pC. More...
 
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, no non-linear corrections are applied. More...
 
float applyOnlineEMScaleCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Calibrate online chnnel to EM scale: Equalized pC -> MeV. More...
 
float applyOnlineCesiumCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
 Apply online cesium calibration constant. More...
 
float applyOnlineLaserCalibration (unsigned int drawerIdx, unsigned int channel, float amplitude) const
 Apply online laser (PMT linearity) correction. More...
 
float applyOnlineChargeCalibration (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
 Apply online CIS calibration: ADC counts -> pC. More...
 
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. More...
 
float getCesiumReferenceLaserGain (unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
 Return the PMT gain reference as measured by the laser system. More...
 
float getCesiumReferenceHV (unsigned int drawerIdx, unsigned int channel) const
 Return the reference PMT HV set in last cesium calibration. More...
 
float getCesiumReferenceTemperature (unsigned int drawerIdx, unsigned int channel) const
 Return the drawer temperature as measured during last cesium equalization. More...
 
float getLaserFiberVariation (unsigned int drawerIdx, unsigned int channel) const
 Return laser fiber relative variation. More...
 
float getLaserPartitionVariation (unsigned int drawerIdx) const
 Return laser partition relative variation. More...
 
float getLaserReferenceHV (unsigned int drawerIdx, unsigned int channel) const
 Returns the reference PMT HV from appropriate laser calibration. More...
 
TileRawChannelUnit::UNIT getOnlineCacheUnit () const
 Return the unit of cached online calibration constants. More...
 
void setOnlineCacheUnit (TileRawChannelUnit::UNIT onlCacheUnit)
 Set online cache unit. More...
 
void setCalibOflCisLin (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflCisNln (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflLasLin (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflLasNln (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflLasFib (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflCes (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOflEms (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOnlCis (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOnlLas (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOnlCes (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setCalibOnlEms (std::unique_ptr< TileCalibDataFlt > calibData)
 
void setMaxChannels (unsigned int maxChannels)
 
void setMaxGains (unsigned int maxGains)
 

Protected Member Functions

void resetOnlineCache ()
 Recache the total online calibration constant applied in ROD. More...
 
float getOnlineCalibration (unsigned int drawerIdx, unsigned int channel, unsigned int adc, TileRawChannelUnit::UNIT onlUnit) const
 Return the calibration constant applied in the DSP. More...
 
bool checkIfOflLaserLinearCalibrationUsed () const
 Check if offline linear laser calibration will be used. More...
 
bool checkIfOflLaserNonLinearCalibrationUsed () const
 Check if offline nonlinear laser calibration will be used. More...
 
unsigned int getCacheIndex (unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
 Return cache index used for online calibration constants. More...
 

Protected Attributes

TileRawChannelUnit::UNIT m_onlCacheUnit
 
std::vector< float > m_onlCache
 
bool m_isOflLasLinUsed
 
bool m_isOflLasNlnUsed
 
std::unique_ptr< TileCalibDataFltm_calibOflCisLin
 
std::unique_ptr< TileCalibDataFltm_calibOflCisNln
 
std::unique_ptr< TileCalibDataFltm_calibOflLasLin
 
std::unique_ptr< TileCalibDataFltm_calibOflLasNln
 
std::unique_ptr< TileCalibDataFltm_calibOflLasFib
 
std::unique_ptr< TileCalibDataFltm_calibOflCes
 
std::unique_ptr< TileCalibDataFltm_calibOflEms
 
std::unique_ptr< TileCalibDataFltm_calibOnlCis
 
std::unique_ptr< TileCalibDataFltm_calibOnlLas
 
std::unique_ptr< TileCalibDataFltm_calibOnlCes
 
std::unique_ptr< TileCalibDataFltm_calibOnlEms
 
bool m_useOflLasFib
 
unsigned int m_maxChannels
 
unsigned int m_maxGains
 
unsigned int m_drawerCacheSize
 
const float m_epsilon = 1.e-5
 

Detailed Description

Condition object to keep calibration factors of TileCal channels.

Author
Nils Gollub nils..nosp@m.goll.nosp@m.ub@ce.nosp@m.rn.c.nosp@m.h

In order to calibrate signals from TileCal to the electromagnetic (EM) scale, a set of calibration constants need to be applied. They are obtained by the independent CIS, Laser and Cesium calibration system. The final calibration constant from pC to the EM scale is determinded in dedicated electron and muon testbeam analyses. This AlgTool provides access to the calibration constants stored in the COOL database and functions to perform the actual calibrations.

The central function of this AlgTool is calibrateChannel(), which enables the user to calibrate any TileCal channel from a given input unit (usually ADC counts or the online unit stored in the bytestream) to the desired output unit (usually MeV). In addition, functions performing the individual calibration steps are provided. They also give access to the calibration constants stored in the COOL DB by using unit amplitude as input.

A first "online" calibration is already applied during the signal reconstruction in the ROD. The used calibration constants are preserved in special database folders that do not allow to modify calibration constants for runs already taken. This ensures that the calibrations applied online in a given run can always be undone later in order to apply updated calibration constants in a reprocessing step. In addition, CIS and Laser calibrations might contain non-linear parts which are only applied during the offline calibration using this AlgTool.

Configuration

TileCalibEms needs the following TileCalibData input data set up via corresponding methods

The calibration constants applied in the ROD reconstruction have to be supplied through the "online" TileCalibData:

Since the calibration factor applied in the ROD is the product of up to four numbers, associated to the four calibration steps listed above, the total ROD calibration factor is cached. The unit of the cache is set up by setOnlCacheUnit() method and should be set to the ROD output unit present in the bytestream (otherwise the total factor will be recomputed event by event). The following online cache units can be used here:

If the ROD calibration should not be undone (or is not available as for simulated data), online cache unit should be set to "Invalid" (which is the default).

Definition at line 87 of file TileEMScale.h.

Constructor & Destructor Documentation

◆ TileEMScale()

TileEMScale::TileEMScale ( )

Definition at line 15 of file TileEMScale.cxx.

15  :
17  m_onlCache(std::vector<float>(0)),
18  m_isOflLasLinUsed(true),
19  m_isOflLasNlnUsed(true),
20  m_useOflLasFib(false),
21  m_maxChannels(0),
22  m_maxGains(0),
24 {
25 
26 }

◆ ~TileEMScale()

TileEMScale::~TileEMScale ( )
virtual

Definition at line 30 of file TileEMScale.cxx.

30  {
31 }

Member Function Documentation

◆ applyCesiumCalibration()

float TileEMScale::applyCesiumCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude,
bool  applyLasCorr = true 
) const

Apply cesium calibration constant.

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC
applyLasCorrApply the (not yet implemented) relative laser correction

Definition at line 208 of file TileEMScale.cxx.

208  {
209 
210  amplitude = m_calibOflCes->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
211 
212  if (applyLasCorr) {
213  //=== At some point a correction relative to the mono-energy laser reference
214  //=== taken with each Cesium calibration run needs to be implemented here.
215  }
216 
217  return amplitude;
218 }

◆ applyChargeCalibration()

float TileEMScale::applyChargeCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude 
) const

Apply CIS calibration: ADC counts -> pC.

Apply both the linear and non-linear part of the CIS calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in units of ADC counts

Definition at line 264 of file TileEMScale.cxx.

264  {
265 
266  //=== Linear correction
267  amplitude = m_calibOflCisLin->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
268 
269  //=== Non-linear correction
270  return m_calibOflCisNln->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
271 }

◆ applyChargeNonLinearCalibration()

float TileEMScale::applyChargeNonLinearCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude 
) const

Apply CIS non-linear calibration: ADC counts -> pC.

Apply only the non-linear part of the CIS calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in units of ADC counts

Definition at line 284 of file TileEMScale.cxx.

284  {
285 
286  //=== Non-linear correction
287  return m_calibOflCisNln->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
288 }

◆ applyChargLinearCalibration()

float TileEMScale::applyChargLinearCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude 
) const

Apply CIS linear calibration: ADC counts -> pC.

Apply only the linear part of the CIS calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in units of ADC counts

Definition at line 275 of file TileEMScale.cxx.

275  {
276 
277  //=== Linear correction
278  return m_calibOflCisLin->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
279 
280 }

◆ applyEMScaleCalibration()

float TileEMScale::applyEMScaleCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Calibrate a Tile channel to EM scale: Equalized pC -> MeV.

Apply the pC to MeV calibration constant

Returns
The input amplitude after calibration [MeV]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 201 of file TileEMScale.cxx.

201  {
202 
203  return m_calibOflEms->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
204 }

◆ applyLaserCalibration()

float TileEMScale::applyLaserCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Apply laser correction.

Apply both the linear and non-linear part of the laser calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 222 of file TileEMScale.cxx.

222  {
223 
224  //=== Linear correction
225  if (m_isOflLasLinUsed) {
226  amplitude = m_calibOflLasLin->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
227  }
228 
229  //=== Non-linear correction
230  if (m_isOflLasNlnUsed) {
231  amplitude = m_calibOflLasNln->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
232  }
233 
234  return amplitude;
235 }

◆ applyLaserLinearCalibration()

float TileEMScale::applyLaserLinearCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Apply laser (PMT linearity) correction.

Apply only the linear part of the laser calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 239 of file TileEMScale.cxx.

239  {
240 
241  //=== Linear correction
242  if (m_isOflLasLinUsed) {
243  amplitude = m_calibOflLasLin->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
244  }
245 
246  return amplitude;
247 }

◆ applyLaserNonLinearCalibration()

float TileEMScale::applyLaserNonLinearCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Apply laser (PMT nonlinearity) correction.

Apply only the non-linear part of the laser calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 251 of file TileEMScale.cxx.

251  {
252 
253  //=== Non-linear correction
254  if (m_isOflLasNlnUsed) {
255  amplitude = m_calibOflLasNln->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
256  }
257 
258  return amplitude;
259 }

◆ applyOnlineCesiumCalibration()

float TileEMScale::applyOnlineCesiumCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude,
bool  applyLasCorr = true 
) const

Apply online cesium calibration constant.

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC
applyLasCorrApply the (not yet implemented) relative laser correction

Definition at line 327 of file TileEMScale.cxx.

328  {
329 
330  amplitude = m_calibOnlCes->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
331  if (applyLasCorr) {
332  //=== At some point a correction relative to the mono-energy laser reference
333  //=== taken with each Cesium calibration run needs to be implemented here.
334  }
335 
336  return amplitude;
337 }

◆ applyOnlineChargeCalibration()

float TileEMScale::applyOnlineChargeCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude 
) const

Apply online CIS calibration: ADC counts -> pC.

Apply only the linear part of the CIS calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in units of ADC counts

Definition at line 349 of file TileEMScale.cxx.

349  {
350 
351 
352  //=== Linear correction only
353  return m_calibOnlCis->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
354 }

◆ applyOnlineEMScaleCalibration()

float TileEMScale::applyOnlineEMScaleCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Calibrate online chnnel to EM scale: Equalized pC -> MeV.

Apply the pC to MeV calibration constant

Returns
The input amplitude after calibration [MeV]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 320 of file TileEMScale.cxx.

320  {
321 
322  return m_calibOnlEms->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
323 }

◆ applyOnlineLaserCalibration()

float TileEMScale::applyOnlineLaserCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
float  amplitude 
) const

Apply online laser (PMT linearity) correction.

Apply only the linear part of the laser calibration

Returns
The input amplitude after calibration [pC]
Parameters
drawerIdxDrawer index
channelTile channel
amplitudeInput ampitude in pC

Definition at line 341 of file TileEMScale.cxx.

341  {
342 
343  //=== Linear correction only
344  return m_calibOnlLas->getCalibDrawer(drawerIdx)->getCalib(channel, 0, amplitude);
345 }

◆ calibrateChannel()

float TileEMScale::calibrateChannel ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude,
TileRawChannelUnit::UNIT  rawDataUnitIn,
TileRawChannelUnit::UNIT  rawDataUnitOut 
) const

Calibrate a Tile channel.

Transforms the input amplitude with unit rawDataUnitIn to output amplitude with unit rawDataUnitOut. Note that "upstream" calibrations are not supported, i.e. calibration requests from eg. MeV to ADC counts will result in an exception being thrown.

Returns
The input amplitude after calibration
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in units of rawDataUnitIn
rawDataUnitInInput unit, see TileIdentifier/TileRawChannelUnit.h
rawDataUnitOutOutput unit, see TileIdentifier/TileRawChannelUnit.h

Definition at line 136 of file TileEMScale.cxx.

138  {
139 
140  //=== Undo online calibration, result is offline ADC counts
141  if (rawDataUnitIn >= TileRawChannelUnit::OnlineADCcounts) {
142  if (rawDataUnitIn > TileRawChannelUnit::OnlineMegaElectronVolts) {
143  throw TileCalib::InvalidRawChanUnit("TileCalibEms::channelCalib(onl)", rawDataUnitIn);
144  } else if (rawDataUnitIn > TileRawChannelUnit::OnlineADCcounts) {
145  amplitude = undoOnlineChannelCalibration(drawerIdx, channel, adc, amplitude, rawDataUnitIn);
146  }
147  rawDataUnitIn = TileRawChannelUnit::ADCcounts;
148  }
149 
150  //=== Allow only "forward" calibration from here on
151  if (rawDataUnitOut < rawDataUnitIn || rawDataUnitOut > TileRawChannelUnit::MegaElectronVolts) {
152  throw TileCalib::InvalidRawChanUnit("TileCalibEms::channelCalib(out)", rawDataUnitOut);
153  }
154 
155  //=== decide which calibrations to apply
156  switch (rawDataUnitIn) {
157 
160  if (rawDataUnitOut > TileRawChannelUnit::ADCcounts) {
161  amplitude = applyChargeCalibration(drawerIdx, channel, adc, amplitude);
162  if (rawDataUnitOut > TileRawChannelUnit::PicoCoulombs) {
163  amplitude = applyLaserCalibration(drawerIdx, channel, amplitude);
164  amplitude = applyCesiumCalibration(drawerIdx, channel, amplitude);
165  if (rawDataUnitOut > TileRawChannelUnit::CesiumPicoCoulombs) {
166  amplitude = applyEMScaleCalibration(drawerIdx, channel, amplitude);
167  }
168  }
169  }
170  break;
171 
173  if (rawDataUnitOut > TileRawChannelUnit::PicoCoulombs) {
174  amplitude = applyLaserCalibration(drawerIdx, channel, amplitude);
175  amplitude = applyCesiumCalibration(drawerIdx, channel, amplitude);
176  if (rawDataUnitOut > TileRawChannelUnit::CesiumPicoCoulombs) {
177  amplitude = applyEMScaleCalibration(drawerIdx, channel, amplitude);
178  }
179  }
180  break;
181 
183  if (rawDataUnitOut > TileRawChannelUnit::CesiumPicoCoulombs) {
184  amplitude = applyEMScaleCalibration(drawerIdx, channel, amplitude);
185  }
186  break;
187 
189  break;
190 
191  default:
192  throw TileCalib::InvalidRawChanUnit("TileCalibEms::channelCalib", rawDataUnitIn);
193 
194  }
195 
196  return amplitude;
197 }

◆ calibrateOnlineChannel()

float TileEMScale::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, no non-linear corrections are applied.

Transforms the input amplitude with unit rawDataUnitIn to output amplitude with unit rawDataUnitOut. Note that "upstream" calibrations are not supported, i.e. calibration requests from eg. MeV to ADC counts will result in an exception being thrown.

Returns
The total online calibration constant
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput amplitude in OnlineADCcounts unit
onlUnitOutput online unit, see TileIdentifier/TileRawChannelUnit.h

Definition at line 292 of file TileEMScale.cxx.

293  {
294 
295  //=== CIS calibration
296  if (onlUnit > TileRawChannelUnit::OnlineADCcounts) {
297  amplitude = m_calibOnlCis->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
298 
299  //=== LAS+CES calibration
301  amplitude = m_calibOnlLas->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
302  amplitude = m_calibOnlCes->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
303  }
304 
305  //=== EMSCALE calibration
307  amplitude = m_calibOnlEms->getCalibDrawer(drawerIdx)->getCalib(channel, adc, amplitude);
308  }
309  }
310 
311  //=== convert float to 16 bit fixed point DSP precision
312  amplitude = TileCalibUtils::fixedPointPrecision(amplitude);
313 
314  return amplitude;
315 
316 }

◆ checkIfOflLaserLinearCalibrationUsed()

bool TileEMScale::checkIfOflLaserLinearCalibrationUsed ( ) const
protected

Check if offline linear laser calibration will be used.

This callback is called if offline linear laser of the proxies callback function has been called due to an updated COOL DB IOV. TileEMScale::m_isOflLasLinUsed property.

Definition at line 454 of file TileEMScale.cxx.

454  {
455 
456  const float defval = 1.0;
457  const float epsilon = defval * m_epsilon;
458  float val(defval);
459  for (unsigned int drawerIdx = 0; drawerIdx < TileCalibUtils::MAX_DRAWERIDX; ++drawerIdx) {
460  for (unsigned int chn = 0; chn < TileCalibUtils::MAX_CHAN; ++chn) {
461  val = m_calibOflLasLin->getCalibDrawer(drawerIdx)->getCalib(chn, 0, defval);
462  if (std::abs(val - defval) > epsilon) {
463  return true;
464  }
465  }
466  }
467 
468  return false;
469 }

◆ checkIfOflLaserNonLinearCalibrationUsed()

bool TileEMScale::checkIfOflLaserNonLinearCalibrationUsed ( ) const
protected

Check if offline nonlinear laser calibration will be used.

This callback is called if offline nonlinear laser of the proxies callback function has been called due to an updated COOL DB IOV.TileEMScale::m_isOflLasNlnUsed property.

Definition at line 471 of file TileEMScale.cxx.

471  {
472 
473  const float defval = 100.0;
474  const float epsilon = defval * m_epsilon;
475  float val(defval);
476 
477  for (unsigned int drawerIdx = 0; drawerIdx < TileCalibUtils::MAX_DRAWERIDX; ++drawerIdx) {
478  for (unsigned int chn = 0; chn < TileCalibUtils::MAX_CHAN; ++chn) {
479  val = m_calibOflLasNln->getCalibDrawer(drawerIdx)->getCalib(chn, 0, defval);
480  if (std::abs(val - defval) > epsilon) {
481  return true;
482  }
483  }
484  }
485 
486  return false;
487 }

◆ getCacheIndex()

unsigned int TileEMScale::getCacheIndex ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc 
) const
inlineprotected

Return cache index used for online calibration constants.

Return cache index used for the calibration constant applied in the DSP

Parameters
drawerIdxDrawer index
channelTile channel
adcGain

Definition at line 460 of file TileEMScale.h.

460  {
461  return m_drawerCacheSize * drawerIdx + m_maxChannels * adc + channel;
462 }

◆ getCesiumReferenceHV()

float TileEMScale::getCesiumReferenceHV ( unsigned int  drawerIdx,
unsigned int  channel 
) const

Return the reference PMT HV set in last cesium calibration.

Returns
The PMT HV applied as result of last cesium calibration
Parameters
drawerIdxDrawer index
channelTile channel

Definition at line 365 of file TileEMScale.cxx.

365  {
366 
367  return m_calibOflCes->getCalibDrawer(drawerIdx)->getData(channel, 0, 2);
368 }

◆ getCesiumReferenceLaserGain()

float TileEMScale::getCesiumReferenceLaserGain ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc 
) const

Return the PMT gain reference as measured by the laser system.

Continous PMT gain measurements with the laser system enable to correct for PMT gain drifts between cesium calibration runs. Corrections are applied relative to the PMT gain measured by the laser system directly after the last cesium equalization.

Returns
The PMT gain reference at the last cesium scan.
Parameters
drawerIdxDrawer index
channelTile channel
adcGain

Definition at line 358 of file TileEMScale.cxx.

358  {
359 
360  return m_calibOflCes->getCalibDrawer(drawerIdx)->getData(channel, adc, 1);
361 }

◆ getCesiumReferenceTemperature()

float TileEMScale::getCesiumReferenceTemperature ( unsigned int  drawerIdx,
unsigned int  channel 
) const

Return the drawer temperature as measured during last cesium equalization.

Returns
The drawer temperature during last cesium equalization
Parameters
drawerIdxDrawer index
channelTile channel

Definition at line 372 of file TileEMScale.cxx.

372  {
373 
374  return m_calibOflCes->getCalibDrawer(drawerIdx)->getData(channel, 0, 3);
375 }

◆ getLaserFiberVariation()

float TileEMScale::getLaserFiberVariation ( unsigned int  drawerIdx,
unsigned int  channel 
) const

Return laser fiber relative variation.

Parameters
drawerIdxDrawer index
channelTile channel

Definition at line 379 of file TileEMScale.cxx.

379  {
380 
381  return m_calibOflLasFib->getCalibDrawer(drawerIdx)->getData(channel, 0, 0);
382 }

◆ getLaserPartitionVariation()

float TileEMScale::getLaserPartitionVariation ( unsigned int  drawerIdx) const

Return laser partition relative variation.

The partition is defined by the drawerIdx which belongs to this partition. The relative partition variation values are stored in the first drawer of each partition at tile channel LAS_PART_CHAN (it is 43), which is empty both in barrel and in extended barrel tile modules. Hence its value is not useful for getLasFiber, which reads from the same source.

Parameters
drawerIdxDrawer index

Definition at line 386 of file TileEMScale.cxx.

386  {
387 
388  unsigned int firstDrawerIdx = TileCalibUtils::getFirstDrawerInPartitionIdx(drawerIdx);
389  return m_calibOflLasFib->getCalibDrawer(firstDrawerIdx)->getData( TileCalibUtils::LAS_PART_CHAN, 0, 0);
390 }

◆ getLaserReferenceHV()

float TileEMScale::getLaserReferenceHV ( unsigned int  drawerIdx,
unsigned int  channel 
) const

Returns the reference PMT HV from appropriate laser calibration.

Returns
The PMT HV applied as result of laser calibration
Parameters
drawerIdxDrawer index
channelTile channel

Definition at line 394 of file TileEMScale.cxx.

394  {
395 
396  float val = -4.;
397 
398  const TileCalibDrawerFlt* calibDrawer = m_calibOflLasLin->getCalibDrawer(drawerIdx);
399  int size = calibDrawer->getObjSizeUint32();
400  if (size > 1) {
401  val = m_calibOflLasLin->getCalibDrawer(drawerIdx)->getData(channel, 0, 1);
402  }
403 
404  return val;
405 }

◆ getOnlineCacheUnit()

TileRawChannelUnit::UNIT TileEMScale::getOnlineCacheUnit ( ) const
inline

Return the unit of cached online calibration constants.

Definition at line 440 of file TileEMScale.h.

440  {
441  return m_onlCacheUnit;
442 }

◆ getOnlineCalibration()

float TileEMScale::getOnlineCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
TileRawChannelUnit::UNIT  onlUnit 
) const
protected

Return the calibration constant applied in the DSP.

Parameters
drawerIdxDrawer index
channelTile channel
adcGain
onlUnitThe output unit of the DSP

Definition at line 71 of file TileEMScale.cxx.

72  {
73 
74  float onlCalib(1.);
75  //=== CIS calibration
77  onlCalib = m_calibOnlCis->getCalibDrawer(drawerIdx)->getCalib(channel, adc, onlCalib);
78 
79  //=== LAS+CES calibration
81  onlCalib = m_calibOnlLas->getCalibDrawer(drawerIdx)->getCalib(channel, adc, onlCalib);
82  onlCalib = m_calibOnlCes->getCalibDrawer(drawerIdx)->getCalib(channel, adc, onlCalib);
83  }
84  //=== EMSCALE calibration
86  onlCalib = m_calibOnlEms->getCalibDrawer(drawerIdx)->getCalib(channel, adc, onlCalib);
87  }
88  }
89  //=== Convert float to 16 bit fixed point DSP precision
90  onlCalib = TileCalibUtils::fixedPointPrecision(onlCalib);
91 
92  return onlCalib;
93 }

◆ initialize()

bool TileEMScale::initialize ( )

◆ resetOnlineCache()

void TileEMScale::resetOnlineCache ( )
protected

Recache the total online calibration constant applied in ROD.

This callback is called if any of the "online" proxies callback function has been called due to an updated COOL DB IOV. The cache is cleared and refilled with the current valid values of the unit specified in the OnlCacheUnit property.

Definition at line 56 of file TileEMScale.cxx.

56  {
57 
58  //=== recalculate online cache
59  for (unsigned int drawerIdx = 0; drawerIdx < TileCalibUtils::MAX_DRAWERIDX; ++ drawerIdx) {
60  for (unsigned int channel = 0; channel < m_maxChannels; ++channel) {
61  for (unsigned int adc = 0; adc < m_maxGains; ++adc) {
63  }
64  }
65  }
66 
67 }

◆ setCalibOflCes()

void TileEMScale::setCalibOflCes ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 428 of file TileEMScale.cxx.

428  {
429  m_calibOflCes = std::move(calibData);
430 }

◆ setCalibOflCisLin()

void TileEMScale::setCalibOflCisLin ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 408 of file TileEMScale.cxx.

408  {
409  m_calibOflCisLin = std::move(calibData);
410 }

◆ setCalibOflCisNln()

void TileEMScale::setCalibOflCisNln ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 412 of file TileEMScale.cxx.

412  {
413  m_calibOflCisNln = std::move(calibData);
414 }

◆ setCalibOflEms()

void TileEMScale::setCalibOflEms ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 432 of file TileEMScale.cxx.

432  {
433  m_calibOflEms = std::move(calibData);
434 }

◆ setCalibOflLasFib()

void TileEMScale::setCalibOflLasFib ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 424 of file TileEMScale.cxx.

424  {
425  m_calibOflLasFib = std::move(calibData);
426 }

◆ setCalibOflLasLin()

void TileEMScale::setCalibOflLasLin ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 416 of file TileEMScale.cxx.

416  {
417  m_calibOflLasLin = std::move(calibData);
418 }

◆ setCalibOflLasNln()

void TileEMScale::setCalibOflLasNln ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 420 of file TileEMScale.cxx.

420  {
421  m_calibOflLasNln = std::move(calibData);
422 }

◆ setCalibOnlCes()

void TileEMScale::setCalibOnlCes ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 445 of file TileEMScale.cxx.

445  {
446  m_calibOnlCes = std::move(calibData);
447 }

◆ setCalibOnlCis()

void TileEMScale::setCalibOnlCis ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 437 of file TileEMScale.cxx.

437  {
438  m_calibOnlCis = std::move(calibData);
439 }

◆ setCalibOnlEms()

void TileEMScale::setCalibOnlEms ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 449 of file TileEMScale.cxx.

449  {
450  m_calibOnlEms = std::move(calibData);
451 }

◆ setCalibOnlLas()

void TileEMScale::setCalibOnlLas ( std::unique_ptr< TileCalibDataFlt calibData)

Definition at line 441 of file TileEMScale.cxx.

441  {
442  m_calibOnlLas = std::move(calibData);
443 }

◆ setMaxChannels()

void TileEMScale::setMaxChannels ( unsigned int  maxChannels)
inline

Definition at line 450 of file TileEMScale.h.

450  {
451  m_maxChannels = maxChannels;
452 }

◆ setMaxGains()

void TileEMScale::setMaxGains ( unsigned int  maxGains)
inline

Definition at line 455 of file TileEMScale.h.

455  {
456  m_maxGains = maxGains;
457 }

◆ setOnlineCacheUnit()

void TileEMScale::setOnlineCacheUnit ( TileRawChannelUnit::UNIT  onlCacheUnit)
inline

Set online cache unit.

Parameters
onlCacheUnitonline cache unit

Definition at line 445 of file TileEMScale.h.

445  {
446  m_onlCacheUnit = onlCacheUnit;
447 }

◆ undoOnlineChannelCalibration()

float TileEMScale::undoOnlineChannelCalibration ( unsigned int  drawerIdx,
unsigned int  channel,
unsigned int  adc,
float  amplitude,
TileRawChannelUnit::UNIT  onlUnit 
) const

Undo the calibration applied in ROD signal reconstruction.

At the run configuration stage, calibration constants are loaded into TileCal RODs, enabling the output of the signal reconstruction run online in DSPs to be sent in units of MeV. However, in this first raw calibration only the linear part of corrections are applied. In order to apply the full (and maybe in the meantime updated) calibration including all non-linear corrections, the calibrations applied in the ROD need to be undone first.

Returns
The signal as reconstructed in the DSP in units of ADC counts.
Parameters
drawerIdxDrawer index
channelTile channel
adcGain
amplitudeInput ampitude in online units onlUnit
onlUnitThe output unit of the DSP, preserved in the bytestream

Definition at line 97 of file TileEMScale.cxx.

98  {
99 
100  //=== Check if online folders are available
102  throw TileCalib::InvalidRawChanUnit("TileCalibEms::channelCalib(onl)", onlUnit);
103  }
104 
105  //=== Check for valid unit request
108  throw TileCalib::InvalidRawChanUnit("TileCalibEms::channelCalib(onl)", onlUnit);
109  }
110 
111  float onlCalib(0.);
112  //=== Look up total calib constant in cache if possible ...
113  if (onlUnit == m_onlCacheUnit) {
114  unsigned int idx = getCacheIndex(drawerIdx, channel, adc);
115  if (idx >= m_onlCache.size()) {
116  throw TileCalib::IndexOutOfRange("TileCalibEms::undoOnlineCalib", idx, m_onlCache.size());
117  }
118 
119  onlCalib = m_onlCache[idx];
120  } else { //=== ... otherwise compute on the fly
121 
122  onlCalib = getOnlineCalibration(drawerIdx, channel, adc, onlUnit);
123 
124  }
125 
126  //=== Sanity check
127  if (onlCalib == 0.) {
128  throw TileCalib::InvalidValue("TileCalibEms::undoOnlCalib", onlCalib);
129  }
130 
131  return amplitude / onlCalib;
132 }

Member Data Documentation

◆ m_calibOflCes

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflCes
protected

Definition at line 413 of file TileEMScale.h.

◆ m_calibOflCisLin

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflCisLin
protected

Definition at line 408 of file TileEMScale.h.

◆ m_calibOflCisNln

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflCisNln
protected

Definition at line 409 of file TileEMScale.h.

◆ m_calibOflEms

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflEms
protected

Definition at line 414 of file TileEMScale.h.

◆ m_calibOflLasFib

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflLasFib
protected

Definition at line 412 of file TileEMScale.h.

◆ m_calibOflLasLin

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflLasLin
protected

Definition at line 410 of file TileEMScale.h.

◆ m_calibOflLasNln

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOflLasNln
protected

Definition at line 411 of file TileEMScale.h.

◆ m_calibOnlCes

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOnlCes
protected

Definition at line 419 of file TileEMScale.h.

◆ m_calibOnlCis

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOnlCis
protected

Definition at line 417 of file TileEMScale.h.

◆ m_calibOnlEms

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOnlEms
protected

Definition at line 420 of file TileEMScale.h.

◆ m_calibOnlLas

std::unique_ptr<TileCalibDataFlt> TileEMScale::m_calibOnlLas
protected

Definition at line 418 of file TileEMScale.h.

◆ m_drawerCacheSize

unsigned int TileEMScale::m_drawerCacheSize
protected

Definition at line 426 of file TileEMScale.h.

◆ m_epsilon

const float TileEMScale::m_epsilon = 1.e-5
protected

Definition at line 428 of file TileEMScale.h.

◆ m_isOflLasLinUsed

bool TileEMScale::m_isOflLasLinUsed
protected

Definition at line 403 of file TileEMScale.h.

◆ m_isOflLasNlnUsed

bool TileEMScale::m_isOflLasNlnUsed
protected

Definition at line 404 of file TileEMScale.h.

◆ m_maxChannels

unsigned int TileEMScale::m_maxChannels
protected

Definition at line 424 of file TileEMScale.h.

◆ m_maxGains

unsigned int TileEMScale::m_maxGains
protected

Definition at line 425 of file TileEMScale.h.

◆ m_onlCache

std::vector<float> TileEMScale::m_onlCache
protected

Definition at line 401 of file TileEMScale.h.

◆ m_onlCacheUnit

TileRawChannelUnit::UNIT TileEMScale::m_onlCacheUnit
protected

Definition at line 400 of file TileEMScale.h.

◆ m_useOflLasFib

bool TileEMScale::m_useOflLasFib
protected

Definition at line 422 of file TileEMScale.h.


The documentation for this class was generated from the following files:
TileEMScale::m_onlCache
std::vector< float > m_onlCache
Definition: TileEMScale.h:401
TileCalibDrawerFlt
Generic class for storing a number of floats (Flt) for each channel or ADC.
Definition: TileCalibDrawerFlt.h:27
TileEMScale::m_onlCacheUnit
TileRawChannelUnit::UNIT m_onlCacheUnit
Definition: TileEMScale.h:400
TileEMScale::checkIfOflLaserLinearCalibrationUsed
bool checkIfOflLaserLinearCalibrationUsed() const
Check if offline linear laser calibration will be used.
Definition: TileEMScale.cxx:454
TileCalib::IndexOutOfRange
Thrown if an index is out of range.
Definition: TileCalorimeter/TileCalib/TileCalibBlobObjs/TileCalibBlobObjs/Exception.h:141
TileEMScale::m_calibOnlLas
std::unique_ptr< TileCalibDataFlt > m_calibOnlLas
Definition: TileEMScale.h:418
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileEMScale::m_isOflLasLinUsed
bool m_isOflLasLinUsed
Definition: TileEMScale.h:403
TileCalib::InvalidRawChanUnit
Signals invalid use of TileRawChannelUnit.
Definition: TileCalorimeter/TileConditions/TileConditions/Exception.h:20
TileEMScale::getOnlineCalibration
float getOnlineCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, TileRawChannelUnit::UNIT onlUnit) const
Return the calibration constant applied in the DSP.
Definition: TileEMScale.cxx:71
TileCalibUtils::MAX_DRAWERIDX
static const unsigned int MAX_DRAWERIDX
Maximal drawer index
Definition: TileCalibUtils.h:143
TileCalibUtils::getFirstDrawerInPartitionIdx
static unsigned int getFirstDrawerInPartitionIdx(unsigned int drawerIdx)
Returns the first drawer Idx in a partition of a given input drawer.
Definition: TileCalibUtils.cxx:253
TileRawChannelUnit::CesiumPicoCoulombs
@ CesiumPicoCoulombs
Definition: TileRawChannelUnit.h:19
TileEMScale::m_maxGains
unsigned int m_maxGains
Definition: TileEMScale.h:425
TileEMScale::applyLaserCalibration
float applyLaserCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Apply laser correction.
Definition: TileEMScale.cxx:222
TileEMScale::m_calibOnlCis
std::unique_ptr< TileCalibDataFlt > m_calibOnlCis
Definition: TileEMScale.h:417
TileRawChannelUnit::OnlineADCcounts
@ OnlineADCcounts
Definition: TileRawChannelUnit.h:21
TileEMScale::m_drawerCacheSize
unsigned int m_drawerCacheSize
Definition: TileEMScale.h:426
TileRawChannelUnit::PicoCoulombs
@ PicoCoulombs
Definition: TileRawChannelUnit.h:18
TileEMScale::m_calibOnlCes
std::unique_ptr< TileCalibDataFlt > m_calibOnlCes
Definition: TileEMScale.h:419
TileRawChannelUnit::OnlinePicoCoulombs
@ OnlinePicoCoulombs
Definition: TileRawChannelUnit.h:22
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TileEMScale::m_calibOflCes
std::unique_ptr< TileCalibDataFlt > m_calibOflCes
Definition: TileEMScale.h:413
TileRawChannelUnit::OnlineCesiumPicoCoulombs
@ OnlineCesiumPicoCoulombs
Definition: TileRawChannelUnit.h:23
TileRawChannelUnit::Invalid
@ Invalid
Definition: TileRawChannelUnit.h:26
TileRawChannelUnit::MegaElectronVolts
@ MegaElectronVolts
Definition: TileRawChannelUnit.h:20
TileEMScale::applyChargeCalibration
float applyChargeCalibration(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const
Apply CIS calibration: ADC counts -> pC.
Definition: TileEMScale.cxx:264
TileEMScale::m_calibOflLasNln
std::unique_ptr< TileCalibDataFlt > m_calibOflLasNln
Definition: TileEMScale.h:411
TileEMScale::m_calibOflEms
std::unique_ptr< TileCalibDataFlt > m_calibOflEms
Definition: TileEMScale.h:414
TileEMScale::m_calibOflCisLin
std::unique_ptr< TileCalibDataFlt > m_calibOflCisLin
Definition: TileEMScale.h:408
TileEMScale::m_calibOflLasLin
std::unique_ptr< TileCalibDataFlt > m_calibOflLasLin
Definition: TileEMScale.h:410
TileEMScale::applyCesiumCalibration
float applyCesiumCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const
Apply cesium calibration constant.
Definition: TileEMScale.cxx:208
BchCleanup.calibDrawer
calibDrawer
Definition: BchCleanup.py:217
TileEMScale::m_calibOflCisNln
std::unique_ptr< TileCalibDataFlt > m_calibOflCisNln
Definition: TileEMScale.h:409
TileEMScale::m_calibOnlEms
std::unique_ptr< TileCalibDataFlt > m_calibOnlEms
Definition: TileEMScale.h:420
TileEMScale::m_isOflLasNlnUsed
bool m_isOflLasNlnUsed
Definition: TileEMScale.h:404
TileEMScale::undoOnlineChannelCalibration
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.
Definition: TileEMScale.cxx:97
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
TileEMScale::resetOnlineCache
void resetOnlineCache()
Recache the total online calibration constant applied in ROD.
Definition: TileEMScale.cxx:56
TileEMScale::m_useOflLasFib
bool m_useOflLasFib
Definition: TileEMScale.h:422
TileCalibUtils::fixedPointPrecision
static float fixedPointPrecision(float val, unsigned int nBits=16)
Returns the input in fixed point precision.
Definition: TileCalibUtils.cxx:268
TileEMScale::checkIfOflLaserNonLinearCalibrationUsed
bool checkIfOflLaserNonLinearCalibrationUsed() const
Check if offline nonlinear laser calibration will be used.
Definition: TileEMScale.cxx:471
TileCalibUtils::LAS_PART_CHAN
static const unsigned int LAS_PART_CHAN
Empty channel number to store laser partition variation.
Definition: TileCalibUtils.h:144
TileCalibUtils::MAX_CHAN
static const unsigned int MAX_CHAN
Number of channels in drawer.
Definition: TileCalibUtils.h:141
TileEMScale::m_maxChannels
unsigned int m_maxChannels
Definition: TileEMScale.h:424
TileEMScale::applyEMScaleCalibration
float applyEMScaleCalibration(unsigned int drawerIdx, unsigned int channel, float amplitude) const
Calibrate a Tile channel to EM scale: Equalized pC -> MeV.
Definition: TileEMScale.cxx:201
TileEMScale::m_epsilon
const float m_epsilon
Definition: TileEMScale.h:428
TileRawChannelUnit::ADCcounts
@ ADCcounts
Definition: TileRawChannelUnit.h:17
TileCalib::InvalidValue
Thrown to prevent invalid results, eg.
Definition: TileCalorimeter/TileCalib/TileCalibBlobObjs/TileCalibBlobObjs/Exception.h:224
TileRawChannelUnit::OnlineMegaElectronVolts
@ OnlineMegaElectronVolts
Definition: TileRawChannelUnit.h:24
TileEMScale::getCacheIndex
unsigned int getCacheIndex(unsigned int drawerIdx, unsigned int channel, unsigned int adc) const
Return cache index used for online calibration constants.
Definition: TileEMScale.h:460
TileEMScale::m_calibOflLasFib
std::unique_ptr< TileCalibDataFlt > m_calibOflLasFib
Definition: TileEMScale.h:412