Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4OpticalSurface Class Reference

#include <G4OpticalSurface.hh>

+ Inheritance diagram for G4OpticalSurface:

Public Member Functions

 G4OpticalSurface (const G4OpticalSurface &right)
 
G4OpticalSurfaceoperator= (const G4OpticalSurface &right)
 
G4bool operator== (const G4OpticalSurface &right) const
 
G4bool operator!= (const G4OpticalSurface &right) const
 
 G4OpticalSurface (const G4String &name, G4OpticalSurfaceModel model=glisur, G4OpticalSurfaceFinish finish=polished, G4SurfaceType type=dielectric_dielectric, G4double value=1.0)
 
 ~G4OpticalSurface () override
 
void SetType (const G4SurfaceType &type) override
 
G4OpticalSurfaceFinish GetFinish () const
 
void SetFinish (const G4OpticalSurfaceFinish)
 
G4OpticalSurfaceModel GetModel () const
 
void SetModel (const G4OpticalSurfaceModel model)
 
G4double GetSigmaAlpha () const
 
void SetSigmaAlpha (const G4double s_a)
 
G4double GetPolish () const
 
void SetPolish (const G4double plsh)
 
G4MaterialPropertiesTableGetMaterialPropertiesTable () const
 
void SetMaterialPropertiesTable (G4MaterialPropertiesTable *anMPT)
 
void DumpInfo () const
 
void ReadDataFile ()
 
void ReadCompressedFile (const G4String &, std::istringstream &)
 
void ReadLUTFile ()
 
G4double GetAngularDistributionValue (G4int, G4int, G4int)
 
G4double GetAngularDistributionValueLUT (G4int)
 
void ReadLUTDAVISFile ()
 
void ReadReflectivityLUTFile ()
 
G4double GetReflectivityLUTValue (G4int)
 
G4int GetInmax () const
 
G4int GetLUTbins () const
 
G4int GetRefMax () const
 
G4int GetThetaIndexMax () const
 
G4int GetPhiIndexMax () const
 
void ReadDichroicFile ()
 
G4Physics2DVectorGetDichroicVector ()
 
- Public Member Functions inherited from G4SurfaceProperty
 G4SurfaceProperty (const G4String &name, G4SurfaceType type=x_ray)
 
 G4SurfaceProperty ()
 
virtual ~G4SurfaceProperty ()=default
 
const G4StringGetName () const
 
void SetName (const G4String &name)
 
const G4SurfaceTypeGetType () const
 
virtual void SetType (const G4SurfaceType &type)
 

Additional Inherited Members

- Static Public Member Functions inherited from G4SurfaceProperty
static void CleanSurfacePropertyTable ()
 
static const G4SurfacePropertyTableGetSurfacePropertyTable ()
 
static size_t GetNumberOfSurfaceProperties ()
 
static void DumpTableInfo ()
 
- Protected Attributes inherited from G4SurfaceProperty
G4String theName
 
G4SurfaceType theType
 
- Static Protected Attributes inherited from G4SurfaceProperty
static G4SurfacePropertyTable theSurfacePropertyTable
 

Detailed Description

Definition at line 121 of file G4OpticalSurface.hh.

Constructor & Destructor Documentation

◆ G4OpticalSurface() [1/2]

G4OpticalSurface::G4OpticalSurface ( const G4OpticalSurface right)

Definition at line 127 of file G4OpticalSurface.cc.

128 : G4SurfaceProperty(right.theName, right.theType)
129{
130 *this = right;
131 this->theName = right.theName;
132 this->theType = right.theType;
133 this->theModel = right.theModel;
134 this->theFinish = right.theFinish;
135 this->sigma_alpha = right.sigma_alpha;
136 this->polish = right.polish;
137 this->theMaterialPropertiesTable = right.theMaterialPropertiesTable;
138
139 delete[] AngularDistribution;
140 this->AngularDistribution =
141 new G4float[incidentIndexMax * thetaIndexMax * phiIndexMax];
142 *(this->AngularDistribution) = *(right.AngularDistribution);
143
144 delete[] AngularDistributionLUT;
145 this->AngularDistributionLUT = new G4float[indexmax];
146 *(this->AngularDistributionLUT) = *(right.AngularDistributionLUT);
147
148 delete[] Reflectivity;
149 this->Reflectivity = new G4float[RefMax];
150 *(this->Reflectivity) = *(right.Reflectivity);
151
152 delete DichroicVector;
153 this->DichroicVector = new G4Physics2DVector();
154 *(this->DichroicVector) = *(right.DichroicVector);
155}
float G4float
Definition: G4Types.hh:84

◆ G4OpticalSurface() [2/2]

G4OpticalSurface::G4OpticalSurface ( const G4String name,
G4OpticalSurfaceModel  model = glisur,
G4OpticalSurfaceFinish  finish = polished,
G4SurfaceType  type = dielectric_dielectric,
G4double  value = 1.0 
)

Definition at line 79 of file G4OpticalSurface.cc.

83 : G4SurfaceProperty(name, type)
84 , theModel(model)
85 , theFinish(finish)
86 , theMaterialPropertiesTable(nullptr)
87{
88 AngularDistribution = nullptr;
89
90 AngularDistributionLUT = nullptr;
91 Reflectivity = nullptr;
92
93 DichroicVector = nullptr;
94
95 switch(theModel)
96 {
97 case glisur:
98 polish = value;
99 sigma_alpha = 0.0;
100 break;
101 case LUT:
102 case dichroic:
103 case DAVIS:
104 ReadDataFile();
105 // fall through
106 case unified:
107 sigma_alpha = value;
108 polish = 0.0;
109 break;
110 default:
111 G4Exception("G4OpticalSurface::G4OpticalSurface()", "mat309",
112 FatalException, "Constructor called with INVALID model.");
113 }
114}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:59
@ unified
@ DAVIS
@ dichroic
@ glisur

◆ ~G4OpticalSurface()

G4OpticalSurface::~G4OpticalSurface ( )
override

Definition at line 116 of file G4OpticalSurface.cc.

117{
118 delete[] AngularDistribution;
119
120 delete[] AngularDistributionLUT;
121
122 delete[] Reflectivity;
123
124 delete DichroicVector;
125}

Member Function Documentation

◆ DumpInfo()

void G4OpticalSurface::DumpInfo ( ) const

Definition at line 177 of file G4OpticalSurface.cc.

178{
179 // Dump info for surface
180
181 G4cout << " Surface type = " << G4int(theType) << G4endl
182 << " Surface finish = " << G4int(theFinish) << G4endl
183 << " Surface model = " << G4int(theModel) << G4endl << G4endl
184 << " Surface parameter " << G4endl << " ----------------- "
185 << G4endl;
186
187 if(theModel == glisur)
188 {
189 G4cout << " polish: " << polish << G4endl;
190 }
191 else
192 {
193 G4cout << " sigma_alpha: " << sigma_alpha << G4endl;
194 }
195 G4cout << G4endl;
196}
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

◆ GetAngularDistributionValue()

G4double G4OpticalSurface::GetAngularDistributionValue ( G4int  angleIncident,
G4int  thetaIndex,
G4int  phiIndex 
)
inline

Definition at line 246 of file G4OpticalSurface.hh.

248{
249 G4int product = angleIncident * thetaIndex * phiIndex;
250 if(product < 0 || product >= incidentIndexMax * thetaIndexMax * phiIndexMax)
251 {
253 ed << "Index angleIncident: " << angleIncident
254 << " thetaIndex: " << thetaIndex << " phiIndex: " << phiIndex
255 << " out of range!";
256 G4Exception("G4OpticalSurface::GetAngularDistributionValue", "mat317",
257 FatalException, ed);
258 return 0.;
259 }
260 return (G4double)
261 AngularDistribution[angleIncident + thetaIndex * incidentIndexMax +
262 phiIndex * thetaIndexMax * incidentIndexMax];
263}
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
double G4double
Definition: G4Types.hh:83

◆ GetAngularDistributionValueLUT()

G4double G4OpticalSurface::GetAngularDistributionValueLUT ( G4int  i)
inline

Definition at line 265 of file G4OpticalSurface.hh.

266{
267 if(i < 0 || i >= indexmax)
268 {
270 ed << "Index " << i << " out of range!";
271 G4Exception("G4OpticalSurface::GetAngularDistributionValueLUT", "mat318",
272 FatalException, ed);
273 return 0.;
274 }
275 return (G4double) AngularDistributionLUT[i];
276}

◆ GetDichroicVector()

G4Physics2DVector * G4OpticalSurface::GetDichroicVector ( )
inline

Definition at line 291 of file G4OpticalSurface.hh.

292{
293 return DichroicVector;
294}

◆ GetFinish()

G4OpticalSurfaceFinish G4OpticalSurface::GetFinish ( ) const
inline

Definition at line 140 of file G4OpticalSurface.hh.

140{ return theFinish; }

Referenced by G4GDMLWriteSolids::OpticalSurfaceWrite(), and G4OpBoundaryProcess::PostStepDoIt().

◆ GetInmax()

G4int G4OpticalSurface::GetInmax ( ) const

Definition at line 167 of file G4OpticalSurface.cc.

167{ return indexmax; }

◆ GetLUTbins()

G4int G4OpticalSurface::GetLUTbins ( ) const

Definition at line 169 of file G4OpticalSurface.cc.

169{ return LUTbins; }

◆ GetMaterialPropertiesTable()

G4MaterialPropertiesTable * G4OpticalSurface::GetMaterialPropertiesTable ( ) const
inline

◆ GetModel()

G4OpticalSurfaceModel G4OpticalSurface::GetModel ( ) const
inline

Definition at line 145 of file G4OpticalSurface.hh.

145{ return theModel; }

Referenced by G4GDMLWriteSolids::OpticalSurfaceWrite(), and G4OpBoundaryProcess::PostStepDoIt().

◆ GetPhiIndexMax()

G4int G4OpticalSurface::GetPhiIndexMax ( ) const

Definition at line 175 of file G4OpticalSurface.cc.

175{ return phiIndexMax; }

◆ GetPolish()

G4double G4OpticalSurface::GetPolish ( ) const
inline

Definition at line 155 of file G4OpticalSurface.hh.

155{ return polish; }

Referenced by G4GDMLWriteSolids::OpticalSurfaceWrite().

◆ GetReflectivityLUTValue()

G4double G4OpticalSurface::GetReflectivityLUTValue ( G4int  i)
inline

Definition at line 278 of file G4OpticalSurface.hh.

279{
280 if(i < 0 || i >= RefMax)
281 {
283 ed << "Index " << i << " out of range!";
284 G4Exception("G4OpticalSurface::GetReflectivityLUTValue", "mat319",
285 FatalException, ed);
286 return 0.;
287 }
288 return (G4double) Reflectivity[i];
289}

◆ GetRefMax()

G4int G4OpticalSurface::GetRefMax ( ) const

Definition at line 171 of file G4OpticalSurface.cc.

171{ return RefMax; }

◆ GetSigmaAlpha()

G4double G4OpticalSurface::GetSigmaAlpha ( ) const
inline

Definition at line 150 of file G4OpticalSurface.hh.

150{ return sigma_alpha; }

Referenced by G4GDMLWriteSolids::OpticalSurfaceWrite().

◆ GetThetaIndexMax()

G4int G4OpticalSurface::GetThetaIndexMax ( ) const

Definition at line 173 of file G4OpticalSurface.cc.

173{ return thetaIndexMax; }

◆ operator!=()

G4bool G4OpticalSurface::operator!= ( const G4OpticalSurface right) const

Definition at line 162 of file G4OpticalSurface.cc.

163{
164 return (this != (G4OpticalSurface*) &right);
165}

◆ operator=()

G4OpticalSurface & G4OpticalSurface::operator= ( const G4OpticalSurface right)

Definition at line 47 of file G4OpticalSurface.cc.

48{
49 if(this != &right)
50 {
51 theName = right.theName;
52 theType = right.theType;
53 theModel = right.theModel;
54 theFinish = right.theFinish;
55 sigma_alpha = right.sigma_alpha;
56 polish = right.polish;
57 theMaterialPropertiesTable = right.theMaterialPropertiesTable;
58
59 delete[] AngularDistribution;
60 AngularDistribution =
61 new G4float[incidentIndexMax * thetaIndexMax * phiIndexMax];
62 *(AngularDistribution) = *(right.AngularDistribution);
63
64 delete[] AngularDistributionLUT;
65 AngularDistributionLUT = new G4float[indexmax];
66 *(AngularDistributionLUT) = *(right.AngularDistributionLUT);
67
68 delete[] Reflectivity;
69 Reflectivity = new G4float[RefMax];
70 *(Reflectivity) = *(right.Reflectivity);
71
72 delete DichroicVector;
73 DichroicVector = new G4Physics2DVector();
74 *DichroicVector = *(right.DichroicVector);
75 }
76 return *this;
77}

◆ operator==()

G4bool G4OpticalSurface::operator== ( const G4OpticalSurface right) const

Definition at line 157 of file G4OpticalSurface.cc.

158{
159 return (this == (G4OpticalSurface*) &right);
160}

◆ ReadCompressedFile()

void G4OpticalSurface::ReadCompressedFile ( const G4String filename,
std::istringstream &  iss 
)

Definition at line 430 of file G4OpticalSurface.cc.

432{
433 G4String* dataString = nullptr;
434 G4String path = G4FindDataDir("G4REALSURFACEDATA");
435 G4String compfilename = path + "/" + filename;
436 // create input stream with binary mode operation and position at end of file
437 std::ifstream in(compfilename, std::ios::binary | std::ios::ate);
438 if(in.good())
439 {
440 // get current position in the stream (was set to the end)
441 G4int fileSize = (G4int)in.tellg();
442 // set current position being the beginning of the stream
443 in.seekg(0, std::ios::beg);
444 // create (zlib) byte buffer for the data
445 Bytef* compdata = new Bytef[fileSize];
446 while(in)
447 {
448 in.read((char*) compdata, fileSize);
449 }
450 // create (zlib) byte buffer for the uncompressed data
451 uLongf complen = (uLongf)(fileSize * 4);
452 Bytef* uncompdata = new Bytef[complen];
453 while(Z_OK != uncompress(uncompdata, &complen, compdata, fileSize))
454 {
455 // increase uncompressed byte buffer
456 delete[] uncompdata;
457 complen *= 2;
458 uncompdata = new Bytef[complen];
459 }
460 // delete the compressed data buffer
461 delete[] compdata;
462 // create a string from uncompressed data (will be deallocated by caller)
463 dataString = new G4String((char*) uncompdata, (long) complen);
464 // delete the uncompressed data buffer
465 delete[] uncompdata;
466 }
467 else
468 {
470 ed << "Problem while trying to read " + compfilename + " data file.\n";
471 G4Exception("G4OpticalSurface::ReadCompressedFile", "mat316",
472 FatalException, ed);
473 return;
474 }
475 // create the input string stream from the data string
476 if(dataString != nullptr)
477 {
478 iss.str(*dataString);
479 in.close();
480 delete dataString;
481 G4cout << "G4OpticalSurface: data file " << compfilename
482 << " successfully read in." << G4endl;
483 }
484}
const char * G4FindDataDir(const char *)
int ZEXPORT uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
Definition: uncompr.c:85
#define Z_OK
Definition: zlib.h:177

Referenced by ReadLUTDAVISFile(), ReadLUTFile(), and ReadReflectivityLUTFile().

◆ ReadDataFile()

void G4OpticalSurface::ReadDataFile ( )

Definition at line 210 of file G4OpticalSurface.cc.

211{
212 // type and finish can be set in either order. Thus, we can't check
213 // for consistency. Need to read file on setting either type or finish.
214 switch(theType)
215 {
216 case dielectric_LUT:
217 if(AngularDistribution == nullptr)
218 {
219 AngularDistribution =
220 new G4float[incidentIndexMax * thetaIndexMax * phiIndexMax];
221 }
222 ReadLUTFile();
223 break;
225 if(AngularDistributionLUT == nullptr)
226 {
227 AngularDistributionLUT = new G4float[indexmax];
228 }
230
231 if(Reflectivity == nullptr)
232 {
233 Reflectivity = new G4float[RefMax];
234 }
236 break;
238 if(DichroicVector == nullptr)
239 {
240 DichroicVector = new G4Physics2DVector();
241 }
243 break;
244 default:
245 break;
246 }
247}
@ dielectric_LUT
@ dielectric_LUTDAVIS
@ dielectric_dichroic

Referenced by G4OpticalSurface(), SetFinish(), and SetType().

◆ ReadDichroicFile()

void G4OpticalSurface::ReadDichroicFile ( )

Definition at line 486 of file G4OpticalSurface.cc.

487{
488 const char* datadir = G4FindDataDir("G4DICHROICDATA");
489
490 if(datadir == nullptr)
491 {
492 G4Exception("G4OpticalSurface::ReadDichroicFile()", "mat313",
494 "Environment variable G4DICHROICDATA not defined");
495 return;
496 }
497
498 std::ostringstream ost;
499 ost << datadir;
500 std::ifstream fin(ost.str().c_str());
501 if(!fin.is_open())
502 {
504 ed << "Dichroic surface data file <" << ost.str().c_str()
505 << "> is not opened!" << G4endl;
506 G4Exception("G4OpticalSurface::ReadDichroicFile()", "mat314",
507 FatalException, ed, " ");
508 return;
509 }
510
511 if(!(DichroicVector->Retrieve(fin)))
512 {
514 ed << "Dichroic surface data file <" << ost.str().c_str()
515 << "> is not opened!" << G4endl;
516 G4Exception("G4OpticalSurface::ReadDichroicFile()", "mat315",
517 FatalException, ed, " ");
518 return;
519 }
520
521 // DichroicVector->SetBicubicInterpolation(true);
522
523 G4cout << " *** Dichroic surface data file *** " << G4endl;
524
525 G4int numberOfXNodes = (G4int)DichroicVector->GetLengthX();
526 G4int numberOfYNodes = (G4int)DichroicVector->GetLengthY();
527
528 G4cout << "numberOfXNodes: " << numberOfXNodes << G4endl;
529 G4cout << "numberOfYNodes: " << numberOfYNodes << G4endl;
530
531 if(0 > numberOfXNodes || numberOfXNodes >= INT_MAX)
532 {
533 numberOfXNodes = 0;
534 }
535 if(0 > numberOfYNodes || numberOfYNodes >= INT_MAX)
536 {
537 numberOfYNodes = 0;
538 }
539
540 G4PV2DDataVector xVector;
541 G4PV2DDataVector yVector;
542
543 xVector.resize(numberOfXNodes, 0.);
544 yVector.resize(numberOfYNodes, 0.);
545
546 for(G4int i = 0; i < numberOfXNodes; ++i)
547 {
548 G4cout << "i: " << DichroicVector->GetX(i) << G4endl;
549 xVector[i] = DichroicVector->GetX(i);
550 }
551 for(G4int j = 0; j < numberOfYNodes; ++j)
552 {
553 G4cout << "j: " << DichroicVector->GetY(j) << G4endl;
554 yVector[j] = DichroicVector->GetY(j);
555 }
556
557 for(G4int j = 0; j < numberOfYNodes; ++j)
558 {
559 for(G4int i = 0; i < numberOfXNodes; ++i)
560 {
561 G4cout << " i: " << i << " j: " << j << " "
562 << DichroicVector->GetValue(i, j) << G4endl;
563 }
564 }
565}
std::vector< G4double > G4PV2DDataVector
G4bool Retrieve(std::ifstream &fIn)
std::size_t GetLengthX() const
std::size_t GetLengthY() const
G4double GetValue(std::size_t idx, std::size_t idy) const
G4double GetX(std::size_t index) const
G4double GetY(std::size_t index) const
#define INT_MAX
Definition: templates.hh:90

Referenced by ReadDataFile().

◆ ReadLUTDAVISFile()

void G4OpticalSurface::ReadLUTDAVISFile ( )

Definition at line 333 of file G4OpticalSurface.cc.

334{
335 G4String readLUTDAVISFileName;
336
337 switch(theFinish)
338 {
339 case Rough_LUT:
340 readLUTDAVISFileName = "Rough_LUT.z";
341 break;
342 case RoughTeflon_LUT:
343 readLUTDAVISFileName = "RoughTeflon_LUT.z";
344 break;
345 case RoughESR_LUT:
346 readLUTDAVISFileName = "RoughESR_LUT.z";
347 break;
349 readLUTDAVISFileName = "RoughESRGrease_LUT.z";
350 break;
351 case Polished_LUT:
352 readLUTDAVISFileName = "Polished_LUT.z";
353 break;
355 readLUTDAVISFileName = "PolishedTeflon_LUT.z";
356 break;
357 case PolishedESR_LUT:
358 readLUTDAVISFileName = "PolishedESR_LUT.z";
359 break;
361 readLUTDAVISFileName = "PolishedESRGrease_LUT.z";
362 break;
363 case Detector_LUT:
364 readLUTDAVISFileName = "Detector_LUT.z";
365 break;
366 default:
367 return;
368 }
369
370 std::istringstream iss;
371 ReadCompressedFile(readLUTDAVISFileName, iss);
372
373 for(size_t i = 0; i < indexmax; ++i)
374 {
375 iss >> AngularDistributionLUT[i];
376 }
377 G4cout << "LUT DAVIS - data file: " << readLUTDAVISFileName << " read in! "
378 << G4endl;
379}
@ PolishedESR_LUT
@ RoughESR_LUT
@ Polished_LUT
@ Detector_LUT
@ PolishedESRGrease_LUT
@ RoughESRGrease_LUT
@ Rough_LUT
@ RoughTeflon_LUT
@ PolishedTeflon_LUT
void ReadCompressedFile(const G4String &, std::istringstream &)

Referenced by ReadDataFile().

◆ ReadLUTFile()

void G4OpticalSurface::ReadLUTFile ( )

Definition at line 249 of file G4OpticalSurface.cc.

250{
251 G4String readLUTFileName;
252
253 switch(theFinish)
254 {
256 readLUTFileName = "PolishedLumirrorGlue.z";
257 break;
259 readLUTFileName = "PolishedLumirror.z";
260 break;
262 readLUTFileName = "PolishedTeflon.z";
263 break;
264 case polishedtioair:
265 readLUTFileName = "PolishedTiO.z";
266 break;
267 case polishedtyvekair:
268 readLUTFileName = "PolishedTyvek.z";
269 break;
271 readLUTFileName = "PolishedVM2000Glue.z";
272 break;
274 readLUTFileName = "PolishedVM2000.z";
275 break;
277 readLUTFileName = "EtchedLumirrorGlue.z";
278 break;
280 readLUTFileName = "EtchedLumirror.z";
281 break;
282 case etchedteflonair:
283 readLUTFileName = "EtchedTeflon.z";
284 break;
285 case etchedtioair:
286 readLUTFileName = "EtchedTiO.z";
287 break;
288 case etchedtyvekair:
289 readLUTFileName = "EtchedTyvek.z";
290 break;
291 case etchedvm2000glue:
292 readLUTFileName = "EtchedVM2000Glue.z";
293 break;
294 case etchedvm2000air:
295 readLUTFileName = "EtchedVM2000.z";
296 break;
298 readLUTFileName = "GroundLumirrorGlue.z";
299 break;
301 readLUTFileName = "GroundLumirror.z";
302 break;
303 case groundteflonair:
304 readLUTFileName = "GroundTeflon.z";
305 break;
306 case groundtioair:
307 readLUTFileName = "GroundTiO.z";
308 break;
309 case groundtyvekair:
310 readLUTFileName = "GroundTyvek.z";
311 break;
312 case groundvm2000glue:
313 readLUTFileName = "GroundVM2000Glue.z";
314 break;
315 case groundvm2000air:
316 readLUTFileName = "GroundVM2000.z";
317 break;
318 default:
319 return;
320 }
321
322 std::istringstream iss;
323 ReadCompressedFile(readLUTFileName, iss);
324
325 size_t idxmax = incidentIndexMax * thetaIndexMax * phiIndexMax;
326 for(size_t i = 0; i < idxmax; ++i)
327 {
328 iss >> AngularDistribution[i];
329 }
330 G4cout << "LUT - data file: " << readLUTFileName << " read in! " << G4endl;
331}
@ polishedlumirrorair
@ groundtyvekair
@ groundtioair
@ groundvm2000glue
@ etchedteflonair
@ etchedtyvekair
@ etchedvm2000glue
@ etchedtioair
@ groundvm2000air
@ polishedlumirrorglue
@ polishedtyvekair
@ polishedteflonair
@ polishedvm2000air
@ etchedlumirrorglue
@ polishedvm2000glue
@ polishedtioair
@ groundlumirrorglue
@ etchedvm2000air
@ etchedlumirrorair
@ groundlumirrorair
@ groundteflonair

Referenced by ReadDataFile().

◆ ReadReflectivityLUTFile()

void G4OpticalSurface::ReadReflectivityLUTFile ( )

Definition at line 381 of file G4OpticalSurface.cc.

382{
383 G4String readReflectivityLUTFileName;
384
385 switch(theFinish)
386 {
387 case Rough_LUT:
388 readReflectivityLUTFileName = "Rough_LUTR.z";
389 break;
390 case RoughTeflon_LUT:
391 readReflectivityLUTFileName = "RoughTeflon_LUTR.z";
392 break;
393 case RoughESR_LUT:
394 readReflectivityLUTFileName = "RoughESR_LUTR.z";
395 break;
397 readReflectivityLUTFileName = "RoughESRGrease_LUTR.z";
398 break;
399 case Polished_LUT:
400 readReflectivityLUTFileName = "Polished_LUTR.z";
401 break;
403 readReflectivityLUTFileName = "PolishedTeflon_LUTR.z";
404 break;
405 case PolishedESR_LUT:
406 readReflectivityLUTFileName = "PolishedESR_LUTR.z";
407 break;
409 readReflectivityLUTFileName = "PolishedESRGrease_LUTR.z";
410 break;
411 case Detector_LUT:
412 readReflectivityLUTFileName = "Detector_LUTR.z";
413 break;
414 default:
415 return;
416 }
417
418 std::istringstream iss;
419 ReadCompressedFile(readReflectivityLUTFileName, iss);
420
421 for(size_t i = 0; i < RefMax; ++i)
422 {
423 iss >> Reflectivity[i];
424 }
425 G4cout << "LUT DAVIS - reflectivity data file: "
426 << readReflectivityLUTFileName << " read in! " << G4endl;
427}

Referenced by ReadDataFile().

◆ SetFinish()

void G4OpticalSurface::SetFinish ( const G4OpticalSurfaceFinish  finish)

Definition at line 204 of file G4OpticalSurface.cc.

205{
206 theFinish = finish;
207 ReadDataFile();
208}

◆ SetMaterialPropertiesTable()

void G4OpticalSurface::SetMaterialPropertiesTable ( G4MaterialPropertiesTable anMPT)
inline

Definition at line 167 of file G4OpticalSurface.hh.

168 {
169 theMaterialPropertiesTable = anMPT;
170 }

Referenced by G4GDMLReadSolids::PropertyRead().

◆ SetModel()

void G4OpticalSurface::SetModel ( const G4OpticalSurfaceModel  model)
inline

Definition at line 147 of file G4OpticalSurface.hh.

147{ theModel = model; }

◆ SetPolish()

void G4OpticalSurface::SetPolish ( const G4double  plsh)
inline

Definition at line 157 of file G4OpticalSurface.hh.

157{ polish = plsh; }

◆ SetSigmaAlpha()

void G4OpticalSurface::SetSigmaAlpha ( const G4double  s_a)
inline

Definition at line 152 of file G4OpticalSurface.hh.

152{ sigma_alpha = s_a; }

◆ SetType()

void G4OpticalSurface::SetType ( const G4SurfaceType type)
overridevirtual

Reimplemented from G4SurfaceProperty.

Definition at line 198 of file G4OpticalSurface.cc.

199{
200 theType = type;
201 ReadDataFile();
202}

The documentation for this class was generated from the following files: