#!/usr/bin/env perl
# Calculate the self-energy
# Rok Zitko, zitko@theorie.physik.uni-goettingen.de, Oct 2008

use warnings;
use Math::Complex;
require "misc.pl";

my $U = `getparam U param.loop`; # band e-e repulsion

chomp ($U);
print "U=$U\n";

chdir "res";

my @omega = readcol("c-imG.dat", 1);

my @imG = readcol("c-imG.dat", 2);
my @reG = readcol("c-reG.dat", 2);
my @imF = readcol("c-imF.dat", 2);
my @reF = readcol("c-reF.dat", 2);

my $refn = "resigma.dat";
my $imfn = "imsigma.dat";
open(RE, ">$refn") or die "Can't open $refn for writing, stopped";
open(IM, ">$imfn") or die "Can't open $imfn for writing, stopped";

my $len = @omega;
for ($i = 0; $i < $len; $i++) {
  my $o = $omega[$i];
  my $G = $reG[$i] + i * $imG[$i];

  my $F = $reF[$i] + i * $imF[$i];
  my $sigmaU = $U * $F/$G;
    
  $sigma = $sigmaU;
    
  my $re = Re($sigma);
  my $im = Im($sigma);
  print RE "$o $re\n";
  print IM "$o $im\n";
}
