ATLAS Offline Software
Loading...
Searching...
No Matches
SlidingDiscSurface.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// SlidingDiscSurface.h, (c) ATLAS Detector software
8
9#ifndef TRKGEOMETRYSURFACES_SLIDINGDISCSURFACE_H
10#define TRKGEOMETRYSURFACES_SLIDINGDISCSURFACE_H
11
12// Trk
19// Amg
22#include <vector>
23#include <string>
24
25namespace Trk {
26
27class DiscBounds;
29class LocalParameters;
30
31template<int DIM, class T, class S>
32class ParametersT;
33
43
44class SlidingDiscSurface final : public DiscSurface
45{
46
47public:
48
51 const Trk::BinUtility & bu,
52 const std::vector<float> & offset);
53
54
57 const Amg::Transform3D& transf);
58
61 const Trk::BinUtility & bu,
62 const std::vector<float> & offset);
63
64
66 virtual bool operator==(const Surface& sf) const override final;
67
69 virtual SlidingDiscSurface* clone() const override final;
70
74 virtual bool isOnSurface(const Amg::Vector3D& glopo,
75 const BoundaryCheck& bchk = true,
76 double tol1 = 0.,
77 double tol2 = 0.) const override final;
78
81 virtual void localToGlobal(const Amg::Vector2D& locp,
82 const Amg::Vector3D& mom,
83 Amg::Vector3D& glob) const override final;
84
88 virtual bool globalToLocal(const Amg::Vector3D& glob,
89 const Amg::Vector3D& mom,
90 Amg::Vector2D& loc) const override final;
91
112
115 const Amg::Vector3D& pos,
116 const Amg::Vector3D& dir) const override final;
117
120 const Amg::Vector3D& pos,
121 const Amg::Vector3D& dir,
122 bool bound) const override final;
123
125 const Trk::BinUtility & binUtility() const { return m_etaBin; }
126
128 const std::vector<float> & offset() const { return m_depth; }
129
131 virtual std::string name() const override final
132 {
133 return "Trk::SlidingDiscSurface";
134 }
135
136protected:
137 std::vector<float> m_depth{};
139};
140
141inline SlidingDiscSurface*
143{
144 return new SlidingDiscSurface(*this);
145}
146
147} // end of namespace
148
149#endif // TRKSURFACES_SLIDINGDISCSURFACE_H
Eigen::Matrix< double, 3, 1 > Vector3D
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition BinUtility.h:39
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Class to describe the bounds for a planar DiscSurface.
Definition DiscBounds.h:44
DiscSurface()
Default Constructor.
Access to distance solutions.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition ParametersT.h:49
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override final
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
std::vector< float > m_depth
< data members
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks ...
virtual std::string name() const override final
Return properly formatted class name for screen output.
const std::vector< float > & offset() const
This method allows access to the radial offset values.
SlidingDiscSurface(DiscSurface &surf, const Trk::BinUtility &bu, const std::vector< float > &offset)
Constructor.
virtual SlidingDiscSurface * clone() const override final
Virtual constructor.
virtual bool operator==(const Surface &sf) const override final
Equality operator.
const Trk::BinUtility & binUtility() const
This method allows access to the bin utility.
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
Abstract Base Class for tracking surfaces.
This is the base class for all tracking detector elements with read-out relevant information.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.