ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_MajorityConditionsTool Class Reference

Tool which reports on whether the majority of the SCT (or component) is in LV/HV on state with at least a fraction (default 0.9) of the HV in that state. More...

#include <SCT_MajorityConditionsTool.h>

Inheritance diagram for SCT_MajorityConditionsTool:
Collaboration diagram for SCT_MajorityConditionsTool:

Public Member Functions

 SCT_MajorityConditionsTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~SCT_MajorityConditionsTool ()=default
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual bool isGood (const EventContext &ctx) const override
 Is the detector good?
virtual bool isGood (int bec, const EventContext &ctx) const override
 Is a barrel/endcap good?

Private Member Functions

const SCT_MajorityCondDatagetCondData (const EventContext &ctx) const

Private Attributes

BooleanProperty m_overall {this, "UseOverall", false, "Use overall value or ECA/B/ECC"}
FloatProperty m_majorityFraction {this, "MajorityFraction", 0.9, "Required fraction in majority state"}
SG::ReadCondHandleKey< SCT_MajorityCondDatam_condKey {this, "CondKey", "SCT_MajorityCondData", "Majority of SCT status"}

Detailed Description

Tool which reports on whether the majority of the SCT (or component) is in LV/HV on state with at least a fraction (default 0.9) of the HV in that state.

Definition at line 38 of file SCT_MajorityConditionsTool.h.

Constructor & Destructor Documentation

◆ SCT_MajorityConditionsTool()

SCT_MajorityConditionsTool::SCT_MajorityConditionsTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 15 of file SCT_MajorityConditionsTool.cxx.

15 :
16 base_class(type, name, parent)
17{
18}

◆ ~SCT_MajorityConditionsTool()

virtual SCT_MajorityConditionsTool::~SCT_MajorityConditionsTool ( )
virtualdefault

Member Function Documentation

◆ finalize()

StatusCode SCT_MajorityConditionsTool::finalize ( )
overridevirtual

Definition at line 31 of file SCT_MajorityConditionsTool.cxx.

31 {
32 ATH_MSG_INFO("Finalizing SCT_MajorityConditionsTool");
33
34 return StatusCode::SUCCESS;
35}
#define ATH_MSG_INFO(x)

◆ getCondData()

const SCT_MajorityCondData * SCT_MajorityConditionsTool::getCondData ( const EventContext & ctx) const
private

Definition at line 74 of file SCT_MajorityConditionsTool.cxx.

74 {
75 SG::ReadCondHandle<SCT_MajorityCondData> condData{m_condKey, ctx};
76 return condData.retrieve();
77}
SG::ReadCondHandleKey< SCT_MajorityCondData > m_condKey
const_pointer_type retrieve()

◆ initialize()

StatusCode SCT_MajorityConditionsTool::initialize ( )
overridevirtual

Definition at line 21 of file SCT_MajorityConditionsTool.cxx.

21 {
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}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ isGood() [1/2]

bool SCT_MajorityConditionsTool::isGood ( const EventContext & ctx) const
overridevirtual

Is the detector good?

Definition at line 38 of file SCT_MajorityConditionsTool.cxx.

38 {
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}
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

◆ isGood() [2/2]

bool SCT_MajorityConditionsTool::isGood ( int bec,
const EventContext & ctx ) const
overridevirtual

Is a barrel/endcap good?

Definition at line 53 of file SCT_MajorityConditionsTool.cxx.

53 {
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}
#define ATH_MSG_WARNING(x)

Member Data Documentation

◆ m_condKey

SG::ReadCondHandleKey<SCT_MajorityCondData> SCT_MajorityConditionsTool::m_condKey {this, "CondKey", "SCT_MajorityCondData", "Majority of SCT status"}
private

Definition at line 59 of file SCT_MajorityConditionsTool.h.

59{this, "CondKey", "SCT_MajorityCondData", "Majority of SCT status"};

◆ m_majorityFraction

FloatProperty SCT_MajorityConditionsTool::m_majorityFraction {this, "MajorityFraction", 0.9, "Required fraction in majority state"}
private

Definition at line 57 of file SCT_MajorityConditionsTool.h.

57{this, "MajorityFraction", 0.9, "Required fraction in majority state"};

◆ m_overall

BooleanProperty SCT_MajorityConditionsTool::m_overall {this, "UseOverall", false, "Use overall value or ECA/B/ECC"}
private

Definition at line 56 of file SCT_MajorityConditionsTool.h.

56{this, "UseOverall", false, "Use overall value or ECA/B/ECC"};

The documentation for this class was generated from the following files: