#=============================================== # TkEllipsometry2 #=============================================== package TkEllipsometry2; use clib::TkFittingCommon2; @ISA = qw(TkFittingCommon2); #公開したいサブルーチン #@EXPORT = qw(DelSpace Reduce01 MakePath RegExpQuote); use strict; use Utils; use IniFile; use CSV; use MyTk::GraphFrameArray; use GraphData; use Sci::Science; use Sci::Material; use Sci::Ellipsometry; use Sci::MultiLayer; use Sci::OpticalMaterial; my $pi = Sci::pi(); my $kB = Sci::kB(); my $c = Sci::c(); my $e = Sci::e(); my $e0 = Sci::e0(); my $me = Sci::me(); my $mp = Sci::mp(); my $mn = Sci::mn(); my $h = Sci::h(); my $hbar = Sci::hbar(); my $torad = Sci::torad(); my $todeg = Sci::todeg(); #============================================================ # 変数等取得関数 #============================================================ #============================================================ # コンストラクタ、デストラクタ #============================================================ #呼び出されることはない sub new { my ($module, $app) = @_; my $this = {}; bless $this; return $this; } sub DESTROY { my $this = shift; $this->SUPER::DESTROY(@_); } #============================================================ # 継承クラスで定義しなおす関数 #============================================================ sub CreateLeftFrame { my ($this, $ConfigSide, @args) = @_; # return $this->SUPER::CreateLeftFrame(); return undef; } sub CreateSelectFilePane { my ($this) = @_; # return $this->SUPER::CreateSelectFilePane(); return undef; } sub CreateFileContentPane { return undef; } #=================================================== # データ処理 #=================================================== sub Initialize { my ($this, $InitializeParameterFile, $InitializeData) = @_; $this->{Ellipsometry} = new Ellipsometry; $this->{Optimize} = undef; $this->{Layers} = undef; if($InitializeParameterFile) { $this->{ini}->{SampleCSVFile} = ''; $this->{ini}->{SubstrateCSVFile} = ''; } if($InitializeData) { $this->{pEArray} = undef; $this->{pe1Array} = undef; $this->{pe2Array} = undef; $this->{pPsiArray} = undef; $this->{pDeltaArray} = undef; $this->{pIsArray} = undef; $this->{pIcArray} = undef; $this->{PbPE} = undef; $this->{PbPe1} = undef; $this->{PbPe2} = undef; $this->{PbPR} = undef; $this->{PbPT} = undef; } } sub ReadArgs { my ($this) = @_; my $App = $this->App(); $App->AddArgument("--nFilmLayers", "--nFilmLayers=[>=1]: Specify number of film layers", 2); $App->AddArgument("--nLorentz", "--nLorentz=[>=0] : Specify number of Lorentz functions", 3); $App->AddArgument("--nDrude", "--nDrude=[>=0] : Specify number of Drude functions", 1); $this->SUPER::ReadArgs(); } 1;