ATLAS Offline Software
BinnedLayerMaterial.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 // BinnedLayerMaterial.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_BINNEDLAYERMATERIAL_H
10 #define TRKGEOMETRY_BINNEDLAYERMATERIAL_H
11 
12 //Trk
17 //Gaudi
18 #include "GaudiKernel/MsgStream.h"
19 
21 
22 namespace Trk {
23 
24 
34 
35  public:
38 
40  BinnedLayerMaterial(BinUtility& binutility);
41 
51  BinnedLayerMaterial(const Trk::BinUtility& binutility,
52  const MaterialPropertiesVector& fullProperties,
53  double splitFactor=0.);
54 
64  BinnedLayerMaterial(const Trk::BinUtility& binutility,
65  const MaterialPropertiesMatrix& fullProperties,
66  double splitFactor=0.);
67 
70 
72  virtual ~BinnedLayerMaterial() override;
73 
75  virtual BinnedLayerMaterial* clone() const override;
76 
79 
81  virtual BinnedLayerMaterial& operator*=(double scale) override;
82 
84  virtual const BinUtility* binUtility() const override;
85 
87  virtual void updateBinning(BinUtility* bu) override;
88 
91 
93  virtual const MaterialProperties* fullMaterial(const Amg::Vector3D& gp) const override;
94 
96  virtual const MaterialProperties* material(size_t bin0, size_t bin1 ) const override;
97 
99  virtual MsgStream& dump(MsgStream& sl) const override;
100 
102  virtual std::ostream& dump(std::ostream& sl) const override;
103 
104  private:
105  friend class ::BinnedLayerMaterialCnv_p1;
106 
108 
111 
113  void clearMaterial();
114 
116  void fillMaterial(const MaterialPropertiesMatrix& matMatrix);
117 
118  };
119 
120 
122  { return m_binUtility; }
123 
125  { return m_fullMaterial; }
126 
127  inline const MaterialProperties* BinnedLayerMaterial::material(size_t bin0, size_t bin1 ) const
128  {
129  return m_fullMaterial[bin1][bin0];
130  }
131 
133  if (bu){
134  delete m_binUtility;
135  m_binUtility = bu;
136  }
137  }
138 
139 
140 }
141 
142 #endif
MaterialProperties.h
Trk::BinnedLayerMaterial::updateBinning
virtual void updateBinning(BinUtility *bu) override
Update the BinUtility if necessary - passing ownership of the utility class.
Definition: BinnedLayerMaterial.h:132
BinUtility.h
Trk::BinnedLayerMaterial::fillMaterial
void fillMaterial(const MaterialPropertiesMatrix &matMatrix)
helper method - to refill the material
Definition: BinnedLayerMaterial.cxx:93
Trk::BinnedLayerMaterial::clone
virtual BinnedLayerMaterial * clone() const override
Pseudo-Constructor clone()
Definition: BinnedLayerMaterial.cxx:80
Trk::BinnedLayerMaterial::operator=
BinnedLayerMaterial & operator=(const BinnedLayerMaterial &lmp)
Assignment operator.
Definition: BinnedLayerMaterial.cxx:65
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
Trk::MaterialPropertiesVector
std::vector< const MaterialProperties * > MaterialPropertiesVector
Useful typedefs.
Definition: MaterialProperties.h:133
Trk::BinnedLayerMaterial::BinnedLayerMaterial
BinnedLayerMaterial()
Default Constructor - needed by POOL.
Definition: BinnedLayerMaterial.cxx:13
GeoPrimitives.h
Trk::BinnedLayerMaterial::dump
virtual MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream, to be overloaded by child classes.
Definition: BinnedLayerMaterial.cxx:136
BinnedLayerMaterialCnv_p1
Definition: BinnedLayerMaterialCnv_p1.h:23
Trk::BinnedLayerMaterial::m_binUtility
BinUtility * m_binUtility
the helper for the bin finding
Definition: BinnedLayerMaterial.h:107
Trk::LayerMaterialProperties
Definition: LayerMaterialProperties.h:62
Trk::BinnedLayerMaterial
Definition: BinnedLayerMaterial.h:33
Trk::BinnedLayerMaterial::m_fullMaterial
MaterialPropertiesMatrix m_fullMaterial
The five different MaterialProperties.
Definition: BinnedLayerMaterial.h:110
Trk::BinUtility
Definition: BinUtility.h:39
Trk::BinnedLayerMaterial::fullMaterial
const MaterialPropertiesMatrix & fullMaterial() const
Return method for full material description of the Layer - for all bins.
Definition: BinnedLayerMaterial.h:124
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::BinnedLayerMaterial::material
virtual const MaterialProperties * material(size_t bin0, size_t bin1) const override
Access the single bin.
Definition: BinnedLayerMaterial.h:127
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::BinnedLayerMaterial::clearMaterial
void clearMaterial()
helper method - to clear the material
Definition: BinnedLayerMaterial.cxx:84
Trk::MaterialPropertiesMatrix
std::vector< std::vector< const MaterialProperties * > > MaterialPropertiesMatrix
Definition: ILayerMaterialAnalyser.h:23
Trk::BinnedLayerMaterial::binUtility
virtual const BinUtility * binUtility() const override
Return the BinUtility.
Definition: BinnedLayerMaterial.h:121
Trk::MaterialProperties
Definition: MaterialProperties.h:40
dqt_zlumi_pandas.bin1
bin1
Definition: dqt_zlumi_pandas.py:329
Trk::BinnedLayerMaterial::~BinnedLayerMaterial
virtual ~BinnedLayerMaterial() override
Destructor.
Definition: BinnedLayerMaterial.cxx:50
LayerMaterialProperties.h
Trk::BinnedLayerMaterial::operator*=
virtual BinnedLayerMaterial & operator*=(double scale) override
Scale operator.
Definition: BinnedLayerMaterial.cxx:107