ATLAS Offline Software
Loading...
Searching...
No Matches
ExpandedSector.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_EXPANDEDSECTOR_H
5#define MUONTRACKEVENT_EXPANDEDSECTOR_H
6
8//
9#include "Acts/Utilities/OstreamFormatter.hpp"
10
11#include <cstdint>
12#include <tuple>
13#include <ostream>
14
15
25namespace MuonR4 {
26
28 public:
31 enum class SectorProjector : std::int8_t {
33 center = 0,
35 };
36
37 static std::string toString(const SectorProjector proj);
39 friend std::ostream& operator<<(std::ostream& ostr, const SectorProjector proj) {
40 return ostr<<(toString(proj));
41 }
42 friend std::ostream& operator<<(std::ostream& ostr, const ExpandedSector& sec){
43 return sec.toString(ostr);
44 }
45
50 explicit ExpandedSector(const unsigned msSector,
51 const SectorProjector proj);
56 explicit ExpandedSector(const double phi);
59 explicit ExpandedSector(const std::int8_t expSector);
61 bool operator<(const ExpandedSector& other) const;
63 bool operator==(const ExpandedSector& other) const;
65 bool operator!=(const ExpandedSector& other) const;
71 unsigned msSector() const;
74 unsigned adjacentMsSector() const;
78 std::int8_t sector() const;
80 double phi() const;
87 bool isNeighbour(const ExpandedSector& other) const;
88 private:
90 std::ostream& toString(std::ostream& ostr)const;
92 std::int8_t m_sector{0};
93 };
94
95}
97
98#endif
Scalar phi() const
phi method
ACTS_OSTREAM_FORMATTER(MuonR4::ExpandedSector::SectorProjector)
friend std::ostream & operator<<(std::ostream &ostr, const SectorProjector proj)
Define the ostream operator.
double phi() const
Returns the phi angle of the expanded sector.
Amg::Vector3D normalDir() const
Returns the vector that is normal to the plane spanned by the expanded sector.
std::int8_t m_sector
the sector number stored
friend std::ostream & operator<<(std::ostream &ostr, const ExpandedSector &sec)
bool operator==(const ExpandedSector &other) const
Define the equal operator.
SectorProjector
Enumeration to select the sector projection of the regular MS sector.
@ rightOverlap
Project the segment onto the sector centre.
@ center
Project the segment onto the overlap with the previous sector.
ExpandedSector(const unsigned msSector, const SectorProjector proj)
Constructor of the expanded sector taking the regular MS sector number and the projector.
unsigned msSector() const
Returns the ms sector corresponding to the expanded sector.
std::int8_t sector() const
Returns the expanded sector number.
SectorProjector projector() const
Returns the projector in the corresponding MS sector.
bool isNeighbour(const ExpandedSector &other) const
bool operator!=(const ExpandedSector &other) const
Define the unequal operator.
unsigned adjacentMsSector() const
Returns the neighbouring msSector number constructed from the primary sector and the sector overlap p...
Amg::Vector3D radialDir() const
Returns the vector pointing radially along the sector plane.
static std::string toString(const SectorProjector proj)
Return the projector as a string.
bool operator<(const ExpandedSector &other) const
Define the ordering operator.
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.