ATLAS Offline Software
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 
7 #include "TrkSurfaces/Surface.h"
10 
11 
12 void 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 
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 
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 
43  Trk::ErrorMatrix pMat;
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 }
Trk::LocalParameters
Definition: LocalParameters.h:98
ITPConverterFor< Trk::Surface >
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Surface.h
ITPConverterFor< TRANS_BASE >::fillTransFromPStore
void fillTransFromPStore(CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const
Convert persistent object, stored in the the top-level persistent object and referenced by the TP Ref...
Definition: TPConverter.h:145
Trk::ErrorMatrix
Definition: ErrorMatrixCnv_p1.h:25
EigenHelpers::vectorToEigenMatrix
static void vectorToEigenMatrix(VECTOR &vec, COVARIANCE &cov, const char *)
Helper fn to fill the covariance from the raw data (vec<float>)
Definition: EigenHelpers.h:22
PseudoMeasurementOnTrackCnv_p2::m_localErrMatCnv
ErrorMatrixCnv_p1 * m_localErrMatCnv
Definition: PseudoMeasurementOnTrackCnv_p2.h:42
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
PseudoMeasurementOnTrack.h
EigenHelpers.h
python.xAODType.dummy
dummy
Definition: xAODType.py:4
EigenHelpers::eigenMatrixToVector
static void eigenMatrixToVector(VECTOR &vec, COVARIANCE &cov, const char *)
Helper fn to get raw data (vec<float>) from the covariance.
Definition: EigenHelpers.h:30
ITPConverterFor< TRANS_BASE >::toPersistent
TPObjRef toPersistent(CNV **cnv, const typename CNV::TransBase_t *transObj, MsgStream &log) const
Persistify an object and store the persistent represenation in the storage vector of the top-level pe...
Definition: TPConverter.h:119
SurfaceCnv_p2.h
PseudoMeasurementOnTrackCnv_p2.h
Trk::ConstSurfaceUniquePtr
SurfaceUniquePtrT< const Trk::Surface > ConstSurfaceUniquePtr
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:468
Trk::ErrorMatrix::values
std::vector< float > values
Definition: ErrorMatrixCnv_p1.h:27
PseudoMeasurementOnTrackCnv_p2::transToPers
virtual void transToPers(const Trk ::PseudoMeasurementOnTrack *transObj, Trk ::PseudoMeasurementOnTrack_p2 *persObj, MsgStream &log)
Definition: PseudoMeasurementOnTrackCnv_p2.cxx:37
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
PseudoMeasurementOnTrackCnv_p2::m_localParamsCnv
LocalParametersCnv_p1 * m_localParamsCnv
Definition: PseudoMeasurementOnTrackCnv_p2.h:41
Trk::MeasurementBaseType::PseudoMeasurementOnTrack
@ PseudoMeasurementOnTrack
Definition: MeasurementBase.h:51
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
PseudoMeasurementOnTrackCnv_p2::persToTrans
virtual void persToTrans(const Trk ::PseudoMeasurementOnTrack_p2 *persObj, Trk ::PseudoMeasurementOnTrack *transObj, MsgStream &log)
Definition: PseudoMeasurementOnTrackCnv_p2.cxx:12
ITPConverterFor< TRANS_BASE >::createTransFromPStore
CNV::Trans_t * createTransFromPStore(CNV **cnv, const TPObjRef &ref, MsgStream &log) const
Create transient representation of a persistent object, stored in the the top-level persistent object...
Definition: TPConverter.h:172