ATLAS Offline Software
Loading...
Searching...
No Matches
IVertexMapper.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IVertexMapper.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRINTERFACES_IVERTEXMAPPER_H
10#define TRKDETDESCRINTERFACES_IVERTEXMAPPER_H
11
12// Gaudi
13#include "GaudiKernel/IAlgTool.h"
14
16#include "TrkSurfaces/Surface.h"
17#include "TrkGeometry/Layer.h"
18
19namespace Trk {
20
21 class TrackingVolume;
22
23 struct MappedVertex {
24
28
29 const Layer* layer;
31
33
34 bool valid;
35
37 MappedVertex(const Amg::Vector3D& lPosition,
38 const Surface& mSurface,
39 const Layer& mLayer,
40 const TrackingVolume& mVolume) :
41 localPosition(lPosition),
42 surface(&mSurface),
43 identifierHash(mSurface.associatedDetectorElement() ? int(mSurface.associatedDetectorElement()->identifyHash()) : -1),
44 layer(&mLayer),
45 layerIndex(mLayer.layerIndex().value()),
46 trackingVolume(&mVolume),
47 valid(true)
48 {}
49
52 localPosition(0.,0.,0.),
53 surface(nullptr),
55 layer(nullptr),
56 layerIndex(-1),
57 trackingVolume(nullptr),
58 valid(false)
59 {}
60
61
62 };
63
64
74
75 class IVertexMapper : virtual public IAlgTool {
76
77 public:
80
82 virtual ~IVertexMapper(){}
83
85 virtual MappedVertex mapToLocal(const Amg::Vector3D& vertex) const = 0;
86
87 };
88
89} // end of namespace
90
91#endif // TRKDETDESCRINTERFACES_IVERTEXMAPPER_H
Interface class IVertexMapper.
virtual MappedVertex mapToLocal(const Amg::Vector3D &vertex) const =0
Record the vertex into the local frame of the closest module.
DeclareInterfaceID(IVertexMapper, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual ~IVertexMapper()
Virtual destructor.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Abstract Base Class for tracking surfaces.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
const Layer * layer
const TrackingVolume * trackingVolume
MappedVertex()
invalid constructor
const Surface * surface
Amg::Vector3D localPosition
MappedVertex(const Amg::Vector3D &lPosition, const Surface &mSurface, const Layer &mLayer, const TrackingVolume &mVolume)
valid constructor