ATLAS Offline Software
|
Calibration of TileCal channels and access to calibration factors. More...
#include <TileCondToolEmscale.h>
Public Member Functions | |
TileCondToolEmscale (const std::string &type, const std::string &name, const IInterface *parent) | |
virtual | ~TileCondToolEmscale () |
virtual StatusCode | initialize () override |
virtual StatusCode | finalize () override |
float | channelCalib (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT rawDataUnitIn, TileRawChannelUnit::UNIT rawDataUnitOut) const |
Calibrates a Tile channel. More... | |
float | doCalibEms (unsigned int drawerIdx, unsigned int channel, float amplitude) const |
Calibration to EM scale: Equalized pC -> MeV. More... | |
float | doCalibCes (unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const |
Application of cesium calibration constant. More... | |
float | doCalibLas (unsigned int drawerIdx, unsigned int channel, float amplitude) const |
Application of laser (PMT linearity) correction. More... | |
float | doCalibCis (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const |
Application of CIS calibration: ADC counts -> pC. More... | |
float | channelCalibOnl (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT onlUnit) const |
Calibrates an online Tile channel from OnlineADCcounts to an arbitrary Online unit, no NLN corrections applied. More... | |
float | doCalibEmsOnl (unsigned int drawerIdx, unsigned int channel, float amplitude) const |
Online calibration to EM scale: Equalized pC -> MeV. More... | |
float | doCalibCesOnl (unsigned int drawerIdx, unsigned int channel, float amplitude, bool applyLasCorr=true) const |
Online application of cesium calibration constant. More... | |
float | doCalibLasOnl (unsigned int drawerIdx, unsigned int channel, float amplitude) const |
Online application of laser (PMT linearity) correction. More... | |
float | doCalibCisOnl (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude) const |
Online Application of CIS calibration: ADC counts -> pC. More... | |
float | undoOnlCalib (unsigned int drawerIdx, unsigned int channel, unsigned int adc, float amplitude, TileRawChannelUnit::UNIT onlUnit) const |
Undoes the calibration applied in ROD signal reconstruction. More... | |
float | getCesRefLas (unsigned int drawerIdx, unsigned int channel, unsigned int adc) const |
Returns the PMT gain reference as measured by the laser system. More... | |
float | getCesRefHv (unsigned int drawerIdx, unsigned int channel) const |
Returns the reference PMT HV set in last cesium calibration. More... | |
float | getCesRefTemp (unsigned int drawerIdx, unsigned int channel) const |
Returns the drawer temperature as measured during last cesium equalization. More... | |
float | getLasFiber (unsigned int drawerIdx, unsigned int channel) const |
Returns laser fiber relative variation. More... | |
float | getLasPartition (unsigned int drawerIdx) const |
Returns laser partition relative variation. More... | |
float | getLasRefHv (unsigned int drawerIdx, unsigned int channel) const |
Returns the reference PMT HV from appropriate laser calibration. More... | |
TileRawChannelUnit::UNIT | getOnlCacheUnit () const |
Returns the unit of cached online calibration constants. More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysInitialize () override |
Perform system initialization for an algorithm. More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Protected Attributes | |
SG::ReadCondHandleKey< TileEMScale > | m_emScaleKey |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Private Attributes | |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Calibration of TileCal channels and access to calibration factors.
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 channelCalib(), 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
TileCondToolConf.py provices a getter function for this TileCondTool. TileCondToolEmscale needs the TileCalibEms input data.
Definition at line 58 of file TileCondToolEmscale.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
TileCondToolEmscale::TileCondToolEmscale | ( | const std::string & | type, |
const std::string & | name, | ||
const IInterface * | parent | ||
) |
Definition at line 24 of file TileCondToolEmscale.cxx.
|
virtual |
Definition at line 34 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::channelCalib | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc, | ||
float | amplitude, | ||
TileRawChannelUnit::UNIT | rawDataUnitIn, | ||
TileRawChannelUnit::UNIT | rawDataUnitOut | ||
) | const |
Calibrates 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.
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
amplitude | Input ampitude in units of rawDataUnitIn |
rawDataUnitIn | Input unit, see TileIdentifier/TileRawChannelUnit.h |
rawDataUnitOut | Output unit, see TileIdentifier/TileRawChannelUnit.h |
Definition at line 68 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::channelCalibOnl | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc, | ||
float | amplitude, | ||
TileRawChannelUnit::UNIT | onlUnit | ||
) | const |
Calibrates an online Tile channel from OnlineADCcounts to an arbitrary Online unit, no NLN corrections 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.
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
amplitude | Input amplitude in OnlineADCcounts unit |
onlUnit | Output online unit, see TileIdentifier/TileRawChannelUnit.h |
Definition at line 115 of file TileCondToolEmscale.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
float TileCondToolEmscale::doCalibCes | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude, | ||
bool | applyLasCorr = true |
||
) | const |
Application of cesium calibration constant.
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
applyLasCorr | Apply the (not yet implemented) relative laser correction |
Definition at line 88 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibCesOnl | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude, | ||
bool | applyLasCorr = true |
||
) | const |
Online application of cesium calibration constant.
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
applyLasCorr | Apply the (not yet implemented) relative laser correction |
Definition at line 134 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibCis | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc, | ||
float | amplitude | ||
) | const |
Application of CIS calibration: ADC counts -> pC.
Applies both the linear and non-linear part of the CIS calibration
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
amplitude | Input ampitude in units of ADC counts |
Definition at line 106 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibCisOnl | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc, | ||
float | amplitude | ||
) | const |
Online Application of CIS calibration: ADC counts -> pC.
Applies only the linear part of the CIS calibration
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
amplitude | Input ampitude in units of ADC counts |
Definition at line 152 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibEms | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude | ||
) | const |
Calibration to EM scale: Equalized pC -> MeV.
Applies the pC to MeV calibration constant
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
Definition at line 79 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibEmsOnl | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude | ||
) | const |
Online calibration to EM scale: Equalized pC -> MeV.
Applies the pC to MeV calibration constant
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
Definition at line 125 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibLas | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude | ||
) | const |
Application of laser (PMT linearity) correction.
Applies both the linear and non-linear part of the laser calibration
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
Definition at line 97 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::doCalibLasOnl | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
float | amplitude | ||
) | const |
Online application of laser (PMT linearity) correction.
Applies only the linear part of the laser calibration
drawerIdx | Drawer index |
channel | Tile channel |
amplitude | Input ampitude in pC |
Definition at line 143 of file TileCondToolEmscale.cxx.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
overridevirtual |
Definition at line 48 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getCesRefHv | ( | unsigned int | drawerIdx, |
unsigned int | channel | ||
) | const |
Returns the reference PMT HV set in last cesium calibration.
drawerIdx | Drawer index |
channel | Tile channel |
Definition at line 170 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getCesRefLas | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc | ||
) | const |
Returns 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.
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
Definition at line 161 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getCesRefTemp | ( | unsigned int | drawerIdx, |
unsigned int | channel | ||
) | const |
Returns the drawer temperature as measured during last cesium equalization.
drawerIdx | Drawer index |
channel | Tile channel |
Definition at line 179 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getLasFiber | ( | unsigned int | drawerIdx, |
unsigned int | channel | ||
) | const |
Returns laser fiber relative variation.
drawerIdx | Drawer index |
channel | Tile channel |
Definition at line 188 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getLasPartition | ( | unsigned int | drawerIdx | ) | const |
Returns laser partition relative variation.
The partition is defined by the drawerIdx which belongs to this partition. The relative partition variation values are stored in m_pryOflLasFib proxy 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 proxy.
drawerIdx | Drawer index |
Definition at line 197 of file TileCondToolEmscale.cxx.
float TileCondToolEmscale::getLasRefHv | ( | unsigned int | drawerIdx, |
unsigned int | channel | ||
) | const |
Returns the reference PMT HV from appropriate laser calibration.
drawerIdx | Drawer index |
channel | Tile channel |
Definition at line 206 of file TileCondToolEmscale.cxx.
TileRawChannelUnit::UNIT TileCondToolEmscale::getOnlCacheUnit | ( | ) | const |
Returns the unit of cached online calibration constants.
Definition at line 216 of file TileCondToolEmscale.cxx.
|
overridevirtual |
Definition at line 39 of file TileCondToolEmscale.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
static |
Definition at line 18 of file TileCondToolEmscale.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
float TileCondToolEmscale::undoOnlCalib | ( | unsigned int | drawerIdx, |
unsigned int | channel, | ||
unsigned int | adc, | ||
float | amplitude, | ||
TileRawChannelUnit::UNIT | onlUnit | ||
) | const |
Undoes 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.
drawerIdx | Drawer index |
channel | Tile channel |
adc | Gain |
amplitude | Input ampitude in online units onlUnit |
onlUnit | The output unit of the DSP, preserved in the bytestream |
Definition at line 58 of file TileCondToolEmscale.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
protected |
Definition at line 259 of file TileCondToolEmscale.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.