package Ellipsometry @ISA = qw() sub BEGIN sub new my ($module) = @_; return $this; sub DESTROY my $this = shift; sub Read my ($this, $filename, $IsNumerical, $YLabel) = @_; return ($nData, $pLabelArray, @DataArray); return ($c, ["E(eV)", "T"], [\@E, \@T]); return undef; my $pwl = $csv->GetXData("wl.*"); $csv->AddDataByConversion("E(eV)", $pwl, sub { my ($x)=@_; return Optics::nmToeV($x); return ($c, ["E(eV)", "T"], [\@E, \@T]); return undef; return ($nData, $pLabelArray, @DataArray); sub EpsToNK my ($this, $e1, $e2) = @_; return Optics::EpsToNK($e1, $e2); sub NKToEps my ($this, $n, $k) = @_; return Optics::NKToEps($n, $k); sub PsiDeltaTolIsIc my ($this, $Psi, $Delta, $PmM, $A, $M) = @_; return ($Is, $Ic); sub PsiDeltaToIsIcConfigrationII my ($this, $Psi, $Delta, $signA, $signM) = @_; return ($Is, $Ic); sub IsIcToPsiDeltaConfigrationII my ($this, $Is, $Ic, $signA, $signM) = @_; return ($Psi*$todeg, $Delta*$todeg); sub PsiDeltaToIsIcConfigrationIII my ($this, $Psi, $Delta, $signA, $signM) = @_; return ($Is, $Ic); sub IsIcToPsiDeltaConfigrationIII my ($this, $Is, $Ic, $signA, $signM) = @_; return ($Psi*$todeg, $Delta*$todeg); sub MultMatrix my ($this, $pM1, $pM2) = @_; return %M; sub CharacteristicMatrixToFresnelCoefficient my ($this, $Polarization, $pM, $nIncident, $kIncident, $nTransmission, $kTransmission, $QIncident, $QTransmission) = @_; return undef; return ($rho, $tau, $R, $T); sub CalCharacteristicMatrix my ($this, $Polarization, $E, $n, $k, $thickness, $Angle) = @_; return %M; return undef; return %M; sub ReflectionFresnelCoefficientToPsiDelta my ($this, $rs, $rp) = @_; return (90.0, 0.0); return (0.0, 0.0); return ($Psi, $Delta); sub SnellsRawComplex my ($this, $nIncident, $kIncident, $nSubstrate, $kSubstrate, $AngleIncident) = @_; return $AngleSubstrate; my ($this, $nIncident, $nSubstrate, $AngleIncident) = @_; return $AngleSubstrate; sub CalFresnelCoefficients my ($this, $nIncident, $kIncident, $nSubstrate, $kSubstrate, $AngleIncident) = @_; return ($rs, $ts, -$rp, $tp); sub PsiDeltaToNK my ($this, $Psi, $Delta) = @_; return Optics::EpsToNK($e1, $e2); sub PsiDeltaToEps my ($this, $Psi, $Delta, $Angle) = @_; return ($e1, $e2); return (Re($eps), -Im($eps)); return (Re($eps), Im($eps)); sub PsiDeltaToNK_OldVersion my ($this, $Psi, $Delta, $Angle) = @_; return ($n, $k); sub ApproximatePsiDeltaToNK my ($this, $Psi, $Delta, $Angle) = @_; return ($n, $k);