ATLAS Offline Software
Loading...
Searching...
No Matches
SubtractedCylinderSurface.icc
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5namespace Trk {
6inline bool
7SubtractedCylinderSurface::insideBounds(const Amg::Vector2D& locpos,
8 double tol1,
9 double tol2) const
10{
11 // no subtracted volume exists
12 if (!m_subtrVol.get())
13 return (this->bounds().inside(locpos, tol1, tol2));
14 // subtracted volume exists, needs to be checked
15 double rCyl = bounds().r();
16 double phiPos = locpos[Trk::locRPhi] / rCyl;
17 const Amg::Vector3D gp(rCyl * cos(phiPos), rCyl * sin(phiPos), locpos[Trk::locZ]);
18
19 bool inside_shared(this->bounds().inside(locpos, tol1, tol2) &&
20 m_subtrVol.get()->inside(gp, 0.));
21 bool inside(this->bounds().inside(locpos, tol1, tol2) &&
22 !m_subtrVol.get()->inside(gp, 0.));
23
24 if (m_shared){
25 return inside_shared;
26 }
27 return inside;
28}
29
30inline bool
31SubtractedCylinderSurface::shared() const
32{
33 return m_shared;
34}
35
36inline const AreaExcluder*
37SubtractedCylinderSurface::subtractedVolume() const
38{
39 return m_subtrVol.get();
40}
41}