ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonEventAthenaPool
src
MM_RawDataContainerCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
MM_RawDataContainerCnv.h
"
6
#include "
StoreGate/StoreGateSvc.h
"
7
#include "
MuonIdHelpers/MmIdHelper.h
"
8
9
10
MM_RawDataContainerCnv::MM_RawDataContainerCnv
(ISvcLocator* svcloc) :
11
MM_RawDataContainerCnvBase
(svcloc,
"MM_RawDataContainerCnv"
)
12
{
13
}
14
15
MM_RawDataContainerCnv::~MM_RawDataContainerCnv
() =
default
;
16
17
StatusCode
MM_RawDataContainerCnv::initialize
() {
18
// Call base clase initialize
19
ATH_CHECK
(
MM_RawDataContainerCnvBase::initialize
() );
20
21
// Get the helper from the detector store
22
const
MmIdHelper
*idHelper;
23
ATH_CHECK
(
detStore
()->retrieve(idHelper) );
24
25
m_TPConverter_p1
.initialize(idHelper);
26
m_TPConverter_p2
.initialize(idHelper);
27
m_TPConverter_p3
.initialize(idHelper);
28
29
return
StatusCode::SUCCESS;
30
}
31
32
MM_RawDataContainer_PERS
*
MM_RawDataContainerCnv::createPersistent
(
Muon::MM_RawDataContainer
* transCont) {
33
return
m_TPConverter_p3
.createPersistent( transCont,
msg
() );
34
}
35
36
Muon::MM_RawDataContainer
*
37
MM_RawDataContainerCnv::createTransient
(
const
Token
* token)
38
{
39
using namespace
Muon
;
40
41
MM_RawDataContainer
*transCont =
nullptr
;
42
static
const
Guid
p1_guid(
"5F202045-CE2C-4AD4-96BA-7DA18053B90F"
);
43
static
const
Guid
p2_guid(
"A49EBDAC-A190-4198-95DF-BF75FBBB487F"
);
44
static
const
Guid
p3_guid(
"229DDB7E-59D3-4BE5-B3D5-B873EBC5C9AA"
);
45
46
if
(
compareClassGuid
(token, p1_guid) ) {
47
std::unique_ptr< MM_RawDataContainer_p1 > cont( this->
poolReadObject<MM_RawDataContainer_p1>
(token) );
48
const
MM_RawDataContainer_p1
* constCont = cont.get();
49
transCont =
m_TPConverter_p1
.createTransient( constCont,
msg
() );
50
}
51
// ----------------------------------------------
52
// p2 has the relBCID included
53
else
if
(
compareClassGuid
(token, p2_guid) ) {
54
std::unique_ptr< MM_RawDataContainer_p2 > cont( this->
poolReadObject<MM_RawDataContainer_p2>
(token) );
55
const
MM_RawDataContainer_p2
* constCont = cont.get();
56
transCont =
m_TPConverter_p2
.createTransient( constCont,
msg
() );
57
}
58
// ----------------------------------------------
59
// p3 has timeAndChargeInCounts switch included
60
else
if
(
compareClassGuid
(token, p3_guid) ) {
61
std::unique_ptr< MM_RawDataContainer_p3 > cont( this->
poolReadObject<MM_RawDataContainer_p3>
(token) );
62
const
MM_RawDataContainer_p3
* constCont = cont.get();
63
transCont =
m_TPConverter_p3
.createTransient( constCont,
msg
() );
64
}
65
// ----------------------------------------------
66
else
{
67
throw
std::runtime_error(
"Unsupported persistent version of MM Raw Data (RDO) container"
);
68
}
69
return
transCont;
70
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
MM_RawDataContainerCnv.h
MM_RawDataContainer_PERS
Muon::MM_RawDataContainer_p3 MM_RawDataContainer_PERS
Definition
MM_RawDataContainerCnv.h:14
MM_RawDataContainerCnvBase
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS > MM_RawDataContainerCnvBase
Definition
MM_RawDataContainerCnv.h:15
MmIdHelper.h
StoreGateSvc.h
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS >::msg
MsgStream & msg() const
Definition
AthMessaging.h:167
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
Definition
AthenaPoolConverter.h:68
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
MM_RawDataContainerCnv::m_TPConverter_p2
Muon::MM_RawDataContainerCnv_p2 m_TPConverter_p2
Definition
MM_RawDataContainerCnv.h:34
MM_RawDataContainerCnv::MM_RawDataContainerCnv
MM_RawDataContainerCnv(ISvcLocator *svcloc)
Definition
MM_RawDataContainerCnv.cxx:10
MM_RawDataContainerCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition
MM_RawDataContainerCnv.cxx:17
MM_RawDataContainerCnv::createTransient
virtual Muon::MM_RawDataContainer * createTransient(const Token *token)
Definition
MM_RawDataContainerCnv.cxx:37
MM_RawDataContainerCnv::m_TPConverter_p3
Muon::MM_RawDataContainerCnv_p3 m_TPConverter_p3
Definition
MM_RawDataContainerCnv.h:35
MM_RawDataContainerCnv::createPersistent
virtual MM_RawDataContainer_PERS * createPersistent(Muon::MM_RawDataContainer *transCont)
Definition
MM_RawDataContainerCnv.cxx:32
MM_RawDataContainerCnv::m_TPConverter_p1
Muon::MM_RawDataContainerCnv_p1 m_TPConverter_p1
Definition
MM_RawDataContainerCnv.h:33
MM_RawDataContainerCnv::~MM_RawDataContainerCnv
virtual ~MM_RawDataContainerCnv()
MmIdHelper
Definition
MmIdHelper.h:54
Muon::MM_RawDataContainer_p1
Definition
MM_RawDataContainer_p1.h:14
Muon::MM_RawDataContainer_p2
Definition
MM_RawDataContainer_p2.h:14
Muon::MM_RawDataContainer_p3
Definition
MM_RawDataContainer_p3.h:14
Muon::MM_RawDataContainer
Definition
MM_RawDataContainer.h:18
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS >::initialize
virtual StatusCode initialize()
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS >::poolReadObject
P * poolReadObject(const Token *token)
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Generated on
for ATLAS Offline Software by
1.17.0