Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-25 08:20:29

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include <cstdint>
0012 #include <vector>
0013 
0014 namespace Acts::Experimental {
0015 
0016 /// The eta binning `GbtsGeometry` gave one layer. Eta bins are numbered
0017 /// globally across the geometry and a layer's are contiguous, so the layer owns
0018 /// `[firstBin, firstBin + numBins)`.
0019 struct GbtsLayerBinning final {
0020   /// Global index of the layer's first eta bin.
0021   std::uint32_t firstBin{};
0022   /// Number of eta bins the layer was split into. At least one.
0023   std::uint32_t numBins{1};
0024   /// Lower edge of the first bin, padded outwards by a small epsilon so a hit
0025   /// on the layer boundary still falls in a bin.
0026   float minEta{};
0027   /// Width of one bin. Divided out of the layer's eta extent, so it is not the
0028   /// width the geometry was asked for.
0029   float etaBinWidth{};
0030 };
0031 
0032 /// The outer eta bins reachable from one inner eta bin. Groups come in the
0033 /// order the graph is built, outside-in.
0034 struct GbtsBinGroup final {
0035   /// The inner eta bin.
0036   std::uint32_t bin{};
0037   /// The outer bins it links to.
0038   std::vector<std::uint32_t> links;
0039 };
0040 
0041 }  // namespace Acts::Experimental