ATLAS Offline Software
Loading...
Searching...
No Matches
Circle.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONTRACKEVENT_CIRCLE_H
5#define MUONTRACKEVENT_CIRCLE_H
6
8
9#include <ostream>
10
11namespace MuonR4{
15 class Circle{
16 public:
23 explicit Circle(const Amg::Vector3D& pointA,
24 const Amg::Vector3D& pointB,
25 const Amg::Vector3D& pointC);
26
28 const Amg::Vector3D& center() const { return m_center; }
30 const Amg::Vector3D& normal() const { return m_normal; }
32 double radius() const { return m_radius; }
34 inline friend std::ostream& operator<<(std::ostream& ostr, const Circle& circ) {
35 return circ.print(ostr);
36 }
37 private:
38 std::ostream& print(std::ostream& ostr) const;
40 Amg::Vector3D m_center{Amg::Vector3D::Zero()};
42 Amg::Vector3D m_normal{Amg::Vector3D::Zero()};
44 double m_radius{0.};
45
46
47 };
48}
49
50#endif
const Amg::Vector3D & center() const
The center point of the circle.
Definition Circle.h:28
friend std::ostream & operator<<(std::ostream &ostr, const Circle &circ)
Define the ostream operator.
Definition Circle.h:34
const Amg::Vector3D & normal() const
The vector that is normal to the circle.
Definition Circle.h:30
double m_radius
The radius of the circle.
Definition Circle.h:44
Amg::Vector3D m_center
The center point of the circle.
Definition Circle.h:40
double radius() const
The radius of the circle.
Definition Circle.h:32
Amg::Vector3D m_normal
The plane normal of the circle.
Definition Circle.h:42
Circle(const Amg::Vector3D &pointA, const Amg::Vector3D &pointB, const Amg::Vector3D &pointC)
Constructor taking three points in a plane If points are on a line, the plane is set to be the null v...
Definition Circle.cxx:16
std::ostream & print(std::ostream &ostr) const
Definition Circle.cxx:10
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.