ATLAS Offline Software
Loading...
Searching...
No Matches
TgcL0FloatingData.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 L0MUONS1TGCFLOATINGTOOLS_TGCL0FLOATINGDATA_H
5#define L0MUONS1TGCFLOATINGTOOLS_TGCL0FLOATINGDATA_H
6
7#include <cstddef>
8#include <cstdint>
9#include <map>
10#include <tuple>
11#include <vector>
12
13namespace L0Muon {
14namespace TgcL0Floating {
15
16enum class Station : std::uint8_t { M1, M2, M3, Inner, Unknown, NumberOfStations };
17
21 using Tuple = std::tuple<std::uint16_t, std::uint16_t, std::uint16_t>;
22
23 std::uint16_t subDetectorId{0};
24 std::uint16_t triggerSector{0};
25 std::uint16_t bcTag{0};
26
27 Tuple tie() const;
28 bool operator<(const HitGroupKey& other) const;
29};
30
31struct Hit {
32 std::uint16_t subDetectorId{0};
33 std::uint16_t triggerSector{0};
34 std::uint16_t detectorSector{0};
35 std::uint16_t bcTag{0};
36 std::uint16_t sswId{0};
37 std::uint16_t slbId{0};
38 std::uint16_t readoutChannel{0};
39 std::int16_t stationEta{0};
40 std::uint16_t stationPhi{0};
41 std::uint8_t gasGap{0};
42 std::uint16_t channel{0};
44 bool isStrip{false};
45 float eta{0.F};
46 float phi{0.F};
47 float r{0.F};
48 float z{0.F};
49};
50
51using HitContainer = std::vector<Hit>;
52using HitGroups = std::map<HitGroupKey, HitContainer>;
53
55 std::size_t nRawData{0};
56 std::size_t nHits{0};
57 std::size_t nWireHits{0};
58 std::size_t nStripHits{0};
59 std::size_t nMappingFailures{0};
60 std::size_t nUnknownStation{0};
61 std::size_t nM1Hits{0};
62 std::size_t nM2Hits{0};
63 std::size_t nM3Hits{0};
64 std::size_t nInnerHits{0};
65};
66
69 std::uint16_t detectorSector, std::int16_t stationEta,
70 std::uint16_t stationPhi, std::uint16_t channel,
71 std::uint8_t layerMask, std::uint8_t observedLayers,
72 std::uint8_t nominalLayers, float eta, float phi,
73 float r, float z)
74 : key{key},
84 eta{eta},
85 phi{phi},
86 r{r},
87 z{z} {}
88
91 bool isStrip{false};
93 std::uint16_t detectorSector{0};
94 std::int16_t stationEta{0};
95 std::uint16_t stationPhi{0};
96 std::uint16_t channel{0};
97 std::uint8_t layerMask{0};
98 std::uint8_t observedLayers{0};
99 std::uint8_t nominalLayers{0};
100 float eta{0.F};
101 float phi{0.F};
102 float r{0.F};
103 float z{0.F};
104};
105
106using StationCoincidenceContainer = std::vector<StationCoincidence>;
107
108} // namespace TgcL0Floating
109} // namespace L0Muon
110
111#endif
struct TBPatternUnitContext Unknown
std::map< HitGroupKey, HitContainer > HitGroups
std::vector< StationCoincidence > StationCoincidenceContainer
std::vector< Hit > HitContainer
Event-local hardware processing key.
std::tuple< std::uint16_t, std::uint16_t, std::uint16_t > Tuple
bool operator<(const HitGroupKey &other) const
StationCoincidence(const HitGroupKey &key, Station station, bool isStrip, std::uint16_t detectorSector, std::int16_t stationEta, std::uint16_t stationPhi, std::uint16_t channel, std::uint8_t layerMask, std::uint8_t observedLayers, std::uint8_t nominalLayers, float eta, float phi, float r, float z)
std::uint16_t detectorSector
Representative Run-3/chamber provenance; not a matching requirement.