ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_ConfigurationConditionsTool.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
12
13#ifndef SCT_ConfigurationConditionsTool_h
14#define SCT_ConfigurationConditionsTool_h
15
16// Athena includes
19
23
24// Gaudi includes
25#include "GaudiKernel/ToolHandle.h"
26#include "GaudiKernel/EventContext.h"
27#include "GaudiKernel/ContextSpecificPtr.h"
28
29// STL includes
30#include <string>
31
32// Forward declarations
33class SCT_ID;
34
40
41class SCT_ConfigurationConditionsTool: public extends<AthAlgTool, ISCT_ConfigurationConditionsTool> {
42 public:
43
44 //@name Tool methods
46 SCT_ConfigurationConditionsTool(const std::string& type, const std::string& name, const IInterface* parent);
48 virtual StatusCode initialize() override;
50
52 virtual bool canReportAbout(InDetConditions::Hierarchy h) const override;
53
55 virtual bool isGood(const Identifier& elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
56 virtual bool isGood(const Identifier& elementId, const EventContext& ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override;
57
59 virtual bool isGood(const IdentifierHash& hashId) const override;
60 virtual bool isGood(const IdentifierHash& hashId, const EventContext& ctx) const override;
61
62 virtual void getDetectorElementStatus(const EventContext& ctx, InDet::SiDetectorElementStatus &element_status,
64
66 virtual const std::set<Identifier>* badModules(const EventContext& ctx) const override;
67 virtual const std::set<Identifier>* badModules() const override;
69 virtual void badStrips(std::set<Identifier>& strips, const EventContext& ctx, bool ignoreBadModules=false, bool ignoreBadChips=false) const override;
70 virtual void badStrips(std::set<Identifier>& strips, bool ignoreBadModules=false, bool ignoreBadChips=false) const override;
72 virtual void badStrips(const Identifier& moduleId, std::set<Identifier>& strips, const EventContext& ctx, bool ignoreBadModules=false, bool ignoreBadChips=false) const override;
73 virtual void badStrips(const Identifier& moduleId, std::set<Identifier>& strips, bool ignoreBadModules=false, bool ignoreBadChips=false) const override;
75 virtual std::pair<bool, bool> badLinks(const IdentifierHash& hash, const EventContext& ctx) const override;
76 virtual std::pair<bool, bool> badLinks(const IdentifierHash& hash) const override;
78 virtual const std::map<IdentifierHash, std::pair<bool, bool>>* badLinks(const EventContext& ctx) const override;
79 virtual const std::map<IdentifierHash, std::pair<bool, bool>>* badLinks() const override;
81 virtual const std::map<Identifier, unsigned int>* badChips(const EventContext& ctx) const override;
82 virtual const std::map<Identifier, unsigned int>* badChips() const override;
84 virtual unsigned int badChips(const Identifier& moduleId, const EventContext& ctx) const override;
85 virtual unsigned int badChips(const Identifier& moduleId) const override;
87 virtual int getChip(const Identifier& stripId, const EventContext& ctx) const override;
88 virtual int getChip(const Identifier& stripId) const override;
89
90 private:
91 SG::ReadCondHandleKey<SCT_ConfigurationCondData> m_condKey{this, "CondKey", "SCT_ConfigurationCondData", "SCT DAQ configuration"};
92 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
93
94 const SCT_ID* m_pHelper{nullptr};
95 BooleanProperty m_checkStripsInsideModules{this, "checkStripsInsideModule", true, " Do we want to check if a strip is bad because it is inside a bad module"};
96
98 bool isStripInBadModule(const Identifier& stripId, const SCT_ConfigurationCondData*) const;
100 bool isWaferInBadModule(const Identifier& waferId, const EventContext& ctx) const;
101
103 bool isGoodChip(const Identifier& stripId, const EventContext& ctx) const;
104
107
108 const SCT_ConfigurationCondData* getCondData(const EventContext& ctx) const;
109 const InDetDD::SiDetectorElement* getDetectorElement(const IdentifierHash& waferHash, const EventContext& ctx) const;
110};
111
112#endif // SCT_ConfigurationConditionsTool_h
interface file for service that keeps track of configuration conditions
header file for data object for SCT_ConfigurationCondAlg and SCT_ConfigurationConditionsTool.
Header file for AthHistogramAlgorithm.
This is a "hash" representation of an Identifier.
Class to hold geometrical description of a silicon detector element.
Class for data object used in SCT_ConfigurationCondAlg and SCT_ConfigurationConditionsTool.
const SCT_ID * m_pHelper
ID helper for SCT.
const SCT_ConfigurationCondData * getCondData(const EventContext &ctx) const
bool isStripInBadModule(const Identifier &stripId, const SCT_ConfigurationCondData *) const
Is a strip within a bad module.
virtual const std::map< Identifier, unsigned int > * badChips() const override
bool isGoodChip(const Identifier &stripId, const EventContext &ctx) const
Is a chip with this Identifier good?
virtual ~SCT_ConfigurationConditionsTool()=default
SG::ReadCondHandleKey< SCT_ConfigurationCondData > m_condKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
const InDetDD::SiDetectorElement * getDetectorElement(const IdentifierHash &waferHash, const EventContext &ctx) const
virtual bool isGood(const Identifier &elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Is the detector element good?
virtual bool canReportAbout(InDetConditions::Hierarchy h) const override
Can the tool report about the given component?
virtual const std::set< Identifier > * badModules() const override
virtual const std::map< IdentifierHash, std::pair< bool, bool > > * badLinks() const override
virtual void getDetectorElementStatus(const EventContext &ctx, InDet::SiDetectorElementStatus &element_status, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const override
virtual void badStrips(std::set< Identifier > &strips, const EventContext &ctx, bool ignoreBadModules=false, bool ignoreBadChips=false) const override
List of bad strips.
SCT_ConfigurationConditionsTool(const std::string &type, const std::string &name, const IInterface *parent)
bool isWaferInBadModule(const Identifier &waferId, const EventContext &ctx) const
Is a wafer in a bad module.
virtual int getChip(const Identifier &stripId, const EventContext &ctx) const override
Get the chip number containing a particular strip.
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68