ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkUtilityPackages
TrkDriftCircleMath
TrkDriftCircleMath
DriftCircle.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef DCMATH_DRIFTCIRCLE_H
6
#define DCMATH_DRIFTCIRCLE_H
7
8
#include <ostream>
9
#include <vector>
10
11
#include "GaudiKernel/MsgStream.h"
12
#include "
TrkDriftCircleMath/LocVec2D.h
"
13
#include "
TrkDriftCircleMath/MdtId.h
"
14
15
namespace
Muon
{
16
class
MdtDriftCircleOnTrack
;
17
}
18
19
namespace
TrkDriftCircleMath
{
20
22
class
DriftCircle
{
23
public
:
25
enum
DriftState
{
26
EarlyHit
= -1,
27
InTime
= 0,
28
LateHit
= 1,
29
EmptyTube
= 2,
30
NotCrossed
= 3
31
};
32
33
public
:
34
42
DriftCircle
(
const
LocVec2D
& pos,
43
double
r
,
44
double
dr
,
45
DriftState
state,
46
MdtId
id
,
47
const
Muon::MdtDriftCircleOnTrack
*
rot
,
48
unsigned
int
index
= 0) :
49
m_pos
(pos),
m_r
(
r
),
m_dr
(
dr
),
m_drPrecise
(
dr
),
m_state
(state),
m_id
(
id
),
m_rot
(
rot
),
m_idx
{
index
} {}
50
59
DriftCircle
(
const
LocVec2D
& pos,
60
double
r
,
61
double
dr
,
62
double
drPrecise
,
63
DriftState
state,
64
MdtId
id
,
65
const
Muon::MdtDriftCircleOnTrack
*
rot
,
66
unsigned
int
index
= 0) :
67
m_pos
(pos),
m_r
(
r
),
m_dr
(
dr
),
m_drPrecise
(
drPrecise
),
m_state
(state),
m_id
(
id
),
m_rot
(
rot
),
68
m_idx
{
index
} {}
69
71
virtual
~DriftCircle
() =
default
;
72
74
const
LocVec2D
&
position
()
const
{
return
m_pos
; }
75
77
const
MdtId
&
id
()
const
{
return
m_id
; }
78
80
double
x
()
const
{
return
m_pos
.x(); }
81
83
double
y
()
const
{
return
m_pos
.y(); }
84
86
double
r
()
const
{
return
m_r
; }
87
89
double
dr
()
const
{
return
m_dr
; }
90
92
double
drPrecise
()
const
{
return
m_drPrecise
; }
93
95
const
DriftState
&
driftState
()
const
{
return
m_state
; }
97
const
Muon::MdtDriftCircleOnTrack
*
rot
()
const
{
return
m_rot
; }
98
99
unsigned
int
index
()
const
{
return
m_idx
; }
101
void
updateRadius
(
double
r
,
double
dr
) {
102
m_r
=
r
;
103
m_dr
=
dr
;
104
}
105
106
private
:
107
LocVec2D
m_pos
{0., 0.};
108
double
m_r
{0.};
109
double
m_dr
{0.};
110
double
m_drPrecise
{0.};
111
DriftState
m_state
;
// Masked by DCOnTrack::m_state which is a DCOnTrackState
112
MdtId
m_id
{};
113
const
Muon::MdtDriftCircleOnTrack
*
m_rot
{
nullptr
};
114
unsigned
int
m_idx
{0};
115
};
116
117
typedef
std::vector<DriftCircle>
DCVec
;
118
typedef
DCVec::iterator
DCIt
;
119
typedef
DCVec::const_iterator
DCCit
;
120
}
// namespace TrkDriftCircleMath
121
122
std::ostream&
operator<<
(std::ostream& os,
const
TrkDriftCircleMath::DriftCircle
& dc);
123
124
MsgStream&
operator<<
(MsgStream& os,
const
TrkDriftCircleMath::DriftCircle
& dc);
125
126
#endif
operator<<
std::ostream & operator<<(std::ostream &os, const TrkDriftCircleMath::DriftCircle &dc)
Definition
DriftCircle.cxx:24
LocVec2D.h
MdtId.h
Muon::MdtDriftCircleOnTrack
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
Definition
MdtDriftCircleOnTrack.h:37
TrkDriftCircleMath::DriftCircle
This class represents a drift time measurement.
Definition
DriftCircle.h:22
TrkDriftCircleMath::DriftCircle::m_pos
LocVec2D m_pos
Definition
DriftCircle.h:107
TrkDriftCircleMath::DriftCircle::m_r
double m_r
Definition
DriftCircle.h:108
TrkDriftCircleMath::DriftCircle::index
unsigned int index() const
Definition
DriftCircle.h:99
TrkDriftCircleMath::DriftCircle::~DriftCircle
virtual ~DriftCircle()=default
destructor
TrkDriftCircleMath::DriftCircle::DriftCircle
DriftCircle(const LocVec2D &pos, double r, double dr, double drPrecise, DriftState state, MdtId id, const Muon::MdtDriftCircleOnTrack *rot, unsigned int index=0)
full constructor
Definition
DriftCircle.h:59
TrkDriftCircleMath::DriftCircle::r
double r() const
access to drift radius
Definition
DriftCircle.h:86
TrkDriftCircleMath::DriftCircle::id
const MdtId & id() const
access to identifier
Definition
DriftCircle.h:77
TrkDriftCircleMath::DriftCircle::x
double x() const
direct access to local x position
Definition
DriftCircle.h:80
TrkDriftCircleMath::DriftCircle::position
const LocVec2D & position() const
access to local position
Definition
DriftCircle.h:74
TrkDriftCircleMath::DriftCircle::y
double y() const
direct access to local y position
Definition
DriftCircle.h:83
TrkDriftCircleMath::DriftCircle::m_state
DriftState m_state
Definition
DriftCircle.h:111
TrkDriftCircleMath::DriftCircle::dr
double dr() const
access to error drift radius
Definition
DriftCircle.h:89
TrkDriftCircleMath::DriftCircle::m_id
MdtId m_id
Definition
DriftCircle.h:112
TrkDriftCircleMath::DriftCircle::drPrecise
double drPrecise() const
access to precise error drift radius
Definition
DriftCircle.h:92
TrkDriftCircleMath::DriftCircle::m_dr
double m_dr
Definition
DriftCircle.h:109
TrkDriftCircleMath::DriftCircle::m_drPrecise
double m_drPrecise
Definition
DriftCircle.h:110
TrkDriftCircleMath::DriftCircle::m_idx
unsigned int m_idx
Definition
DriftCircle.h:114
TrkDriftCircleMath::DriftCircle::driftState
const DriftState & driftState() const
access to drift state
Definition
DriftCircle.h:95
TrkDriftCircleMath::DriftCircle::updateRadius
void updateRadius(double r, double dr)
set method to allow update from t0 refit
Definition
DriftCircle.h:101
TrkDriftCircleMath::DriftCircle::DriftState
DriftState
state of the drift circle
Definition
DriftCircle.h:25
TrkDriftCircleMath::DriftCircle::EarlyHit
@ EarlyHit
Definition
DriftCircle.h:26
TrkDriftCircleMath::DriftCircle::EmptyTube
@ EmptyTube
drift time too large to be compatible with drift spectrum
Definition
DriftCircle.h:29
TrkDriftCircleMath::DriftCircle::LateHit
@ LateHit
drift time compatible with drift spectrum
Definition
DriftCircle.h:28
TrkDriftCircleMath::DriftCircle::InTime
@ InTime
drift time too small to be compatible with drift spectrum
Definition
DriftCircle.h:27
TrkDriftCircleMath::DriftCircle::NotCrossed
@ NotCrossed
channel without drift measurement
Definition
DriftCircle.h:30
TrkDriftCircleMath::DriftCircle::m_rot
const Muon::MdtDriftCircleOnTrack * m_rot
Definition
DriftCircle.h:113
TrkDriftCircleMath::DriftCircle::DriftCircle
DriftCircle(const LocVec2D &pos, double r, double dr, DriftState state, MdtId id, const Muon::MdtDriftCircleOnTrack *rot, unsigned int index=0)
full constructor
Definition
DriftCircle.h:42
TrkDriftCircleMath::DriftCircle::rot
const Muon::MdtDriftCircleOnTrack * rot() const
access to the ROT
Definition
DriftCircle.h:97
TrkDriftCircleMath::LocVec2D
Implementation of 2 dimensional vector class.
Definition
LocVec2D.h:16
TrkDriftCircleMath::MdtId
Definition
MdtId.h:14
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
TrkDriftCircleMath
Function object to check whether two Segments are sub/super sets or different.
Definition
IMdtSegmentFinder.h:13
TrkDriftCircleMath::DCCit
DCVec::const_iterator DCCit
Definition
DriftCircle.h:119
TrkDriftCircleMath::DCIt
DCVec::iterator DCIt
Definition
DriftCircle.h:118
TrkDriftCircleMath::DCVec
std::vector< DriftCircle > DCVec
Definition
DriftCircle.h:117
index
Definition
index.py:1
Generated on
for ATLAS Offline Software by
1.17.0