|
||||
File indexing completed on 2025-01-18 09:10:54
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 "Acts/Definitions/Algebra.hpp" 0012 #include "Acts/Material/Material.hpp" 0013 0014 namespace Acts { 0015 0016 class Material; 0017 0018 /// @class IVolumeMaterial 0019 /// 0020 /// Virtual base class of volume material description 0021 // 0022 /// Material associated with a Volume (homogeneous, binned, interpolated) 0023 class IVolumeMaterial { 0024 public: 0025 /// Virtual Destructor 0026 virtual ~IVolumeMaterial() = default; 0027 0028 /// Access to actual material 0029 /// 0030 /// @param position is the request position for the material call 0031 /// @todo interface to change including 'cell' 0032 virtual const Material material(const Vector3& position) const = 0; 0033 0034 /// @brief output stream operator 0035 /// 0036 /// Prints information about this object to the output stream using the 0037 /// virtual IVolumeeMaterial::toStream method 0038 /// 0039 /// @return modified output stream object 0040 friend std::ostream& operator<<(std::ostream& out, 0041 const IVolumeMaterial& vm) { 0042 vm.toStream(out); 0043 return out; 0044 } 0045 0046 /// Output Method for std::ostream, to be overloaded by child classes 0047 virtual std::ostream& toStream(std::ostream& sl) const = 0; 0048 }; 0049 0050 } // namespace Acts
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |