ATLAS Offline Software
Loading...
Searching...
No Matches
PseudoMeasurementOnTrackCnv_p2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
10
11
12void PseudoMeasurementOnTrackCnv_p2::persToTrans( const Trk :: PseudoMeasurementOnTrack_p2 *persObj,
13 Trk :: PseudoMeasurementOnTrack *transObj, MsgStream &log )
14{
15 // std::cout<<"PseudoMeasurementOnTrackCnv_p2::persToTrans for transObj="<<transObj<<std::endl;
16 Trk::LocalParameters localParams;
17 fillTransFromPStore( &m_localParamsCnv, persObj->m_localParams, &localParams, log );
18 // fillTransFromPStore( &m_localErrMatCnv, persObj->m_localErrMat, &transObj->m_localErrMat, log );
19
20 Trk::ErrorMatrix dummy;
21 Amg::MatrixX localCovariance;
22 fillTransFromPStore( &m_localErrMatCnv, persObj->m_localErrMat, &dummy, log );
23 EigenHelpers::vectorToEigenMatrix(dummy.values, localCovariance, "PseudoMeasurementOnTrackCnv_p2");
24
26 (this->createTransFromPStore( (ITPConverterFor<Trk::Surface>**)nullptr, persObj->m_associatedSurface, log ));
27 if (!surf){
28 log<<MSG::WARNING<<"PseudoMeasurementOnTrackCnv_p2: Could not recreate Surface (null pointer)"<<endmsg;
29 log<<MSG::VERBOSE<<(*transObj)<<endmsg;
30 }
31
32 *transObj = Trk::PseudoMeasurementOnTrack (std::move(localParams),
33 std::move(localCovariance),
34 std::move(surf));
35}
36
37void PseudoMeasurementOnTrackCnv_p2::transToPers( const Trk :: PseudoMeasurementOnTrack * transObj,
38 Trk :: PseudoMeasurementOnTrack_p2 * persObj, MsgStream & log)
39{
40 // std::cout<<"PseudoMeasurementOnTrackCnv_p2::transToPers for transObj="<<transObj<<std::endl;
41 persObj->m_localParams = toPersistent( &m_localParamsCnv, &transObj->localParameters(), log );
42
44 EigenHelpers::eigenMatrixToVector(pMat.values, transObj->localCovariance(), "PseudoMeasurementOnTrackCnv_p2");
45 persObj->m_localErrMat = toPersistent( &m_localErrMatCnv, &pMat, log );
46
47 if (transObj->hasSurface())
48 {
49 // std::cout<<"PseudoMeasurementOnTrackCnv_p2::transToPers Have base surface ["<<(transObj->associatedSurface().baseSurface())
50 // << "] id= ["<<transObj->associatedSurface().baseSurface()->associatedDetectorElementIdentifier()
51 // <<"] which has isFree()="<<transObj->associatedSurface().baseSurface()->isFree()<<std::endl;
52 // std::cout<<*transObj<<std::endl;
53 persObj->m_associatedSurface = toPersistent((ITPConverterFor<Trk::Surface>**)nullptr, transObj->associatedSurface().baseSurface(), log);
54 }
55 else {
56 log<<MSG::WARNING<<"TrackParameter doesn't have a surface! Dumping: "<<*transObj<<endmsg;
57 }
58}
#define endmsg
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
virtual void persToTrans(const Trk ::PseudoMeasurementOnTrack_p2 *persObj, Trk ::PseudoMeasurementOnTrack *transObj, MsgStream &log)
virtual void transToPers(const Trk ::PseudoMeasurementOnTrack *transObj, Trk ::PseudoMeasurementOnTrack_p2 *persObj, MsgStream &log)
std::vector< float > values
Class to handle pseudo-measurements in fitters and on track objects.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
static void eigenMatrixToVector(VECTOR &vec, COVARIANCE &cov, const char *)
SurfaceUniquePtrT< const Trk::Surface > ConstSurfaceUniquePtr