ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_MajorityConditionsTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6
8
9// Gaudi includes
10#include "GaudiKernel/StatusCode.h"
11#include "GaudiKernel/ThreadLocalContext.h"
12
13using namespace SCT_ConditionsData;
14
15// Constructor
16SCT_MajorityConditionsTool::SCT_MajorityConditionsTool(const std::string& type, const std::string& name, const IInterface* parent) :
17 base_class(type, name, parent)
18{
19}
20
21// Initialize
23 ATH_MSG_INFO("Initializing SCT_MajorityConditionsTool");
24
25 // Read Cond Handle Key
26 ATH_CHECK(m_condKey.initialize());
27
28 return StatusCode::SUCCESS;
29}
30
31// Finalize
33 ATH_MSG_INFO("Finalizing SCT_MajorityConditionsTool");
34
35 return StatusCode::SUCCESS;
36}
37
38// Is the detector good?
39bool SCT_MajorityConditionsTool::isGood(const EventContext& ctx) const {
40 const SCT_MajorityCondData* condData{getCondData(ctx)};
41 if (condData==nullptr) return false;
42
43 if (m_overall) {
44 return (condData->getMajorityState(OVERALL) and (condData->getHVFraction(OVERALL) > m_majorityFraction));
45 } else {
46 return ((condData->getMajorityState(BARREL) and condData->getMajorityState(ECA) and condData->getMajorityState(ECC)) and
47 (condData->getHVFraction(BARREL) > m_majorityFraction) and
48 (condData->getHVFraction(ECA) > m_majorityFraction) and
49 (condData->getHVFraction(ECC) > m_majorityFraction));
50 }
51}
52
54 const EventContext& ctx{Gaudi::Hive::currentContext()};
55 return isGood(ctx);
56}
57
58// Is a barrel/endcap good?
59bool SCT_MajorityConditionsTool::isGood(int bec, const EventContext& ctx) const {
60 const SCT_MajorityCondData* condData{getCondData(ctx)};
61 if (condData==nullptr) return false;
62
63 bool result{true};
64
65 // Check numbering
66
67 if (bec == bec_BARREL) {
68 result = (condData->getMajorityState(BARREL) and (condData->getHVFraction(BARREL) > m_majorityFraction));
69 } else if (bec == bec_ECC) {
70 result = (condData->getMajorityState(ECC) and (condData->getHVFraction(ECC) > m_majorityFraction));
71 } else if (bec == bec_ECA) {
72 result = (condData->getMajorityState(ECA) and (condData->getHVFraction(ECA) > m_majorityFraction));
73 } else {
74 ATH_MSG_WARNING("Unrecognised BEC " << bec);
75 }
76
77 return result;
78}
79
81 const EventContext& ctx{Gaudi::Hive::currentContext()};
82 return isGood(bec, ctx);
83}
84
87 return condData.retrieve();
88}
#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
virtual bool isGood() const override
Is the detector good?
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
const_pointer_type retrieve()