ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PlaneSurface.hpp
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PlaneSurface.hpp
1
// This file is part of the Acts project.
2
//
3
// Copyright (C) 2016-2020 CERN for the benefit of the Acts project
4
//
5
// This Source Code Form is subject to the terms of the Mozilla Public
6
// License, v. 2.0. If a copy of the MPL was not distributed with this
7
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9
#pragma once
10
11
#include <limits>
12
#include "
Acts/Geometry/GeometryContext.hpp
"
13
#include "
Acts/Geometry/GeometryStatics.hpp
"
14
#include "
Acts/Geometry/Polyhedron.hpp
"
15
#include "
Acts/Surfaces/InfiniteBounds.hpp
"
16
#include "
Acts/Surfaces/PlanarBounds.hpp
"
17
#include "
Acts/Surfaces/Surface.hpp
"
18
#include "
Acts/Surfaces/detail/PlanarHelper.hpp
"
19
#include "
Acts/Utilities/Definitions.hpp
"
20
21
namespace
Acts {
22
23
class
DetectorElementBase;
24
34
class
PlaneSurface
:
public
Surface
{
35
friend
Surface
;
36
37
protected
:
39
PlaneSurface
();
40
44
PlaneSurface
(
const
PlaneSurface
& other);
45
51
PlaneSurface
(
const
GeometryContext
&
gctx
,
const
PlaneSurface
& other,
52
const
Transform3D
& transf);
53
59
PlaneSurface
(
const
Vector3D
&
center
,
const
Vector3D
&
normal
);
60
65
PlaneSurface
(
const
std::shared_ptr<const PlanarBounds>& pbounds,
66
const
DetectorElementBase
& detelement);
67
72
PlaneSurface
(std::shared_ptr<const Transform3D> htrans,
73
std::shared_ptr<const PlanarBounds> pbounds =
nullptr
);
74
75
public
:
77
~PlaneSurface
()
override
=
default
;
78
82
PlaneSurface
&
operator=
(
const
PlaneSurface
& other);
83
90
const
Vector3D
normal
(
const
GeometryContext
&
gctx
,
91
const
Vector2D
& lposition)
const
final
;
92
94
using
Surface::normal
;
95
103
const
Vector3D
binningPosition
(
const
GeometryContext
&
gctx
,
104
BinningValue
bValue)
const
final
;
105
107
SurfaceType
type
()
const override
;
108
110
const
SurfaceBounds
&
bounds
()
const override
;
111
121
void
localToGlobal
(
const
GeometryContext
&
gctx
,
const
Vector2D
& lposition,
122
const
Vector3D
&
momentum
,
123
Vector3D
&
position
)
const override
;
124
138
bool
globalToLocal
(
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
139
const
Vector3D
&
momentum
,
140
Vector2D
& lposition)
const override
;
141
150
double
pathCorrection
(
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
151
const
Vector3D
& direction)
const
final
;
152
179
Intersection
intersectionEstimate
(
180
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
181
const
Vector3D
& direction,
182
const
BoundaryCheck
& bcheck =
false
) const final;
183
192
Polyhedron
polyhedronRepresentation
(const
GeometryContext
& gctx,
193
size_t
lseg) const override;
194
196
std::
string
name
() const override;
197
198
protected:
200
std::
shared_ptr
<const
PlanarBounds
>
m_bounds
;
201
202
private:
203
};
204
205
#include "Acts/Surfaces/detail/PlaneSurface.ipp"
206
207
}
// end of namespace Acts
acts
blob
master
Core
include
Acts
Surfaces
PlaneSurface.hpp
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:21
using
1.8.2 with
ECCE GitHub integration