Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:09:29

0001 // This file is part of the Acts project.
0002 //
0003 // Copyright (C) 2018 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 http://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Utilities/detail/AxisFwd.hpp"
0013 
0014 #include <vector>
0015 
0016 namespace Acts {
0017 
0018 /// Common base class for all Axis instance. This allows generice handling
0019 /// such as for inspection.
0020 class IAxis {
0021  public:
0022   /// @brief returns whether the axis is equidistant
0023   ///
0024   /// @return bool is equidistant
0025   virtual bool isEquidistant() const = 0;
0026 
0027   /// @brief returns whether the axis is variable
0028   ///
0029   /// @return bool is variable
0030   virtual bool isVariable() const = 0;
0031 
0032   /// @brief returns the boundary type set in the template param
0033   ///
0034   /// @return @c AxisBoundaryType of this axis
0035   virtual detail::AxisBoundaryType getBoundaryType() const = 0;
0036 
0037   /// @brief Return a vector of bin edges
0038   /// @return Vector which contains the bin edges
0039   virtual std::vector<ActsScalar> getBinEdges() const = 0;
0040 
0041   /// @brief get minimum of binning range
0042   ///
0043   /// @return minimum of binning range
0044   virtual ActsScalar getMin() const = 0;
0045 
0046   /// @brief get maximum of binning range
0047   ///
0048   /// @return maximum of binning range
0049   virtual ActsScalar getMax() const = 0;
0050 
0051   /// @brief get total number of bins
0052   ///
0053   /// @return total number of bins (excluding under-/overflow bins)
0054   virtual std::size_t getNBins() const = 0;
0055 };
0056 }  // namespace Acts