ATLAS Offline Software
Loading...
Searching...
No Matches
SlidingCylinderSurface.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// SlidingCylinderSurface.h, (c) ATLAS Detector software
8
9#ifndef TRKGEOMETRYSURFACES_SLIDINGCYLINDERSURFACE_H
10#define TRKGEOMETRYSURFACES_SLIDINGCYLINDERSURFACE_H
11
12// Trk
16// Geometry & Math
18#include <string>
19#include <vector>
20
21namespace Trk {
22
32
34{
35public:
36
39 const Trk::BinUtility & bu,
40 const std::vector<float> & offset);
41
42
44 virtual bool operator==(const Surface& sf) const override final;
45
49 virtual bool isOnSurface(const Amg::Vector3D& glopo,
50 const BoundaryCheck& bchk = true,
51 double tol1 = 0.,
52 double tol2 = 0.) const override final;
53
56 virtual void localToGlobal(const Amg::Vector2D& locp,
57 const Amg::Vector3D& mom,
58 Amg::Vector3D& glob) const override final;
59
63 virtual bool globalToLocal(const Amg::Vector3D& glob,
64 const Amg::Vector3D& mom,
65 Amg::Vector2D& loc) const override final;
66
69 const Amg::Vector3D& pos,
70 const Amg::Vector3D& dir) const override final;
71
74 const Amg::Vector3D& pos,
75 const Amg::Vector3D& dir,
76 bool Bound) const override final;
77
79 const Trk::BinUtility& binUtility() const { return m_etaBin; }
80
82 const std::vector<float>& offset() const { return m_depth; }
83
85 virtual std::string name() const override
86 {
87 return "Trk::SlidingCylinderSurface";
88 }
89
90protected:
91 std::vector<float> m_depth{};
93};
94
95} // end of namespace
96
97#endif // TRKGEOMETRYSURFACES_SLIDINGCYLINDERSURFACE_H
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...
CylinderSurface()
Default Constructor.
Access to distance solutions.
virtual std::string name() const override
Return properly formatted class name for screen output.
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line distance evaluation to Surface
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 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.
const Trk::BinUtility & binUtility() const
This method allows access to the bin utility.
const std::vector< float > & offset() const
This method allows access to the radial offset values.
SlidingCylinderSurface(const CylinderSurface &surf, const Trk::BinUtility &bu, const std::vector< float > &offset)
Constructor.
virtual bool operator==(const Surface &sf) const override final
Equality operator.
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...
Abstract Base Class for tracking surfaces.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.