Files
geant4/source/materials/src/G4OpticalSurface.cc
T
2016-06-08 15:55:53 +02:00

124 lines
3.1 KiB
C++

// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4OpticalSurface.cc,v 1.4 1999/12/15 14:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-03-00 $
//
//
////////////////////////////////////////////////////////////////////////
// Optical Surface Class Implementation
////////////////////////////////////////////////////////////////////////
//
// File: G4OpticalSurface.cc
// Description: An optical surface class for use in G4OpBoundaryProcess
// Version: 2.0
// Created: 1997-06-26
// Author: Peter Gumplinger
// mail: gum@triumf.ca
//
// Cvs version:
////////////////////////////////////////////////////////////////////////
#include "G4ios.hh"
#include "G4OpticalSurface.hh"
/////////////////////////
// Class Implementation
/////////////////////////
//////////////
// Operators
//////////////
const G4OpticalSurface&
G4OpticalSurface::operator=(const G4OpticalSurface& right)
{
if (this != &right)
{
theName = right.theName;
theModel = right.theModel;
theFinish = right.theFinish;
theType = right.theType;
sigma_alpha = right.sigma_alpha;
polish = right.polish;
theMaterialPropertiesTable = right.theMaterialPropertiesTable;
}
return *this;
}
/////////////////
// Constructors
/////////////////
G4OpticalSurface::G4OpticalSurface(const G4String& name,
G4OpticalSurfaceModel model,
G4OpticalSurfaceFinish finish,
G4OpticalSurfaceType type,
G4double value)
: theName(name),
theModel(model),
theFinish(finish),
theType(type),
theMaterialPropertiesTable(NULL)
{
if (model == glisur ){
polish = value;
sigma_alpha = 0.0;
}
else if ( model == unified ) {
sigma_alpha = value;
polish = 0.0;
}
else {
G4Exception("G4OpticalSurface::G4OpticalSurface ==> "
"Constructor called with INVALID model.");
}
}
G4OpticalSurface::G4OpticalSurface(const G4OpticalSurface &right)
{
*this = right;
}
G4OpticalSurface::~G4OpticalSurface(){}
G4int G4OpticalSurface::operator==(const G4OpticalSurface &right) const
{
return (this == (G4OpticalSurface *) &right);
}
G4int G4OpticalSurface::operator!=(const G4OpticalSurface &right) const
{
return (this != (G4OpticalSurface *) &right);
}
////////////
// Methods
////////////
void G4OpticalSurface::DumpInfo() const
{
// Dump info for surface
G4cout <<
" Surface type = " << theType << G4endl <<
" Surface finish = " << theFinish << G4endl <<
" Surface model = " << theModel << G4endl;
G4cout << G4endl;
G4cout << " Surface parameter " << G4endl;
G4cout << " ----------------- " << G4endl;
if (theModel == glisur ){
G4cout << polish << G4endl;
}
else {
G4cout << sigma_alpha << G4endl;
}
G4cout << G4endl;
}