ATLAS Offline Software
Loading...
Searching...
No Matches
JetCollectionCnv_p6.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_p6.cxx
8// Implementation file for class JetCollectionCnv_p6
9// Author: S.Binet<binet@cern.ch>
11
12// DataModel includes
14
15// JetEvent includes
16#include "JetEvent/Jet.h"
18
19
20// JetEventTPCnv includes
25
26// DataModelAthenaPool includes
28
29// preallocate converters
30static const JetCnv_p6 jetCnv;
32
33
34void
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 for (Jet* jet : *trans) {
84 jet->setJetId(Jet::s_defaultJetId);
85 }
86
87 trans->clear();
88 trans->reserve(pers->size());
89
90 trans->m_jetAuthor = pers->m_jetAuthor;
91 trans->m_ownMap = 0;
92
93 // std::cout << " JetCollectionCnv_p6 Converting "<< trans->author() << std::endl;
94 // std::cout << " JetCollectionCnv_p6 dalink "<< trans->m_momentMapLink.isValid() << " "<< trans->m_momentMapLink.dataID() << std::endl;
95
96 for (const TPObjRef& ref : *pers) {
98 size_t id = j->m_jetId;
99 trans->push_back(j);
100 //std::cout << " reading jet "<< id << " "<< pers->m_jetIdBugFixed << std::endl;
101 if(pers->m_jetIdBugFixed) j->setJetId(id); // when the bug wasn't fixed id is wrong, so don't set it.
102 // associate this collection to its jets :
103 trans->back()->m_collection = trans ;
104 }
105 //std::cout << " JetCollectionCnv_p6 dalink "<< trans->m_momentMapLink.isValid() << " "<< trans->m_momentMapLink.dataID() << std::endl;
106
107
108 // Force PseudoJet pointer to null
109 trans->setFastjetClustSeq(nullptr);
110
111 msg << MSG::DEBUG << "Loading JetCollection from persistent state [OK]"
112 << endmsg;
113}
114
115void
117 JetCollection_p6* pers,
118 MsgStream& msg ) const
119{
120// msg << MSG::DEBUG << "Creating persistent state of JetCollection..."
121// << endmsg;
122
123 pers->m_ordered = static_cast<short>(trans->ordered());
124 // not used any more ... //pers->m_roiAuthor = trans->m_ROIauthor;
125 pers->m_jetAuthor = trans->m_jetAuthor ;
126
127 pers->m_jetIdBugFixed = true; // the bug is now fixed
128
129 pers->clear();
130 pers->reserve(trans->size());
131
132 for (const Jet* jet : *trans) {
133 pers->push_back(toPersistent((ITPConverterFor<Jet>**)nullptr, jet, msg));
134 }
135
136 // RS now deal with the JetKeyDescriptor
138 JetKeyStoreCnv.transToPers( &trans->m_keyStore, &pers->m_keyStore, msg );
139}
const boost::regex ref(r_ef)
#define endmsg
This file contains the class definition for the DataLinkCnv_p2 class and DataLinkVectorCnv_p2 class.
JetConverterBase< Jet_p6 > JetCnv_p6
Definition JetCnv_p6.h:86
static const JetCnv_p1 jetCnv
static const JetKeyDescriptorCnv_p1 jetkeyCnv
bool isDefault() const
Test to see if we're in the default state.
virtual void transToPers(const DLink_t &trans, PersDLink_t &pers, MsgStream &log) const
virtual void persToTrans(const PersDLink_t &pers, DLink_t &trans, MsgStream &log) const
const T * back() const
Access the last element in the collection as an rvalue.
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
size_type size() const noexcept
Returns the number of elements in the collection.
Common base class for all TP converters, specialized for a given transient type.
Definition TPConverter.h:37
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
virtual void persToTrans(const JetCollection_p6 *pers, JetCollection *trans, MsgStream &msg) const override
Method creating the transient representation of JetCollection from its persistent representation JetC...
virtual void transToPers(const JetCollection *trans, JetCollection_p6 *pers, MsgStream &msg) const override
Method creating the persistent representation JetCollection_p1 from its transient representation JetC...
unsigned short m_jetAuthor
DataLink_p2 m_keyStore
bool m_ownMap
false if the map is recorded in SG
JetCollection::OrderedVar ordered() const
void setFastjetClustSeq(const fastjet::ClusterSequence *cs)
DataLink< JetKeyDescriptor > m_keyStore
link to the JetKeyDescriptor is mandatory for persistency. Access done through the JetKeyDescriptorIn...
void setOrdered(JetCollection::OrderedVar ordered)
size_t m_jetAuthor
the author of this jetcollection.
void push_back(Jet *j)
JetKeyDescriptorInstance * keyDesc() const
const JetKeyDescriptor * m_ConstStores
JetKeyDescriptor * m_Stores
static JetKeyDescriptorInstance * instance()
size_t m_jetId
the identifier of this jet within its collection.
static const size_t s_defaultJetId
void setJetId(size_t id)
Definition Jet.cxx:1200
const JetCollection * m_collection
Shape store link.
This class is an object reference used in Athena persistent data model.
Definition TPObjRef.h:20
MsgStream & msg
Definition testRead.cxx:32