ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCablings
MuonTGC_Cabling
src
TgcCablingCondAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TgcCablingCondAlg.h
"
6
7
#include "
AthenaKernel/IOVInfiniteRange.h
"
8
#include "
PathResolver/PathResolver.h
"
9
#include "
StoreGate/WriteCondHandle.h
"
10
11
namespace
Muon
{
12
StatusCode
TgcCablingCondAlg::initialize
() {
13
ATH_CHECK
(
m_writeKey
.initialize());
14
ATH_CHECK
(
m_idHelperSvc
.retrieve());
15
return
StatusCode::SUCCESS;
16
}
17
StatusCode
TgcCablingCondAlg::execute
(
const
EventContext& ctx)
const
{
18
SG::WriteCondHandle
writeHandle{
m_writeKey
, ctx};
19
if
(writeHandle.
isValid
()) {
20
ATH_MSG_DEBUG
(
"CondHandle "
21
<< writeHandle.
fullKey
() <<
" is already valid."
22
<<
". In theory this should not be called, but may happen"
23
<<
" if multiple concurrent events are being processed "
24
"out of order."
);
25
return
StatusCode::SUCCESS;
26
}
27
writeHandle.
addDependency
(EventIDRange(
IOVInfiniteRange::infiniteRunLB
()));
28
29
ATH_CHECK
(
m_idHelperSvc
.retrieve());
30
31
auto
findCalibFile = [
this
](
const
std::string& db,
32
std::string& fileName) -> StatusCode {
33
fileName =
PathResolver::find_file
(db,
"DATAPATH"
);
34
if
(fileName.empty() || !std::filesystem::exists(fileName)) {
35
ATH_MSG_ERROR
(
"Cannot resolve database '"
<< db <<
"'"
);
36
return
StatusCode::FAILURE;
37
}
38
return
StatusCode::SUCCESS;
39
};
40
41
Muon::TgcCablingMap::Config
cfg{};
42
cfg.idHelperSvc =
m_idHelperSvc
.get();
43
cfg.AsideId =
m_AsideId
;
44
cfg.CsideId =
m_CsideId
;
45
46
if
(
m_isRun4
) {
47
ATH_MSG_DEBUG
(
"TGC Cabling map is being prepared for Run 4+"
);
48
ATH_CHECK
(findCalibFile(std::string(
"R4_"
) + std::string(
m_databaseASDToPP
), cfg.fileNameASDtoPP));
49
ATH_CHECK
(findCalibFile(std::string(
"R4_"
) + std::string(
m_databaseInPP
), cfg.fileNameInPP));
50
ATH_CHECK
(findCalibFile(std::string(
"R4_"
) + std::string(
m_databasePPToSL
), cfg.fileNamePPtoSL));
51
ATH_CHECK
(findCalibFile(std::string(
"R4_"
) + std::string(
m_databaseSLBToROD
), cfg.fileNameSLBtoROD));
52
}
else
{
53
ATH_MSG_DEBUG
(
"TGC Cabling map is being prepared for Run 1-3"
);
54
ATH_CHECK
(findCalibFile(
m_databaseASDToPP
, cfg.fileNameASDtoPP));
55
ATH_CHECK
(findCalibFile(
m_databaseInPP
, cfg.fileNameInPP));
56
ATH_CHECK
(findCalibFile(
m_databasePPToSL
, cfg.fileNamePPtoSL));
57
ATH_CHECK
(findCalibFile(
m_databaseSLBToROD
, cfg.fileNameSLBtoROD));
58
}
59
ATH_CHECK
(findCalibFile(
m_databaseASDToPP
, cfg.fileNameASDtoPPdiff));
60
61
// instantiate TGC cabling manager
62
auto
cabling = std::make_unique<Muon::TgcCablingMap>(cfg);
63
ATH_CHECK
(writeHandle.
record
(std::move(cabling)));
64
return
StatusCode::SUCCESS;
65
}
66
67
}
// namespace Muon
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
IOVInfiniteRange.h
PathResolver.h
TgcCablingCondAlg.h
WriteCondHandle.h
IOVInfiniteRange::infiniteRunLB
static EventIDRange infiniteRunLB()
Produces an EventIDRange that is infinite in RunLumi and invalid in Time.
Definition
IOVInfiniteRange.h:39
Muon::TgcCablingCondAlg::m_databaseSLBToROD
StringProperty m_databaseSLBToROD
Definition
TgcCablingCondAlg.h:36
Muon::TgcCablingCondAlg::m_AsideId
IntegerProperty m_AsideId
Definition
TgcCablingCondAlg.h:25
Muon::TgcCablingCondAlg::m_databaseASDToPP
StringProperty m_databaseASDToPP
Definition
TgcCablingCondAlg.h:30
Muon::TgcCablingCondAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition
TgcCablingCondAlg.cxx:17
Muon::TgcCablingCondAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition
TgcCablingCondAlg.h:22
Muon::TgcCablingCondAlg::m_writeKey
SG::WriteCondHandleKey< TgcCablingMap > m_writeKey
Definition
TgcCablingCondAlg.h:20
Muon::TgcCablingCondAlg::m_databaseInPP
StringProperty m_databaseInPP
Definition
TgcCablingCondAlg.h:32
Muon::TgcCablingCondAlg::initialize
virtual StatusCode initialize() override final
Definition
TgcCablingCondAlg.cxx:12
Muon::TgcCablingCondAlg::m_isRun4
BooleanProperty m_isRun4
Definition
TgcCablingCondAlg.h:28
Muon::TgcCablingCondAlg::m_CsideId
IntegerProperty m_CsideId
Definition
TgcCablingCondAlg.h:26
Muon::TgcCablingCondAlg::m_databasePPToSL
StringProperty m_databasePPToSL
Definition
TgcCablingCondAlg.h:34
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path)
Definition
PathResolver.cxx:220
SG::WriteCondHandle
Definition
WriteCondHandle.h:26
SG::WriteCondHandle::addDependency
void addDependency(const EventIDRange &range)
Definition
WriteCondHandle.h:279
SG::WriteCondHandle::record
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
Definition
WriteCondHandle.h:161
SG::WriteCondHandle::isValid
bool isValid() const
Definition
WriteCondHandle.h:252
SG::WriteCondHandle::fullKey
const DataObjID & fullKey() const
Definition
WriteCondHandle.h:45
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::TgcCablingMap::Config
Definition
TgcCablingMap.h:23
Generated on
for ATLAS Offline Software by
1.17.0