ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileSvc
TileByteStream
src
TileLaserObjByteStreamCnv.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
//author Renato Febbraro
6
//renato.febbraro@cern.ch
7
//date February 2008
8
9
// Gaudi includes
10
#include "GaudiKernel/StatusCode.h"
11
#include "GaudiKernel/DataObject.h"
12
#include "GaudiKernel/IRegistry.h"
13
#include "GaudiKernel/IToolSvc.h"
14
15
// Athena includes
16
#include "
AthenaKernel/StorableConversions.h
"
17
#include "
AthenaKernel/errorcheck.h
"
18
19
#include "
ByteStreamCnvSvcBase/IByteStreamCnvSvc.h
"
20
#include "
ByteStreamCnvSvcBase/ByteStreamCnvSvcBase.h
"
21
#include "
ByteStreamCnvSvcBase/ByteStreamAddress.h
"
22
#include "
ByteStreamCnvSvcBase/ROBDataProviderSvc.h
"
23
#include "
ByteStreamData/RawEvent.h
"
24
25
#include "
AthenaKernel/CLASS_DEF.h
"
26
27
// Tile includes
28
#include "
TileByteStream/TileLaserObjByteStreamCnv.h
"
29
#include "
TileByteStream/TileLaserObjByteStreamTool.h
"
30
#include "
TileByteStream/TileROD_Decoder.h
"
31
#include "
TileByteStream/TileHid2RESrcID.h
"
32
#include "
TileIdentifier/TileTBFrag.h
"
33
#include "
TileEvent/TileLaserObject.h
"
34
35
36
37
TileLaserObjByteStreamCnv::TileLaserObjByteStreamCnv
(ISvcLocator* svcloc)
38
:
AthConstConverter
(
storageType
(),
classID
(), svcloc,
"TileLaserObjByteStreamCnv"
)
39
,
m_robSvc
(
"ROBDataProviderSvc"
,
name
())
40
,
m_decoder
(
"TileROD_Decoder"
)
41
,
m_ROBID
()
42
,
m_hid2re
(0)
43
{
44
}
45
46
CLID
TileLaserObjByteStreamCnv::classID
(){
return
ClassID_traits<TileLaserObject>::ID
();}
47
48
long
TileLaserObjByteStreamCnv::storageType
() {
return
ByteStreamAddress::storageType
(); }
49
50
StatusCode
TileLaserObjByteStreamCnv::initialize
() {
51
52
ATH_CHECK
(Converter::initialize());
53
54
ATH_MSG_DEBUG
(
" initialize "
);
55
56
ATH_CHECK
(
m_robSvc
.retrieve() );
57
58
// retrieve Tool
59
ATH_CHECK
(
m_decoder
.retrieve() );
60
61
m_hid2re
=
m_decoder
->getHid2re();
62
63
m_ROBID
.clear();
64
// m_ROBID.push_back( 0x500000 );
65
// m_ROBID.push_back( 0x520010 );
66
m_ROBID
.push_back(
m_hid2re
->getRobFromFragID(
LASER_OBJ_FRAG
) );
67
68
return
StatusCode::SUCCESS ;
69
}
70
71
72
StatusCode
TileLaserObjByteStreamCnv::createObjConst
(IOpaqueAddress* pAddr, DataObject*& pObj)
const
73
{
74
ATH_MSG_DEBUG
(
" Executing createObj method"
);
75
76
ByteStreamAddress
* pRE_Addr{};
77
ATH_CHECK
( (pRE_Addr =
dynamic_cast<
ByteStreamAddress
*
>
(pAddr)) !=
nullptr
);
78
79
const
EventContext& ctx = pRE_Addr->
getEventContext
();
80
81
/*FIND ROB*/
82
std::vector<const ROBDataProviderSvc::ROBF*> robf;
83
m_robSvc
->getROBData(ctx,
m_ROBID
, robf);
84
85
// create TileLaserObject
86
auto
cont = std::make_unique<TileLaserObject>() ;
87
m_decoder
->setLaserVersion(*cont);
88
89
if
(robf.size() > 0 ) {
90
m_decoder
->fillTileLaserObj(robf[0], *cont);
91
}
else
{
92
ATH_MSG_DEBUG
(
" No LASTROD fragment in BS, TileLaserObject will be empty."
);
93
}
94
95
pObj =
SG::asStorable
( std::move(cont) ) ;
96
97
return
StatusCode::SUCCESS;
98
}
99
100
StatusCode
TileLaserObjByteStreamCnv::createRepConst
(DataObject*
/* pObj */
, IOpaqueAddress*&
/* pAddr */
)
const
101
{
102
// No conversion from TileLaserObj to BS
103
104
ATH_MSG_ERROR
(
" Can not create BS from TileLaserObject "
);
105
106
return
StatusCode::FAILURE ;
107
}
108
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
ByteStreamAddress.h
ByteStreamCnvSvcBase.h
CLASS_DEF.h
macros to associate a CLID to a type
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
IByteStreamCnvSvc.h
ROBDataProviderSvc.h
RawEvent.h
StorableConversions.h
convert to and from a SG storable
TileHid2RESrcID.h
TileLaserObjByteStreamCnv.h
TileLaserObjByteStreamTool.h
TileLaserObject.h
TileROD_Decoder.h
TileTBFrag.h
LASER_OBJ_FRAG
#define LASER_OBJ_FRAG
Definition
TileTBFrag.h:49
AthConstConverter::AthConstConverter
AthConstConverter(long storage_type, const CLID &class_type, ISvcLocator *svc, const std::string &name)
Definition
AthConstConverter.h:35
AthConstConverter::name
const std::string & name() const
Definition
AthConstConverter.h:67
ByteStreamAddress
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Definition
ByteStreamAddress.h:28
ByteStreamAddress::getEventContext
const EventContext & getEventContext() const
Definition
ByteStreamAddress.h:62
ByteStreamAddress::storageType
static constexpr long storageType()
Definition
ByteStreamAddress.h:51
TileLaserObjByteStreamCnv::createRepConst
virtual StatusCode createRepConst(DataObject *pObj, IOpaqueAddress *&pAddr) const override
Convert the transient object to the requested representation.
Definition
TileLaserObjByteStreamCnv.cxx:100
TileLaserObjByteStreamCnv::m_hid2re
const TileHid2RESrcID * m_hid2re
Pointer to TileHid2RESrcID.
Definition
TileLaserObjByteStreamCnv.h:65
TileLaserObjByteStreamCnv::m_robSvc
ServiceHandle< IROBDataProviderSvc > m_robSvc
Pointer to IROBDataProviderSvc.
Definition
TileLaserObjByteStreamCnv.h:57
TileLaserObjByteStreamCnv::TileLaserObjByteStreamCnv
TileLaserObjByteStreamCnv(ISvcLocator *svcloc)
Definition
TileLaserObjByteStreamCnv.cxx:37
TileLaserObjByteStreamCnv::createObjConst
virtual StatusCode createObjConst(IOpaqueAddress *pAddr, DataObject *&pObj) const override
Create the transient representation of an object.
Definition
TileLaserObjByteStreamCnv.cxx:72
TileLaserObjByteStreamCnv::initialize
virtual StatusCode initialize() override
Definition
TileLaserObjByteStreamCnv.cxx:50
TileLaserObjByteStreamCnv::storageType
static long storageType()
Definition
TileLaserObjByteStreamCnv.cxx:48
TileLaserObjByteStreamCnv::classID
static CLID classID()
Definition
TileLaserObjByteStreamCnv.cxx:46
TileLaserObjByteStreamCnv::m_ROBID
std::vector< uint32_t > m_ROBID
Definition
TileLaserObjByteStreamCnv.h:62
TileLaserObjByteStreamCnv::m_decoder
ToolHandle< TileROD_Decoder > m_decoder
Pointer to TileROD_Decoder.
Definition
TileLaserObjByteStreamCnv.h:60
SG::asStorable
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
Definition
DataObjectSharedPtr.h:31
ClassID_traits::ID
static constexpr CLID ID()
Definition
Control/AthenaKernel/AthenaKernel/ClassID_traits.h:44
Generated on
for ATLAS Offline Software by
1.17.0