#=============================================== # DiffractionPeakArray #=============================================== package DiffractionPeakArray; #use Exporter; #@ISA = qw(Exporter); use strict; sub new { my ($module) = @_; my $this = {}; bless $this; my @hklArray; my @Q2Obs; my @Q2Cal; my @F; $this->{'hklArray'} = \@hklArray; $this->{'2QObs'} = \@Q2Obs; $this->{'2QCal'} = \@Q2Cal; $this->{'F'} = \@F; return $this; } sub DESTROY { my $this = shift; } sub nPeaks { my $a=shift->{'hklArray'}; return scalar @$a; } sub Sethkl { my ($this,$i,$s)=@_; return $this->{'hklArray'}->[$i] = $s; } sub hkl { my ($this,$i)=@_; return $this->{'hklArray'}->[$i]; } #sub Q2a { my ($this,$i)=@_; return $this->{'2QObs'}->[$i]; } sub Q2Obs { my ($this,$i)=@_; return $this->{'2QObs'}->[$i]; } #sub Q2b { my ($this,$i)=@_; return $this->{'2QCal'}->[$i]; } sub Q2Cal { my ($this,$i)=@_; return $this->{'2QCal'}->[$i]; } sub F { my ($this,$i)=@_; return $this->{'F'}->[$i]; } sub Add { my ($this, $hkl, $Q2Obs, $Q2Cal, $F) = @_; my $phkl = $this->{'hklArray'}; my $p2QObs = $this->{'2QObs'}; my $p2QCal = $this->{'2QCal'}; my $pF = $this->{'F'}; my $n = @$phkl; push(@$phkl, $hkl); push(@$p2QObs, $Q2Obs); push(@$p2QCal, $Q2Cal); push(@$pF, $F); } 1;