22template <
class SURFACE>
24 SURFACE* surface=
nullptr;
28 const SURFACE* detSurf =
static_cast<const SURFACE*
>(
m_eventCnvTool->getSurface(
id));
38 EigenHelpers::vectorToEigenTransform3D( persObj->
m_transform, transform );
39 surface=
new SURFACE(transform);
44template <
class SURFACE>
46 throw std::runtime_error(
"SurfaceCnv_p2::persToTrans shouldn't be called any more!");
51template <
class SURFACE>
57 log<<MSG::WARNING<<
"SurfaceCnv_p2<SURFACE>::transToPers - null pointer for transient object."<<
endmsg;
60 persObj->
m_associatedDetElementId = transObj->associatedDetectorElementIdentifier().get_identifier32().get_compact();
61 if (transObj->isFree() ) {
64 EigenHelpers::eigenTransform3DToVector( *transObj->cachedTransform(),persObj->
m_transform );
67 if (!transObj->associatedDetectorElementIdentifier().is_valid()) {
68 log<<MSG::WARNING<<
"SurfaceCnv_p2<SURFACE>::transToPers - invalid detector element for non-free surface: "<<*transObj<<
endmsg;
71 persObj->
m_surfaceType =
static_cast<uint8_t
>(transObj->type());
83 log << MSG::WARNING<<
"Not expecting these to be Free!"<<
endmsg;
Define macros for attributes used to control the static checker.
#define ATLAS_THREAD_SAFE
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
void transToPers(const SURFACE *, Trk::Surface_p2 *, MsgStream &)
void persToTrans(const Trk::Surface_p2 *, SURFACE *, MsgStream &)
ToolHandle< Trk::IEventCnvSuperTool > m_eventCnvTool
SURFACE * createTransient(const Trk::Surface_p2 *persObj, MsgStream &log)
The distorted surface itself is the nominal surface.
virtual constexpr SurfaceType type() const override final
Return the surface type.
std::vector< float > m_transform
Identifier32::value_type m_associatedDetElementId
bool isFree() const
Returns 'true' if this surface is 'free', i.e.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
Eigen::Affine3d Transform3D