ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
MMSimHitCollectionCnv.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 "
MMSimHitCollectionCnv.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/MMSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/MMSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/MMSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/MMSimHitCollection_p3.h
"
18
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
19
20
21
MMSimHitCollectionCnv::MMSimHitCollectionCnv
(ISvcLocator* svcloc) :
22
MMSimHitCollectionCnvBase
(svcloc)
23
{
24
}
25
26
MMSimHitCollectionCnv::~MMSimHitCollectionCnv
() =
default
;
27
28
MMSimHitCollection_PERS
*
MMSimHitCollectionCnv::createPersistent
(
MMSimHitCollection
* transCont) {
29
MsgStream log(msgSvc(),
"MMSimHitCollectionCnv"
);
30
ATH_MSG_DEBUG
(
"createPersistent(): main converter"
);
31
MMSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p2
.createPersistent( transCont, log );
32
return
pixdc_p;
33
}
34
35
MMSimHitCollection
*
MMSimHitCollectionCnv::createTransient
(
const
Token
* token) {
36
MsgStream log(msgSvc(),
"MMSimHitCollectionCnv"
);
37
static
const
pool::Guid
p1_guid(
"AC0B677C-FE08-11E8-B174-02163E018187"
);
38
static
const
pool::Guid
p2_guid(
"B9BDD436-FE08-11E8-A40F-02163E018187"
);
39
static
const
pool::Guid
p3_guid(
"018E2DAC-18EB-7EAA-A141-F0FD2A6E1E06"
);
40
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
41
MMSimHitCollection
* p_collection(
nullptr
);
42
if
(
compareClassGuid
(token, p3_guid) ) {
43
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 3 detected"
);
44
std::unique_ptr< Muon::MMSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::MMSimHitCollection_p3 >
(token) );
45
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
46
}
else
if
(
compareClassGuid
(token, p2_guid) ) {
47
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 2 detected"
);
48
std::unique_ptr< Muon::MMSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::MMSimHitCollection_p2 >
(token) );
49
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
50
}
else
if
(
compareClassGuid
(token, p1_guid) ) {
51
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 1 detected"
);
52
std::unique_ptr< Muon::MMSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::MMSimHitCollection_p1 >
(token) );
53
p_collection =
m_TPConverter_p1
.createTransient( col_vect.get(), log );
54
}
55
//----------------------------------------------------------------
56
else
{
57
throw
std::runtime_error(
"Unsupported persistent version of MMSimHitCollection"
);
58
59
}
60
return
p_collection;
61
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
AthenaHitsVector.h
MMSimHitCollectionCnv.h
MMSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< MMSimHitCollection, MMSimHitCollection_PERS > MMSimHitCollectionCnvBase
Definition
MMSimHitCollectionCnv.h:17
MMSimHitCollection_PERS
Muon::MMSimHitCollection_p2 MMSimHitCollection_PERS
Definition
MMSimHitCollectionCnv.h:16
MMSimHitCollection.h
MMSimHitCollection
AtlasHitsVector< MMSimHit > MMSimHitCollection
Definition
MMSimHitCollection.h:15
MMSimHitCollection_p1.h
MMSimHitCollection_p2.h
MMSimHitCollection_p3.h
StoreGateSvc.h
MMSimHitCollectionCnv::m_TPConverter_p2
MMSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
MMSimHitCollectionCnv.h:38
MMSimHitCollectionCnv::~MMSimHitCollectionCnv
virtual ~MMSimHitCollectionCnv()
MMSimHitCollectionCnv::m_TPConverter_p3
MMSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
MMSimHitCollectionCnv.h:39
MMSimHitCollectionCnv::m_TPConverter_p1
MMSimHitCollectionCnv_p1 m_TPConverter_p1
Definition
MMSimHitCollectionCnv.h:37
MMSimHitCollectionCnv::createPersistent
virtual MMSimHitCollection_PERS * createPersistent(MMSimHitCollection *transCont)
Definition
MMSimHitCollectionCnv.cxx:28
MMSimHitCollectionCnv::createTransient
virtual MMSimHitCollection * createTransient(const Token *token)
Definition
MMSimHitCollectionCnv.cxx:35
MMSimHitCollectionCnv::MMSimHitCollectionCnv
MMSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
MMSimHitCollectionCnv.cxx:21
T_AthenaPoolCustomCnv< MMSimHitCollection, MMSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< MMSimHitCollection, MMSimHitCollection_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
pool::Guid
::Guid Guid
Definition
T_AthenaPoolCustCnv.h:19
Generated on
for ATLAS Offline Software by
1.17.0