Warning, file /include/Acts/Material/ProtoSurfaceMaterial.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Detector/ProtoBinning.hpp"
0013 #include "Acts/Material/ISurfaceMaterial.hpp"
0014 #include "Acts/Material/MaterialSlab.hpp"
0015 #include "Acts/Utilities/BinUtility.hpp"
0016
0017 #include <cstddef>
0018 #include <iosfwd>
0019
0020 namespace Acts {
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 template <typename BinningType>
0032 class ProtoSurfaceMaterialT : public ISurfaceMaterial {
0033 public:
0034
0035 ProtoSurfaceMaterialT() = default;
0036
0037
0038
0039
0040 ProtoSurfaceMaterialT(const BinningType& binning,
0041 MappingType mappingType = MappingType::Default)
0042 : ISurfaceMaterial(1., mappingType), m_binning(binning) {}
0043
0044
0045
0046
0047 ProtoSurfaceMaterialT(const ProtoSurfaceMaterialT<BinningType>& smproxy) =
0048 default;
0049
0050
0051
0052
0053 ProtoSurfaceMaterialT(ProtoSurfaceMaterialT<BinningType>&& smproxy) = default;
0054
0055
0056 ~ProtoSurfaceMaterialT() override = default;
0057
0058
0059
0060
0061 ProtoSurfaceMaterialT<BinningType>& operator=(
0062 const ProtoSurfaceMaterialT<BinningType>& smproxy) = default;
0063
0064
0065
0066
0067 ProtoSurfaceMaterialT<BinningType>& operator=(
0068 ProtoSurfaceMaterialT<BinningType>&& smproxy) = default;
0069
0070
0071
0072 ProtoSurfaceMaterialT<BinningType>& operator*=(double ) final {
0073 return (*this);
0074 }
0075
0076
0077 const BinningType& binning() const { return (m_binning); }
0078
0079
0080
0081
0082
0083 const MaterialSlab& materialSlab(const Vector2& ) const final {
0084 return (m_materialSlab);
0085 }
0086
0087
0088
0089
0090
0091 const MaterialSlab& materialSlab(const Vector3& ) const final {
0092 return (m_materialSlab);
0093 }
0094
0095
0096
0097
0098 std::ostream& toStream(std::ostream& sl) const final {
0099 sl << "Acts::ProtoSurfaceMaterial : " << std::endl;
0100 sl << m_binning.toString() << std::endl;
0101 return sl;
0102 }
0103
0104 private:
0105
0106 BinningType m_binning;
0107
0108
0109 MaterialSlab m_materialSlab;
0110 };
0111
0112 using ProtoSurfaceMaterial = ProtoSurfaceMaterialT<Acts::BinUtility>;
0113
0114 using ProtoGridSurfaceMaterial =
0115 ProtoSurfaceMaterialT<Acts::Experimental::BinningDescription>;
0116
0117 }