ATLAS Offline Software
Loading...
Searching...
No Matches
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"
14
15namespace Muon {
17}
18
19namespace TrkDriftCircleMath {
20
23 public:
32
33 public:
34
42 DriftCircle(const LocVec2D& pos,
43 double r,
44 double dr,
45 DriftState state,
46 MdtId id,
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,
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:
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
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
122std::ostream& operator<<(std::ostream& os, const TrkDriftCircleMath::DriftCircle& dc);
123
124MsgStream& operator<<(MsgStream& os, const TrkDriftCircleMath::DriftCircle& dc);
125
126#endif
std::ostream & operator<<(std::ostream &os, const TrkDriftCircleMath::DriftCircle &dc)
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
This class represents a drift time measurement.
Definition DriftCircle.h:22
unsigned int index() const
Definition DriftCircle.h:99
virtual ~DriftCircle()=default
destructor
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
double r() const
access to drift radius
Definition DriftCircle.h:86
const MdtId & id() const
access to identifier
Definition DriftCircle.h:77
double x() const
direct access to local x position
Definition DriftCircle.h:80
const LocVec2D & position() const
access to local position
Definition DriftCircle.h:74
double y() const
direct access to local y position
Definition DriftCircle.h:83
double dr() const
access to error drift radius
Definition DriftCircle.h:89
double drPrecise() const
access to precise error drift radius
Definition DriftCircle.h:92
const DriftState & driftState() const
access to drift state
Definition DriftCircle.h:95
void updateRadius(double r, double dr)
set method to allow update from t0 refit
DriftState
state of the drift circle
Definition DriftCircle.h:25
@ EmptyTube
drift time too large to be compatible with drift spectrum
Definition DriftCircle.h:29
@ LateHit
drift time compatible with drift spectrum
Definition DriftCircle.h:28
@ InTime
drift time too small to be compatible with drift spectrum
Definition DriftCircle.h:27
@ NotCrossed
channel without drift measurement
Definition DriftCircle.h:30
const Muon::MdtDriftCircleOnTrack * m_rot
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
const Muon::MdtDriftCircleOnTrack * rot() const
access to the ROT
Definition DriftCircle.h:97
Implementation of 2 dimensional vector class.
Definition LocVec2D.h:16
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Function object to check whether two Segments are sub/super sets or different.
DCVec::const_iterator DCCit
DCVec::iterator DCIt
std::vector< DriftCircle > DCVec
Definition index.py:1