ATLAS Offline Software
Loading...
Searching...
No Matches
VxCandidateCnv_p2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
8#include <iostream>
9
10void VxCandidateCnv_p2::persToTrans(const Trk::VxCandidate_p1 * persObj, Trk::VxCandidate * transObj, MsgStream &log) {
11
14
15 std::vector<Trk::VxTrackAtVertex*> trackAtVertex;
16 if (!persObj->m_vxTrackAtVertex.empty()){ // not to call if 0
17 trackAtVertex.reserve( persObj->m_vxTrackAtVertex.size() );
18 for(auto it : persObj->m_vxTrackAtVertex)
19 trackAtVertex.push_back( createTransFromPStore( &m_vxTrackAtVertexConverter, it, log ) );
20 }
21
22 *transObj = Trk::VxCandidate (std::move(vx),
23 std::move (trackAtVertex));
24 transObj->setVertexType (static_cast<Trk::VertexType>(persObj->m_vertexType));
25
26// std::cout<<"m_recVertex:"<<transObj->m_recVertex<<std::endl;
27
28// std::vector<Trk::VxTrackAtVertex*>::iterator it=transObj->m_vxTrackAtVertex.begin();
29// for (;it!=transObj->m_vxTrackAtVertex.end();++it)
30// std::cout<<*(*it)<<std::endl;
31
32}
33
34void VxCandidateCnv_p2::transToPers(const Trk::VxCandidate * transObj, Trk::VxCandidate_p1 * persObj, MsgStream &log)
35{
36
37 // std::cout<<"VxCandidateCnv_p2 transToPers"<<std::endl;
38 persObj->m_recVertex = toPersistent( &m_recVertexConverter, &(transObj->recVertex()), log );
39
40 // get rid of the refitted perigees in case of primary and pileup vertex
41 const std::vector<Trk::VxTrackAtVertex*>& trackAtVertex = *transObj->vxTrackAtVertex();
42 if (transObj->vertexType() == Trk::PriVtx || transObj->vertexType() == Trk::PileUp) {
43 for (Trk::VxTrackAtVertex* t : trackAtVertex) {
44 t->setPerigeeAtVertex (static_cast<Trk::TrackParameters*>(nullptr));
45 }
46 }
47 m_vxTrkAtVrtCnv.transToPers( &trackAtVertex, &persObj->m_vxTrackAtVertex, log);
48 persObj->m_vertexType = static_cast<int>(transObj->vertexType());
49}
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
void fillTransFromPStore(CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Trk::RecVertex inherits from Trk::Vertex.
Definition RecVertex.h:44
std::vector< TPObjRef > m_vxTrackAtVertex
void setVertexType(VertexType vertexType)
return the type of the vertex
VertexType vertexType() const
return the type of the vertex
std::vector< Trk::VxTrackAtVertex * > * vxTrackAtVertex(void)
Unconst pointer to the vector of tracks Required by some of the vertex fitters.
const Trk::RecVertex & recVertex(void) const
Returns a reference to reconstructed vertex.
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
void persToTrans(const Trk::VxCandidate_p1 *persObj, Trk::VxCandidate *transObj, MsgStream &log)
VxTrkAtVrtVectorCnv_p1 m_vxTrkAtVrtCnv
void transToPers(const Trk::VxCandidate *transObj, Trk::VxCandidate_p1 *persObj, MsgStream &log)
RecVertexCnv_p2 * m_recVertexConverter
ITPConverterFor< Trk::VxTrackAtVertex > * m_vxTrackAtVertexConverter
VertexType
This file defines the enums in the Trk namespace for the different vertex types.
Definition VertexType.h:25
@ PileUp
Pile Up Vertex.
Definition VertexType.h:29
@ PriVtx
Primary Vertex.
Definition VertexType.h:27
ParametersBase< TrackParametersDim, Charged > TrackParameters