ATLAS Offline Software
Loading...
Searching...
No Matches
HomogeneousLayerMaterial.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// HomogeneousLayerMaterial.h, (c) ATLAS Detector software
8
9#ifndef TRKGEOMETY_HOMOGENOUSLAYERMATERIAL_H
10#define TRKGEOMETY_HOMOGENOUSLAYERMATERIAL_H
11
12// Amg
14// Trk
17// Gaudi
18#include "GaudiKernel/MsgStream.h"
19// STD
20#include <memory>
21#include <vector>
22
24
25namespace Trk {
26
27class BinUtility;
52
54 public:
57
60 HomogeneousLayerMaterial(const MaterialProperties& full, double splitFactor);
61
64
66 virtual ~HomogeneousLayerMaterial() override;
67
69 virtual HomogeneousLayerMaterial* clone() const override;
70
73
76
79 default;
80
82 virtual HomogeneousLayerMaterial& operator*=(double scale) override;
83
85 virtual const MaterialProperties* fullMaterial(
86 const Amg::Vector3D& gp) const override;
87
89 virtual const MaterialProperties* material(size_t ib0,
90 size_t ib1) const override;
91
93 virtual const BinUtility* binUtility() const override { return nullptr; }
94
97 virtual void updateBinning(BinUtility*) override {}
98
100 virtual MsgStream& dump(MsgStream& sl) const override;
102 virtual std::ostream& dump(std::ostream& sl) const override;
103
104 private:
105 friend class ::HomogeneousLayerMaterialCnv_p1;
106
108 std::unique_ptr<MaterialProperties> m_fullMaterial;
109};
110
114
116 const Amg::Vector3D&) const {
117 return m_fullMaterial.get();
118}
119
121 size_t, size_t) const {
122 return m_fullMaterial.get();
123}
124
125} // namespace Trk
126
127#endif
128
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition BinUtility.h:39
It extends the LayerMaterialProperties base class.
virtual const MaterialProperties * fullMaterial(const Amg::Vector3D &gp) const override
Return method for full material description of the Layer.
virtual ~HomogeneousLayerMaterial() override
Destructor.
virtual const BinUtility * binUtility() const override
Return the BinUtility.
virtual const MaterialProperties * material(size_t ib0, size_t ib1) const override
Direct access via bins to the MaterialProperties.
HomogeneousLayerMaterial & operator=(const HomogeneousLayerMaterial &lmp)
Assignment operator.
virtual HomogeneousLayerMaterial & operator*=(double scale) override
Scale operator.
HomogeneousLayerMaterial(Trk::HomogeneousLayerMaterial &&lmp)=default
Default move constructor.
std::unique_ptr< MaterialProperties > m_fullMaterial
The five different MaterialProperties.
virtual void updateBinning(BinUtility *) override
Update the BinUtility if necessary - passing ownership of the utility class.
HomogeneousLayerMaterial & operator=(Trk::HomogeneousLayerMaterial &&lmp)=default
Default move assignment operator.
virtual HomogeneousLayerMaterial * clone() const override
Pseudo-Constructor clone()
HomogeneousLayerMaterial()
Default Constructor - creates empty HomogeneousLayerMaterial.
Material with information about thickness of material.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file