ATLAS Offline Software
Loading...
Searching...
No Matches
TgcDigtThresholdTestAlg.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7// Constructor
8TgcDigtThresholdTestAlg::TgcDigtThresholdTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) {}
9
10// Destructor
12
13// Initialize
15 ATH_MSG_INFO("Calling initialize");
16 ATH_CHECK(m_readKey.initialize());
17 ATH_CHECK(m_idHelperSvc.retrieve());
18 return StatusCode::SUCCESS;
19}
20
21// Execute
23
24 ATH_MSG_INFO("Calling execute");
26 if (!readHandle.isValid()) {
27 ATH_MSG_ERROR("Null pointer to the read conditions object");
28 return StatusCode::FAILURE;
29 }
30
31 ATH_MSG_INFO("Loaded successfully the dead channel data");
32 const TgcIdHelper& idHelper{m_idHelperSvc->tgcIdHelper()};
33 std::unordered_set<Identifier> uniqueThreshData{};
34 for (MuonIdHelper::const_id_iterator ch_itr = idHelper.module_begin();
35 ch_itr !=idHelper.module_end(); ++ch_itr) {
36 const Identifier& chambId{*ch_itr};
37 ATH_MSG_DEBUG("Test dead gas gaps in chamber "<<m_idHelperSvc->toString(chambId));
38 for (int gasGap = idHelper.gasGapMin(chambId); gasGap <= idHelper.gasGapMax(chambId); ++gasGap) {
39 for (bool isStrip : {false, true}) {
40 const Identifier gasGapId = idHelper.channelID(chambId, gasGap, isStrip, 1);
41 const double threshold = readHandle->getThreshold(gasGapId);
42 if (threshold < 0) {
43 ATH_MSG_WARNING("No energy threshold given for "<<m_idHelperSvc->toString(gasGapId));
44 }
45 if (!uniqueThreshData.insert(idHelper.channelID(idHelper.stationName(chambId),
46 std::abs(idHelper.stationEta(chambId)),
47 1, gasGap, isStrip,1)).second) continue;
48 ATH_MSG_ALWAYS("Chamber "<<m_idHelperSvc->toString(gasGapId)<<" has an energy thresold of "<<threshold);
49 }
50 }
51 }
52 return StatusCode::SUCCESS;
53}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_ALWAYS(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::vector< Identifier >::const_iterator const_id_iterator
int stationEta(const Identifier &id) const
const_id_iterator module_end() const
const_id_iterator module_begin() const
Iterators over full set of ids.
int stationName(const Identifier &id) const
SG::ReadCondHandleKey< TgcDigitThresholdData > m_readKey
TgcDigtThresholdTestAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual ~TgcDigtThresholdTestAlg()
virtual StatusCode execute() override
virtual StatusCode initialize() override
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
static int gasGapMax(bool triplet)
static int gasGapMin()
Identifier channelID(int stationName, int stationEta, int stationPhi, int gasGap, int isStrip, int channel) const