ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonRPC_CnvTools
src
RpcPadContByteStreamTool.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 "
RpcPadContByteStreamTool.h
"
6
7
#include <map>
8
9
#include "
AthenaKernel/getMessageSvc.h
"
10
#include "GaudiKernel/MsgStream.h"
11
#include "
MuonRDO/RpcPad.h
"
12
#include "
MuonRDO/RpcPadContainer.h
"
13
#include "
RPC_Hid2RESrcID.h
"
14
#include "
RpcROD_Encoder.h
"
15
16
static
const
InterfaceID
IID_IRpcPadContByteStreamTool
(
"Muon::RpcPadContByteStreamTool"
, 1, 0);
17
18
const
InterfaceID&
Muon::RpcPadContByteStreamTool::interfaceID
() {
return
IID_IRpcPadContByteStreamTool
; }
19
20
Muon::RpcPadContByteStreamTool::RpcPadContByteStreamTool
(
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent) :
21
AthAlgTool
(
type
, name, parent) {
22
declareInterface<IRPC_RDOtoByteStreamTool>(
this
);
23
}
24
25
StatusCode
Muon::RpcPadContByteStreamTool::initialize
() {
26
ATH_CHECK
(AlgTool::initialize());
27
ATH_CHECK
(
m_readKey
.initialize());
28
ATH_CHECK
(
m_idHelperSvc
.retrieve());
29
m_hid2re
.set(&
m_idHelperSvc
->rpcIdHelper());
30
31
ATH_CHECK
(
m_byteStreamCnvSvc
.retrieve());
32
33
return
StatusCode::SUCCESS;
34
}
35
36
StatusCode
Muon::RpcPadContByteStreamTool::convert
(
RpcPadContainer
* cont)
const
{
37
FullEventAssembler<RPC_Hid2RESrcID>
* fea =
nullptr
;
38
ATH_CHECK
(
m_byteStreamCnvSvc
->getFullEventAssembler(fea,
"RpcRdoContByteStream"
));
39
40
fea->
idMap
().set(&
m_idHelperSvc
->rpcIdHelper());
41
42
FullEventAssembler<RPC_Hid2RESrcID>::RODDATA
* theROD;
43
44
RpcPadContainer::const_iterator
it_coll = cont->
begin
();
45
RpcPadContainer::const_iterator
it_coll_end = cont->
end
();
46
47
std::map<uint32_t, RpcROD_Encoder> mapEncoder;
48
49
for
(; it_coll != it_coll_end; ++it_coll) {
50
const
RpcPad
* coll = (*it_coll);
51
52
int
sector = coll->
sector
();
53
uint32_t rodId =
m_hid2re
.getRodID(sector);
54
mapEncoder[rodId].add(coll);
55
}
56
57
std::map<uint32_t, RpcROD_Encoder>::iterator it = mapEncoder.begin();
58
std::map<uint32_t, RpcROD_Encoder>::iterator it_end = mapEncoder.end();
59
60
// RpcROD_Encoder has collected all the pads, now can fill the
61
// ROD block data.
62
for
(; it != it_end; ++it) {
63
theROD = fea->
getRodData
((*it).first);
64
((*it).second).
set
(&
m_hid2re
);
65
((*it).second).fillROD(*theROD);
66
}
67
68
return
StatusCode::SUCCESS;
69
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
RPC_Hid2RESrcID.h
IID_IRpcPadContByteStreamTool
static const InterfaceID IID_IRpcPadContByteStreamTool("Muon::RpcPadContByteStreamTool", 1, 0)
RpcPadContByteStreamTool.h
RpcPadContainer.h
RpcPad.h
RpcROD_Encoder.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
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
FullEventAssembler::idMap
IDMAP_t & idMap()
Return reference to IDMAP.
IdentifiableContainerMT::const_iterator
Definition
IdentifiableContainerMT.h:82
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition
IdentifiableContainerMT.h:248
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition
IdentifiableContainerMT.h:242
Muon::RpcPadContByteStreamTool::m_hid2re
RPC_Hid2RESrcID m_hid2re
Definition
RpcPadContByteStreamTool.h:54
Muon::RpcPadContByteStreamTool::m_readKey
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
Definition
RpcPadContByteStreamTool.h:53
Muon::RpcPadContByteStreamTool::m_byteStreamCnvSvc
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
Definition
RpcPadContByteStreamTool.h:56
Muon::RpcPadContByteStreamTool::RpcPadContByteStreamTool
RpcPadContByteStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
constructor
Definition
RpcPadContByteStreamTool.cxx:20
Muon::RpcPadContByteStreamTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition
RpcPadContByteStreamTool.h:55
Muon::RpcPadContByteStreamTool::initialize
virtual StatusCode initialize() override
Definition
RpcPadContByteStreamTool.cxx:25
Muon::RpcPadContByteStreamTool::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition
RpcPadContByteStreamTool.cxx:18
Muon::RpcPadContByteStreamTool::convert
virtual StatusCode convert(RpcPadContainer *cont) const override
Conversion method, which takes the RDO container and converts it into raw data, filled into RawEventW...
Definition
RpcPadContByteStreamTool.cxx:36
RpcPadContainer
Use IdentifiableContainer with RpcPad.
Definition
RpcPadContainer.h:23
RpcPad
Definition
RpcPad.h:21
RpcPad::sector
int sector() const
Definition
RpcPad.h:112
set
STL class.
getMessageSvc.h
singleton-like access to IMessageSvc via open function and helper
type
Generated on
for ATLAS Offline Software by
1.17.0