ATLAS Offline Software
MdtDriftCircleOnTrackCnv_p2.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //-----------------------------------------------------------------------------
6 //
7 // file: MdtDriftCircleOnTrackCnv_p2.cxx
8 //
9 //-----------------------------------------------------------------------------
10 
15 
16 #include <iostream>
17 
20  Muon::MdtDriftCircleOnTrack *transObj, MsgStream &log )
21 {
23  m_elCnv.persToTrans(&persObj->m_prdLink,&rio,log);
24 
25  Trk::LocalParameters localParams;
26  fillTransFromPStore( &m_localParCnv, persObj->m_localParams, &localParams, log );
27 
29  Amg::MatrixX localCovariance;
31  EigenHelpers::vectorToEigenMatrix(dummy.values, localCovariance, "MdtDriftCircleOnTrackCnv_p2");
32 
33 
34 
35  *transObj = Muon::MdtDriftCircleOnTrack (rio,
36  std::move(localParams),
37  std::move(localCovariance),
38  Identifier(persObj->m_id),
39  nullptr, // detEl,
40  persObj->m_driftTime,
41  static_cast<Trk::DriftCircleStatus>( persObj->m_status ),
42  persObj->m_positionAlongWire,
43  persObj->m_localAngle,
45  // Attempt to call supertool to fill in detElements
46  m_eventCnvTool->recreateRIO_OnTrack(transObj);
47 
48 }
49 
52  Muon::MdtDriftCircleOnTrack_p2 *persObj, MsgStream &log)
53 {
54  // Prepare ELs
57  m_eventCnvTool->prepareRIO_OnTrackLink(transObj, key, index);
59  m_elCnv.transToPers(&eltmp, &persObj->m_prdLink,log);
60 
61  persObj->m_id = transObj->identify().get_identifier32().get_compact();
62  persObj->m_localParams = toPersistent( &m_localParCnv, &transObj->localParameters(), log );
63  Trk::ErrorMatrix pMat;
64  EigenHelpers::eigenMatrixToVector(pMat.values, transObj->localCovariance(), "MdtDriftCircleOnTrackCnv_p2");
65  persObj->m_localErrMat = toPersistent( &m_errorMxCnv, &pMat, log );
66 
67 
68  persObj->m_status = static_cast<unsigned int>( transObj->status() );
69  persObj->m_localAngle = transObj->localAngle() ;
70  persObj->m_positionAlongWire = transObj->positionAlongWire() ;
71  persObj->m_driftTime = transObj->driftTime() ;
72  persObj->m_muonDriftCircleErrorStrategy = transObj->errorStrategy().getBits().to_ulong();
73 }
74 
Trk::LocalParameters
Definition: LocalParameters.h:98
Muon::MuonDriftCircleErrorStrategy
Definition: MuonDriftCircleErrorStrategy.h:15
MdtDriftCircleOnTrackCnv_p2::m_elCnv
ElementLinkCnv_p3< ElementLinkToIDC_MDT_Container > m_elCnv
Definition: MdtDriftCircleOnTrackCnv_p2.h:41
MuonDriftCircleErrorStrategy.h
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::DriftCircleStatus
DriftCircleStatus
Enumerates the 'status' of the wire on which the tracks passed (based on the TRT_Side enum,...
Definition: DriftCircleStatus.h:16
index
Definition: index.py:1
Trk::IEventCnvSuperTool::ELIndex_t
unsigned int ELIndex_t
Definition: IEventCnvSuperTool.h:30
MdtDriftCircleOnTrackCnv_p2::m_eventCnvTool
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
Definition: MdtDriftCircleOnTrackCnv_p2.h:42
Muon::MdtDriftCircleOnTrack_p2::m_localAngle
float m_localAngle
This angle is the position of the point of closest approach in cylindrical coordinates,...
Definition: MdtDriftCircleOnTrack_p2.h:42
Muon::MdtDriftCircleOnTrack_p2::m_driftTime
float m_driftTime
This is the drift time that was used to calibrate the hit.
Definition: MdtDriftCircleOnTrack_p2.h:48
Muon::MdtDriftCircleOnTrack::errorStrategy
const MuonDriftCircleErrorStrategy & errorStrategy() const
Get information about the creation strategy used by Muon::MdtDriftCircleOnTrackCreator when making th...
Definition: MdtDriftCircleOnTrack.h:283
Muon::MdtDriftCircleOnTrack_p2::m_localErrMat
TPObjRef m_localErrMat
Definition: MdtDriftCircleOnTrack_p2.h:36
MdtDriftCircleOnTrack.h
MdtDriftCircleOnTrackCnv_p2::m_errorMxCnv
ErrorMatrixCnv_p1 * m_errorMxCnv
Definition: MdtDriftCircleOnTrackCnv_p2.h:44
Muon::MdtDriftCircleOnTrack::driftTime
double driftTime() const
Returns the value of the drift time used to obtain the drift radius.
Definition: MdtDriftCircleOnTrack.h:280
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
Trk::IEventCnvSuperTool::ELKey_t
std::string ELKey_t
Key and index types used for an EL to IdentifiableContainer.
Definition: IEventCnvSuperTool.h:29
Muon::MdtDriftCircleOnTrack_p2::m_id
Identifier32::value_type m_id
base RIO_OnTrack_p1 info
Definition: MdtDriftCircleOnTrack_p2.h:34
Muon::MdtDriftCircleOnTrack_p2::m_status
unsigned int m_status
Status of Mdt - in transient world this is the Trk::DriftCircleStatus enum.
Definition: MdtDriftCircleOnTrack_p2.h:31
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
MdtDriftCircleOnTrackCnv_p2::transToPers
void transToPers(const Muon ::MdtDriftCircleOnTrack *transObj, Muon ::MdtDriftCircleOnTrack_p2 *persObj, MsgStream &log)
Definition: MdtDriftCircleOnTrackCnv_p2.cxx:51
Identifier32::get_compact
value_type get_compact(void) const
Get the compact id.
Definition: Identifier32.h:171
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Muon::MuonDriftCircleErrorStrategy::getBits
const MuonDriftCircleErrorStrategyInput getBits() const
Definition: MuonDriftCircleErrorStrategy.h:47
EigenHelpers.h
MdtDriftCircleOnTrackCnv_p2::persToTrans
void persToTrans(const Muon ::MdtDriftCircleOnTrack_p2 *persObj, Muon ::MdtDriftCircleOnTrack *transObj, MsgStream &log)
Definition: MdtDriftCircleOnTrackCnv_p2.cxx:19
Muon::MdtDriftCircleOnTrack::localAngle
double localAngle() const
Returns the local angle, as determined by the extrapolation used when creating this Trk::RIO_OnTrack.
Definition: MdtDriftCircleOnTrack.h:282
python.xAODType.dummy
dummy
Definition: xAODType.py:4
Muon::MdtDriftCircleOnTrack::positionAlongWire
double positionAlongWire() const
Returns the position along the wire, as determined by the extrapolation used when creating this Trk::...
Definition: MdtDriftCircleOnTrack.h:281
Muon::MdtDriftCircleOnTrack::status
Trk::DriftCircleStatus status() const
Returns the status of the drift radius calibration.
Definition: MdtDriftCircleOnTrack.h:255
Muon::MdtDriftCircleOnTrack_p2::m_prdLink
ElementLinkInt_p3 m_prdLink
Link to PRD.
Definition: MdtDriftCircleOnTrack_p2.h:39
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
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
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
Muon::MdtDriftCircleOnTrack
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
Definition: MdtDriftCircleOnTrack.h:37
Trk::ErrorMatrix::values
std::vector< float > values
Definition: ErrorMatrixCnv_p1.h:27
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
Muon::MdtDriftCircleOnTrack_p2
Version 2 of the persistent class representing the transient class Muon::MdtDriftCircleOnTrack.
Definition: MdtDriftCircleOnTrack_p2.h:23
DeMoScan.index
string index
Definition: DeMoScan.py:362
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
MdtDriftCircleOnTrackCnv_p2.h
Muon::MdtDriftCircleOnTrack_p2::m_muonDriftCircleErrorStrategy
unsigned int m_muonDriftCircleErrorStrategy
Records information about the 'strategy' used by Muon::MdtDriftCircleOnTrackCreator to make this obje...
Definition: MdtDriftCircleOnTrack_p2.h:51
Identifier::get_identifier32
Identifier32 get_identifier32(void) const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
Muon::MdtDriftCircleOnTrack_p2::m_localParams
TPObjRef m_localParams
Definition: MdtDriftCircleOnTrack_p2.h:35
Muon::MdtDriftCircleOnTrack_p2::m_positionAlongWire
float m_positionAlongWire
This is the position of the point of closest approach, in the local z coord (i.e.
Definition: MdtDriftCircleOnTrack_p2.h:45
MdtDriftCircleOnTrackCnv_p2::m_localParCnv
LocalParametersCnv_p1 * m_localParCnv
Definition: MdtDriftCircleOnTrackCnv_p2.h:43
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37