Newer
Older
/*
Copyright (C) 2021 CERN for the benefit of the FASER collaboration
*/
#include "TrackerEventTPCnv/FaserSCT_SpacePointCnv_p0.h"
#include "AthLinks/ElementLink.h"
#include "Identifier/Identifier.h"
#include "TrackerPrepRawData/FaserSCT_Cluster.h"
#include "TrackerPrepRawData/FaserSCT_ClusterContainer.h"
FaserSCT_SpacePointCnv_p0::persToTrans(const FaserSCT_SpacePoint_p0* persObj, Tracker::FaserSCT_SpacePoint* transObj, MsgStream& log) {
ElementLink<Tracker::FaserSCT_ClusterContainer> link1;
ElementLink<Tracker::FaserSCT_ClusterContainer> link2;
m_elCnv.persToTrans(&persObj->m_link1,&link1,log);
m_elCnv.persToTrans(&persObj->m_link2,&link2,log);
Amg::Vector3D pos(persObj->m_pos_x,persObj->m_pos_y,persObj->m_pos_z);
*transObj=Tracker::FaserSCT_SpacePoint(std::make_pair(persObj->m_idHash0,persObj->m_idHash1),&pos,link1,link2);
}
void
FaserSCT_SpacePointCnv_p0::transToPers(const Tracker::FaserSCT_SpacePoint* transObj, FaserSCT_SpacePoint_p0* persObj, MsgStream& /*log*/) {
auto idHashs = transObj->elementIdList();
persObj->m_idHash0 = idHashs.first;
persObj->m_idHash1 = idHashs.second;
auto globalPosition = transObj->globalPosition();
persObj->m_pos_x = globalPosition.x();
persObj->m_pos_y = globalPosition.y();
persObj->m_pos_z = globalPosition.z();
auto cov = transObj->globCovariance();
persObj->m_cov00 = cov(0,0);
persObj->m_cov01 = cov(0,1);
persObj->m_cov02 = cov(0,2);
persObj->m_cov11 = cov(1,1);
// static const SG::InitializedReadHandleKey<Tracker::FaserSCT_ClusterContainer> sctClusContName ("FaserSCT_Clusters");
// ElementLink<Tracker::FaserSCT_ClusterContainer>::index_type hashAndIndex1{0};
// ElementLink<Tracker::FaserSCT_ClusterContainer>::index_type hashAndIndex2{0};
// bool isFound1{m_eventCnvTool->getHashAndIndex1<Tracker::FaserSCT_ClusterContainer, Tracker::FaserSCT_SpacePoint>(transObj, sctClusContName, hashAndIndex1)};
// bool isFound2{m_eventCnvTool->getHashAndIndex2<Tracker::FaserSCT_ClusterContainer, Tracker::FaserSCT_SpacePoint>(transObj, sctClusContName, hashAndIndex2)};
// persObj->m_link1.m_contName=(isFound1 ? sctClusContName.key() : "");
// persObj->m_link2.m_contName=(isFound2 ? sctClusContName.key() : "");
// persObj->m_link1.m_elementIndex= hashAndIndex1;
// persObj->m_link2.m_elementIndex= hashAndIndex2;
persObj->m_link1.m_contName = transObj->getElementLink1()->dataID();
persObj->m_link1.m_elementIndex = transObj->getElementLink1()->index();
persObj->m_link2.m_contName = transObj->getElementLink2()->dataID();
persObj->m_link2.m_elementIndex = transObj->getElementLink2()->index();