ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_DriftCircleOnTrackCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5//-----------------------------------------------------------------------------
6//
7// file: TRT_DriftCircleOnTrackCnv_p1.cxx
8//
9//-----------------------------------------------------------------------------
10
13//nclude "TrkEventTPCnv/helpers/CLHEPHelpers.h"
14
15
18 InDet::TRT_DriftCircleOnTrack *transObj, MsgStream &log )
19{
21 m_elCnv.persToTrans(&persObj->m_prdLink,&rio,log);
22
23 *transObj = InDet::TRT_DriftCircleOnTrack (rio,
26 persObj->m_idDE,
27 Identifier(),
28 persObj->m_positionAlongWire,
29 persObj->m_localAngle,
30 static_cast<Trk::DriftCircleStatus>( persObj->m_status ),
31 persObj->m_highLevel,
32 persObj->m_timeOverThreshold
33 );
34
35 fillTransFromPStore( &m_RIOCnv, persObj->m_RIO, transObj, log );
36}
37
38
41 InDet::TRT_DriftCircleOnTrack_p1 *persObj, MsgStream &log)
42{
43 persObj->m_RIO = baseToPersistent( &m_RIOCnv, transObj, log );
44 // m_globalPosition - transient?
45
46 persObj->m_idDE = transObj->idDE();
47 persObj->m_status = static_cast<unsigned int>( transObj->status() );
48 persObj->m_highLevel = transObj->highLevel();
49
50//new variables
51 persObj->m_localAngle = transObj->localAngle();
52 persObj->m_positionAlongWire = transObj->positionAlongWire();
53
54 // added in 12.5
55 persObj->m_timeOverThreshold = (float) transObj->timeOverThreshold();
56// m_elementLinkConverter.resetForCnv(persObj->m_elementLinkToIDCTRT_DriftCircleContainerNames);
57// m_elementLinkConverter.transToPers(&transObj->m_rio,&persObj->m_elementLinkToIDCTRT_DriftCircleContainer,log);
58 //m_elCnv.transToPers(&transObj->m_rio,&persObj->m_prdLink,log);
59 persObj->m_prdLink.m_contName = transObj->prepRawDataLink().dataID();// New suggestion from RD - above crashes
60 persObj->m_prdLink.m_elementIndex = transObj->prepRawDataLink().index();
61}
ElementLink< InDet::TRT_DriftCircleContainer > ElementLinkToIDCTRT_DriftCircleContainer
TPObjRef baseToPersistent(CNV **cnv, const typename CNV::Trans_t *transObj, MsgStream &log) const
Definition TPConverter.h:97
void fillTransFromPStore(CNV **cnv, const TPObjRef &ref, TRANS_T *trans, MsgStream &log) const
ElementLinkInt_p1 m_prdLink
Link to PRD.
Represents 'corrected' measurements from the TRT (for example, corrected for wire sag).
bool highLevel() const
returns true if the high level threshold was passed
double timeOverThreshold() const
returns time over threshold in ns for valid digits; zero otherwise
const ElementLinkToIDCTRT_DriftCircleContainer & prepRawDataLink() const
virtual IdentifierHash idDE() const override final
returns the DE hashID
Trk::DriftCircleStatus status() const
returns the status of the drift radius calibration.
ElementLinkCnv_p1< ElementLinkToIDCTRT_DriftCircleContainer > m_elCnv
void persToTrans(const InDet ::TRT_DriftCircleOnTrack_p1 *persObj, InDet ::TRT_DriftCircleOnTrack *transObj, MsgStream &log)
void transToPers(const InDet ::TRT_DriftCircleOnTrack *transObj, InDet ::TRT_DriftCircleOnTrack_p1 *persObj, MsgStream &log)
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
DriftCircleStatus
Enumerates the 'status' of the wire on which the tracks passed (based on the TRT_Side enum,...