ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonByteStream
src
MuonRawDataProvider.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 "
MuonByteStream/MuonRawDataProvider.h
"
6
#include "
TrigSteeringEvent/TrigRoiDescriptor.h
"
7
8
#include <vector>
9
10
#include "
StoreGate/ReadHandle.h
"
11
12
StatusCode
Muon::MuonRawDataProvider::initialize
() {
13
ATH_MSG_DEBUG
(
"MuonRawDataProvider::initialize"
);
14
ATH_MSG_DEBUG
(
m_seededDecoding
);
15
16
ATH_CHECK
(
m_rawDataTool
.retrieve());
17
ATH_CHECK
(
m_roiCollectionKey
.initialize(
m_seededDecoding
));
18
19
ATH_CHECK
(
m_regselTool
.retrieve(EnableTool{m_seededDecoding}));
20
21
return
StatusCode::SUCCESS;
22
}
23
24
StatusCode
Muon::MuonRawDataProvider::execute
(
const
EventContext& ctx)
const
{
25
ATH_MSG_VERBOSE
(
"MuonRawDataProvider::execute"
);
26
27
if
(!
m_seededDecoding
) {
28
const
StatusCode
sc
=
m_rawDataTool
->convert(ctx);
29
if
(
sc
.isFailure()) {
30
ATH_MSG_ERROR
(
"BS conversion into RDOs failed"
);
31
return
m_failOnConvertError
? StatusCode::FAILURE : StatusCode::SUCCESS;
32
}
33
return
StatusCode::SUCCESS;
34
}
35
36
SG::ReadHandle<TrigRoiDescriptorCollection>
muonRoI(
m_roiCollectionKey
, ctx);
37
if
(!muonRoI.
isValid
()) {
38
ATH_MSG_WARNING
(
"Cannot retrieve muonRoI "
<<
m_roiCollectionKey
.key());
39
return
m_ignoreMissingRoIs
? StatusCode::SUCCESS : StatusCode::FAILURE;
40
}
41
42
if
(
m_useHashIds
) {
43
std::vector<IdentifierHash> hashIds;
44
// Collect hash IDs from all RoIs first, then call convert once
45
for
(
const
TrigRoiDescriptor
* roi : *muonRoI) {
46
ATH_MSG_DEBUG
(
"Get Hash IDs for RoI "
<< *roi);
47
m_regselTool
->lookup(ctx)->HashIDList(*roi, hashIds);
48
}
49
const
StatusCode
sc
=
m_rawDataTool
->convert(hashIds, ctx);
50
if
(
sc
.isFailure()) {
51
ATH_MSG_ERROR
(
"RoI seeded BS conversion into RDOs failed"
);
52
return
m_failOnConvertError
? StatusCode::FAILURE : StatusCode::SUCCESS;
53
}
54
return
StatusCode::SUCCESS;
55
}
56
57
std::vector<uint32_t> robs;
58
// Collect ROBs from all RoIs first, then call convert once
59
for
(
const
TrigRoiDescriptor
* roi : *muonRoI) {
60
ATH_MSG_DEBUG
(
"Get ROBs for RoI "
<< *roi);
61
m_regselTool
->lookup(ctx)->ROBIDList(*roi, robs);
62
}
63
const
StatusCode
sc
=
m_rawDataTool
->convert(robs, ctx);
64
if
(
sc
.isFailure()) {
65
ATH_MSG_ERROR
(
"RoI seeded BS conversion into RDOs failed"
);
66
return
m_failOnConvertError
? StatusCode::FAILURE : StatusCode::SUCCESS;
67
}
68
69
return
StatusCode::SUCCESS;
70
}
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_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
MuonRawDataProvider.h
ReadHandle.h
Handle class for reading from StoreGate.
TrigRoiDescriptor.h
Muon::MuonRawDataProvider::m_roiCollectionKey
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Definition
MuonRawDataProvider.h:33
Muon::MuonRawDataProvider::m_useHashIds
Gaudi::Property< bool > m_useHashIds
Definition
MuonRawDataProvider.h:28
Muon::MuonRawDataProvider::m_ignoreMissingRoIs
Gaudi::Property< bool > m_ignoreMissingRoIs
Definition
MuonRawDataProvider.h:31
Muon::MuonRawDataProvider::execute
StatusCode execute(const EventContext &ctx) const override
Definition
MuonRawDataProvider.cxx:24
Muon::MuonRawDataProvider::initialize
StatusCode initialize() override
Definition
MuonRawDataProvider.cxx:12
Muon::MuonRawDataProvider::m_seededDecoding
Gaudi::Property< bool > m_seededDecoding
Definition
MuonRawDataProvider.h:27
Muon::MuonRawDataProvider::m_failOnConvertError
Gaudi::Property< bool > m_failOnConvertError
Definition
MuonRawDataProvider.h:30
Muon::MuonRawDataProvider::m_rawDataTool
ToolHandle< Muon::IMuonRawDataProviderTool > m_rawDataTool
Definition
MuonRawDataProvider.h:24
Muon::MuonRawDataProvider::m_regselTool
ToolHandle< IRegSelTool > m_regselTool
Definition
MuonRawDataProvider.h:25
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
Definition
TrigRoiDescriptor.h:48
Generated on
for ATLAS Offline Software by
1.17.0