17#include "Identifier/Identifier.h"
59 using AthCondAlgorithm::AthCondAlgorithm;
64 StatusCode
execute(
const EventContext& ctx)
const override;
72 "DCS folders with HV values"};
84 "Input key for HVScaleCorr from conditions database (used online)"};
89 Gaudi::Property<bool>
m_doHV{
this,
"doHV",
true,
"create HV Scale Correction"};
90 Gaudi::Property<bool>
m_doRProp{
this,
"doR",
true,
"Use R values with current to improve HV"};
91 Gaudi::Property<bool>
m_undoOnlineHVCorr{
this,
"UndoOnlineHVCorr",
true,
"Undo the HVCorr done online"};
92 Gaudi::Property<bool>
m_useCurrentEMB{
this,
"UseCurrentsInHVEM",
false,
"Use currents in EMB as well"};
93 Gaudi::Property<bool>
m_useCurrentFCAL1{
this,
"UseCurrentsInHVFCAL1",
false,
"Use currents in FCAL1 as well"};
94 Gaudi::Property<bool>
m_useCurrentOthers{
this,
"UseCurrentsInHVOthers",
false,
"Use currents in other partitions as well"};
97 Gaudi::Property<bool>
m_doAffected{
this,
"doAffected",
true,
"create affected region info"};
98 Gaudi::Property<bool>
m_doAffectedHV{
this,
"doAffectedHV",
true,
"include HV non nominal regions info"};
137 typedef std::vector<std::vector<unsigned short> >
pathVec;
164 ,
const float* rValues)
const;
201 float HV_nominal(
const char *identification,
const float eta)
const;
202 std::vector<int>
returnProblem(
const float eta,
const float phi,
const float delta_eta,
const float delta_phi);
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Base class for conditions algorithms.
std::vector< CaloAffectedRegionInfo > CaloAffectedRegionInfoVec
Definition of CaloDetDescrManager.
defines an "iterator" over instances of a given type in StoreGateSvc
LArBadXCont< LArBadFeb > LArBadFebCont
Base class for conditions algorithms.
Header file for AthHistogramAlgorithm.
An AttributeList represents a logical row of attributes in a metadata table.
Helper class for offline cell identifiers.
This class provides the client interface for accessing the detector description information common to...
This class is a collection of AttributeLists where each one is associated with a channel number.
Helper class for LArEM offline identifiers.
Helper for the Liquid Argon Calorimeter cell at the electrode level.
Helper class for LArFCAL offline identifiers.
Helper class for LArHEC offline identifiers.
void extendPhiRegion(float phi, float &phi_min, float &phi_max) const
Gaudi::Property< bool > m_doHV
virtual ~LArHVCondAlg()=default
StatusCode execute(const EventContext &ctx) const override
const LArHVLineID * m_hvLineID
SG::ReadCondHandleKey< ILArHVScaleCorr > m_onlineHVScaleCorrKey
const CaloCell_ID * m_calocellID
SG::ReadCondHandleKey< AthenaAttributeList > m_hvRKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
void addHV(voltageCell_t &v, float hv, float weight) const
Add voltage/weight for a sub-gap of a cell.
Gaudi::Property< bool > m_useCurrentFCAL1
Gaudi::Property< bool > m_useCurrentEMB
SG::ReadCondHandleKey< LArHVPathology > m_pathologiesKey
Gaudi::Property< bool > m_undoOnlineHVCorr
StatusCode searchNonNominalHV_EMEC_INNER(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
StatusCode searchNonNominalHV_HEC(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
StatusCode searchNonNominalHV_FCAL(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_DCSFolderKeys
std::vector< int > returnProblem(const float eta, const float phi, const float delta_eta, const float delta_phi)
std::unordered_map< unsigned, DCS_t > voltagePerLine_t
SG::WriteCondHandleKey< LArHVCorr > m_outputHVScaleCorrKey
std::function< const EventIDRange &(SG::ReadCondHandle< CondAttrListCollection > &h)> addDepFcn_t
SG::WriteCondHandleKey< CaloAffectedRegionInfoVec > m_affectedKey
std::vector< unsigned int > getElecList(const Identifier &id, const LArHVPathology &pathologies) const
StatusCode updateMethod(const EventContext &ctx, CaloAffectedRegionInfoVec *vAffected, const LArBadFebCont *bfCont, const LArOnOffIdMapping *cabling) const
std::unique_ptr< const LArHVScaleCorrTool > m_scaleTool
StatusCode searchNonNominalHV_EMB(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
StatusCode makeAffectedRegionInfo(const EventContext &ctx, voltagePerLine_t &voltagePerLine) const
LArHVScaleCorrTool::voltageCell_t voltageCell_t
const LArElectrodeID * m_electrodeID
StatusCode getVoltagePerLine(const EventContext &ctx, voltagePerLine_t &voltagePerLine, const addDepFcn_t &addDep) const
std::vector< voltageCell_t > voltagePerCell_t
const LArHEC_ID * m_larhec_id
SG::ReadCondHandleKey< LArBadFebCont > m_BFKey
Gaudi::Property< std::vector< std::string > > m_fixHVStrings
std::atomic< unsigned > m_nPathologies
StatusCode makeHVScaleCorr(const EventContext &ctx, voltagePerLine_t &voltagePerLine) const
virtual StatusCode initialize() override
const LArOnlineID * m_onlineID
Gaudi::Property< bool > m_doRProp
LArHVScaleCorrTool::HV_t HV_t
StatusCode fillPathAndCellHV(const CaloDetDescrManager *calodetdescrmgr, voltagePerCell_t &hvdata, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage, const LArHVPathology &pathologies, pathVec &hasPathologyEM, pathVec &hasPathologyHEC, pathVec &hasPathologyFCAL, const float *rValues) const
Read the voltage per HV line and store it in structure per readout-cell (resolve the many-HV-lines-to...
Gaudi::Property< bool > m_doAffected
StatusCode searchNonNominalHV_EMEC_OUTER(CaloAffectedRegionInfoVec *vAffected, const LArHVIdMapping *hvCabling, const voltagePerLine_t &voltage) const
const LArEM_ID * m_larem_id
Gaudi::Property< bool > m_doAffectedHV
StatusCode dcs2LineVoltage(voltagePerLine_t &result, const std::vector< const CondAttrListCollection * > &fldvec) const
Read HV from DCS, store them in internal data structure per HV-line (Step 1)
const LArFCAL_ID * m_larfcal_id
SG::ReadCondHandleKey< LArHVIdMapping > m_hvMappingKey
Gaudi::Property< bool > m_useCurrentOthers
std::vector< std::vector< unsigned short > > pathVec
Internal structure for HV pathologies.
float HV_nominal(const char *identification, const float eta) const
Helper for the Liquid Argon Calorimeter High-Voltage identifiers.
HandleKeyArray< ReadCondHandle< T >, CondHandleDefault::Key< ReadCondHandleKey< T > >, Gaudi::DataHandle::Reader > ReadCondHandleKeyArray
DCS_t(float ihv, float icurr)