ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
Jet
JetEventTPCnv
src
JetCollectionCnv_p5.cxx
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// JetCollectionCnv_p5.cxx
8
// Implementation file for class JetCollectionCnv_p5
9
// Author: S.Binet<binet@cern.ch>
11
12
// DataModel includes
13
#include "
AthAllocators/DataPool.h
"
14
15
// JetEvent includes
16
#include "
JetEvent/Jet.h
"
17
#include "
JetEvent/JetCollection.h
"
18
19
20
// JetEventTPCnv includes
21
#include "
JetEventTPCnv/JetCnv_p5.h
"
22
#include "
JetEventTPCnv/JetCollection_p5.h
"
23
#include "
JetEventTPCnv/JetCollectionCnv_p5.h
"
24
#include "
JetEventTPCnv/JetKeyDescriptorCnv_p1.h
"
25
26
// DataModelAthenaPool includes
27
#include "
DataModelAthenaPool/DataLinkCnv_p1.h
"
28
29
// preallocate converters
30
static
const
JetCnv_p5
jetCnv
;
31
static
const
JetKeyDescriptorCnv_p1
jetkeyCnv
;
32
33
34
void
35
JetCollectionCnv_p5::persToTrans
(
const
JetCollection_p5
* pers,
36
JetCollection
* trans,
37
MsgStream&
msg
)
const
38
{
39
msg
<< MSG::DEBUG <<
"Loading JetCollection from persistent state..."
40
<<
endmsg
;
41
42
// make sure to first read the JetKeyDescriptor
43
DataLinkCnv_p1<DataLink<JetKeyDescriptor>
> JetKeyStoreCnv;
44
JetKeyStoreCnv.
persToTrans
( &pers->
m_keyStore
, &trans->
m_keyStore
,
msg
);
45
// link the JetKeyDescriptorInstance to the store:
46
if
( trans->
m_keyStore
.
isValid
() ){
47
trans->
keyDesc
()->
m_Stores
=
nullptr
;
48
trans->
keyDesc
()->
m_ConstStores
= trans->
m_keyStore
.
cptr
();
49
// make sure the global instance is pointing to this jetkey store
50
JetKeyDescriptorInstance::instance
()->
m_Stores
=
nullptr
;
51
JetKeyDescriptorInstance::instance
()->
m_ConstStores
= trans->
keyDesc
()->
m_ConstStores
;
52
}
53
else
if
(trans->
m_keyStore
.
isDefault
()) {
54
DataLink<JetKeyDescriptor>
dl (
"JetKeyMap"
);
55
if
(dl.isValid()) {
56
trans->
keyDesc
()->
m_Stores
=
nullptr
;
57
trans->
keyDesc
()->
m_ConstStores
= dl.cptr();
58
// make sure the global instance is pointing to this jetkey store
59
JetKeyDescriptorInstance::instance
()->
m_Stores
=
nullptr
;
60
JetKeyDescriptorInstance::instance
()->
m_ConstStores
= trans->
keyDesc
()->
m_ConstStores
;
61
}
62
else
{
63
trans->
keyDesc
()->
m_Stores
=
64
JetKeyDescriptorInstance::instance
()->
m_Stores
;
65
trans->
keyDesc
()->
m_ConstStores
=
66
JetKeyDescriptorInstance::instance
()->
m_ConstStores
;
67
}
68
}
69
else
{
70
trans->
keyDesc
()->
m_Stores
=
JetKeyDescriptorInstance::instance
()->
m_Stores
;
71
trans->
keyDesc
()->
m_ConstStores
=
JetKeyDescriptorInstance::instance
()->
m_ConstStores
;
72
}
73
74
msg
<< MSG::DEBUG <<
"attached JetKeyDescriptor to its instance"
<<
endmsg
;
75
77
78
trans->
setOrdered
(
static_cast<
JetCollection::OrderedVar
>
(pers->
m_ordered
));
79
// not used any more ... trans->m_ROIauthor = //pers->m_roiAuthor;
80
82
83
trans->
clear
();
84
trans->
reserve
(pers->size());
85
86
for
(
const
TPObjRef
&
ref
: *pers) {
87
trans->
push_back
(
createTransFromPStore
((
ITPConverterFor<Jet>
**)
nullptr
,
ref
,
msg
));
88
89
}
90
91
msg
<< MSG::DEBUG <<
"Loading JetCollection from persistent state [OK]"
92
<<
endmsg
;
93
}
94
95
void
96
JetCollectionCnv_p5::transToPers
(
const
JetCollection
* trans,
97
JetCollection_p5
* pers,
98
MsgStream&
msg
)
const
99
{
100
// msg << MSG::DEBUG << "Creating persistent state of JetCollection..."
101
// << endmsg;
102
103
pers->
m_ordered
=
static_cast<
short
>
(trans->
ordered
());
104
// not used any more ... //pers->m_roiAuthor = trans->m_ROIauthor;
105
106
pers->clear();
107
pers->reserve(trans->
size
());
108
109
for
(
const
Jet
*
jet
: *trans) {
110
pers->push_back(
toPersistent
((
ITPConverterFor<Jet>
**)
nullptr
,
jet
,
msg
));
111
}
112
113
// RS now deal with the JetKeyDescriptor
114
DataLinkCnv_p1<DataLink<JetKeyDescriptor>
> JetKeyStoreCnv;
115
JetKeyStoreCnv.
transToPers
( &trans->
m_keyStore
, &pers->
m_keyStore
,
msg
);
116
}
ref
const std::regex ref(r_ef)
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
DataLinkCnv_p1.h
This file contains the class definition for the DataLinkCnv_p1 class and DataLinkVectorCnv_p1 class.
DataPool.h
JetCnv_p5.h
JetCnv_p5
JetConverterBase< Jet_p5 > JetCnv_p5
Definition
JetCnv_p5.h:85
jetCnv
static const JetCnv_p1 jetCnv
Definition
JetCollectionCnv_p1.cxx:28
jetkeyCnv
static const JetKeyDescriptorCnv_p1 jetkeyCnv
Definition
JetCollectionCnv_p2.cxx:33
JetCollectionCnv_p5.h
JetCollection.h
JetCollection_p5.h
JetKeyDescriptorCnv_p1.h
Jet.h
DataLinkBase::isDefault
bool isDefault() const
Test to see if we're in the default state.
Definition
DataLinkBase.cxx:31
DataLinkCnv_p1
Definition
DataLinkCnv_p1.h:23
DataLinkCnv_p1::persToTrans
virtual void persToTrans(const PersDLink_t *pers, DLink_t *trans, MsgStream &log) const override
DataLinkCnv_p1::transToPers
virtual void transToPers(const DLink_t *trans, PersDLink_t *pers, MsgStream &log) const override
DataLink
Object reference supporting deferred reading from StoreGate.
Definition
AthLinks/DataLink.h:93
DataLink::cptr
const_pointer cptr() const
Dereference the link.
DataLink::isValid
bool isValid() const
Test to see if the link is dereferencable.
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
ITPConverterFor
Common base class for all TP converters, specialized for a given transient type.
Definition
TPConverter.h:37
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Definition
TPConverter.h:172
TPPolyCnvBase< TRANS, TRANS, PERS >::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Definition
TPConverter.h:119
JetCollectionCnv_p5::persToTrans
virtual void persToTrans(const JetCollection_p5 *pers, JetCollection *trans, MsgStream &msg) const override
Method creating the transient representation of JetCollection from its persistent representation JetC...
Definition
JetCollectionCnv_p5.cxx:35
JetCollectionCnv_p5::transToPers
virtual void transToPers(const JetCollection *trans, JetCollection_p5 *pers, MsgStream &msg) const override
Method creating the persistent representation JetCollection_p1 from its transient representation JetC...
Definition
JetCollectionCnv_p5.cxx:96
JetCollection_p5
Definition
JetCollection_p5.h:29
JetCollection_p5::m_keyStore
DataLink_p1 m_keyStore
Definition
JetCollection_p5.h:42
JetCollection_p5::m_ordered
short m_ordered
Definition
JetCollection_p5.h:41
JetCollection
Definition
JetCollection.h:30
JetCollection::OrderedVar
OrderedVar
Definition
JetCollection.h:35
JetCollection::ordered
JetCollection::OrderedVar ordered() const
Definition
JetCollection.h:68
JetCollection::m_keyStore
DataLink< JetKeyDescriptor > m_keyStore
link to the JetKeyDescriptor is mandatory for persistency. Access done through the JetKeyDescriptorIn...
Definition
JetCollection.h:94
JetCollection::setOrdered
void setOrdered(JetCollection::OrderedVar ordered)
Definition
JetCollection.h:65
JetCollection::clear
void clear()
Definition
JetCollection.cxx:96
JetCollection::push_back
void push_back(Jet *j)
Definition
JetCollection.cxx:85
JetCollection::keyDesc
JetKeyDescriptorInstance * keyDesc() const
Definition
JetCollection.cxx:46
JetKeyDescriptorCnv_p1
Definition
JetKeyDescriptorCnv_p1.h:17
JetKeyDescriptorInstance::m_ConstStores
const JetKeyDescriptor * m_ConstStores
Definition
JetKeyDescriptor.h:156
JetKeyDescriptorInstance::m_Stores
JetKeyDescriptor * m_Stores
Definition
JetKeyDescriptor.h:155
JetKeyDescriptorInstance::instance
static JetKeyDescriptorInstance * instance()
Definition
JetKeyDescriptor.h:123
Jet
Definition
Reconstruction/Jet/JetEvent/JetEvent/Jet.h:47
TPObjRef
This class is an object reference used in Athena persistent data model.
Definition
TPObjRef.h:20
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0