ATLAS Offline Software
Loading...
Searching...
No Matches
InDetSimDataCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include "MsgUtil.h"
7
8// Persistent class and converter header file
10#include "InDetSimDataCnv_p1.h"
12
13
14using depositIterator = std::vector<InDetSimData::Deposit>::const_iterator;
15
20
21
22void
23InDetSimDataCnv_p1::persToTrans(const InDetSimData_p1* persObj, InDetSimData* transObj, MsgStream &log)
24{
25 MSG_VERBOSE(log,"InDetSimDataCnv_p1::persToTrans called ");
27 std::vector<InDetSimData::Deposit> deposits;
28 const unsigned int ndeposits = persObj->m_enDeposits.size();
29 deposits.reserve( ndeposits );
30 for (unsigned int icount=0; icount < ndeposits; icount++) {
31 HepMcParticleLink mcLink(m_sg); //FIXME This is left as a note to make the new implementation thread-safe
32 HepMcPLCnv.persToTrans(&(persObj->m_links[icount]),&mcLink, log);
33 deposits.emplace_back (mcLink, persObj->m_enDeposits[icount]);
34 }
35
36 *transObj = InDetSimData (std::move(deposits),
37 persObj->m_word);
38}
39
40void
41InDetSimDataCnv_p1::transToPers(const InDetSimData* transObj, InDetSimData_p1* persObj, MsgStream &log)
42{
43 MSG_VERBOSE(log,"InDetSimDataCnv_p1::transToPers called ");
44
45 persObj->m_word = transObj->word();
46 const std::vector<InDetSimData::Deposit> &dep(transObj->getdeposits());
47 const unsigned int ndeposits = dep.size();
48 persObj->m_links.resize(ndeposits);
49 persObj->m_enDeposits.resize(ndeposits);
50 for (unsigned int icount(0); icount < ndeposits; ++icount) {
51 HepMcPLCnv.transToPers(&(dep[icount].first), &(persObj->m_links[icount]), log);
52 persObj->m_enDeposits[icount] = dep[icount].second;
53 }
54}
55
57{
58 m_sg = store;
59}
std::vector< InDetSimData::Deposit >::const_iterator depositIterator
#define MSG_VERBOSE(log, x)
Definition MsgUtil.h:17
virtual void transToPers(const InDetSimData *transObj, InDetSimData_p1 *persObj, MsgStream &log)
void setCurrentStore(IProxyDict *store)
HepMcParticleLinkCnv_p1 HepMcPLCnv
virtual void persToTrans(const InDetSimData_p1 *persObj, InDetSimData *transObj, MsgStream &log)
std::vector< float > m_enDeposits
unsigned int m_word
std::vector< HepMcParticleLink_p1 > m_links
int word() const
const std::vector< Deposit > & getdeposits() const