ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
sTGCSimHitCollectionCnv.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 "
sTGCSimHitCollectionCnv.h
"
6
7
// Gaudi
8
#include "GaudiKernel/StatusCode.h"
9
#include "GaudiKernel/MsgStream.h"
10
11
// Athena
12
#include "
StoreGate/StoreGateSvc.h
"
13
14
#include "
MuonSimEvent/sTGCSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/sTGCSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/sTGCSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/sTGCSimHitCollection_p3.h
"
18
#include "
MuonSimEventTPCnv/sTGCSimHitCollection_p4.h
"
19
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
20
21
22
sTGCSimHitCollectionCnv::sTGCSimHitCollectionCnv
(ISvcLocator* svcloc) :
23
sTGCSimHitCollectionCnvBase
(svcloc)
24
{
25
}
26
27
sTGCSimHitCollectionCnv::~sTGCSimHitCollectionCnv
() =
default
;
28
29
sTGCSimHitCollection_PERS
*
sTGCSimHitCollectionCnv::createPersistent
(
sTGCSimHitCollection
* transCont) {
30
MsgStream log(msgSvc(),
"sTGCSimHitCollectionCnv"
);
31
ATH_MSG_DEBUG
(
"createPersistent(): main converter"
);
32
sTGCSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p3
.createPersistent( transCont, log );
33
return
pixdc_p;
34
}
35
36
sTGCSimHitCollection
*
sTGCSimHitCollectionCnv::createTransient
(
const
Token
* token) {
37
MsgStream log(msgSvc(),
"sTGCSimHitCollectionCnv"
);
38
static
const
Guid
p1_guid(
"F8B975D2-8130-11E8-ABF4-4B4A6A2B6EE5"
);
39
static
const
Guid
p2_guid(
"B9521CC6-6E3B-11E8-ADBB-02163E01BDDD"
);
40
static
const
Guid
p3_guid(
"8F3FFD1C-C9A0-4DA7-B99E-A3828B6AC789"
);
41
static
const
Guid
p4_guid(
"018E2DAC-18EB-79C4-B562-FD7C035C92C1"
);
42
43
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
44
sTGCSimHitCollection
* p_collection(
nullptr
);
45
if
(
compareClassGuid
(token, p4_guid) ) {
46
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 4 detected"
);
47
std::unique_ptr< Muon::sTGCSimHitCollection_p4 > col_vect( this->
poolReadObject< Muon::sTGCSimHitCollection_p4 >
(token) );
48
p_collection =
m_TPConverter_p4
.createTransient( col_vect.get(), log );
49
}
else
if
(
compareClassGuid
(token, p3_guid) ) {
50
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 3 detected"
);
51
std::unique_ptr< Muon::sTGCSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::sTGCSimHitCollection_p3 >
(token) );
52
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
53
}
else
if
(
compareClassGuid
(token, p2_guid) ) {
54
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 2 detected"
);
55
std::unique_ptr< Muon::sTGCSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::sTGCSimHitCollection_p2 >
(token) );
56
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
57
}
else
if
(
compareClassGuid
(token, p1_guid) ) {
58
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 1 detected"
);
59
std::unique_ptr< Muon::sTGCSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::sTGCSimHitCollection_p1 >
(token) );
60
p_collection =
m_TPConverter_p1
.createTransient( col_vect.get(), log );
61
}
62
//----------------------------------------------------------------
63
else
{
64
throw
std::runtime_error(
"Unsupported persistent version of sTGCSimHitCollection"
);
65
66
}
67
return
p_collection;
68
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:28
AthenaHitsVector.h
StoreGateSvc.h
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
T_AthenaPoolCustomCnv< sTGCSimHitCollection, sTGCSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< sTGCSimHitCollection, sTGCSimHitCollection_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
sTGCSimHitCollectionCnv::createPersistent
virtual sTGCSimHitCollection_PERS * createPersistent(sTGCSimHitCollection *transCont)
Definition
sTGCSimHitCollectionCnv.cxx:29
sTGCSimHitCollectionCnv::m_TPConverter_p4
sTGCSimHitCollectionCnv_p4 m_TPConverter_p4
Definition
sTGCSimHitCollectionCnv.h:42
sTGCSimHitCollectionCnv::m_TPConverter_p2
sTGCSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
sTGCSimHitCollectionCnv.h:40
sTGCSimHitCollectionCnv::m_TPConverter_p3
sTGCSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
sTGCSimHitCollectionCnv.h:41
sTGCSimHitCollectionCnv::~sTGCSimHitCollectionCnv
virtual ~sTGCSimHitCollectionCnv()
sTGCSimHitCollectionCnv::sTGCSimHitCollectionCnv
sTGCSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
sTGCSimHitCollectionCnv.cxx:22
sTGCSimHitCollectionCnv::createTransient
virtual sTGCSimHitCollection * createTransient(const Token *token)
Definition
sTGCSimHitCollectionCnv.cxx:36
sTGCSimHitCollectionCnv::m_TPConverter_p1
sTGCSimHitCollectionCnv_p1 m_TPConverter_p1
Definition
sTGCSimHitCollectionCnv.h:39
sTGCSimHitCollectionCnv.h
sTGCSimHitCollection_PERS
Muon::sTGCSimHitCollection_p3 sTGCSimHitCollection_PERS
Definition
sTGCSimHitCollectionCnv.h:18
sTGCSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< sTGCSimHitCollection, sTGCSimHitCollection_PERS > sTGCSimHitCollectionCnvBase
Definition
sTGCSimHitCollectionCnv.h:19
sTGCSimHitCollection.h
sTGCSimHitCollection
AtlasHitsVector< sTGCSimHit > sTGCSimHitCollection
Definition
sTGCSimHitCollection.h:15
sTGCSimHitCollection_p1.h
sTGCSimHitCollection_p2.h
sTGCSimHitCollection_p3.h
sTGCSimHitCollection_p4.h
Generated on
for ATLAS Offline Software by
1.17.0