Skip to content
Snippets Groups Projects
FaserSCT_SpacePointCnv_p0.cxx 2.63 KiB
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);
  persObj->m_cov12 = cov(1,2);
  persObj->m_cov22 = cov(2,2);

//   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();