ATLAS Offline Software
Loading...
Searching...
No Matches
SegmentEdgeData.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 MUONINFERENCEINTERFACES_SEGMENTEDGEDATA_H
5#define MUONINFERENCEINTERFACES_SEGMENTEDGEDATA_H
6
8#include <array>
9#include <cstddef>
10#include <cstdint>
11#include <vector>
12
13namespace MuonML {
14
25
27 struct PairFate {
28 std::uint32_t first{0};
29 std::uint32_t second{0};
31 std::uint8_t sectorDelta{0};
32 };
33
35 inline constexpr std::int32_t kDroppedByBucketCap = -1;
36 inline constexpr std::int32_t kDroppedAsIsolated = -2;
37
39 std::vector<const xAOD::MuonSegment_v1*> segments{};
40 std::vector<float> nodeFeatures{};
41 std::vector<int64_t> edgeIndex{};
42 std::vector<float> edgeFeatures{};
43 std::size_t nNodes{0};
44 std::size_t nEdges{0};
45
46 // Truth diagnostics: filled by the tool only when its EnableTruthDiagnostics
47 // is set and DEBUG output is on; empty (never allocated) otherwise.
48 std::vector<std::int32_t> inputNodeIndex{};
49 std::vector<PairFate> truthPairFates{};
50 };
51
53 std::size_t src{0};
54 std::size_t dst{0};
55 float logit{0.f};
56 float probability{0.f};
57 };
58
59}
60#endif
PairGate
Gate that stopped (or did not stop) a pair of input segments from reaching ONNX.
@ Scored
the pair was sent to ONNX
@ SameChamber
same-chamber pair dropped by design
@ AngleWindow
cos(opening angle) below MaxDeltaThetaDeg
@ EdgeCaps
candidate evicted by the pre-ONNX per-node / per-target-chamber caps
@ SectorWindow
|delta sector| > MaxDeltaSector
@ BucketCap
an endpoint was dropped by MaxSegmentsPerBucket
constexpr std::int32_t kDroppedAsIsolated
constexpr std::int32_t kDroppedByBucketCap
Values of SegmentEdgeGraph::inputNodeIndex for input segments without a node.
One pair of input segments that share a truth particle (input-container indices).
std::uint32_t first
std::uint32_t second
std::uint8_t sectorDelta
std::vector< float > edgeFeatures
packed [E,7]: dpos(3), dist, cos, same_chamber, same_sector
std::vector< std::int32_t > inputNodeIndex
per input segment: node index, or kDropped*
std::vector< int64_t > edgeIndex
packed edge pairs [src0,dst0,src1,dst1,...]
std::vector< const xAOD::MuonSegment_v1 * > segments
std::vector< float > nodeFeatures
packed [N,10]: pos_m(3), dir_u(3), bucket(4)
std::vector< PairFate > truthPairFates
every pair of input segments sharing a truth particle