43#ifndef G4OpticalSurface_h
44#define G4OpticalSurface_h 1
162 return theMaterialPropertiesTable;
169 theMaterialPropertiesTable = anMPT;
227 static const G4int incidentIndexMax = 91;
228 static const G4int thetaIndexMax = 45;
229 static const G4int phiIndexMax = 37;
235 static const G4int indexmax = 7280001;
236 static const G4int RefMax = 90;
237 static const G4int LUTbins = 20000;
238 G4float* AngularDistributionLUT;
249 G4int product = angleIncident * thetaIndex * phiIndex;
250 if(product < 0 || product >= incidentIndexMax * thetaIndexMax * phiIndexMax)
253 ed <<
"Index angleIncident: " << angleIncident
254 <<
" thetaIndex: " << thetaIndex <<
" phiIndex: " << phiIndex
256 G4Exception(
"G4OpticalSurface::GetAngularDistributionValue",
"mat317",
261 AngularDistribution[angleIncident + thetaIndex * incidentIndexMax +
262 phiIndex * thetaIndexMax * incidentIndexMax];
267 if(i < 0 || i >= indexmax)
270 ed <<
"Index " << i <<
" out of range!";
271 G4Exception(
"G4OpticalSurface::GetAngularDistributionValueLUT",
"mat318",
275 return (
G4double) AngularDistributionLUT[i];
280 if(i < 0 || i >= RefMax)
283 ed <<
"Index " << i <<
" out of range!";
284 G4Exception(
"G4OpticalSurface::GetReflectivityLUTValue",
"mat319",
293 return DichroicVector;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4double GetAngularDistributionValueLUT(G4int)
void SetSigmaAlpha(const G4double s_a)
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetType(const G4SurfaceType &type) override
G4OpticalSurfaceModel GetModel() const
G4double GetSigmaAlpha() const
G4OpticalSurfaceFinish GetFinish() const
void SetModel(const G4OpticalSurfaceModel model)
G4int GetThetaIndexMax() const
G4double GetPolish() const
G4bool operator==(const G4OpticalSurface &right) const
G4OpticalSurface & operator=(const G4OpticalSurface &right)
void ReadCompressedFile(const G4String &, std::istringstream &)
G4MaterialPropertiesTable * GetMaterialPropertiesTable() const
G4Physics2DVector * GetDichroicVector()
G4int GetPhiIndexMax() const
G4double GetReflectivityLUTValue(G4int)
G4bool operator!=(const G4OpticalSurface &right) const
~G4OpticalSurface() override
G4double GetAngularDistributionValue(G4int, G4int, G4int)
void SetFinish(const G4OpticalSurfaceFinish)
void SetPolish(const G4double plsh)
void ReadReflectivityLUTFile()