ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArByteStream
src
LArAccumulatedCalibDigitContByteStreamCnv.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 "
LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h
"
6
#include "
LArByteStream/LArRawDataContByteStreamTool.h
"
7
8
#include "
CaloIdentifier/CaloGain.h
"
9
10
#include "
ByteStreamCnvSvcBase/IByteStreamCnvSvc.h
"
11
#include "
ByteStreamCnvSvcBase/ByteStreamCnvSvcBase.h
"
12
#include "
ByteStreamCnvSvcBase/ByteStreamAddress.h
"
13
#include "
ByteStreamCnvSvcBase/IROBDataProviderSvc.h
"
14
#include "
ByteStreamData/RawEvent.h
"
15
16
#include "GaudiKernel/MsgStream.h"
17
#include "GaudiKernel/StatusCode.h"
18
#include "GaudiKernel/DataObject.h"
19
#include "GaudiKernel/IRegistry.h"
20
21
#include "
LArRawEvent/LArAccumulatedCalibDigitContainer.h
"
22
#include "
LArRecConditions/LArCalibLineMapping.h
"
23
24
#include "
StoreGate/StoreGateSvc.h
"
25
#include "
StoreGate/ReadCondHandle.h
"
26
#include "
AthenaKernel/CLASS_DEF.h
"
27
28
// Tool
29
#include "GaudiKernel/IToolSvc.h"
30
31
//STL-Stuff
32
#include <map>
33
#include <iostream>
34
35
36
LArAccumulatedCalibDigitContByteStreamCnv::LArAccumulatedCalibDigitContByteStreamCnv
(ISvcLocator* svcloc) :
37
AthConstConverter
(
storageType
(),
classID
(),svcloc,
"LArAccumulatedCalibDigitContByteStreamCnv"
),
38
m_tool
(
"LArRawDataContByteStreamTool"
),
39
m_rdpSvc
(
"ROBDataProviderSvc"
,
name
()),
40
m_calibLineMappingKey
(
"LArCalibLineMap"
)
41
{}
42
43
CLID
LArAccumulatedCalibDigitContByteStreamCnv::classID
(){
44
return
ClassID_traits<LArAccumulatedCalibDigitContainer>::ID
() ;
45
}
46
47
LArAccumulatedCalibDigitContByteStreamCnv::~LArAccumulatedCalibDigitContByteStreamCnv
() {
48
}
49
50
51
StatusCode
52
LArAccumulatedCalibDigitContByteStreamCnv::initialize
()
53
{
54
ATH_CHECK
( AthConstConverter::initialize() );
55
56
if
(
m_rdpSvc
.retrieve().isFailure()) {
57
ATH_MSG_WARNING
(
" Can't get ByteStreamInputSvc interface Reading of ByteStream Data not possible. "
);
58
}
59
60
ATH_CHECK
(
m_tool
.retrieve() );
61
ATH_CHECK
(
m_calibLineMappingKey
.initialize() );
62
63
return
StatusCode::SUCCESS;
64
}
65
66
StatusCode
67
LArAccumulatedCalibDigitContByteStreamCnv::createObjConst
(IOpaqueAddress* pAddr, DataObject*& pObj)
const
68
{
//Convert Accumulated Calib Digits from ByteStream to StoreGate
69
ATH_MSG_VERBOSE
(
"Executing CreateObj method for LArAccumulatedCalibDigitContainer "
);
70
71
72
if
(!
m_rdpSvc
) {
73
ATH_MSG_ERROR
(
" ROBDataProviderSvc not loaded. Can't read ByteStream."
);
74
return
StatusCode::FAILURE;
75
}
76
77
ByteStreamAddress
* pRE_Addr{};
78
ATH_CHECK
( (pRE_Addr =
dynamic_cast<
ByteStreamAddress
*
>
(pAddr)) !=
nullptr
);
79
80
const
EventContext& ctx = pRE_Addr->
getEventContext
();
81
const
RawEvent
*
re
=
m_rdpSvc
->getEvent(ctx);
82
if
(!
re
) {
83
ATH_MSG_ERROR
(
"Could not get raw event from ByteStreamInputSvc"
);
84
}
85
const
std::string& key = *(pAddr->par());
// Get key used in the StoreGateSvc::retrieve function
86
// get gain and pass to convert function.
87
CaloGain::CaloGain
gain=
CaloGain::LARNGAIN
;
//At this place, LARNGAINS means Automatic gain.
88
if
(key==
"HIGH"
)
89
gain=
CaloGain::LARHIGHGAIN
;
90
else
if
(key==
"MEDIUM"
)
91
gain=
CaloGain::LARMEDIUMGAIN
;
92
else
if
(key==
"LOW"
)
93
gain=
CaloGain::LARLOWGAIN
;
94
95
SG::ReadCondHandle<LArCalibLineMapping>
calibLineMapping (
m_calibLineMappingKey
);
96
97
// Convert the RawEvent to LArAccumulatedCalibDigitContainer
98
ATH_MSG_DEBUG
(
"Converting LArAccumulatedCalibDigits (from ByteStream). key="
<< key <<
" ,gain="
<< gain );
99
LArAccumulatedCalibDigitContainer
*DigitContainer=
new
LArAccumulatedCalibDigitContainer
;
100
if
(not *calibLineMapping){
101
delete
DigitContainer;
102
ATH_MSG_ERROR
(
"LArAccumulatedCalibDigitContByteStreamCnv::createObjConst: nullptr."
);
103
return
StatusCode::FAILURE;
104
}
105
StatusCode
sc
=
m_tool
->convert(
re
,DigitContainer,gain,
106
**calibLineMapping);
107
if
(
sc
!=StatusCode::SUCCESS) {
108
ATH_MSG_WARNING
(
"Conversion tool returned an error. LArAccumulatedCalibDigitContainer might be empty."
);
109
}
110
DigitContainer->
setDelayScale
(25./240.);
//FIXME should not be hardcoded!
111
pObj =
SG::asStorable
(DigitContainer) ;
112
113
return
StatusCode::SUCCESS;
114
}
115
116
// IWS 19.07.2005
117
StatusCode
118
LArAccumulatedCalibDigitContByteStreamCnv::createRepConst
(DataObject*
/*pObj*/
, IOpaqueAddress*&
/*pAddr*/
)
const
119
{
// convert LArAccumulatedCalibDigits from StoreGate into ByteStream
120
ATH_MSG_ERROR
(
"CreateRep method of LArAccumulatedCalibDigitContainer not implemented"
);
121
return
StatusCode::SUCCESS;
122
}
123
re
const std::regex re(r_e)
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x,...)
Definition
AthMsgStreamMacros.h:43
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x,...)
Definition
AthMsgStreamMacros.h:47
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x,...)
Definition
AthMsgStreamMacros.h:46
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x,...)
Definition
AthMsgStreamMacros.h:42
ByteStreamAddress.h
ByteStreamCnvSvcBase.h
CaloGain.h
CLASS_DEF.h
macros to associate a CLID to a type
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
IByteStreamCnvSvc.h
IROBDataProviderSvc.h
LArAccumulatedCalibDigitContByteStreamCnv.h
LArAccumulatedCalibDigitContainer.h
LArCalibLineMapping.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
LArRawDataContByteStreamTool.h
Helper tool for conversion of raw data classes to/from LArByteStream.
RawEvent.h
RawEvent
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition
RawEvent.h:37
ReadCondHandle.h
StoreGateSvc.h
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
LArAccumulatedCalibDigitContByteStreamCnv::LArAccumulatedCalibDigitContByteStreamCnv
LArAccumulatedCalibDigitContByteStreamCnv(ISvcLocator *svcloc)
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:36
LArAccumulatedCalibDigitContByteStreamCnv::createObjConst
virtual StatusCode createObjConst(IOpaqueAddress *pAddr, DataObject *&pObj) const override
Create the transient representation of an object.
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:67
LArAccumulatedCalibDigitContByteStreamCnv::classID
static CLID classID()
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:43
LArAccumulatedCalibDigitContByteStreamCnv::createRepConst
virtual StatusCode createRepConst(DataObject *pObj, IOpaqueAddress *&pAddr) const override
Convert the transient object to the requested representation.
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:118
LArAccumulatedCalibDigitContByteStreamCnv::m_rdpSvc
ServiceHandle< IROBDataProviderSvc > m_rdpSvc
Definition
LArAccumulatedCalibDigitContByteStreamCnv.h:56
LArAccumulatedCalibDigitContByteStreamCnv::initialize
virtual StatusCode initialize() override
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:52
LArAccumulatedCalibDigitContByteStreamCnv::~LArAccumulatedCalibDigitContByteStreamCnv
virtual ~LArAccumulatedCalibDigitContByteStreamCnv()
Definition
LArAccumulatedCalibDigitContByteStreamCnv.cxx:47
LArAccumulatedCalibDigitContByteStreamCnv::m_tool
ToolHandle< BYTESTREAMTOOL > m_tool
Definition
LArAccumulatedCalibDigitContByteStreamCnv.h:55
LArAccumulatedCalibDigitContByteStreamCnv::m_calibLineMappingKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibLineMappingKey
Definition
LArAccumulatedCalibDigitContByteStreamCnv.h:57
LArAccumulatedCalibDigitContByteStreamCnv::storageType
static long storageType()
Definition
LArAccumulatedCalibDigitContByteStreamCnv.h:51
LArAccumulatedCalibDigitContainer
Container class for LArAccumulatedCalibDigit.
Definition
LArAccumulatedCalibDigitContainer.h:25
LArAccumulatedCalibDigitContainer::setDelayScale
void setDelayScale(const double scale)
set the delay Scale
Definition
LArAccumulatedCalibDigitContainer.h:35
SG::ReadCondHandle
Definition
ReadCondHandle.h:39
CaloGain::CaloGain
CaloGain
Definition
CaloGain.h:11
CaloGain::LARMEDIUMGAIN
@ LARMEDIUMGAIN
Definition
CaloGain.h:18
CaloGain::LARLOWGAIN
@ LARLOWGAIN
Definition
CaloGain.h:18
CaloGain::LARNGAIN
@ LARNGAIN
Definition
CaloGain.h:19
CaloGain::LARHIGHGAIN
@ LARHIGHGAIN
Definition
CaloGain.h:18
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