ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
LUCID
LUCID_Cnv
LUCID_RawDataByteStreamCnv
src
LUCID_DigitRawDataCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
LUCID_RawDataByteStreamCnv/LUCID_DigitRawDataCnv.h
"
6
7
#include "
StoreGate/ReadHandle.h
"
8
#include "
StoreGate/WriteHandle.h
"
9
LUCID_DigitRawDataCnv::LUCID_DigitRawDataCnv
(
const
std::string& name,
10
ISvcLocator* pSvcLocator)
11
:
AthReentrantAlgorithm
(name, pSvcLocator)
12
{
13
}
14
15
LUCID_DigitRawDataCnv::~LUCID_DigitRawDataCnv
() {}
16
17
StatusCode
18
LUCID_DigitRawDataCnv::initialize
()
19
{
20
ATH_CHECK
(
m_digitContainerKey
.initialize());
21
ATH_CHECK
(
m_lucid_RawDataContainerKey
.initialize());
22
return
StatusCode::SUCCESS;
23
}
24
25
StatusCode
26
LUCID_DigitRawDataCnv::execute
(
const
EventContext& ctx)
const
27
{
28
29
SG::ReadHandle<LUCID_DigitContainer>
digitContainer(
m_digitContainerKey
, ctx);
30
31
if
(!digitContainer.
isValid
()) {
32
ATH_MSG_WARNING
(
"BAD DATA!!! Input data does not include "
33
<<
m_digitContainerKey
);
34
return
StatusCode::SUCCESS;
35
}
36
LUCID_RodEncoder::Cache
cache{};
37
for
(
const
LUCID_Digit
* digit : *digitContainer) {
38
m_rodEncoder
.addDigit(digit,cache);
39
}
40
41
std::vector<uint32_t> data_block;
42
m_rodEncoder
.encode(data_block, cache,
msg
());
43
data_block.push_back(0);
// add status word
44
45
auto
container = std::make_unique<LUCID_RawDataContainer>();
46
container->push_back(
new
LUCID_RawData
(data_block));
47
ATH_CHECK
(
SG::makeHandle
(
m_lucid_RawDataContainerKey
, ctx)
48
.record(std::move(container)));
49
50
return
StatusCode::SUCCESS;
51
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
LUCID_DigitRawDataCnv.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
AthCommonAlgorithm< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition
AthCommonMsg.h:24
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
LUCID_DigitRawDataCnv::m_rodEncoder
LUCID_RodEncoder m_rodEncoder
Definition
LUCID_DigitRawDataCnv.h:43
LUCID_DigitRawDataCnv::~LUCID_DigitRawDataCnv
~LUCID_DigitRawDataCnv()
Definition
LUCID_DigitRawDataCnv.cxx:15
LUCID_DigitRawDataCnv::execute
StatusCode execute(const EventContext &ctx) const override
Definition
LUCID_DigitRawDataCnv.cxx:26
LUCID_DigitRawDataCnv::m_lucid_RawDataContainerKey
SG::WriteHandleKey< LUCID_RawDataContainer > m_lucid_RawDataContainerKey
Definition
LUCID_DigitRawDataCnv.h:34
LUCID_DigitRawDataCnv::m_digitContainerKey
SG::ReadHandleKey< LUCID_DigitContainer > m_digitContainerKey
Definition
LUCID_DigitRawDataCnv.h:41
LUCID_DigitRawDataCnv::LUCID_DigitRawDataCnv
LUCID_DigitRawDataCnv(const std::string &name, ISvcLocator *pSvcLocator)
Definition
LUCID_DigitRawDataCnv.cxx:9
LUCID_DigitRawDataCnv::initialize
StatusCode initialize() override
Definition
LUCID_DigitRawDataCnv.cxx:18
LUCID_Digit
Definition
LUCID_Digit.h:8
LUCID_RawData
Definition
LUCID_RawData.h:40
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition
ReadCondHandle.h:269
LUCID_RodEncoder::Cache
Definition
LUCID_RodEncoder.h:24
Generated on
for ATLAS Offline Software by
1.17.0