ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonEventAthenaPool
src
MuonSimDataCollectionCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
MuonSimDataCollectionCnv.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 "
MuonSimData/MuonSimDataCollection.h
"
15
#include "
MuonEventTPCnv/MuonDigitContainer/MuonSimDataCollection_p1.h
"
16
17
MuonSimDataCollectionCnv::MuonSimDataCollectionCnv
(ISvcLocator* svcloc) :
18
MuonSimDataCollectionCnvBase
(svcloc)
19
{
20
}
21
22
MuonSimDataCollectionCnv::~MuonSimDataCollectionCnv
() =
default
;
23
24
MuonSimDataCollection_PERS
*
MuonSimDataCollectionCnv::createPersistent
(
MuonSimDataCollection
* transCont) {
25
MsgStream log(msgSvc(),
"MuonSimDataCollectionCnv"
);
26
ATH_MSG_DEBUG
(
"createPersistent(): main converter"
);
27
MuonSimDataCollection_PERS
*pixdc_p=
m_TPConverter_p2
.createPersistent( transCont, log );
28
return
pixdc_p;
29
}
30
31
MuonSimDataCollection
*
MuonSimDataCollectionCnv::createTransient
(
const
Token
* token) {
32
MsgStream log(msgSvc(),
"MuonSimDataCollectionCnv"
);
33
static
const
Guid
p0_guid(
"5B50C32E-A036-4B49-AC97-716E53210BE2"
);
34
static
const
Guid
p1_guid(
"0605B4A3-3744-4486-B39D-F9C9E809D868"
);
35
static
const
Guid
p2_guid(
"E0AA3013-4EF7-45B6-BDB1-17B21BF60791"
);
36
static
const
Guid
p3_guid(
"018F527E-346B-7A37-8C3D-5E7420A9C76A"
);
37
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
38
MuonSimDataCollection
* p_collection(
nullptr
);
39
if
(
compareClassGuid
(token, p3_guid) ) {
40
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 3 detected"
);
41
std::unique_ptr< Muon::MuonSimDataCollection_p3 > col_vect( this->
poolReadObject< Muon::MuonSimDataCollection_p3 >
(token) );
42
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
43
}
44
//----------------------------------------------------------------
45
else
if
(
compareClassGuid
(token, p2_guid) ) {
46
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 2 detected"
);
47
std::unique_ptr< Muon::MuonSimDataCollection_p2 > col_vect( this->
poolReadObject< Muon::MuonSimDataCollection_p2 >
(token) );
48
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
49
}
50
//----------------------------------------------------------------
51
else
if
(
compareClassGuid
(token, p1_guid) ) {
52
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 1 detected"
);
53
std::unique_ptr< Muon::MuonSimDataCollection_p1 > col_vect( this->
poolReadObject< Muon::MuonSimDataCollection_p1 >
(token) );
54
p_collection =
m_TPConverter_p1
.createTransient( col_vect.get(), log );
55
}
56
//----------------------------------------------------------------
57
else
if
(
compareClassGuid
(token, p0_guid) ){
58
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): Old input file"
<<std::endl;
59
std::unique_ptr< MuonSimDataCollection > col_vect(
poolReadObject< MuonSimDataCollection >
(token) );
60
p_collection = col_vect.release();
61
}
62
//----------------------------------------------------------------
63
else
{
64
throw
std::runtime_error(
"Unsupported persistent version of MuonSimDataCollection"
);
65
66
}
67
return
p_collection;
68
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x,...)
Definition
AthMsgStreamMacros.h:43
MuonSimDataCollectionCnv.h
MuonSimDataCollection_PERS
Muon::MuonSimDataCollection_p2 MuonSimDataCollection_PERS
Definition
MuonSimDataCollectionCnv.h:15
MuonSimDataCollectionCnvBase
T_AthenaPoolCustomCnv< MuonSimDataCollection, MuonSimDataCollection_PERS > MuonSimDataCollectionCnvBase
Definition
MuonSimDataCollectionCnv.h:16
MuonSimDataCollection.h
MuonSimDataCollection_p1.h
StoreGateSvc.h
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
MuonSimDataCollectionCnv::MuonSimDataCollectionCnv
MuonSimDataCollectionCnv(ISvcLocator *svcloc)
Definition
MuonSimDataCollectionCnv.cxx:17
MuonSimDataCollectionCnv::m_TPConverter_p3
MuonSimDataCollectionCnv_p3 m_TPConverter_p3
Definition
MuonSimDataCollectionCnv.h:36
MuonSimDataCollectionCnv::~MuonSimDataCollectionCnv
virtual ~MuonSimDataCollectionCnv()
MuonSimDataCollectionCnv::createPersistent
virtual MuonSimDataCollection_PERS * createPersistent(MuonSimDataCollection *transCont)
Definition
MuonSimDataCollectionCnv.cxx:24
MuonSimDataCollectionCnv::m_TPConverter_p2
MuonSimDataCollectionCnv_p2 m_TPConverter_p2
Definition
MuonSimDataCollectionCnv.h:35
MuonSimDataCollectionCnv::createTransient
virtual MuonSimDataCollection * createTransient(const Token *token)
Definition
MuonSimDataCollectionCnv.cxx:31
MuonSimDataCollectionCnv::m_TPConverter_p1
MuonSimDataCollectionCnv_p1 m_TPConverter_p1
Definition
MuonSimDataCollectionCnv.h:34
MuonSimDataCollection
Definition
MuonSimDataCollection.h:21
T_AthenaPoolCustomCnv< MuonSimDataCollection, MuonSimDataCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< MuonSimDataCollection, MuonSimDataCollection_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
Generated on
for ATLAS Offline Software by
1.17.0