EIC Software
Reference for
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 "
Acts/Geometry/GeometryContext.hpp
"
12
#include "
Acts/Geometry/GeometryStatics.hpp
"
13
#include "
Acts/Geometry/Polyhedron.hpp
"
14
#include "
Acts/Surfaces/InfiniteBounds.hpp
"
15
#include "
Acts/Surfaces/PlanarBounds.hpp
"
16
#include "
Acts/Surfaces/Surface.hpp
"
17
#include "
Acts/Surfaces/detail/PlanarHelper.hpp
"
18
#include "
Acts/Utilities/Definitions.hpp
"
19
20
#include <limits>
21
22
namespace
Acts {
23
24
class
DetectorElementBase;
25
35
class
PlaneSurface
:
public
Surface
{
36
friend
Surface
;
37
38
protected
:
42
PlaneSurface
(
const
PlaneSurface
& other);
43
49
PlaneSurface
(
const
GeometryContext
&
gctx
,
const
PlaneSurface
& other,
50
const
Transform3D
& transf);
51
57
PlaneSurface
(
const
Vector3D
&
center
,
const
Vector3D
&
normal
);
58
63
PlaneSurface
(
const
std::shared_ptr<const PlanarBounds>& pbounds,
64
const
DetectorElementBase
& detelement);
65
70
PlaneSurface
(
const
Transform3D
& htrans,
71
std::shared_ptr<const PlanarBounds> pbounds =
nullptr
);
72
73
public
:
74
~PlaneSurface
()
override
=
default
;
75
PlaneSurface
() =
delete
;
76
80
PlaneSurface
&
operator=
(
const
PlaneSurface
& other);
81
88
Vector3D
normal
(
const
GeometryContext
&
gctx
,
89
const
Vector2D
& lposition)
const
final
;
90
92
using
Surface::normal
;
93
101
Vector3D
binningPosition
(
const
GeometryContext
&
gctx
,
102
BinningValue
bValue)
const
final
;
103
105
SurfaceType
type
()
const override
;
106
108
const
SurfaceBounds
&
bounds
()
const override
;
109
119
Vector3D
localToGlobal
(
const
GeometryContext
&
gctx
,
const
Vector2D
& lposition,
120
const
Vector3D
&
momentum
)
const override
;
121
134
Result<Vector2D>
globalToLocal
(
const
GeometryContext
&
gctx
,
135
const
Vector3D
&
position
,
136
const
Vector3D
&
momentum
)
const override
;
137
146
double
pathCorrection
(
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
147
const
Vector3D
& direction)
const
final
;
148
175
SurfaceIntersection
intersect
(
176
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
177
const
Vector3D
& direction,
178
const
BoundaryCheck
& bcheck =
false
) const final;
179
188
Polyhedron
polyhedronRepresentation
(const
GeometryContext
& gctx,
189
size_t
lseg) const override;
190
192
std::
string
name
() const override;
193
202
LocalCartesianToBoundLocalMatrix
localCartesianToBoundLocalDerivative
(
203
const
GeometryContext
& gctx, const
Vector3D
& position) const final;
204
205
protected:
207
std::
shared_ptr
<const
PlanarBounds
>
m_bounds
;
208
209
private:
210
};
211
212
#include "Acts/Surfaces/detail/PlaneSurface.ipp"
213
214
}
// end of namespace Acts
acts
blob
sPHENIX
Core
include
Acts
Surfaces
PlaneSurface.hpp
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:23
using
1.8.2 with
EIC GitHub integration