ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkEventAthenaPool
src
VxContainerCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//-----------------------------------------------------------------------------
6
//
7
// file: VxContainerCnv.cxx
8
// author: Kirill Prokofiev <Kirill.Prokofiev@cern.ch>
9
//
10
//-----------------------------------------------------------------------------
11
12
13
#include "
VxContainerCnv.h
"
14
15
#include "
TrkEventTPCnv/VxContainerCnv_tlp1.h
"
16
#include "
TrkEventTPCnv/VxContainerCnv_tlp2.h
"
17
18
//-----------------------------------------------------------------------------
19
// Constructor
20
//-----------------------------------------------------------------------------
21
22
VxContainerCnv::VxContainerCnv
( ISvcLocator *svcloc ):
23
VxContainerCnvBase
(svcloc),
24
m_msgSvc
( msgSvc() ),
25
m_log
(
m_msgSvc
,
"VxContainerCnv"
)
26
{}
27
28
//-----------------------------------------------------------------------------
29
// Initializer
30
//-----------------------------------------------------------------------------
31
StatusCode
VxContainerCnv::initialize
()
32
{
33
StatusCode
sc
=
VxContainerCnvBase::initialize
();
34
if
(
sc
.isFailure() )
35
{
36
m_log
<< MSG::FATAL <<
"Could not initialize VxContainerCnvBase"
<<
endmsg
;
37
return
sc
;
38
}
39
40
m_log
.setLevel(
m_msgSvc
->outputLevel() );
41
m_log
<< MSG::INFO <<
"VxContainerCnv::initialize()"
<<
endmsg
;
42
43
IConverter *converter =
m_athenaPoolCnvSvc
->converter(
CLID
(1943140) );
44
m_log
<< MSG::INFO <<
"VxContainerCnv: MVFVxCandidate converter="
<< converter <<
endmsg
;
45
registerExtendingCnv
( converter );
46
47
return
StatusCode::SUCCESS;
48
49
}
//end of initialize method
50
51
52
VxContainer_PERS
*
53
VxContainerCnv::createPersistent
(
VxContainer
* )
54
{
55
MsgStream
msg
( msgSvc(),
"VxContainerCnv"
);
56
msg
<< MSG::ERROR <<
"createPersistent() is obsolete"
<<
endmsg
;
57
return
nullptr
;
58
}
//end of create persistent method
59
60
61
VxContainer
*
VxContainerCnv::createTransient
(
const
Token
* token)
62
{
63
static
const
Guid
p2_guid(
"B5254571-6B6D-47F7-A52C-CBE857CF1812"
);
64
static
const
Guid
p1_guid(
"AFA5FE76-EEC6-4BD1-B704-B5747F729291"
);
65
static
const
Guid
p0_guid(
"639B478A-7355-4430-B6FC-F0A6148A2E87"
);
66
67
VxContainer
*p_collection =
nullptr
;
68
if
(
compareClassGuid
(token, p2_guid ) ) {
69
// std::cout << "VxContainerCnv::createTransient: do new TP 2" << std::endl;
70
usingTPCnvForReading
(
m_TPConverter
);
71
std::unique_ptr< VxContainer_PERS > p_coll(
poolReadObject< VxContainer_PERS >
(token) );
72
73
/*
74
std::cout<<"READING: Dumping the contents of the VxContainer "<<std::endl;
75
std::cout<<"------------------------------VxVertex related "<<std::endl;
76
std::cout<<" m_vxContainers size: "<< p_coll->m_vxContainers.size()<<std::endl;
77
std::cout<<" m_vxCandidates size: "<< p_coll->m_vxCandidates.size() <<std::endl;
78
std::cout<<" m_vxTrackAtVertices size: "<< p_coll->m_vxTrackAtVertices.size()<<std::endl;
79
std::cout<<" m_recVertices size: "<< p_coll->m_recVertices.size()<<std::endl;
80
std::cout<<" m_vertices size: "<< p_coll->m_vertices.size()<<std::endl;
81
82
std::cout<<"------------------------------TrkTrack related "<<std::endl;
83
std::cout<<" m_tracks size: "<< p_coll->m_tracks.size()<<std::endl;
84
std::cout<<"------------------------------TrkTrackParameters related "<<std::endl;
85
std::cout<<" m_trackParameters size: "<< p_coll->m_trackParameters.size()<<std::endl;
86
std::cout<<" m_perigees size: "<< p_coll->m_perigees.size()<<std::endl;
87
std::cout<<" m_measPerigees size: "<< p_coll->m_measPerigees.size()<<std::endl;
88
std::cout<<" m_surfaces size: "<< p_coll->m_surfaces.size()<<std::endl;
89
std::cout<<" m_fitQualities size: "<< p_coll->m_fitQualities.size()<<std::endl;
90
std::cout<<" m_hepSymMatrices size: "<< p_coll->m_hepSymMatrices.size()<<std::endl;
91
std::cout<<"*************************************** "<<std::endl;
92
*/
93
p_collection =
m_TPConverter
.createTransient( p_coll.get(),
m_log
);
94
95
}
96
else
if
(
compareClassGuid
(token, p1_guid ) ) {
97
// std::cout << "VxContainerCnv::createTransient: do TP 1" << std::endl;
98
99
VxContainerCnv_tlp1
tmpTPCnv;
100
usingTPCnvForReading
( tmpTPCnv );
101
std::unique_ptr< Trk::VxContainer_tlp1 > p_coll(
poolReadObject< Trk::VxContainer_tlp1 >
(token) );
102
p_collection = tmpTPCnv.
createTransient
( p_coll.get(),
m_log
);
103
104
// std::cout << "VxContainerCnv::createTransient: done! " << std::endl;
105
/*
106
std::cout<<"READING: Dumping the contents of the VxContainer "<<std::endl;
107
std::cout<<"------------------------------VxVertex related "<<std::endl;
108
std::cout<<" m_vxContainers size: "<< p_coll->m_vxContainers.size()<<std::endl;
109
std::cout<<" m_vxCandidates size: "<< p_coll->m_vxCandidates.size() <<std::endl;
110
std::cout<<" m_vxTrackAtVertices size: "<< p_coll->m_vxTrackAtVertices.size()<<std::endl;
111
std::cout<<" m_recVertices size: "<< p_coll->m_recVertices.size()<<std::endl;
112
std::cout<<" m_vertices size: "<< p_coll->m_vertices.size()<<std::endl;
113
114
std::cout<<"------------------------------TrkTrack related "<<std::endl;
115
std::cout<<" m_tracks size: "<< p_coll->m_tracks.size()<<std::endl;
116
std::cout<<"------------------------------TrkTrackParameters related "<<std::endl;
117
std::cout<<" m_trackParameters size: "<< p_coll->m_trackParameters.size()<<std::endl;
118
std::cout<<" m_perigees size: "<< p_coll->m_perigees.size()<<std::endl;
119
std::cout<<" m_measPerigees size: "<< p_coll->m_measPerigees.size()<<std::endl;
120
std::cout<<" m_surfaces size: "<< p_coll->m_surfaces.size()<<std::endl;
121
std::cout<<" m_fitQualities size: "<< p_coll->m_fitQualities.size()<<std::endl;
122
std::cout<<" m_hepSymMatrices size: "<< p_coll->m_hepSymMatrices.size()<<std::endl;
123
std::cout<<"*************************************** "<<std::endl;
124
*/
125
126
}
else
if
(
compareClassGuid
(token, p0_guid ) ){
127
// std::cout << "VxContainerCnv::createTransient: use old converter" << std::endl;
128
p_collection =
poolReadObject< VxContainer >
(token);
129
130
}
else
throw
std::runtime_error(
"Unsupported persistent version of VxContainer"
);
131
132
return
p_collection;
133
134
}
//end of create transient method
135
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
CLID
uint32_t CLID
The Class ID type.
Definition
Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
VxContainerCnv.h
VxContainerCnvBase
T_AthenaPoolCustomCnv< VxContainer, VxContainer_PERS > VxContainerCnvBase
Definition
VxContainerCnv.h:32
VxContainer_PERS
Trk::VxContainer_tlp2 VxContainer_PERS
Definition
VxContainerCnv.h:30
VxContainerCnv_tlp1.h
VxContainerCnv_tlp2.h
T_AthenaPoolCustomCnv< VxContainer, VxContainer_PERS >::msg
MsgStream & msg() const
Definition
AthMessaging.h:167
AthenaPoolCnvTPExtension::registerExtendingCnv
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
Definition
AthenaPoolCnvTPExtension.h:19
AthenaPoolCnvTPExtension::usingTPCnvForReading
void usingTPCnvForReading(TopLevelTPCnvBase &baseTLPcnv)
Definition
AthenaPoolCnvTPExtension.h:31
T_AthenaPoolCustomCnv< VxContainer, VxContainer_PERS >::m_athenaPoolCnvSvc
ServiceHandle< IAthenaPoolCnvSvc > m_athenaPoolCnvSvc
Definition
AthenaPoolConverter.h:108
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
T_AthenaPoolCustomCnv< VxContainer, VxContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< VxContainer, VxContainer_PERS >::initialize
virtual StatusCode initialize()
T_AthenaPoolCustomCnv< VxContainer, VxContainer_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
TopLevelTPConverter::createTransient
TRANS * createTransient(MsgStream &log)
Create transient representation of the persistent object known to this converter.
Definition
TopLevelTPConverter.h:62
VxContainerCnv_tlp1
Definition
VxContainerCnv_tlp1.h:61
VxContainerCnv::m_TPConverter
VxContainerCnv_tlp2 m_TPConverter
Definition
VxContainerCnv.h:56
VxContainerCnv::m_log
MsgStream m_log
Definition
VxContainerCnv.h:53
VxContainerCnv::createTransient
virtual VxContainer * createTransient(const Token *token) override
Definition
VxContainerCnv.cxx:61
VxContainerCnv::VxContainerCnv
VxContainerCnv(ISvcLocator *svcloc)
Definition
VxContainerCnv.cxx:22
VxContainerCnv::m_msgSvc
IMessageSvc * m_msgSvc
Definition
VxContainerCnv.h:52
VxContainerCnv::initialize
virtual StatusCode initialize() override
Gaudi Service Interface method implementations:
Definition
VxContainerCnv.cxx:31
VxContainerCnv::createPersistent
virtual VxContainer_PERS * createPersistent(VxContainer *transCont) override
Definition
VxContainerCnv.cxx:53
VxContainer
Definition
VxContainer.h:28
Generated on
for ATLAS Offline Software by
1.17.0