ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkUtilityPackages
TrkDriftCircleMath
TrkDriftCircleMath
ResidualWithSegment.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef DCMATH_RESIDUALWITHSEGMENT_H
6
#define DCMATH_RESIDUALWITHSEGMENT_H
7
8
#include "
TrkDriftCircleMath/Cluster.h
"
9
#include "
TrkDriftCircleMath/DriftCircle.h
"
10
#include "
TrkDriftCircleMath/Line.h
"
11
#include "
TrkDriftCircleMath/LocVec2D.h
"
12
#include "
TrkDriftCircleMath/ResidualWithLine.h
"
13
#include "
TrkDriftCircleMath/Segment.h
"
14
15
namespace
TrkDriftCircleMath
{
16
20
class
ResidualWithSegment
:
public
ResidualWithLine
{
21
public
:
22
ResidualWithSegment
(
const
Segment
& segment) :
23
ResidualWithLine
(segment.line()),
24
m_line
(segment.line()),
25
m_errorY02
(segment.dy0() * segment.dy0()),
26
m_errorPhi2
(segment.dtheta() * segment.dtheta()) {}
27
29
double
trackError2
(
const
DriftCircle
& dc)
const
{
30
LocVec2D
posInLineFrame =
m_transToLine
.toLine(dc.
position
());
31
return
m_errorY02
+ posInLineFrame.
x
() *
m_errorPhi2
;
32
}
33
35
double
trackError2
(
const
Cluster
& cl)
const
{
36
double
yDistToSegment = cl.position().y() -
m_line
.position().y();
37
38
double
sinPhi =
m_transToLine
.toLineRotation().sinphi();
39
if
(sinPhi < 1e-13) sinPhi = 1e-13;
40
double
invSinPhi2 = sinPhi * sinPhi;
41
invSinPhi2 = 1. / invSinPhi2;
42
43
return
m_errorY02
* invSinPhi2 + yDistToSegment * yDistToSegment * invSinPhi2 *
m_errorPhi2
;
44
}
45
46
private
:
47
Line
m_line
;
48
double
m_errorY02
;
49
double
m_errorPhi2
;
50
};
51
52
}
// namespace TrkDriftCircleMath
53
54
#endif
DriftCircle.h
Line.h
LocVec2D.h
ResidualWithLine.h
Cluster.h
Segment.h
TrkDriftCircleMath::Cluster
class representing a cluster meaurement
Definition
Tracking/TrkUtilityPackages/TrkDriftCircleMath/TrkDriftCircleMath/Cluster.h:22
TrkDriftCircleMath::DriftCircle
This class represents a drift time measurement.
Definition
DriftCircle.h:22
TrkDriftCircleMath::DriftCircle::position
const LocVec2D & position() const
access to local position
Definition
DriftCircle.h:74
TrkDriftCircleMath::Line
Definition
Line.h:17
TrkDriftCircleMath::LocVec2D
Implementation of 2 dimensional vector class.
Definition
LocVec2D.h:16
TrkDriftCircleMath::LocVec2D::x
double x() const
Returns the x coordinate of the vector.
Definition
LocVec2D.h:27
TrkDriftCircleMath::ResidualWithLine::m_transToLine
TransformToLine m_transToLine
Definition
ResidualWithLine.h:37
TrkDriftCircleMath::ResidualWithLine::ResidualWithLine
ResidualWithLine()=default
TrkDriftCircleMath::ResidualWithSegment::ResidualWithSegment
ResidualWithSegment(const Segment &segment)
Definition
ResidualWithSegment.h:22
TrkDriftCircleMath::ResidualWithSegment::trackError2
double trackError2(const DriftCircle &dc) const
calculate the track error at the position of a drift circle
Definition
ResidualWithSegment.h:29
TrkDriftCircleMath::ResidualWithSegment::m_errorPhi2
double m_errorPhi2
Definition
ResidualWithSegment.h:49
TrkDriftCircleMath::ResidualWithSegment::trackError2
double trackError2(const Cluster &cl) const
calculate the track error at the position of a cluster
Definition
ResidualWithSegment.h:35
TrkDriftCircleMath::ResidualWithSegment::m_errorY02
double m_errorY02
Definition
ResidualWithSegment.h:48
TrkDriftCircleMath::ResidualWithSegment::m_line
Line m_line
Definition
ResidualWithSegment.h:47
TrkDriftCircleMath::Segment
Definition
Tracking/TrkUtilityPackages/TrkDriftCircleMath/TrkDriftCircleMath/Segment.h:18
TrkDriftCircleMath
Function object to check whether two Segments are sub/super sets or different.
Definition
IMdtSegmentFinder.h:13
Generated on
for ATLAS Offline Software by
1.17.0