Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4SurfaceProperty.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29//
30////////////////////////////////////////////////////////////////////////
31// G4SurfaceProperty Definition
32////////////////////////////////////////////////////////////////////////
33//
34// Class Description:
35//
36// A base class describing a surface property.
37// Derived classes are G4Opticalsurface, G4Firovsurface, etc.
38// Contains the enumeration G4SurfaceType.
39
40// File: G4SurfaceProperty.hh
41// Description: A base class for for descriping surface property such
42// as G4OpticalSurface, G4FirsovSurface, G4X-raySurface
43// Version: 1.0
44// Created: 13-10-2003
45// Author: Fan Lei
46//
47////////////////////////////////////////////////////////////////////////
48
49#ifndef G4SurfaceProperty_h
50#define G4SurfaceProperty_h 1
51
52/////////////
53// Includes
54/////////////
55
56#include <vector>
57
58#include "G4Types.hh"
59#include "G4String.hh"
60
62
63typedef std::vector<G4SurfaceProperty*> G4SurfacePropertyTable;
64
66{
67 dielectric_metal, // dielectric-metal interface
68 dielectric_dielectric, // dielectric-dielectric interface
69 dielectric_LUT, // dielectric-Look-Up-Table interface
70 firsov, // for Firsov Process
71 x_ray // for x-ray mirror process
72};
73
74/////////////////////
75// Class Definition
76/////////////////////
77
79{
80 public: // Without description
81
82 //////////////
83 // Operators
84 //////////////
85
86 // G4SurfaceProperty(const G4SurfaceProperty &right);
87 // const G4SurfaceProperty & operator=(const G4SurfaceProperty &right);
88
89 // G4int operator==(const G4SurfaceProperty &right) const;
90 // G4int operator!=(const G4SurfaceProperty &right) const;
91
92 public: // With description
93
94 ////////////////////////////////
95 // Constructors and Destructor
96 ////////////////////////////////
97
98 G4SurfaceProperty(const G4String& name, G4SurfaceType type = x_ray);
99 // Constructor of a X-ray optical surface object.
100
101 public: // Without description
102
104 virtual ~G4SurfaceProperty();
105
106 ////////////
107 // Methods
108 ////////////
109
110 public: // With description
111
112 const G4String& GetName() const { return theName; }
113 // Returns the surface name.
114 void SetName(const G4String& name) { theName = name; }
115 // Sets the surface name.
116
117 const G4SurfaceType& GetType() const { return theType; }
118 // Returns the surface type.
119 void SetType(const G4SurfaceType& type) { theType = type; }
120 // Sets the surface type.
121
122 static void CleanSurfacePropertyTable();
124 static size_t GetNumberOfSurfaceProperties();
125 static void DumpTableInfo();
126 // To handle the table of surface properties.
127
128 protected:
129
130 // ------------------
131 // Basic data members ( To define surface property)
132 // ------------------
133
134 G4String theName; // Surface name
135
136 G4SurfaceType theType; // Surface type
137
139 // The static Table of SurfaceProperties.
140};
141
142#endif /* G4SurfaceProperty_h */
std::vector< G4SurfaceProperty * > G4SurfacePropertyTable
G4SurfaceType
@ dielectric_metal
@ dielectric_LUT
@ dielectric_dielectric
@ x_ray
@ firsov
const G4String & GetName() const
static G4SurfacePropertyTable theSurfacePropertyTable
void SetType(const G4SurfaceType &type)
static const G4SurfacePropertyTable * GetSurfacePropertyTable()
static size_t GetNumberOfSurfaceProperties()
static void DumpTableInfo()
const G4SurfaceType & GetType() const
void SetName(const G4String &name)
virtual ~G4SurfaceProperty()
static void CleanSurfacePropertyTable()