ATLAS Offline Software
Loading...
Searching...
No Matches
MuonSimDataCnv_p3.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8void MuonSimDataCnv_p3::persToTrans(const Muon::MuonSimData_p3 * persObj, MuonSimData * transObj, MsgStream & log){
9 log << MSG::DEBUG << "MuonSimDataCnv_p3::persToTrans" << endmsg;
10 //log << MSG::VERBOSE << "\tconverting m_word:\t" << persObj->m_word << "\tto\t" << transObj->m_word << endmsg;
11 //log << MSG::VERBOSE << "\tconverting x:\t" << persObj->x << "\tto\t" << transObj->x << endmsg;
12 //log << MSG::VERBOSE << "\tconverting y:\t" << persObj->y << "\tto\t" << transObj->y << endmsg;
13 //log << MSG::VERBOSE << "\tconverting z:\t" << persObj->z << "\tto\t" << transObj->z << endmsg;
14
15 std::vector<MuonSimData::Deposit> deposits;
16 deposits.reserve(persObj->m_deposits.size());
17 HepMcParticleLink transMcPartLink;
18 for (const std::pair<HepMcParticleLink_p3, Muon::MuonMCData_p1>& p :
19 persObj->m_deposits)
20 {
21 m_mcpartlinkCnv.persToTrans(&p.first, &transMcPartLink, log);
22 MuonMCData transMcData;
23 m_mcdataCnv.persToTrans(&p.second, &transMcData, log);
24 deposits.emplace_back(transMcPartLink, transMcData);
25 }
26
27 *transObj = MuonSimData (std::move(deposits),
28 persObj->m_word);
29
30 Amg::Vector3D pos (persObj->x, persObj->y, persObj->z);
31 transObj->setPosition (pos);
32 transObj->setTime(persObj->t);
33}
34
35void MuonSimDataCnv_p3::transToPers( const MuonSimData * transObj, Muon::MuonSimData_p3 * persObj, MsgStream & log){
36 log << MSG::DEBUG << "MuonSimDataCnv_p3::TransToPers" << endmsg;
37 persObj->m_word = transObj->word();
38 Amg::Vector3D pos = transObj->globalPosition();
39 persObj->x = pos.x();
40 persObj->y = pos.y();
41 persObj->z = pos.z();
42 persObj->t = transObj->getTime();
43 persObj->m_deposits.clear();
44 persObj->m_deposits.reserve(transObj->getdeposits().size());
45 for (const MuonSimData::Deposit& d : transObj->getdeposits()) {
46 HepMcParticleLink_p3 persMcPartLink;
47 m_mcpartlinkCnv.transToPers(&d.first, &persMcPartLink, log);
48 Muon::MuonMCData_p1 persMcData;
49 m_mcdataCnv.transToPers(&d.second, &persMcData, log);
50 persObj->m_deposits.emplace_back(persMcPartLink, persMcData);
51 }
52}
#define endmsg
void persToTrans(const Muon::MuonSimData_p3 *persObj, MuonSimData *transObj, MsgStream &log)
void transToPers(const MuonSimData *transObj, Muon::MuonSimData_p3 *persObj, MsgStream &log)
HepMcParticleLinkCnv_p3 m_mcpartlinkCnv
MuonMCDataCnv_p1 m_mcdataCnv
int word() const
Definition MuonSimData.h:89
const std::vector< Deposit > & getdeposits() const
Definition MuonSimData.h:94
void setTime(const float &time)
const Amg::Vector3D globalPosition() const
std::pair< HepMcParticleLink, MuonMCData > Deposit
Definition MuonSimData.h:66
void setPosition(const Amg::Vector3D &pos)
float getTime() const
std::vector< std::pair< HepMcParticleLink_p3, MuonMCData_p1 > > m_deposits
Eigen::Matrix< double, 3, 1 > Vector3D