ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_MajorityConditionsTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
8
9// Gaudi includes
10#include "GaudiKernel/StatusCode.h"
11
12using namespace SCT_ConditionsData;
13
14// Constructor
15SCT_MajorityConditionsTool::SCT_MajorityConditionsTool(const std::string& type, const std::string& name, const IInterface* parent) :
16 base_class(type, name, parent)
17{
18}
19
20// Initialize
22 ATH_MSG_INFO("Initializing SCT_MajorityConditionsTool");
23
24 // Read Cond Handle Key
25 ATH_CHECK(m_condKey.initialize());
26
27 return StatusCode::SUCCESS;
28}
29
30// Finalize
32 ATH_MSG_INFO("Finalizing SCT_MajorityConditionsTool");
33
34 return StatusCode::SUCCESS;
35}
36
37// Is the detector good?
38bool SCT_MajorityConditionsTool::isGood(const EventContext& ctx) const {
39 const SCT_MajorityCondData* condData{getCondData(ctx)};
40 if (condData==nullptr) return false;
41
42 if (m_overall) {
43 return (condData->getMajorityState(OVERALL) and (condData->getHVFraction(OVERALL) > m_majorityFraction));
44 } else {
45 return ((condData->getMajorityState(BARREL) and condData->getMajorityState(ECA) and condData->getMajorityState(ECC)) and
46 (condData->getHVFraction(BARREL) > m_majorityFraction) and
47 (condData->getHVFraction(ECA) > m_majorityFraction) and
48 (condData->getHVFraction(ECC) > m_majorityFraction));
49 }
50}
51
52// Is a barrel/endcap good?
53bool SCT_MajorityConditionsTool::isGood(int bec, const EventContext& ctx) const {
54 const SCT_MajorityCondData* condData{getCondData(ctx)};
55 if (condData==nullptr) return false;
56
57 bool result{true};
58
59 // Check numbering
60
61 if (bec == bec_BARREL) {
62 result = (condData->getMajorityState(BARREL) and (condData->getHVFraction(BARREL) > m_majorityFraction));
63 } else if (bec == bec_ECC) {
64 result = (condData->getMajorityState(ECC) and (condData->getHVFraction(ECC) > m_majorityFraction));
65 } else if (bec == bec_ECA) {
66 result = (condData->getMajorityState(ECA) and (condData->getHVFraction(ECA) > m_majorityFraction));
67 } else {
68 ATH_MSG_WARNING("Unrecognised BEC " << bec);
69 }
70
71 return result;
72}
73
76 return condData.retrieve();
77}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
header file containing the number of elements and enumerated type of parameters which may be retrieve...
header file for tool
Class for data object used in SCT_MajorityCondAlg and SCT_MajorityConditionsTool.
float getHVFraction(const int &region) const
Get HV fraction for a region.
bool getMajorityState(const int &region) const
Get majority state for a region.
const SCT_MajorityCondData * getCondData(const EventContext &ctx) const
SG::ReadCondHandleKey< SCT_MajorityCondData > m_condKey
virtual StatusCode finalize() override
SCT_MajorityConditionsTool(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize() override
virtual bool isGood(const EventContext &ctx) const override
Is the detector good?
const_pointer_type retrieve()