ATLAS Offline Software
Loading...
Searching...
No Matches
TransformToLine.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_TRANSFORMTOLINE_H
6#define DCMATH_TRANSFORMTOLINE_H
7
8#include <cmath>
9
12
13namespace TrkDriftCircleMath {
14
16 public:
17 TransformToLine() = default;
18 TransformToLine(const Line& line) : m_toLineRot(line.phi()), m_toLocalRot(-line.phi()), m_shift(line.x0(), line.y0()) {}
19
20 LocVec2D toLine(const LocVec2D& pos) const { return m_toLineRot * pos - m_shift; }
21
23 double toLineX(const LocVec2D& pos) const { return m_toLineRot.xval(pos) - m_shift.x(); }
24 double toLineY(const LocVec2D& pos) const { return m_toLineRot.yval(pos) - m_shift.y(); }
25
26 LocVec2D toLocal(const LocVec2D& pos) const { return m_toLocalRot * (pos + m_shift); }
27
28 void set(const Line& line) {
29 m_toLineRot.set(line.phi());
30 m_toLocalRot.set(-line.phi());
31 m_shift.setX(line.x0());
32 m_shift.setY(line.y0());
33 }
34
35 DriftCircle toLine(const DriftCircle& dc) const {
36 return DriftCircle(toLine(dc.position()), dc.r(), dc.dr(), dc.driftState(), dc.id(), dc.rot(), dc.index());
37 }
38 DriftCircle toLocal(const DriftCircle& dc) const {
39 return DriftCircle(toLocal(dc.position()), dc.r(), dc.dr(), dc.driftState(), dc.id(), dc.rot(), dc.index());
40 }
41
43 const RotPhi& toLineRotation() const { return m_toLineRot; }
44
46 const RotPhi& toLocalRotation() const { return m_toLocalRot; }
47
48 private:
52 };
53
54} // namespace TrkDriftCircleMath
55
56#endif
Scalar phi() const
phi method
This class represents a drift time measurement.
Definition DriftCircle.h:22
unsigned int index() const
Definition DriftCircle.h:99
double r() const
access to drift radius
Definition DriftCircle.h:86
const MdtId & id() const
access to identifier
Definition DriftCircle.h:77
const LocVec2D & position() const
access to local position
Definition DriftCircle.h:74
double dr() const
access to error drift radius
Definition DriftCircle.h:89
const DriftState & driftState() const
access to drift state
Definition DriftCircle.h:95
const Muon::MdtDriftCircleOnTrack * rot() const
access to the ROT
Definition DriftCircle.h:97
Implementation of 2 dimensional vector class.
Definition LocVec2D.h:16
DriftCircle toLine(const DriftCircle &dc) const
double toLineY(const LocVec2D &pos) const
const RotPhi & toLocalRotation() const
rotate position in line frame into local frame
double toLineX(const LocVec2D &pos) const
only get one coordinate -> faster
LocVec2D toLocal(const LocVec2D &pos) const
DriftCircle toLocal(const DriftCircle &dc) const
LocVec2D toLine(const LocVec2D &pos) const
const RotPhi & toLineRotation() const
rotate local position into line frame
Function object to check whether two Segments are sub/super sets or different.