ATLAS Offline Software
Loading...
Searching...
No Matches
NoBounds.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// CylinderBounds.h, (c) ATLAS Detector software
8
9#ifndef TRKSURFACES_NOBOUNDS_H
10#define TRKSURFACES_NOBOUNDS_H
11
14
15// Eigen
17
18class MsgStream;
19
20namespace Trk {
21
28
29class NoBounds final : public SurfaceBounds
30{
31public:
33 NoBounds() = default;
34 NoBounds(const NoBounds&) = default;
35 NoBounds& operator=(const NoBounds&) = default;
36 NoBounds(NoBounds&&) noexcept = default;
37 NoBounds& operator=(NoBounds&&) noexcept = default;
39 ~NoBounds() = default;
40
42 virtual bool operator==(const SurfaceBounds& sbo) const override final;
43
45 virtual SurfaceBounds::BoundsType type() const override { return SurfaceBounds::Other; }
46
48 virtual bool inside(const Amg::Vector2D& locpo, double tol1 = 0., double tol2 = 0.) const override final;
49 virtual bool inside(const Amg::Vector2D& locpo, const BoundaryCheck& bchk) const override final;
52 virtual bool insideLoc1(const Amg::Vector2D& locpo, double tol1 = 0.) const override final;
53
56 virtual bool insideLoc2(const Amg::Vector2D& locpo, double tol2 = 0.) const override final;
57
59 virtual double minDistance(const Amg::Vector2D& pos) const override final;
60
62 virtual NoBounds* clone() const override final;
63
65 virtual double r() const override final;
66
68 virtual MsgStream& dump(MsgStream& sl) const override final;
69
71 virtual std::ostream& dump(std::ostream& sl) const override final;
72
73};
74} // end of namespace
75
76#include "TrkSurfaces/NoBounds.icc"
77#endif // TRKSURFACES_NOBOUNDS_H
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
NoBounds(const NoBounds &)=default
NoBounds()=default
Default Constructor.
NoBounds(NoBounds &&) noexcept=default
virtual bool insideLoc2(const Amg::Vector2D &locpo, double tol2=0.) const override final
This method checks inside bounds in loc2.
virtual bool insideLoc1(const Amg::Vector2D &locpo, double tol1=0.) const override final
This method checks inside bounds in loc1.
virtual double r() const override final
r() method to complete inherited interface
virtual NoBounds * clone() const override final
Clone method to complete inherited interface.
virtual SurfaceBounds::BoundsType type() const override
Return SurfaceBounds for persistency.
Definition NoBounds.h:45
virtual bool inside(const Amg::Vector2D &locpo, double tol1=0., double tol2=0.) const override final
Method inside() returns true for any case.
NoBounds & operator=(const NoBounds &)=default
virtual double minDistance(const Amg::Vector2D &pos) const override final
Minimal distance to boundary (=0 if inside)
SurfaceBounds()=default
Default Constructor.
BoundsType
This enumerator simplifies the persistency, by saving a dynamic_cast to happen.
STL class.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 2, 1 > Vector2D
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file
STL namespace.