ATLAS Offline Software
GeoExtendedMaterial.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GeoExtendedMaterial_h
6 #define GeoExtendedMaterial_h 1
7 
10 
11 #include "GeoModelKernel/GeoMaterial.h"
12 #include "GeoModelKernel/GeoIntrusivePtr.h"
14 
15 // Physical constants
16 #ifdef BUILDVP1LIGHT
17  #include "GeoModelKernel/Units.h"
18  #define SYSTEM_OF_UNITS GeoModelKernelUnits // --> 'GeoModelKernelUnits::STP_Temperature'
19 #else
20  #include "GaudiKernel/PhysicalConstants.h"
21  #define SYSTEM_OF_UNITS Gaudi::Units // --> 'Gaudi::Units::STP_Temperature'
22 #endif
23 
24 
26 
27 class GeoExtendedMaterial : public GeoMaterial
28 {
29  public:
30  GeoExtendedMaterial(const std::string &Name,
31  double Density,
33  double Temperature = SYSTEM_OF_UNITS::STP_Temperature,
34  double Pressure = SYSTEM_OF_UNITS::STP_Pressure);
35 
36  virtual ~GeoExtendedMaterial() = default;
37 
38  const GeoMaterialState& getState() const;
39  const double& getTemperature() const;
40  const double& getPressure() const;
41 
45 
46  private:
49 
51  double m_temperature;
52  double m_pressure;
53 
54  GeoIntrusivePtr<GeoMaterialPropertiesTable> m_properties{};
55 };
56 
57 
59 {
60  return m_state;
61 }
62 
63 inline const double& GeoExtendedMaterial::getTemperature() const
64 {
65  return m_temperature;
66 }
67 
68 inline const double& GeoExtendedMaterial::getPressure() const
69 {
70  return m_pressure;
71 }
72 
74 {
75  m_properties = MPT;
76 }
77 
79 {
80  return m_properties;
81 }
82 
84 {
85  return m_properties;
86 }
87 
88 #endif
GeoExtendedMaterial::m_state
GeoMaterialState m_state
Definition: GeoExtendedMaterial.h:50
GeoExtendedMaterial::~GeoExtendedMaterial
virtual ~GeoExtendedMaterial()=default
python.PhysicalConstants.STP_Temperature
float STP_Temperature
Definition: PhysicalConstants.py:119
stateSolid
@ stateSolid
Definition: GeoExtendedMaterial.h:25
GeoExtendedMaterial::SetMaterialPropertiesTable
void SetMaterialPropertiesTable(GeoMaterialPropertiesTable *MPT)
Definition: GeoExtendedMaterial.h:73
python.PhysicalConstants.STP_Pressure
int STP_Pressure
Definition: PhysicalConstants.py:120
stateUndefined
@ stateUndefined
Definition: GeoExtendedMaterial.h:25
GeoPrimitives.h
stateGas
@ stateGas
Definition: GeoExtendedMaterial.h:25
GeoExtendedMaterial::getState
const GeoMaterialState & getState() const
Definition: GeoExtendedMaterial.h:58
GeoExtendedMaterial::m_temperature
double m_temperature
Definition: GeoExtendedMaterial.h:51
GeoExtendedMaterial::GeoExtendedMaterial
GeoExtendedMaterial(const std::string &Name, double Density, GeoMaterialState State=stateUndefined, double Temperature=SYSTEM_OF_UNITS::STP_Temperature, double Pressure=SYSTEM_OF_UNITS::STP_Pressure)
Definition: GeoExtendedMaterial.cxx:8
stateLiquid
@ stateLiquid
Definition: GeoExtendedMaterial.h:25
GeoExtendedMaterial::getTemperature
const double & getTemperature() const
Definition: GeoExtendedMaterial.h:63
GeoExtendedMaterial::GeoExtendedMaterial
GeoExtendedMaterial(const GeoExtendedMaterial &right)
GeoMaterialPropertiesTable.h
GeoExtendedMaterial::getPressure
const double & getPressure() const
Definition: GeoExtendedMaterial.h:68
GeoExtendedMaterial::m_pressure
double m_pressure
Definition: GeoExtendedMaterial.h:52
GeoExtendedMaterial::m_properties
GeoIntrusivePtr< GeoMaterialPropertiesTable > m_properties
Definition: GeoExtendedMaterial.h:54
GeoMaterialState
GeoMaterialState
Definition: GeoExtendedMaterial.h:25
Name
JetDumper::Name Name
Definition: JetDumper.cxx:19
GeoMaterialPropertiesTable
Definition: GeoMaterialPropertiesTable.h:20
GeoExtendedMaterial::GetMaterialPropertiesTable
GeoMaterialPropertiesTable * GetMaterialPropertiesTable()
Definition: GeoExtendedMaterial.h:78
GeoExtendedMaterial
Definition: GeoExtendedMaterial.h:28
GeoExtendedMaterial::operator=
GeoExtendedMaterial & operator=(const GeoExtendedMaterial &right)