ATLAS Offline Software
JetCollectionCnv_p5.cxx
Go to the documentation of this file.
1 
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
25 
26 // DataModelAthenaPool includes
28 
29 // preallocate converters
30 static const JetCnv_p5 jetCnv;
31 static const JetKeyDescriptorCnv_p1 jetkeyCnv;
32 
33 
34 void
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
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
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
61  }
62  else {
63  trans->keyDesc()->m_Stores =
65  trans->keyDesc()->m_ConstStores =
67  }
68  }
69  else {
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) {
88 
89  }
90 
91  msg << MSG::DEBUG << "Loading JetCollection from persistent state [OK]"
92  << endmsg;
93 }
94 
95 void
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
115  JetKeyStoreCnv.transToPers( &trans->m_keyStore, &pers->m_keyStore, msg );
116 }
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
JetKeyDescriptorInstance::m_Stores
JetKeyDescriptor * m_Stores
Definition: JetKeyDescriptor.h:155
ITPConverterFor
Definition: TPConverter.h:37
TestSUSYToolsAlg.dl
dl
Definition: TestSUSYToolsAlg.py:83
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
JetCollection::keyDesc
JetKeyDescriptorInstance * keyDesc() const
Definition: JetCollection.cxx:43
JetCollection_p5::m_keyStore
DataLink_p1 m_keyStore
Definition: JetCollection_p5.h:42
DataLinkCnv_p1.h
This file contains the class definition for the DataLinkCnv_p1 class and DataLinkVectorCnv_p1 class.
Jet
Basic data class defines behavior for all Jet objects The Jet class is the principal data class for...
Definition: Reconstruction/Jet/JetEvent/JetEvent/Jet.h:47
JetCollection_p5.h
JetCnv_p5.h
JetCollection::OrderedVar
OrderedVar
Definition: JetCollection.h:35
TPObjRef
Definition: TPObjRef.h:20
JetKeyDescriptorInstance::instance
static JetKeyDescriptorInstance * instance()
Definition: JetKeyDescriptor.h:123
JetCollectionCnv_p5.h
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_p5::m_ordered
short m_ordered
Definition: JetCollection_p5.h:41
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
DataLinkCnv_p1::transToPers
virtual void transToPers(const DLink_t *trans, PersDLink_t *pers, MsgStream &log) const override
JetCollection.h
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
JetCollection::ordered
JetCollection::OrderedVar ordered() const
Definition: JetCollection.h:68
DataLinkCnv_p1::persToTrans
virtual void persToTrans(const PersDLink_t *pers, DLink_t *trans, MsgStream &log) const override
JetCollection::clear
void clear()
Definition: JetCollection.cxx:93
JetKeyDescriptorCnv_p1.h
DataPool.h
ITPConverterFor::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Persistify an object and store the persistent represenation in the storage vector of the top-level pe...
Definition: TPConverter.h:119
DataLinkBase::isDefault
bool isDefault() const
Test to see if we're in the default state.
Definition: DataLinkBase.cxx:31
JetKeyDescriptorCnv_p1
Definition: JetKeyDescriptorCnv_p1.h:17
ref
const boost::regex ref(r_ef)
JetCollection
Container for Jets
Definition: JetCollection.h:30
DEBUG
#define DEBUG
Definition: page_access.h:11
JetCollection_p5
Definition: JetCollection_p5.h:29
Jet.h
JetCollection::setOrdered
void setOrdered(JetCollection::OrderedVar ordered)
Definition: JetCollection.h:65
JetConverterBase< Jet_p5 >
Definition: JetCnv_p5.h:33
JetCollection::push_back
void push_back(Jet *j)
Definition: JetCollection.cxx:82
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
DataLinkCnv_p1
Definition: DataLinkCnv_p1.h:23
ITPConverterFor::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Create transient representation of a persistent object, stored in the the top-level persistent object...
Definition: TPConverter.h:172
JetKeyDescriptorInstance::m_ConstStores
const JetKeyDescriptor * m_ConstStores
Definition: JetKeyDescriptor.h:156
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