ATLAS Offline Software
GeoOpticalSurface.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 GeoOpticalSurface_h
6 #define GeoOpticalSurface_h 1
7 
10 
11 
12 #include "GeoModelKernel/RCBase.h"
13 #include "GeoModelKernel/GeoIntrusivePtr.h"
15 #include <string>
16 
17 
18 class GeoOpticalSurface : public RCBase
19 {
20  public:
21  // Enums ---------
23  {
24  dielectric_metal, // dielectric-metal interface
25  dielectric_dielectric, // dielectric-dielectric interface
26  firsov, // for Firsov Process
27  x_ray // for x-ray mirror process
28  };
29 
31  {
32  polished, // smooth perfectly polished surface
33  polishedfrontpainted, // smooth top-layer (front) paint
34  polishedbackpainted, // same is 'polished' but with a back-paint
35  ground, // rough surface
36  groundfrontpainted, // rough top-layer (front) paint
37  groundbackpainted // same as 'ground' but with a back-paint
38  };
39 
41  {
42  glisur, // original GEANT3 model
43  unified // UNIFIED model
44  };
45  // Enums ---------
46 
47  GeoOpticalSurface(const std::string& name,
51  double parameter = 1.0);
52 
53  ~GeoOpticalSurface() = default;
54 
55  // accessor methods
56  const std::string& GetName() const {return m_name;}
57  GeoSurfaceType GetType() const {return m_type;};
60  double GetParameter() const {return m_parameter;}
61 
63  { m_materialPropertiesTable = mpt; };
64 
66  { return m_materialPropertiesTable;};
68  { return m_materialPropertiesTable;};
69 
70  private:
71  std::string m_name;
75  double m_parameter;
76  GeoIntrusivePtr<GeoMaterialPropertiesTable> m_materialPropertiesTable{};
77 };
78 
79 #endif
GeoOpticalSurface::x_ray
@ x_ray
Definition: GeoOpticalSurface.h:27
GeoOpticalSurface::dielectric_metal
@ dielectric_metal
Definition: GeoOpticalSurface.h:24
GeoOpticalSurface::polishedfrontpainted
@ polishedfrontpainted
Definition: GeoOpticalSurface.h:33
GeoOpticalSurface::dielectric_dielectric
@ dielectric_dielectric
Definition: GeoOpticalSurface.h:25
GeoOpticalSurface::SetMaterialPropertiesTable
void SetMaterialPropertiesTable(GeoMaterialPropertiesTable *mpt)
Definition: GeoOpticalSurface.h:62
GeoOpticalSurface::ground
@ ground
Definition: GeoOpticalSurface.h:35
GeoOpticalSurface::GeoOpticalSurfaceModel
GeoOpticalSurfaceModel
Definition: GeoOpticalSurface.h:41
GeoOpticalSurface::GetType
GeoSurfaceType GetType() const
Definition: GeoOpticalSurface.h:57
GeoOpticalSurface::m_finish
GeoOpticalSurfaceFinish m_finish
Definition: GeoOpticalSurface.h:73
GeoOpticalSurface::GetFinish
GeoOpticalSurfaceFinish GetFinish() const
Definition: GeoOpticalSurface.h:58
GeoOpticalSurface::firsov
@ firsov
Definition: GeoOpticalSurface.h:26
GeoOpticalSurface::GetParameter
double GetParameter() const
Definition: GeoOpticalSurface.h:60
GeoOpticalSurface::GeoSurfaceType
GeoSurfaceType
Definition: GeoOpticalSurface.h:23
GeoPrimitives.h
GeoOpticalSurface::m_type
GeoSurfaceType m_type
Definition: GeoOpticalSurface.h:74
GeoOpticalSurface::unified
@ unified
Definition: GeoOpticalSurface.h:43
GeoOpticalSurface::GetMaterialPropertiesTable
const GeoMaterialPropertiesTable * GetMaterialPropertiesTable() const
Definition: GeoOpticalSurface.h:67
GeoOpticalSurface::GeoOpticalSurfaceFinish
GeoOpticalSurfaceFinish
Definition: GeoOpticalSurface.h:31
GeoOpticalSurface
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoOpticalSurface.h:19
GeoOpticalSurface::GetMaterialPropertiesTable
GeoMaterialPropertiesTable * GetMaterialPropertiesTable()
Definition: GeoOpticalSurface.h:65
GeoOpticalSurface::glisur
@ glisur
Definition: GeoOpticalSurface.h:42
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
GeoOpticalSurface::groundfrontpainted
@ groundfrontpainted
Definition: GeoOpticalSurface.h:36
GeoOpticalSurface::polishedbackpainted
@ polishedbackpainted
Definition: GeoOpticalSurface.h:34
GeoOpticalSurface::m_materialPropertiesTable
GeoIntrusivePtr< GeoMaterialPropertiesTable > m_materialPropertiesTable
Definition: GeoOpticalSurface.h:76
GeoMaterialPropertiesTable.h
GeoOpticalSurface::m_name
std::string m_name
Definition: GeoOpticalSurface.h:68
GeoOpticalSurface::m_model
GeoOpticalSurfaceModel m_model
Definition: GeoOpticalSurface.h:72
correlationModel::model
model
Definition: AsgElectronEfficiencyCorrectionTool.cxx:46
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
GeoOpticalSurface::GetName
const std::string & GetName() const
Definition: GeoOpticalSurface.h:56
GeoOpticalSurface::m_parameter
double m_parameter
Definition: GeoOpticalSurface.h:75
GeoMaterialPropertiesTable
Definition: GeoMaterialPropertiesTable.h:20
GeoOpticalSurface::GeoOpticalSurface
GeoOpticalSurface(const std::string &name, GeoOpticalSurfaceModel model=glisur, GeoOpticalSurfaceFinish finish=polished, GeoSurfaceType type=dielectric_dielectric, double parameter=1.0)
Definition: GeoOpticalSurface.cxx:7
GeoOpticalSurface::polished
@ polished
Definition: GeoOpticalSurface.h:32
GeoOpticalSurface::GetModel
GeoOpticalSurfaceModel GetModel() const
Definition: GeoOpticalSurface.h:59
GeoOpticalSurface::~GeoOpticalSurface
~GeoOpticalSurface()=default
GeoOpticalSurface::groundbackpainted
@ groundbackpainted
Definition: GeoOpticalSurface.h:37