ATLAS Offline Software
Loading...
Searching...
No Matches
Muon/L1MuonNSW/src/MMT_Hit.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef L1MUONNSW_MMT_HIT_H
6#define L1MUONNSW_MMT_HIT_H
7
9#include "Identifier/Identifier.h"
14
15#include "L1MMDefinitions.h"
16
17#include <cmath>
18
19namespace L1Muon::L1MM {
20
39 class MMT_Hit {
40 public:
41 MMT_Hit(const Identifier& id, const float stripTime, const int BC,
42 const MuonGMR4::MuonDetectorManager* detManager,
43 const ActsTrk::GeometryContext& gctx);
44
45 ~MMT_Hit() = default;
46
47 // Getters
48 int getART() const { return m_ART_ASIC; }
49 int getAge() const { return m_age; }
50 int getBC() const { return m_BC_time; }
51 int getChannel() const { return m_strip; }
53 int getGlobalStrip() const { return m_globalStrip; }
54 int getPlane() const { return m_plane; }
55 char getSector() const { return m_sector; }
56 double getRZSlope() const { return m_RZslope; }
57 int getVMM() const { return m_VMM_chip; }
58 double getShift() const { return m_shift; }
59 int getStationEta() const { return m_station_eta; }
60 int getStationPhi() const { return m_station_phi; }
61 int getSectorPhi() const { return m_sector_phi; }
62 double getR() const { return m_R; }
63 double getRp() const { return m_Rp; }
64 double getZ() const { return m_Z; }
65 double getPitchOverZ() const { return m_PitchOverZ; }
66 float getTime() const { return m_time; }
67 LayerType getType() const { return m_type; }
68 bool isX() const { return m_type == LayerType::X; }
69 bool isU() const { return m_type == LayerType::U; }
70 bool isV() const { return m_type == LayerType::V; }
71 bool infSlope() const { return std::isinf(m_RZslope); }
72
73 // Debug getters (new w.r.t. Run 3): reference quantities entering m_Rp / m_shift
75 double getRefR0() const { return m_refR0; }
77 double getRefZ0() const { return m_refZ0; }
78
79 // Setters
80 void setAge(int age) { m_age = age; }
81
82 private:
83 double m_RZslope{-1};
84 double m_Rp{-1};
85 double m_Z{-1};
86 double m_R{-1};
87 double m_PitchOverZ{-1};
88 double m_shift{-1};
89 double m_refR0{-1};
90 double m_refZ0{-1};
91 float m_time{-1.f};
92 int m_VMM_chip{-1};
93 int m_ART_ASIC{-1};
94 int m_plane{-1};
98 int m_strip{-1};
100 int m_BC_time{-1};
101 int m_age{-1};
102 char m_sector{'-'};
104 };
105
106} // namespace L1Muon::L1MM
107
108#endif // L1MUONNSW_MMT_HIT_H
double getRefR0() const
radius of the bottom edge of the eta=1 module
double getRefZ0() const
z of the first active strip, multilayer 1, gas gap 1
int getGlobalStrip() const
Strip index on the sector layer: (|stationEta|-1)*kStripsEta1 + channel.
MMT_Hit(const Identifier &id, const float stripTime, const int BC, const MuonGMR4::MuonDetectorManager *detManager, const ActsTrk::GeometryContext &gctx)
Definitions shared by the classes of the MM trigger processor emulation.
LayerType
Type of an MM layer: X (eta strips), U (stereo +1.5 deg) or V (stereo -1.5 deg).