ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
GenericMuonSimHitCollectionCnv.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 "
GenericMuonSimHitCollectionCnv.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/GenericMuonSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/GenericMuonSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/GenericMuonSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h
"
18
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
19
20
21
GenericMuonSimHitCollectionCnv::GenericMuonSimHitCollectionCnv
(ISvcLocator* svcloc) :
22
GenericMuonSimHitCollectionCnvBase
(svcloc)
23
{
24
}
25
26
GenericMuonSimHitCollectionCnv::~GenericMuonSimHitCollectionCnv
() =
default
;
27
28
GenericMuonSimHitCollection_PERS
*
GenericMuonSimHitCollectionCnv::createPersistent
(
GenericMuonSimHitCollection
* transCont) {
29
MsgStream log(msgSvc(),
"GenericMuonSimHitCollectionCnv"
);
30
ATH_MSG_DEBUG
(
"createPersistent(): main converter"
);
31
GenericMuonSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p2
.createPersistent( transCont, log );
32
return
pixdc_p;
33
}
34
35
GenericMuonSimHitCollection
*
GenericMuonSimHitCollectionCnv::createTransient
(
const
Token
* token) {
36
MsgStream log(msgSvc(),
"GenericMuonSimHitCollectionCnv"
);
37
static
const
pool::Guid
p1_guid(
"C2D5D558-2671-11E1-AAFA-001E4F3E5646"
);
38
static
const
pool::Guid
p2_guid(
"3760C0D8-C7EA-42C7-925A-E841196F2138"
);
39
static
const
pool::Guid
p3_guid(
"018E2DAC-18EB-7635-A068-B08EFB5CD64A"
);
40
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
41
GenericMuonSimHitCollection
* 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::GenericMuonSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::GenericMuonSimHitCollection_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::GenericMuonSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::GenericMuonSimHitCollection_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::GenericMuonSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::GenericMuonSimHitCollection_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 GenericMuonSimHitCollection"
);
58
59
}
60
return
p_collection;
61
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
AthenaHitsVector.h
GenericMuonSimHitCollectionCnv.h
GenericMuonSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< GenericMuonSimHitCollection, GenericMuonSimHitCollection_PERS > GenericMuonSimHitCollectionCnvBase
Definition
GenericMuonSimHitCollectionCnv.h:17
GenericMuonSimHitCollection_PERS
Muon::GenericMuonSimHitCollection_p2 GenericMuonSimHitCollection_PERS
Definition
GenericMuonSimHitCollectionCnv.h:16
GenericMuonSimHitCollection.h
GenericMuonSimHitCollection
AtlasHitsVector< GenericMuonSimHit > GenericMuonSimHitCollection
Definition
GenericMuonSimHitCollection.h:15
GenericMuonSimHitCollection_p1.h
GenericMuonSimHitCollection_p2.h
GenericMuonSimHitCollection_p3.h
StoreGateSvc.h
GenericMuonSimHitCollectionCnv::GenericMuonSimHitCollectionCnv
GenericMuonSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
GenericMuonSimHitCollectionCnv.cxx:21
GenericMuonSimHitCollectionCnv::m_TPConverter_p3
GenericMuonSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
GenericMuonSimHitCollectionCnv.h:39
GenericMuonSimHitCollectionCnv::~GenericMuonSimHitCollectionCnv
virtual ~GenericMuonSimHitCollectionCnv()
GenericMuonSimHitCollectionCnv::createPersistent
virtual GenericMuonSimHitCollection_PERS * createPersistent(GenericMuonSimHitCollection *transCont)
Definition
GenericMuonSimHitCollectionCnv.cxx:28
GenericMuonSimHitCollectionCnv::m_TPConverter_p2
GenericMuonSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
GenericMuonSimHitCollectionCnv.h:38
GenericMuonSimHitCollectionCnv::m_TPConverter_p1
GenericMuonSimHitCollectionCnv_p1 m_TPConverter_p1
Definition
GenericMuonSimHitCollectionCnv.h:37
GenericMuonSimHitCollectionCnv::createTransient
virtual GenericMuonSimHitCollection * createTransient(const Token *token)
Definition
GenericMuonSimHitCollectionCnv.cxx:35
T_AthenaPoolCustomCnv< GenericMuonSimHitCollection, GenericMuonSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< GenericMuonSimHitCollection, GenericMuonSimHitCollection_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