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
LineSurface.hpp
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file LineSurface.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
#include "
Acts/Geometry/GeometryContext.hpp
"
11
#include "
Acts/Geometry/GeometryStatics.hpp
"
12
#include "
Acts/Geometry/Polyhedron.hpp
"
13
#include "
Acts/Surfaces/InfiniteBounds.hpp
"
14
#include "
Acts/Surfaces/LineBounds.hpp
"
15
#include "
Acts/Surfaces/Surface.hpp
"
16
#include "
Acts/Utilities/Definitions.hpp
"
17
18
namespace
Acts {
19
20
class
LineBounds;
21
31
class
LineSurface
:
public
Surface
{
32
friend
Surface
;
33
34
protected
:
40
LineSurface
(std::shared_ptr<const Transform3D> htrans,
double
radius
,
41
double
halez);
42
48
LineSurface
(std::shared_ptr<const Transform3D> htrans,
49
std::shared_ptr<const LineBounds> lbounds =
nullptr
);
50
55
LineSurface
(
const
std::shared_ptr<const LineBounds>& lbounds,
56
const
DetectorElementBase
& detelement);
57
61
LineSurface
(
const
LineSurface
& other);
62
68
LineSurface
(
const
GeometryContext
&
gctx
,
const
LineSurface
& other,
69
const
Transform3D
& transf);
70
71
public
:
73
~LineSurface
()
override
=
default
;
74
76
LineSurface
() =
delete
;
77
81
LineSurface
&
operator=
(
const
LineSurface
& other);
82
89
const
Vector3D
normal
(
const
GeometryContext
&
gctx
,
90
const
Vector2D
& lposition)
const
final
;
91
93
using
Surface::normal
;
94
102
const
Vector3D
binningPosition
(
const
GeometryContext
&
gctx
,
103
BinningValue
bValue)
const
final
;
104
117
const
RotationMatrix3D
referenceFrame
(
const
GeometryContext
&
gctx
,
118
const
Vector3D
&
position
,
119
const
Vector3D
&
momentum
)
const
final
;
120
132
void
initJacobianToGlobal
(
const
GeometryContext
&
gctx
,
133
BoundToFreeMatrix
& jacobian,
134
const
Vector3D
&
position
,
const
Vector3D
& direction,
135
const
BoundVector
& pars)
const
final
;
136
148
const
BoundRowVector
derivativeFactors
(
149
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
150
const
Vector3D
& direction,
const
RotationMatrix3D
& rft,
151
const
BoundToFreeMatrix
& jacobian)
const
final
;
152
161
void
localToGlobal
(
const
GeometryContext
&
gctx
,
const
Vector2D
& lposition,
162
const
Vector3D
&
momentum
,
Vector3D
&
position
)
const
final
;
163
202
bool
globalToLocal
(
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
203
const
Vector3D
&
momentum
,
Vector2D
& lposition)
const
final
;
204
241
Intersection
intersectionEstimate
(
242
const
GeometryContext
&
gctx
,
const
Vector3D
&
position
,
243
const
Vector3D
& direction,
244
const
BoundaryCheck
& bcheck =
false
) const final;
245
251
double
pathCorrection
(const
GeometryContext
& gctx, const
Vector3D
& position,
252
const
Vector3D
&
momentum
) const override;
253
255
const
SurfaceBounds
&
bounds
() const final;
256
258
std::
string
name
() const override;
259
260
protected:
261
std::
shared_ptr
<const
LineBounds
>
m_bounds
;
262
263
private:
270
bool
globalToLocalPlain
(const
GeometryContext
& gctx, const
Vector3D
& position,
271
const
Vector3D
&
momentum
,
Vector2D
& lposition) const;
272
};
273
274
#include "Acts/Surfaces/detail/LineSurface.ipp"
275
276
}
// namespace Acts
acts
blob
master
Core
include
Acts
Surfaces
LineSurface.hpp
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:21
using
1.8.2 with
ECCE GitHub integration