ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetRecEvent
SiSPSeededTrackFinderData
src
SiSpacePointForSeed.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include <cmath>
6
7
8
9
#include "
SiSPSeededTrackFinderData/SiSpacePointForSeed.h
"
10
11
#include "
InDetPrepRawData/SiCluster.h
"
12
#include "
InDetReadoutGeometry/SiDetectorElement.h
"
13
#include "
TrkSpacePoint/SpacePoint.h
"
14
#include "
TrkSurfaces/Surface.h
"
15
16
namespace
InDet
{
17
18
SiSpacePointForSeed::SiSpacePointForSeed
19
(
const
Trk::SpacePoint
*
sp
, std::span<float const, 3>
r
)
20
{
21
set
(
sp
,
r
);
m_param
= 0.;
22
}
23
24
SiSpacePointForSeed::SiSpacePointForSeed
25
(
const
Trk::SpacePoint
*
sp
, std::span<float const, 3>
r
, std::span<float const, 4>
sc
)
26
{
27
set
(
sp
,
r
,
sc
);
m_param
= 0.;
28
}
29
30
32
// Set
34
35
void
SiSpacePointForSeed::set
36
(
const
Trk::SpacePoint
*
sp
,std::span<float const, 3>
r
)
37
{
38
spacepoint
=
sp
;
39
m_x
=
r
[0];
40
m_y
=
r
[1];
41
m_z
=
r
[2];
42
m_r
=std::sqrt(
m_x
*
m_x
+
m_y
*
m_y
);
43
m_q
= 100000.;
44
45
const
InDet::SiCluster
* c =
static_cast<
const
InDet::SiCluster
*
>
(
sp
->clusterList().first);
46
const
InDetDD::SiDetectorElement
* de = c ->detectorElement();
47
48
if
( de->
isPixel
() ) {
49
50
const
Amg::MatrixX
& v = c->localCovariance();
51
float
f22 = float(v(1,1) );
52
float
wid = float(c->width().z());
53
float
cov = wid*wid*.08333f;
if
(cov < f22) cov = f22;
54
if
(de->
isBarrel
()) {
m_covz
= 9.f*cov;
m_covr
= .06f;}
55
else
{
m_covr
= 9.f*cov;
m_covz
= .06f;}
56
m_sn
=
nullptr
;
57
}
58
else
{
59
60
const
Amg::MatrixX
& v =
sp
->localCovariance();
61
float
f22 = float(v(1,1));
62
if
(de->
isBarrel
()) {
m_covz
= 8.f*f22;
m_covr
= .1f;}
63
else
{
m_covr
= 8.f*f22;
m_covz
= .1f;}
64
m_sn
= &
sp
->clusterList().second->detectorElement()->surface();
65
}
66
m_su
= &
sp
->clusterList().first->detectorElement()->surface();
67
}
68
70
// Set with error correction
71
// sc[0] - barrel pixels error correction
72
// sc[1] - endcap pixels
73
// sc[2] - barrel sct
74
// sc[3] - endcap sct
76
77
void
SiSpacePointForSeed::set
78
(
const
Trk::SpacePoint
*
sp
,std::span<float const, 3>
r
,std::span<float const, 4>
sc
)
79
{
80
spacepoint
=
sp
;
81
m_x
=
r
[0];
82
m_y
=
r
[1];
83
m_z
=
r
[2];
84
m_r
=std::sqrt(
m_x
*
m_x
+
m_y
*
m_y
);
85
m_q
= 100000.;
86
87
const
InDet::SiCluster
* c =
static_cast<
const
InDet::SiCluster
*
>
(
sp
->clusterList().first);
88
const
InDetDD::SiDetectorElement
* de = c ->detectorElement();
89
90
if
( de->
isPixel
() ) {
91
92
const
Amg::MatrixX
& v = c->localCovariance();
93
float
f22 = float(v(1,1));
94
float
wid = float(c->width().z());
95
float
cov = wid*wid*.08333f;
if
(cov < f22) cov = f22;
96
if
(de->
isBarrel
()) {
m_covz
= 9.f*cov*
sc
[0];
m_covr
= .06f;}
97
else
{
m_covr
= 9.f*cov*
sc
[1];
m_covz
= .06f;}
98
m_sn
=
nullptr
;
99
}
100
else
{
101
102
const
Amg::MatrixX
& v =
sp
->localCovariance();
103
float
f22 = float(v(1,1));
104
if
(de->
isBarrel
()) {
m_covz
= 8.f*f22*
sc
[2];
m_covr
= .1f;}
105
else
{
m_covr
= 8.f*f22*
sc
[3];
m_covz
= .1f;}
106
m_sn
= &
sp
->clusterList().second->detectorElement()->surface();
107
}
108
m_su
= &
sp
->clusterList().first->detectorElement()->surface();
109
}
110
}
// end of name space
sp
static Double_t sp
Definition
LArPhysWaveHECTool.cxx:37
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
SiCluster.h
SiDetectorElement.h
SiSpacePointForSeed.h
Surface.h
SpacePoint.h
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDetDD::SiDetectorElement::isPixel
bool isPixel() const
InDetDD::SiDetectorElement::isBarrel
bool isBarrel() const
InDet::SiCluster
Definition
SiCluster.h:40
InDet::SiSpacePointForSeed::m_covr
float m_covr
Definition
SiSpacePointForSeed.h:83
InDet::SiSpacePointForSeed::spacepoint
const Trk::SpacePoint * spacepoint
Definition
SiSpacePointForSeed.h:59
InDet::SiSpacePointForSeed::m_covz
float m_covz
Definition
SiSpacePointForSeed.h:84
InDet::SiSpacePointForSeed::m_y
float m_y
Definition
SiSpacePointForSeed.h:80
InDet::SiSpacePointForSeed::m_q
float m_q
penalty term in the seed score
Definition
SiSpacePointForSeed.h:91
InDet::SiSpacePointForSeed::m_z
float m_z
Definition
SiSpacePointForSeed.h:81
InDet::SiSpacePointForSeed::SiSpacePointForSeed
SiSpacePointForSeed()=default
InDet::SiSpacePointForSeed::m_r
float m_r
Definition
SiSpacePointForSeed.h:82
InDet::SiSpacePointForSeed::m_x
float m_x
Definition
SiSpacePointForSeed.h:79
InDet::SiSpacePointForSeed::m_param
float m_param
Definition
SiSpacePointForSeed.h:89
InDet::SiSpacePointForSeed::set
void set(const Trk::SpacePoint *, std::span< float const, 3 >)
Definition
SiSpacePointForSeed.cxx:36
InDet::SiSpacePointForSeed::m_sn
const Trk::Surface * m_sn
Definition
SiSpacePointForSeed.h:93
InDet::SiSpacePointForSeed::m_su
const Trk::Surface * m_su
quality of the best seed this candidate was seen on
Definition
SiSpacePointForSeed.h:92
Trk::SpacePoint
Definition
Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:35
r
int r
Definition
globals.cxx:22
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition
EventPrimitives.h:27
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
Generated on
for ATLAS Offline Software by
1.17.0