ATLAS Offline Software
SCT_DCSConditionsTool.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef SCT_DCSConditionsTool_h
8 #define SCT_DCSConditionsTool_h
9 
18 // Athena
21 
23 #include "Identifier/Identifier.h"
27 
28 // Gaudi
29 #include "Gaudi/Property.h"
30 #include "GaudiKernel/EventContext.h"
31 
32 // STL
33 #include <string>
34 
35 class SCT_ID;
36 
40 class SCT_DCSConditionsTool: public extends<AthAlgTool, ISCT_DCSConditionsTool> {
41 
42 public:
43  SCT_DCSConditionsTool(const std::string& type, const std::string& name, const IInterface* parent);
44  virtual ~SCT_DCSConditionsTool() = default;
45  virtual StatusCode initialize() override;
46  virtual StatusCode finalize() override;
47 
49 
50  virtual bool canReportAbout(InDetConditions::Hierarchy h) const override;
52  //returns the module ID (int), or returns 9999 (not a valid module number) if not able to report
53  virtual Identifier getModuleID(const Identifier& elementId, InDetConditions::Hierarchy h) const;
55  virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
56  virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
58  virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
59  virtual bool isGood(const IdentifierHash& hashId) const override;
60  virtual void getDetectorElementStatus(const EventContext& ctx, InDet::SiDetectorElementStatus &element_status,
62  //Returns HV (0 if there is no information)
63  virtual float modHV(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
64  virtual float modHV(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
65  //Does the same for hashIds
66  virtual float modHV(const IdentifierHash& hashId, const EventContext& ctx) const override;
67  virtual float modHV(const IdentifierHash& hashId) const override;
68  //Returns temp0 (0 if there is no information)
69  virtual float hybridTemperature(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
70  virtual float hybridTemperature(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
71  //Does the same for hashIds
72  virtual float hybridTemperature(const IdentifierHash& hashId, const EventContext& ctx) const override;
73  virtual float hybridTemperature(const IdentifierHash& hashId) const override;
74  //Returns temp0 + correction for Lorentz angle calculation (0 if there is no information)
75  virtual float sensorTemperature(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
76  virtual float sensorTemperature(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
77  //Does the same for hashIds
78  virtual float sensorTemperature(const IdentifierHash& hashId, const EventContext& ctx) const override;
79  virtual float sensorTemperature(const IdentifierHash& hashId) const override;
81 
82 private:
83  //Key for DataHandle
84  BooleanProperty m_readAllDBFolders{this, "ReadAllDBFolders", true};
85  BooleanProperty m_returnHVTemp{this, "ReturnHVTemp", true};
86  FloatProperty m_barrel_correction{this, "TempBarrelCorrection", -3.7};
87  FloatProperty m_ecInner_correction{this, "TempEcInnerCorrection", -13.1};
88  FloatProperty m_ecOuter_correction{this, "TempEcOuterCorrection", -15.5};
89  SG::ReadCondHandleKey<SCT_DCSStatCondData> m_condKeyState{this, "CondKeyState", "SCT_DCSStatCondData", "SCT DCS state"};
90  SG::ReadCondHandleKey<SCT_DCSFloatCondData> m_condKeyHV{this, "CondKeyHV", "SCT_DCSHVCondData", "SCT DCS HV"};
91  SG::ReadCondHandleKey<SCT_DCSFloatCondData> m_condKeyTemp0{this, "CondKeyTemp0", "SCT_DCSTemp0CondData", "SCT DCS temperature on side 0"};
92  const SCT_ID* m_pHelper{nullptr};
93  static const Identifier s_invalidId;
94  static const float s_defaultHV;
95  static const float s_defaultTemperature;
96  const SCT_DCSStatCondData* getCondDataState(const EventContext& ctx) const;
97  const SCT_DCSFloatCondData* getCondDataHV(const EventContext& ctx) const;
98  const SCT_DCSFloatCondData* getCondDataTemp0(const EventContext& ctx) const;
99 };
100 
101 #endif // SCT_DCSConditionsTool_h
SCT_DCSConditionsTool::m_condKeyHV
SG::ReadCondHandleKey< SCT_DCSFloatCondData > m_condKeyHV
Definition: SCT_DCSConditionsTool.h:90
SCT_DCSFloatCondData
Class for data object used in SCT_DCSConditions{HV,Temp}CondAlg, SCT_DCSConditionsTool,...
Definition: SCT_DCSFloatCondData.h:30
SCT_DCSConditionsTool::m_barrel_correction
FloatProperty m_barrel_correction
Definition: SCT_DCSConditionsTool.h:86
SCT_DCSConditionsTool::s_invalidId
static const Identifier s_invalidId
Definition: SCT_DCSConditionsTool.h:93
SCT_DCSConditionsTool::m_condKeyState
SG::ReadCondHandleKey< SCT_DCSStatCondData > m_condKeyState
Definition: SCT_DCSConditionsTool.h:89
SCT_DCSConditionsTool::initialize
virtual StatusCode initialize() override
Definition: SCT_DCSConditionsTool.cxx:27
SCT_DCSConditionsTool::m_ecOuter_correction
FloatProperty m_ecOuter_correction
Definition: SCT_DCSConditionsTool.h:88
InDetConditions::Hierarchy
Hierarchy
Definition: InDetHierarchy.h:14
SCT_DCSConditionsTool::m_ecInner_correction
FloatProperty m_ecInner_correction
Definition: SCT_DCSConditionsTool.h:87
SCT_DCSStatCondData
Classs for data object used in SCT_DCSConditionsStatCondAlg, SCT_DCSConditionsTool,...
Definition: SCT_DCSStatCondData.h:29
SCT_DCSConditionsTool::hybridTemperature
virtual float hybridTemperature(const Identifier &elementId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Definition: SCT_DCSConditionsTool.cxx:178
SCT_DCSConditionsTool::m_readAllDBFolders
BooleanProperty m_readAllDBFolders
Definition: SCT_DCSConditionsTool.h:84
SCT_DCSConditionsTool::finalize
virtual StatusCode finalize() override
Definition: SCT_DCSConditionsTool.cxx:43
SCT_DCSConditionsTool::SCT_DCSConditionsTool
SCT_DCSConditionsTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: SCT_DCSConditionsTool.cxx:22
InDet::SiDetectorElementStatus
Definition: SiDetectorElementStatus.h:62
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
SCT_DCSFloatCondData.h
header file for data object for SCT_DCSConditions{HV,Temp}CondAlg, SCT_DCSConditionsTool,...
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SCT_DCSConditionsTool::modHV
virtual float modHV(const Identifier &elementId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Definition: SCT_DCSConditionsTool.cxx:146
InDetHierarchy.h
SCT_DCSConditionsTool::canReportAbout
virtual bool canReportAbout(InDetConditions::Hierarchy h) const override
Return whether this service can report on the hierarchy level (e.g. module, chip.....
Definition: SCT_DCSConditionsTool.cxx:48
SCT_DCSConditionsTool::sensorTemperature
virtual float sensorTemperature(const Identifier &elementId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Definition: SCT_DCSConditionsTool.cxx:210
SCT_DCSConditionsTool::m_condKeyTemp0
SG::ReadCondHandleKey< SCT_DCSFloatCondData > m_condKeyTemp0
Definition: SCT_DCSConditionsTool.h:91
SCT_DCSConditionsTool::s_defaultHV
static const float s_defaultHV
Definition: SCT_DCSConditionsTool.h:94
SCT_DCSConditionsTool::m_pHelper
const SCT_ID * m_pHelper
Definition: SCT_DCSConditionsTool.h:92
SCT_DCSConditionsTool::getCondDataTemp0
const SCT_DCSFloatCondData * getCondDataTemp0(const EventContext &ctx) const
Definition: SCT_DCSConditionsTool.cxx:266
SCT_DCSConditionsTool::isGood
virtual bool isGood(const Identifier &elementId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Summarise the result from the service as good/bad.
Definition: SCT_DCSConditionsTool.cxx:70
SCT_DCSConditionsTool::getCondDataState
const SCT_DCSStatCondData * getCondDataState(const EventContext &ctx) const
Definition: SCT_DCSConditionsTool.cxx:254
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
IdentifierHash.h
SCT_DCSConditionsTool
Class to provide DCS information about modules from the COOL database.
Definition: SCT_DCSConditionsTool.h:40
SCT_DCSStatCondData.h
header file for data object for SCT_DCSConditionsStatCondAlg, SCT_DCSConditionsTool,...
SG::ReadCondHandleKey< SCT_DCSStatCondData >
h
SCT_ID
Definition: SCT_ID.h:68
SCT_DCSConditionsTool::getCondDataHV
const SCT_DCSFloatCondData * getCondDataHV(const EventContext &ctx) const
Definition: SCT_DCSConditionsTool.cxx:260
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCT_DCSConditionsTool::~SCT_DCSConditionsTool
virtual ~SCT_DCSConditionsTool()=default
SCT_DCSConditionsTool::getDetectorElementStatus
virtual void getDetectorElementStatus(const EventContext &ctx, InDet::SiDetectorElementStatus &element_status, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const override
Definition: SCT_DCSConditionsTool.cxx:96
SCT_DCSConditionsTool::m_returnHVTemp
BooleanProperty m_returnHVTemp
Definition: SCT_DCSConditionsTool.h:85
IdentifierHash
Definition: IdentifierHash.h:38
InDetConditions::DEFAULT
@ DEFAULT
Definition: InDetHierarchy.h:14
SG::WriteCondHandle
Definition: WriteCondHandle.h:26
SCT_DCSConditionsTool::getModuleID
virtual Identifier getModuleID(const Identifier &elementId, InDetConditions::Hierarchy h) const
Definition: SCT_DCSConditionsTool.cxx:53
SCT_DCSConditionsTool::s_defaultTemperature
static const float s_defaultTemperature
Definition: SCT_DCSConditionsTool.h:95
ISCT_DCSConditionsTool.h