ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonTGC_CnvTools
src
TgcRdoContByteStreamTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TgcRdoContByteStreamTool.h
"
6
7
#include <map>
8
9
#include "GaudiKernel/MsgStream.h"
10
#include "
MuonRDO/TgcRdoContainer.h
"
11
#include "
TgcROD_Encoder.h
"
12
13
// contructor
14
Muon::TgcRdoContByteStreamTool::TgcRdoContByteStreamTool
(
15
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent)
16
: base_class(
type
, name, parent) {
17
declareInterface<Muon::ITGC_RDOtoByteStreamTool>(
this
);
18
}
19
20
// destructor
21
Muon::TgcRdoContByteStreamTool::~TgcRdoContByteStreamTool
() =
default
;
22
23
// initialize
24
StatusCode
Muon::TgcRdoContByteStreamTool::initialize
() {
25
// create TGC RDO ID to source ID mapper
26
m_hid2re
= std::make_unique<TGC_Hid2RESrcID>();
27
28
ATH_CHECK
(
m_byteStreamCnvSvc
.retrieve());
29
30
return
StatusCode::SUCCESS;
31
}
32
33
// finalize
34
StatusCode
Muon::TgcRdoContByteStreamTool::finalize
() {
35
return
AthAlgTool::finalize();
36
}
37
38
// convert TGC RDO to ByteStream
39
StatusCode
Muon::TgcRdoContByteStreamTool::convert
(
40
const
TgcRdoContainer
* cont)
const
{
41
// Get the event assembler
42
FullEventAssembler<TGC_Hid2RESrcID>
* fea =
nullptr
;
43
ATH_CHECK
(
44
m_byteStreamCnvSvc
->getFullEventAssembler(fea,
"TgcRdoContByteStream"
));
45
46
// event assembler
47
FullEventAssembler<TGC_Hid2RESrcID>::RODDATA
* theROD;
48
49
// a map for ROD ID onto Encoder
50
std::map<uint32_t, TgcROD_Encoder> mapEncoder;
51
52
// loop over RDO
53
TgcRdoContainer::const_iterator
it_col = cont->
begin
();
54
TgcRdoContainer::const_iterator
it_col_end = cont->
end
();
55
for
(; it_col != it_col_end; ++it_col) {
56
// get ROD ID
57
const
uint32_t rodId =
m_hid2re
->getRodID(*it_col);
58
59
// map the RDO onto Encoder
60
mapEncoder[rodId].setRdo(*it_col);
61
}
62
63
// loop over map and fill all ROD Data Blocks
64
std::map<uint32_t, TgcROD_Encoder>::iterator it_map = mapEncoder.begin();
65
std::map<uint32_t, TgcROD_Encoder>::iterator it_map_end = mapEncoder.end();
66
for
(; it_map != it_map_end; ++it_map) {
67
// get ROD data address
68
theROD = fea->
getRodData
((*it_map).first);
69
70
// fill ROD data
71
((*it_map).second).fillROD(*theROD);
72
}
73
74
return
StatusCode::SUCCESS;
75
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
TgcROD_Encoder.h
TgcRdoContByteStreamTool.h
TgcRdoContainer.h
FullEventAssembler
Template class for assembling a full atlas raw event from subfragments.
Definition
FullEventAssembler.h:38
FullEventAssembler::RODDATA
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
Definition
FullEventAssembler.h:52
FullEventAssembler::getRodData
RODDATA * getRodData(uint32_t id)
get a block of ROD data
IdentifiableContainerMT::const_iterator
Definition
IdentifiableContainerMT.h:81
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition
IdentifiableContainerMT.h:247
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition
IdentifiableContainerMT.h:241
Muon::TgcRdoContByteStreamTool::finalize
virtual StatusCode finalize() override
Finalizer.
Definition
TgcRdoContByteStreamTool.cxx:34
Muon::TgcRdoContByteStreamTool::initialize
virtual StatusCode initialize() override
Initializer.
Definition
TgcRdoContByteStreamTool.cxx:24
Muon::TgcRdoContByteStreamTool::TgcRdoContByteStreamTool
TgcRdoContByteStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition
TgcRdoContByteStreamTool.cxx:14
Muon::TgcRdoContByteStreamTool::m_hid2re
std::unique_ptr< TGC_Hid2RESrcID > m_hid2re
Definition
TgcRdoContByteStreamTool.h:53
Muon::TgcRdoContByteStreamTool::m_byteStreamCnvSvc
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
Definition
TgcRdoContByteStreamTool.h:50
Muon::TgcRdoContByteStreamTool::~TgcRdoContByteStreamTool
virtual ~TgcRdoContByteStreamTool()
Destructor.
Muon::TgcRdoContByteStreamTool::convert
virtual StatusCode convert(const TgcRdoContainer *cont) const override
Convert RDO container to Byte Stream.
Definition
TgcRdoContByteStreamTool.cxx:39
TgcRdoContainer
Definition
TgcRdoContainer.h:25
type
Generated on
for ATLAS Offline Software by
1.17.0