ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigEvent
TrigEventAthenaPool
src
TrigEMClusterCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrigEMClusterCnv.h
"
6
#include "
TrigCaloEventTPCnv/TrigEMClusterCnv_tlp1.h
"
7
#include "
TrigCaloEventTPCnv/TrigEMClusterCnv_tlp2.h
"
8
9
struct
TrigEMClusterCnv_impl
10
{
11
TrigEMClusterCnv_tlp1
m_TPConverter
;
12
TrigEMClusterCnv_tlp2
m_TPConverter2
;
13
};
14
15
TrigEMClusterCnv::TrigEMClusterCnv
(ISvcLocator* svcloc) :
16
T_AthenaPoolCustomCnv
<
TrigEMCluster
,
TrigEMCluster_PERS
>( svcloc ),
17
m_impl
(new
TrigEMClusterCnv_impl
)
18
{}
19
20
TrigEMClusterCnv::~TrigEMClusterCnv
()
21
{
22
delete
m_impl
;
23
}
24
25
TrigEMCluster_PERS
*
TrigEMClusterCnv::createPersistent
(
TrigEMCluster
* transCont)
26
{
27
MsgStream mlog(msgSvc(),
"TrigEMClusterConverter"
);
28
mlog << MSG::DEBUG <<
"TrigEMClusterCnv::createPersistent"
<<
endmsg
;
29
30
TrigEMCluster_PERS
*persObj =
m_impl
->m_TPConverter2.createPersistent( transCont, mlog );
31
32
return
persObj;
33
}
34
35
36
TrigEMCluster
*
TrigEMClusterCnv::createTransient
(
const
Token
* token)
37
{
38
MsgStream mlog(msgSvc(),
"TrigEMClusterConverter"
);
39
mlog << MSG::DEBUG <<
"TrigEMClusterCnv::createTransient "
<<
endmsg
;
40
41
static
const
pool::Guid
tlp2_guid(
"61D02BB3-0F97-4809-AC93-72B2DC2DF624"
);
42
static
const
pool::Guid
tlp1_guid(
"EF5124F2-7B9C-4CBE-8D7F-1AD368A8A125"
);
43
static
const
pool::Guid
p0_guid(
"E60986AE-938E-4256-A100-CD99158ADE9E"
);
44
45
TrigEMCluster
*trans_cont(0);
46
47
if
(
compareClassGuid
(token, tlp2_guid) ) {
48
49
mlog << MSG::DEBUG <<
"TrigEMClusterCnv::reading tlp2 persistent object"
<<
endmsg
;
50
std::unique_ptr< TrigEMCluster_tlp2 > col_vect( this->
poolReadObject< TrigEMCluster_tlp2 >
(token) );
51
trans_cont =
m_impl
->m_TPConverter2.createTransient( col_vect.get(), mlog );
52
53
}
else
if
(
compareClassGuid
(token, tlp1_guid) ) {
54
55
mlog << MSG::DEBUG <<
"TrigEMClusterCnv::reading tlp1 persistent object"
<<
endmsg
;
56
std::unique_ptr< TrigEMCluster_tlp1 > col_vect( this->
poolReadObject< TrigEMCluster_tlp1 >
(token) );
57
trans_cont =
m_impl
->m_TPConverter.createTransient( col_vect.get(), mlog );
58
59
}
60
else
if
(
compareClassGuid
(token, p0_guid) ) {
61
62
mlog << MSG::DEBUG <<
"TrigEMClusterCnv::reading p0 persistent object"
<<
endmsg
;
63
// old version from before TP separation, just return it
64
trans_cont = this->
poolReadObject<TrigEMCluster>
(token);
65
66
}
else
{
67
68
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
69
70
}
71
return
trans_cont;
72
73
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
TrigEMClusterCnv.h
TrigEMCluster_PERS
TrigEMCluster_tlp2 TrigEMCluster_PERS
Definition
TrigEMClusterCnv.h:26
TrigEMClusterCnv_tlp1.h
TrigEMClusterCnv_tlp2.h
T_AthenaPoolCustomCnv< TrigEMCluster, TrigEMCluster_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TrigEMCluster, TrigEMCluster_PERS >::poolReadObject
P * poolReadObject(const Token *token)
T_AthenaPoolCustomCnv
Compatibility for old converter classes that don't get passed the key.
Definition
T_AthenaPoolCustomCnv.h:129
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
TrigEMClusterCnv_tlp1
Definition
TrigEMClusterCnv_tlp1.h:29
TrigEMClusterCnv_tlp2
Definition
TrigEMClusterCnv_tlp2.h:30
TrigEMClusterCnv::~TrigEMClusterCnv
~TrigEMClusterCnv()
Definition
TrigEMClusterCnv.cxx:20
TrigEMClusterCnv::m_impl
TrigEMClusterCnv_impl * m_impl
Definition
TrigEMClusterCnv.h:46
TrigEMClusterCnv::TrigEMClusterCnv
TrigEMClusterCnv(ISvcLocator *svcloc)
Definition
TrigEMClusterCnv.cxx:15
TrigEMClusterCnv::createPersistent
TrigEMCluster_PERS * createPersistent(TrigEMCluster *transCont)
Definition
TrigEMClusterCnv.cxx:25
TrigEMClusterCnv::createTransient
TrigEMCluster * createTransient(const Token *token)
Definition
TrigEMClusterCnv.cxx:36
TrigEMCluster
Class with calibrated variables for egamma clustering.
Definition
Trigger/TrigEvent/TrigCaloEvent/TrigCaloEvent/TrigEMCluster.h:31
pool::Guid
::Guid Guid
Definition
T_AthenaPoolCustCnv.h:19
TrigEMClusterCnv_impl
Definition
TrigEMClusterCnv.cxx:10
TrigEMClusterCnv_impl::m_TPConverter
TrigEMClusterCnv_tlp1 m_TPConverter
Definition
TrigEMClusterCnv.cxx:11
TrigEMClusterCnv_impl::m_TPConverter2
TrigEMClusterCnv_tlp2 m_TPConverter2
Definition
TrigEMClusterCnv.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0