ATLAS Offline Software
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
8 TgcDigtThresholdTestAlg::TgcDigtThresholdTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) {}
9 
10 // Destructor
12 
13 // Initialize
15  ATH_MSG_INFO("Calling 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 }
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TgcIdHelper
Definition: TgcIdHelper.h:50
TgcDigtThresholdTestAlg::initialize
virtual StatusCode initialize() override
Definition: TgcDigtThresholdTestAlg.cxx:14
TgcDigtThresholdTestAlg::execute
virtual StatusCode execute() override
Definition: TgcDigtThresholdTestAlg.cxx:22
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ATH_MSG_ALWAYS
#define ATH_MSG_ALWAYS(x)
Definition: AthMsgStreamMacros.h:35
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TgcDigtThresholdTestAlg::~TgcDigtThresholdTestAlg
virtual ~TgcDigtThresholdTestAlg()
AthAlgorithm
Definition: AthAlgorithm.h:47
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
threshold
Definition: chainparser.cxx:74
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
TgcDigtThresholdTestAlg::m_readKey
SG::ReadCondHandleKey< TgcDigitThresholdData > m_readKey
Definition: TgcDigtThresholdTestAlg.h:30
TgcDigtThresholdTestAlg::TgcDigtThresholdTestAlg
TgcDigtThresholdTestAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TgcDigtThresholdTestAlg.cxx:8
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TgcDigtThresholdTestAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: TgcDigtThresholdTestAlg.h:32
MuonIdHelper::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: MuonIdHelper.h:143
TgcDigtThresholdTestAlg.h