<?php

include ('Faisceau.php');
include ('Cible.php');

class Paramètres
{
  var $twiss;
  var $énergie;

  var $épaisseur;
};

$Paramètres = new Paramètres ();

class Control
{
  function get_post ()
    {
      global $_GET;
      global $Paramètres;

      foreach ($_GET as $cle => $value)
	{
          //echo "[{$cle}]={$value}<br>";

          $words = explode ('_', $cle);

          $n = count ($words);

          $classe = $words[0];
          $champ = '';
          if ($n > 1) $champ = str_replace ($classe . '_', '', $cle);

          if (is_array ($value))
            {
              $str = "cle=($cle) _POST[{$classe}.{$champ}]=";
            }
          else
            {
              $Paramètres->$cle = $value;
            }
	}
    }

};

class EGS
{
  function EGS ()
    {
    }

  function run ($cible, $faisceau)
    {
      $sortie = $cible->interaction ($faisceau);

      $string = '<pspa></pspa>';

      $xml = new SimpleXMLElement($string);

      foreach ($sortie as $f)
        {
          $c = $xml->addChild ("faisceau", $f->nom);
          $c->addAttribute ("twiss", $f->twiss);
          $c->addAttribute ("energie", $f->énergie);
        }

      echo $xml->asXML();
    }
};

$control = new Control ();

$control->get_post ();

$xml = simplexml_load_file($Paramètres->data);

$faisceau = $xml->faisceau;
$Paramètres->twiss = (double) $faisceau['twiss'];
$Paramètres->énergie = (double) $faisceau['energie'];
$cible = $xml->cible;
$Paramètres->épaisseur = (double) $cible['epaisseur'];

$faisceau = new Faisceau ("", $Paramètres->twiss, $Paramètres->énergie);
$cible = new Cible ($Paramètres->épaisseur);

$EGS = new EGS ();

$EGS->run ($cible, $faisceau);

?>
