ATLAS Offline Software
Loading...
Searching...
No Matches
FloatingData.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 L1MUONS1TGCFLOATINGTOOLS_FLOATINGDATA_H
5#define L1MUONS1TGCFLOATINGTOOLS_FLOATINGDATA_H
6
7#include <cstddef>
8#include <cstdint>
9#include <map>
10#include <tuple>
11#include <vector>
12
13namespace L1Muon::L1TGC {
14
15enum class FloatingStation : std::uint8_t { M1, M2, M3, Inner, Unknown, NumberOfStations };
16
20 using Tuple = std::tuple<std::uint16_t, std::uint16_t, std::uint16_t>;
21
22 std::uint16_t subDetectorId{0};
23 std::uint16_t triggerSector{0};
24 std::uint16_t bcTag{0};
25
26 Tuple tie() const;
27 bool operator<(const FloatingHitGroupKey& other) const;
28};
29
31 std::uint16_t subDetectorId{0};
32 std::uint16_t triggerSector{0};
33 std::uint16_t detectorSector{0};
34 std::uint16_t bcTag{0};
35 std::uint16_t sswId{0};
36 std::uint16_t slbId{0};
37 std::uint16_t readoutChannel{0};
38 std::int16_t stationEta{0};
39 std::uint16_t stationPhi{0};
40 std::uint8_t gasGap{0};
41 std::uint16_t channel{0};
43 bool isStrip{false};
44 float eta{0.F};
45 float phi{0.F};
46 float r{0.F};
47 float z{0.F};
48};
49
50using FloatingHitContainer = std::vector<FloatingHit>;
51using FloatingHitGroups = std::map<FloatingHitGroupKey, FloatingHitContainer>;
52
54 std::size_t nRawData{0};
55 std::size_t nHits{0};
56 std::size_t nWireHits{0};
57 std::size_t nStripHits{0};
58 std::size_t nMappingFailures{0};
59 std::size_t nUnknownStation{0};
60 std::size_t nM1Hits{0};
61 std::size_t nM2Hits{0};
62 std::size_t nM3Hits{0};
63 std::size_t nInnerHits{0};
64};
65
68 std::uint16_t detectorSector, std::int16_t stationEta,
69 std::uint16_t stationPhi, std::uint16_t channel,
70 std::uint8_t layerMask, std::uint8_t observedLayers,
71 std::uint8_t nominalLayers, float eta, float phi,
72 float r, float z)
73 : key{key},
83 eta{eta},
84 phi{phi},
85 r{r},
86 z{z} {}
87
90 bool isStrip{false};
92 std::uint16_t detectorSector{0};
93 std::int16_t stationEta{0};
94 std::uint16_t stationPhi{0};
95 std::uint16_t channel{0};
96 std::uint8_t layerMask{0};
97 std::uint8_t observedLayers{0};
98 std::uint8_t nominalLayers{0};
99 float eta{0.F};
100 float phi{0.F};
101 float r{0.F};
102 float z{0.F};
103};
104
105using FloatingStationCoincidenceContainer = std::vector<FloatingStationCoincidence>;
106
107} // namespace L1Muon::L1TGC
108
109#endif
struct TBPatternUnitContext Unknown
std::vector< FloatingStationCoincidence > FloatingStationCoincidenceContainer
std::map< FloatingHitGroupKey, FloatingHitContainer > FloatingHitGroups
std::vector< FloatingHit > FloatingHitContainer
Event-local hardware processing key.
std::tuple< std::uint16_t, std::uint16_t, std::uint16_t > Tuple
bool operator<(const FloatingHitGroupKey &other) const
FloatingStationCoincidence(const FloatingHitGroupKey &key, FloatingStation 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.