ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDetDescr
ITkStripCabling
src
ITkStripCablingTool.cxx
Go to the documentation of this file.
1
/*
2
/ Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
13
14
//this package
15
#include "
ITkStripCablingTool.h
"
16
17
//Athena
18
#include "
InDetIdentifier/SCT_ID.h
"
19
#include "Identifier/Identifier.h"
20
#include "
StoreGate/ReadCondHandle.h
"
21
22
//Gaudi includes
23
#include "GaudiKernel/StatusCode.h"
24
25
//constants in file scope
26
static
const
std::string
coracool
(
"CORACOOL"
);
27
static
const
std::string
coolVectorPayload
(
"COOLVECTOR"
);
28
static
const
std::string
defaultSource
(
coracool
);
29
static
const
std::string
file
(
"ITkStrip_Sept08Cabling_svc.dat"
);
30
//invalid identifiers to return in case of error
31
static
const
ITkStripOnlineId
invalidId
;
32
33
34
StatusCode
35
ITkStripCablingTool::initialize
() {
36
ATH_MSG_DEBUG
(
"Initialize ITkStrip cabling"
);
37
const
std::string cablingDataSource =
m_cablingDataSource
.value();
38
m_usingDatabase
=(cablingDataSource ==
coracool
) or (cablingDataSource ==
coolVectorPayload
) or (cablingDataSource ==
file
);
39
ATH_CHECK
(detStore()->retrieve(
m_idHelper
,
"SCT_ID"
));
40
ATH_CHECK
(
m_data
.initialize());
41
return
StatusCode::SUCCESS;
42
}
43
44
//
45
IdentifierHash
46
ITkStripCablingTool::getHashFromOnlineId
(
const
ITkStripOnlineId
&
/*onlineId*/
,
const
EventContext&
/*ctx*/
,
const
bool
/*withWarnings*/
)
const
{
47
return
0;
48
}
49
50
ITkStripOnlineId
51
ITkStripCablingTool::getOnlineIdFromHash
(
const
IdentifierHash
& hash,
const
EventContext& ctx)
const
{
52
const
ITkStripCablingData
* data{
getData
(ctx)};
53
if
(data==
nullptr
) {
54
ATH_MSG_ERROR
(
"Filling the cabling FAILED"
);
55
return
invalidId
;
56
}
57
58
return
data->getOnlineIdFromHash(hash);
59
}
60
61
std::uint32_t
62
ITkStripCablingTool::getRobIdFromHash
(
const
IdentifierHash
& hash,
const
EventContext& ctx)
const
{
63
return
getOnlineIdFromHash
(hash, ctx).
rod
();
64
}
65
66
void
67
ITkStripCablingTool::getAllRods
(std::vector<std::uint32_t>& usersVector,
const
EventContext& ctx)
const
{
68
const
ITkStripCablingData
* data{
getData
(ctx)};
69
if
(data==
nullptr
) {
70
ATH_MSG_ERROR
(
"Filling the cabling FAILED"
);
71
return
;
72
}
73
74
data->getRods(usersVector);
75
if
(msgLvl(MSG::DEBUG)){
76
ATH_MSG_DEBUG
(
"RODs found: "
<< usersVector.size());
77
for
(
const
auto
& rodId : usersVector) {
78
ATH_MSG_DEBUG
(
"ROD ID: 0x"
<< std::hex << rodId << std::dec);
79
}
80
}
81
}
82
83
const
ITkStripCablingData
*
84
ITkStripCablingTool::getData
(
const
EventContext& ctx)
const
{
85
SG::ReadCondHandle<ITkStripCablingData>
condData{
m_data
, ctx};
86
ATH_MSG_DEBUG
(
"After getting ITkStripCablindData"
);
87
return
condData.
retrieve
();
88
}
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
invalidId
static const ITkStripOnlineId invalidId
Definition
ITkStripCablingTool.cxx:31
coolVectorPayload
static const std::string coolVectorPayload("COOLVECTOR")
coracool
static const std::string coracool("CORACOOL")
defaultSource
static const std::string defaultSource(coracool)
ITkStripCablingTool.h
Header file for ITkStrip cabling service Based on code by Susumu Oda.
ReadCondHandle.h
SCT_ID.h
This is an Identifier helper class for the SCT subdetector.
ITkStripCablingData
Definition
ITkStripCablingData.h:24
ITkStripCablingTool::m_idHelper
const SCT_ID * m_idHelper
helper for offlineId/hash conversions
Definition
ITkStripCablingTool.h:69
ITkStripCablingTool::getAllRods
virtual void getAllRods(std::vector< std::uint32_t > &usersVector, const EventContext &ctx) const override
fill a users vector with all the RodIds
Definition
ITkStripCablingTool.cxx:67
ITkStripCablingTool::m_cablingDataSource
StringProperty m_cablingDataSource
Definition
ITkStripCablingTool.h:66
ITkStripCablingTool::getOnlineIdFromHash
virtual ITkStripOnlineId getOnlineIdFromHash(const IdentifierHash &hash, const EventContext &ctx) const override
return the online Id, given a hash (used by simulation encoders)
Definition
ITkStripCablingTool.cxx:51
ITkStripCablingTool::getHashFromOnlineId
virtual IdentifierHash getHashFromOnlineId(const ITkStripOnlineId &onlineId, const EventContext &ctx, const bool withWarnings=true) const override
Definition
ITkStripCablingTool.cxx:46
ITkStripCablingTool::m_usingDatabase
bool m_usingDatabase
Definition
ITkStripCablingTool.h:67
ITkStripCablingTool::m_data
SG::ReadCondHandleKey< ITkStripCablingData > m_data
Definition
ITkStripCablingTool.h:65
ITkStripCablingTool::initialize
virtual StatusCode initialize() override
Definition
ITkStripCablingTool.cxx:35
ITkStripCablingTool::getRobIdFromHash
virtual std::uint32_t getRobIdFromHash(const IdentifierHash &hash, const EventContext &ctx) const override
return the rob/rod Id, given a hash (used by simulation encoders)
Definition
ITkStripCablingTool.cxx:62
ITkStripCablingTool::getData
const ITkStripCablingData * getData(const EventContext &ctx) const
Definition
ITkStripCablingTool.cxx:84
ITkStripOnlineId
Definition
ITkStripOnlineId.h:16
ITkStripOnlineId::rod
std::uint32_t rod() const
Return the rod/rob Id.
Definition
ITkStripOnlineId.cxx:19
IdentifierHash
This is a "hash" representation of an Identifier.
Definition
IdentifierHash.h:25
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
SG::ReadCondHandle::retrieve
const_pointer_type retrieve()
Definition
ReadCondHandle.h:161
file
TFile * file
Definition
tile_monitor.h:29
Generated on
for ATLAS Offline Software by
1.17.0