ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TruthParticleID
McParticleEventAthenaPool
src
TruthParticleContainerCnv.cxx
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// TruthParticleContainerCnv.cxx
8
// Implementation file for class TruthParticleContainerCnv
9
// Author: S.Binet<binet@cern.ch>
11
12
// STL includes
13
14
// Framework includes
15
#include "GaudiKernel/MsgStream.h"
16
#include "GaudiKernel/IToolSvc.h"
17
#include "GaudiKernel/IAlgTool.h"
18
#include "
StoreGate/StoreGateSvc.h
"
19
20
// McParticleKernel includes
21
#include "
McParticleKernel/ITruthParticleCnvTool.h
"
22
23
24
// McParticleEventTPCnv includes
25
#include "
McParticleEventTPCnv/TruthParticleContainerCnv_p5.h
"
26
#include "
McParticleEventTPCnv/TruthParticleContainerCnv_p6.h
"
27
28
// McParticleEventAthenaPool includes
29
#include "
TruthParticleContainerCnv.h
"
30
31
TruthParticleContainerCnv::TruthParticleContainerCnv
(ISvcLocator* svcLocator) :
32
T_AthenaPoolCustomCnv
<
TruthParticleContainer
,
33
TruthParticleContainer_PERS
>(svcLocator)
34
{
35
if
(
m_cnvTool
.retrieve().isFailure() ) {
36
throw std::runtime_error(
"Could not fetch TruthParticleCnvTool !!"
);
37
}
38
}
39
40
41
TruthParticleContainer_PERS
*
42
TruthParticleContainerCnv::createPersistent
(
TruthParticleContainer
* trans)
43
{
44
MsgStream log( msgSvc(),
"TruthParticleContainerCnv"
);
45
46
TruthParticleContainerCnv_p6
cnv(
m_cnvTool
.get() );
47
TruthParticleContainer_PERS
*pers = cnv.
createPersistent
(trans, log);
48
49
log << MSG::DEBUG <<
"::createPersistent [Success]"
<<
endmsg
;
50
return
pers;
51
}
52
53
TruthParticleContainer
*
TruthParticleContainerCnv::createTransient
(
const
Token
* token)
54
{
55
MsgStream
msg
( msgSvc(),
"TruthParticleContainerCnv"
);
56
57
TruthParticleContainer
*trans = 0;
58
59
static
const
pool::Guid
p5_guid(
"2D25E3D9-950B-49E0-A51F-2B6EC93D1A23"
);
60
static
const
pool::Guid
p6_guid(
"97AC2CEE-7E8A-4E2E-B6B5-FD8545D77FC4"
);
61
62
if
(
compareClassGuid
(token, p6_guid) ) {
63
64
std::unique_ptr<TruthParticleContainer_p6> pers(
poolReadObject<TruthParticleContainer_p6>
(token) );
65
TruthParticleContainerCnv_p6
cnv(
m_cnvTool
.get() );
66
trans = cnv.
createTransient
( pers.get(),
msg
);
67
68
}
else
if
(
compareClassGuid
(token, p5_guid) ) {
69
70
std::unique_ptr<TruthParticleContainer_p5> pers(
poolReadObject<TruthParticleContainer_p5>
(token) );
71
TruthParticleContainerCnv_p5
cnv(
m_cnvTool
.get() );
72
trans = cnv.
createTransient
( pers.get(),
msg
);
73
74
}
else
{
75
throw
std::runtime_error(
"Unsupported persistent version of TruthParticleContainer"
);
76
}
77
78
return
trans;
79
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
ITruthParticleCnvTool.h
StoreGateSvc.h
TruthParticleContainerCnv.h
TruthParticleContainer_PERS
TruthParticleContainer_p6 TruthParticleContainer_PERS
Definition
TruthParticleContainerCnv.h:32
TruthParticleContainerCnv_p5.h
TruthParticleContainerCnv_p6.h
T_AthenaPoolCustomCnv< TruthParticleContainer, TruthParticleContainer_PERS >::msg
MsgStream & msg() const
Definition
AthMessaging.h:167
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
T_AthenaPoolCustomCnv< TruthParticleContainer, TruthParticleContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TruthParticleContainer, TruthParticleContainer_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
TruthParticleContainerCnv_p5
Definition
TruthParticleContainerCnv_p5.h:41
TruthParticleContainerCnv_p6
Definition
TruthParticleContainerCnv_p6.h:41
TruthParticleContainerCnv::m_cnvTool
ToolHandle< ITruthParticleCnvTool > m_cnvTool
Handle to the McEventCollection -> TruthParticleContainer converter tool.
Definition
TruthParticleContainerCnv.h:72
TruthParticleContainerCnv::TruthParticleContainerCnv
TruthParticleContainerCnv(ISvcLocator *svcloc)
Create the converter from the service locator.
Definition
TruthParticleContainerCnv.cxx:31
TruthParticleContainerCnv::createTransient
virtual TruthParticleContainer * createTransient(const Token *token)
Build the transient representation from a persistent one.
Definition
TruthParticleContainerCnv.cxx:53
TruthParticleContainerCnv::createPersistent
virtual TruthParticleContainer_PERS * createPersistent(TruthParticleContainer *transCont)
Build the persistent representation from the transient one.
Definition
TruthParticleContainerCnv.cxx:42
TruthParticleContainer
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:42
pool::Guid
::Guid Guid
Definition
T_AthenaPoolCustCnv.h:19
Generated on
for ATLAS Offline Software by
1.17.0