9#ifndef TRKGEOMETRY_COMPOUNDLAYERMATERIAL_H
10#define TRKGEOMETRY_COMPOUNDLAYERMATERIAL_H
23#include "GaudiKernel/MsgStream.h"
37 double value(
unsigned char ibin0,
unsigned char ibin1)
const {
41 unsigned int ibin =
static_cast<unsigned int>(
43 [
static_cast<unsigned int>(ibin0)]);
71 const std::vector<std::vector<MaterialComposition> >& composition,
72 bool fComposition =
false);
102 size_t bin1)
const override final;
111 virtual MsgStream&
dump(MsgStream& sl)
const override final;
132 std::vector<std::vector<MaterialComposition> >
135 std::shared_ptr<const ElementTable>
144 const std::shared_ptr<const ElementTable>&
set) {
Cached unique_ptr with atomic update.
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
CompoundLayerMaterial()=default
Default Constructor - needed by POOL.
ValueStore m_rhoBins
rho parameter (averaged)
std::vector< std::vector< MaterialPropertiesCUP > > m_materialProperties
the ones you return
virtual ~CompoundLayerMaterial() override
Destructor.
bool m_fullComposition
full composition calculation
friend class ::CompoundLayerMaterialCnv_p1
virtual const MaterialProperties * fullMaterial(const Amg::Vector3D &gp) const override final
Return method for full material description of the Layer.
const ElementTable * elementTable() const
Get the ElementTable.
std::shared_ptr< const ElementTable > m_elementTable
ValueStore m_thicknessBins
thickness parameter
virtual const BinUtility * binUtility() const override final
Return the BinUtility.
ValueStore m_x0Bins
x0 parameter
void resizeMaterialProperties()
CxxUtils::CachedUniquePtr< MaterialProperties > MaterialPropertiesCUP
ValueStore m_aBins
A parameters (averaged)
virtual void updateBinning(BinUtility *bu) override final
Update the BinUtility if necessary - passing ownership of the utility class.
ValueStore m_zBins
Z parameter (averaged)
virtual const MaterialProperties * material(size_t bin0, size_t bin1) const override final
Access the single bin.
std::vector< std::vector< MaterialComposition > > m_composition
composition matrix
virtual CompoundLayerMaterial * clone() const override final
Pseudo-Constructor clone()
BinUtility * m_binUtility
the helper for the bin finding
void updateElementTable(const std::shared_ptr< const ElementTable > &set)
Update the ElementTable.
ValueStore m_l0Bins
l0 parameter
LayerMaterialProperties()
Constructor.
Material with information about thickness of material.
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< ValueVector > ValueMatrix
std::vector< unsigned char > ValueVector
ValueMatrix valueBinMatrix
double value(unsigned char ibin0, unsigned char ibin1) const